Die Woche: Linux wird nicht ausgebootet

Mit Secure Boot, das Microsoft mit Windows 8 forcieren will, sollen Rechner künftig nur noch signierte Betriebssysteme starten. Was auf den ersten Blick wie ein Kampagne gegen Linux und Open Source aussieht, ist in Wahrheit ein ausgeklügeltes Sicherheitssystem, von dem Server-Distributionen profitieren können.

In Pocket speichern vorlesen Druckansicht 173 Kommentare lesen
Lesezeit: 3 Min.

PCs und Notebooks könnten sich künftig weigern, Linux oder andere Betriebssysteme zu starten, wenn zuvor Windows 8 installiert wurde. Dafür wäre die Secure-Boot-Funktion der UEFI-Firmware künftiger Rechner verantwortlich, die Microsoft ab Windows 8 unterstützen will. Ist Secure Boot aktiviert, startet die UEFI-Firmware nur noch signierte Betriebssysteme, deren Signaturschlüssel vom Mainboard- oder UEFI-Hersteller in einer speziellen Datenbank hinterlegt sind. So sieht es die am 6. April 2011 veröffentlichte UEFI-Spezifikation 2.3.1 vor, die derzeit unter den Chip- und Mainboard-Herstellern diskutiert wird – denn schon die nächste Generation Chipsätze soll die neue Spezifikation unterstützen.

Mit Secure Boot wollen Microsoft und die Hardware-Hersteller, so auch die offiziellen Stellungnahmen, Angreifern das Leben schwer machen: Die Sicherheitsmechanismen eines Betriebssystems mögen noch so ausgefeilt sein – wird zuvor etwa über einen Bootsektor-Virus ein Schadprogramm in den Speicher geladen, kann es die Schutzmechanismen nach Belieben aushebeln. Bootet der Rechner nur noch signierte Bootloader, Betriebssysteme und Hypervisors von einigen wenigen vertrauenswürdigen Quellen, können Angreifer das Betriebssystem nicht mehr manipulieren und den Schutzmechanismen des Betriebssystems nicht mehr zuvor kommen. Außerdem sieht der UEFI-Standard vor, dass die Firmware den Key für eine verschlüsselte Festplattenpartition an das signierte Betriebssystem weiterreicht.

Um Linux auf einem solchen Rechner anstandslos starten zu können, müssten Bootloader und Kernel signiert sein und der öffentliche Signaturschlüssel in der Datenbank der Mainboard-Firmware vorliegen. Die Hersteller dürften durchaus damit einverstanden sein, die Schlüssel der großen und der kommerziellen Distributoren wie Red Hat, Oracle und Suse aufzunehmen. Damit kämen die Enterprise-Distributionen dieser Hersteller in den Genuss der gleichen Manipulationssicherheit wie Windows 8.

Ob sie aber auch freien Projekten wie Debian und Fedora und den unzähligen kleinen Linux-Distributionen genügend vertrauen, um deren Schlüssel standardmäßig auf den Mainboards zu hinterlegen, ist fraglich. Schließlich genügt einem Angreifer Zugang zu einem einzigen Signaturschlüssel, um seine Schadprogramme korrekt signieren und unbemerkt in den Bootvorgang einfügen zu können.

Die UEFI-Spezifikation sieht allerdings auch vor, unsignierte Software zu starten: So wird unter Punkt 27.7.3.3 bei Schritt 5 explizit die Möglichkeit beschrieben, den Benutzer nach einem (zuvor festzulegenden) Passwort zu fragen, falls die UEFI-Firmware auf ein nicht signiertes Boot-Image stößt. So lässt sich verhindern, dass sich ein Angreifer unbemerkt in den Bootvorgang einklinkt – ohne dem (autorisierten) Benutzer Beschränkungen bei der Software aufzuerlegen.

Damit das Passwort nicht bei jedem Start erneut abgefragt wird, müssten die Linux-Distributoren den Bootloader und ihren Kernel dennoch signieren – und den Signaturschlüssel mit Hilfe einer UEFI-Applikation in der Schlüsseldatenbank des Mainboards nachtragen.

Technisch ist dies eine durchaus lösbare Aufgabe, die Umsetzung bereitet jedoch rechtliche Probleme: So wird der heutige Standard-Bootloader Grub 2 unter der GPLv3-Lizenz veröffentlicht, die vorschreibt, dass der Signaturschlüssel ebenfalls offengelegt werden müsste. Damit würde man Angreifern jedoch Tür und Tor öffnen, da sie sich dann auf jedem Rechner mit Grub-Installation wiederum unbemerkt in den Bootprozess jedes installierten Betriebssystems einklinken könnten. Die Installation von Linux und Grub könnte sich letztlich sogar als Sicherheitsrisiko entpuppen. (mid) (mid)