Software::Security
Secure Boot Bootloader für alle Distributionen
Matthew Garrett, der sich seit über einem Jahr vorwiegend mit der Lösung der Probleme um UEFI Secure Boot beschäftigt hat, stellt jetzt eine Version seines von Microsoft signierten Bootloaders Shim vor, den Distributionen in ihre Installationsmedien integrieren können.
Michael Kofler
UEFI-Bootmenü
UEFI Secure Boot setzt voraus, dass ein signierter Bootloader sich gegen einen im UEFI-BIOS hinterlegten Schlüssel verifizieren kann. Hier kommt
Shim ins Spiel, ein von Microsoft signierter Bootloader, der in der Lage ist, einen weiteren primären Bootloader wie beispielsweise GRUB2 zu laden, der dann das System startet. Somit haben auch kleinere Distributionen die Chance, ihre Medien mit aktiviertem Secure Boot auszuliefern.
Technisch ist das nicht allzu aufwendig. Der Distributor benennt das im heruntergeladenen Shim-Paket enthaltene shim.efi
in bootx64.efi
um und legt es zusammen mit MokManager.efi
in das Verzeichnis /EFI/BOOT
des Installationsmediums. In das gleiche Verzeichnis muss auch die Bootmanager-Komponente grubx64.efi
. Nun gilt es nur noch, grubx64.efi mit einem eigenen Schlüssel zu signieren, dessen öffentlicher Teil dann für Shim auffindbar im System abgelegt wird.
Der zukünftige Anwender muss erfahren, wo dieser Schlüssel, nach dem Shim nach dem Start fragt, abgelegt ist, um dann dorthin zu navigieren und den Schlüssel zu akzeptieren. Shim wird nach Bestätigung diesem Schlüssel vertrauen und somit GRUB2 nachladen, der in gewohnter Weise das System booten kann. Dieses Vorgehen reicht aus, um Linux auf Secure-Boot-Systemen zu starten. Shim kann aber mehr, wie Garrett in seinem Blog beschreibt. Mithilfe des Signaturmechanismus ließe sich ein System aufbauen, in dem beispielsweise sowohl der Kernel als auch das Laden von Modulen vom Nutzer per Schlüssel freigeschaltet werden muss. Garrett plädiert dafür, die Nutzer zumindest über diese Möglichkeiten zu informieren, die sich durch das Vertrauen in den Schlüssel ergeben.
Der Umgang mit UEFI Secure Boot ist bei den großen Distributionen unterschiedlich. Suse und Fedora setzen auf Shim als Pre-Loader, einen signierten Bootloader wie GRUB2 und einen signierten Kernel. Ubuntu setzt auch auf Shim, begnügt sich aber damit, den primären Bootloader zu signieren. Die Linux Foundation hat zusammen mit dem von ihrem Technical Advisory Board entwickelten Plan einen eigenen »Loader« veröffentlicht, der, wie auch Shim, von Microsoft signiert sein soll. Auf das Signieren des primären Bootloaders wie beispielsweise GRUB2 will die Linux Foundation verzichten.
Vor zwei Wochen berichtete James Bottomley von der Linux Foundation über die Abenteuer des Signierprozesses des Loaders mit Microsoft, der anscheinend bis heute nicht abgeschlossen ist.
Der derzeit gangbarste Weg für kleinere Distributionen, ihren Nutzern UEFI Secure Boot anbieten zu können, ohne selbst einen Bootloader von Microsoft signieren zu lassen, scheint der Weg von Matthew Garrett mit Shim 2.0 zu sein.