Linux und UEFI Secure Boot

Wie stellt man sicher, dass sich Linux auf Computern mit Windows 8 und UEFI Secure Boot installieren lässt? Fedora und Ubuntu sind sich uneins über den richtigen Weg.

In Pocket speichern vorlesen Druckansicht 237 Kommentare lesen
Lesezeit: 5 Min.
Von
  • Dr. Oliver Diedrich

Mit der Einführung von Windows 8 dürften gegen Ende des Jahres zunehmend Computer auf den Markt kommen, in denen das traditionelle BIOS aus der PC-Urzeit durch eine moderne Firmware ersetzt ist. Die Spezifikation für das Unified Extensible Firmware Interface, kurz UEFI, beschreibt in der aktuellen Version 2.3.1 einen Mechanismus namens Secure Boot, der dafür sorgt, dass UEFI lediglich signierte Bootloader startet, deren Schlüssel in der Firmware hinterlegt sind.

Ist Secure Boot aktiv, startet der Rechner keine Betriebssysteme, die nicht signiert sind oder deren Schlüssel nicht hinterlegt sind. Wenn die Firmware lediglich den Microsoft-Schlüssel enthält, sind nicht von Microsoft signierte Betriebssysteme vom Secure Boot ausgeschlossen. Microsoft schreibt vor, dass zertifizierte Windows-8-Systeme per Secure Boot starten müssen. Bei x86-Systemen soll der Benutzer Secure Boot deaktivieren und – sofern der PC-Hersteller das implementiert – Schlüssel anderer Hersteller einspielen können; ARM-Systeme mit Windows 8 werden wohl nur per Secure Boot starten können.

Fedora hat sich einen einfachen Weg überlegt, wie die Distribution per Secure Boot auf jeder Hardware starten kann, ohne dass man Dell und Acer, Sony und Lenovo und all die anderen PC- und Notebook-Hersteller dazu bewegen muss, einen Fedora-Schlüssel in die UEFI-Firmware aufzunehmen: Die Entwickler wollen ihren Bootloader von Microsoft signieren lassen – Microsoft bietet das als Dienstleistung für 99 US-Dollar an. Damit dürfte Fedora auf allen x86-UEFI-Rechner starten, die Windows 8 booten können – und das dürften (nahezu) alle sein. Diese pragmatische Lösung steht auch anderen Linux-Distributionen offen: Die Fedora-Macher haben bewusst einen Weg gesucht, der nicht nur für Fedora funktioniert.

Ubuntu will das Secure-Boot-Problem anders lösen. Für Mark Shuttleworth ist es keine Option, dass "freie Software vom guten Willen Microsofts abhängig ist", wenn sie auf moderner Hardware laufen will. Damit trifft er vielleicht die Stimmung von zumindest Teilen der Open-Source-Community, aber eine Lösung für das Grundproblem hat er auch nicht. Ob ein Computer jetzt nur Windows oder nur Ubuntu bootet, dürfte dem OpenSuse-, Arch-, Mint-, Gentoo-, FreeBSD-, Foobar-User herzlich egal sein: Sein Lieblingssystem startet nicht darauf, solange Secure Boot aktiviert ist.

Und das kann auch gar nicht anders sein. Die Idee hinter Secure Boot ist doch, eine Vertrauenskette zu bauen: Die UEFI-Firmware lädt einen Bootloader, der durch seine Signatur belegt, dass er vertrauenswürdig und lediglich einen signierten Kernel lädt, der wiederum nur signierte Treiber lädt und signierte, also vertrauenswürdige Anwendungen ausführt. Ob das in der Praxis funktioniert und wie leicht sich das möglicherweise aushebeln lässt, soll hier mal außen vor bleiben.

Wenn Microsoft einen Bootloader (oder sonst ein Stück Software) signiert, ist das ein Vertrauensbeweis – die Redmonder stehen gewissenmaßen dafür gerade, dass der Code sauber ist. Deshalb wird Microsoft nicht jede Software signieren, die dem Unternehmen vorgelegt wird. Aber was wäre die Alternative? Eine Signierung ohne Prüfung für jedermann, die allen Linux-Distribution offen steht? Die könnte auch jedes Script-Kid für seinen Baukasten-Trojaner nutzen; die Signatur wäre kein Ausweis für Vertrauenswürdigkeit mehr. Am Anfang einer "Chain of Trust" muss eine vertrauenswürdige Organisation stehen, auf deren Urteil (in Form der Signierung) man sich verlassen können muss.

Aber es reicht nicht, darauf zu vertrauen, dass Microsoft sorgfältig prüft, was da signiert wird; man muss auch darauf vertrauen können, dass Microsoft die Signierung nicht grundlos verweigert. Das meint Shuttleworth, wenn er davon spricht, dass freie Software nicht von Microsofts gutem Willen abhängen dürfe. Aber dafür gibt es einen einfachen Ausweg, den die Linux Foundation bereits vor einem halben Jahr aufgezeigt hat: eine unabhängige Certificate Authority als "Root of Trust", die die Bootloader der Betriebssystemhersteller signiert.

Oder man überlässt es einfach der Entscheidung des Computernutzers, einer bestimmten Software zu trauen und beispielsweise ein Installationsmedium zu booten. Auch das ließe sich technisch umsetzen, wie das Whiterpaper der Linux Foundation ausführt. Aber dazu müssen die Computerhersteller mitspielen und ihre UEFI-Systeme so einrichten, dass Betriebssysteme bei der Installation auch ihren Schlüssel in der Firmware installieren können.

Womit man wieder an dem Punkt gelandet ist, an dem jede Diskussion über UEFI Secure Boot irgendwann endet: Solange es keine konkreten Secure-Boot-Implementierungen gibt, kann man gar nichts Sicheres sagen. (odi)