Enabling Secure Boot

Dieser Blog-Beitrag befasst sich speziell mit dem Anwendungsfall der Verwendung eines signierten Standard-Distributionskernels, der von Debian/Ubuntu bereitgestellt wird, und der Verwendung von shim-signed zur Bereitstellung selbstsignierter Kernelmodule, die mit dkms registriert sind. Ich beziehe mich ausdrücklich nicht auf Nicht-Distributions-Kernel oder Kernel-Module, die ohne dkms verwaltet werden. Um das Offensichtliche klarzustellen, ist dies nur nützlich, wenn man Secure Boot aktiviert hat.

Diese Anleitung sollte für alle nicht-alten Versionen von Debian/Ubuntu funktionieren, die mit signierten Kerneln ausgeliefert werden; ich weiß, dass dies definitiv mit Ubuntu 18.04 LTS und höher funktioniert, aber im Zweifelsfall sollte man sicherstellen, dass die Pakete shim-signed und mokutil vorinstalliert sind.

Erstmal prüfen ob Secure-Boot aktiv ist

Alle grau hinterlegen Befehle sind im Terminal auszuführen

sudo mokutil --sb-state

Shim Zertifikat erzeugen

Unter Ubuntu erzeugt das Postinst-Skript von shim-signed ein selbstsigniertes Zertifikat, das sich in /var/lib/shim-signed/mok/MOK.{der,priv} befindet. Wenn diese Dateien fehlen oder man aus irgendeinem Grund einen neuen MOK-Schlüssel erzeugen möchte, führt man folgenden Befehl aus:

sudo update-secureboot-policy --new-key

Jedes Mal, wenn man einen MOK-Schlüssel neu generiert, muss dieser Schlüssel auch neu registriert werden. Daher sollte man

/var/lib/shim-signed/mok/MOK.{der,priv}

in die geplanten Backups aufnehmen. und den MOK-Schlüssel wiederherstellen, wenn man das Betriebssystem neu installieren muss – je nachdem, welche Option für einen günstiger ist.

MOK-Schlüssel ausrollen

Der nächste Schritt besteht darin, Ihren MOK-Schlüssel zu registrieren.

sudo mokutil --import /var/lib/shim-signed/mok/MOK.der

Dadurch wird man zur Eingabe eines einmaligen Passworts aufgefordert. Beim nächsten Neustart sehen Sie nicht das normale Grub-Menü, sondern einen Bildschirm für die UEFI-Schlüsselverwaltung, in den Sie das Passwort eingeben müssen, um Ihren MOK-Schlüssel zu registrieren.

Wenn dies aus irgendeinem Grund fehlschlägt, kopiert man

/var/lib/shim-signed/mok/MOK.der

auf ein FAT32-formatiertes USB-Laufwerk.

Man booten dann in das UEFI/BIOS-Setup-Menü Ihres Motherboards (dies geschieht oft durch Drücken von F2 oder Entf während des Bootens, aber sicherheitshalber im Handbuch des Motherboards nachsehen) und navigiert man dann durch die verschiedenen Menüs, bis Sie die Menüoptionen für Secure Boot und die Schlüsselregistrierung findet, und fügt den Schlüssel hinzu.

Überprüfen ob der Schlüssel erfolgreich hinzugefügt wurde:

sudo mokutil --list-enrolled 
# your key should appear in the output
sudo mokutil --test-key /var/lib/shim-signed/mok/MOK.der
/var/lib/shim-signed/mok/MOK.der is already enrolled

Man sollte auch überprüfen, ob Secure Boot auf dem PC aktiviert und erzwungen ist. Dies kann durch Ausführen überprüft werden:

sudo mokutil --sb-state
SecureBoot enabled

Ab diesem Zeitpunkt an sollten alle Kernel-Module, die von dkms erstellt werden, mit dem MOK-Schlüssel signiert sein. Wenn man bereits nvidia-Kernel-Module (oder andere Out-of-Tree-Module) erstellt hat, bevor Sie einen MOK-Schlüssel generiert haben, und diese mit dkms neu erstellen möchte, kann man das z.B. tun, indem man

sudo dkms uninstall -k 5.4.0-90-generic -m nvidia -v 460.91.03 # replace kernel and module name/version as needed
$ sudo dkms install -k 5.4.0-90-generic -m nvidia -v 460.91.03 # replace kernel and module name/version as needed

Zusammenfassend lässt sich sagen, dass Secure Boot mit einem Distributionskernel und Out-of-Tree-Modulen funktioniert:

Aktivieren Sie die Secure Boot-Überprüfung.
Aktiviere den MOK-Schlüssel in der UEFI-Firmware des Motherboards an.
Signiere die Out-of-Tree-Kernelmodule mit dem MOK-Schlüssel.

Schritt 3 muss jedes Mal durchgeführt werden, wenn Kernel oder Kernelmodulpakete aktualisiert werden, aber glücklicherweise wird dies alles von dkms erledigt, ohne dass der Benutzer eingreifen muss (und wenn man auf Out-of-Tree-Module angewiesen sind, aber nicht dkms verwenden, ist dies ein starker Anreiz für Sie, dkms zu verwenden).

Die Schritte 1 und 2 sind tatsächlich einmalige Operationen; sie müssen nur durchgeführt werden, wenn Sie das Motherboard austauschen, Ihre registrierten Schlüssel im UEFI-Schlüsselverwaltungsbildschirm Ihres Motherboards löschen oder Debian/Ubuntu neu installieren, ohne den registrierten Schlüssel zu sichern.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert