Wie gravierend sind die Auswirkungen von UEFI und SecureBoot?

18

Ich plane, in den kommenden Tagen einen neuen Laptop zu kaufen, und ich bin ziemlich beeindruckt von neuen, coolen Ultrabooks. Als langjähriger GNU / Linux-Benutzer werde ich natürlich eine Distribution meiner Wahl darauf installieren.

Möglicherweise muss ich einen Computer mit vorinstalliertem Windows 8 kaufen. und es besteht die Möglichkeit, dass UEFI ausgeführt wird und ein "sicherer Start" erfolgt, auf dem nicht signierte Kernel nicht gestartet werden.

UEFI ist wahrscheinlich gut, das BIOS muss möglicherweise in den Ruhestand gehen. Ich denke, die haarige Sache ist Secure Boot .

Soweit ich verstehen kann, werden einige vertrauenswürdige Zertifikate in die Firmware und damit in den Kernel usw. eingebettet . Wenn das Kernelzertifikat auf eine der Firmware-Versionen zurückgeführt werden kann , wird der Kernel gestartet, andernfalls weist mich UEFI an und lehnt den Start ab. Dieser Vorgang verhindert, dass nicht zertifizierte Software gestartet wird. Dies kann Vorteile haben, obwohl ich sie nicht sehen kann.

Ich frage mich, wie ein Open-Source-Kernel einen dieser Schlüssel erhalten und trotzdem frei sein kann . Ich habe einen Thread in einer Linux-Mailingliste gelesen, in dem ein Red Hat-Mitarbeiter Linus Torvalds auffordert, ein Änderungsset abzurufen, das die Möglichkeit implementiert, PE-Binärdateien zu analysieren und eine komplexe Reihe von Aktionen auszuführen, damit der Kernel im sicheren Startmodus startet (soweit ich das verstehe) ). Sie möchten dies tun, weil Microsoft nur PE-Binärdateien signiert. Herr Torvalds hat diesen Änderungssatz freundlicherweise abgelehnt und erklärt, dass der Kernel bereits den Standard implementiert, der nicht PE ist . RedHat versucht, diesen Code an den Kernel zu senden, damit er nicht eines Tages weitergegeben werden muss.

Sehen Sie, das ist eine komplizierte Sache. Lass mich meine Fragen stellen:

  • Welche Vorteile habe ich als Privatanwender mit UEFI und Secure Boot?
  • Wie erfolgt diese Unterzeichnung ?
  • Wer kann Unterschriften / Zertifikate erhalten? Ist es bezahlt? Kann es öffentlich sein? (Es sollte im Quellcode von Linux verfügbar sein, nicht wahr?)
  • Ist Microsoft die einzige Autorität, die Signaturen bereitstellt? Sollte es keine unabhängige Stiftung geben, die sie zur Verfügung stellt?
  • Wie wirkt sich dies auf Open Source und freie Kerne, Bastler / akademische Kernel - Entwickler usw. . zB Wird dieser Boot ( ein sehr einfacher Bootsektorcode ):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

Eine Neuigkeit auf dieser Website war die Antwort auf diese Frage. Eine spanische Linux-Benutzergruppe namens Hispalinux hat eine Beschwerde gegen Microsoft zu diesem Thema bei der Europan Comission eingereicht.

Sollte ich besorgt sein? Ich lehne es ab, weder proprietäre Software noch von vertrauenswürdigen Unternehmen signierte Software zu verwenden . Das habe ich bis jetzt getan und ich möchte so weitermachen. Danke im Voraus.


quelle
2
UEFIselbst ist kein großes Problem, aber sicherer Start kann sein.
Jordanien
3
Sie können immer UEFI Boot mit sicheren Boot deaktiviert ...
JasonWryan
1
Laut diesem Artikel Microsoft erfordert Anbieter SecureBoot zu verhindern , dass in ARM-basierten Geräten deaktiviert beeing Lizenz für die Verwendung von Windows-8 kompatible Logo zu schaffen.
1
Ich habe nicht nachgesehen, aber wenn Sie es nicht auf Ihr Motherboard flashen können und die Dinge immer noch funktionieren (jedes Gerät ist bei der POST-OS-Übergabe im richtigen Zustand), hilft es nicht viel. Und dann ist da noch die Firmware der Grafikkarte. Festplattenfirmware? Tastatur? ... Dies kommt der Diskussion jedoch näher als Aufforderungen zur Klärung. (Und natürlich behauptet zumindest dieses Zitat nur, dass UEFI eine Gemeinschaftsanstrengung ist, nicht die bestimmte Implementierung.)
ein Lebenslauf vom
1
Schauen Sie sich das Dokument der Linux Foundation zu UEFI und Secure Boot an.
Vonbrand

Antworten:

9

Dieser Vorgang verhindert, dass nicht zertifizierte Software gestartet wird. Dies kann Vorteile haben, obwohl ich sie nicht sehen kann.

Sie haben einen neuen Sicherheitsmechanismus, mit dem Sie steuern können, was von Ihrer Hardware gestartet werden kann und was nicht. Ein Sicherheitsmerkmal. Sie haben nicht das Gefühl, dass Sie es brauchen, bis es zu spät ist. Aber ich schweife ab.

Ich habe einen Thread in einer Linux-Mailingliste gelesen, in dem ein Red Hat-Mitarbeiter Linus Torvalds auffordert, ein Änderungsset abzurufen, das die Möglichkeit implementiert, PE-Binärdateien zu analysieren und eine komplexe Reihe von Aktionen auszuführen, damit der Kernel im sicheren Startmodus startet (soweit ich das verstehe) ).

Treiber müssen wie Ihre GPU-Firmware im Einklang mit Secure Boot signiert sein, andernfalls kann es sich um ein weiteres Rootkit handeln. Der Status Quo ist, dass diese Treiber im PE-Format signiert sind. Der Kernel kann ohnehin ohne booten, aber die Hardware funktioniert nicht. Das Parsen des PE-Formats im Kernel ist technisch gesehen eine einfachere Wahl, als jeden Hardwareanbieter aufzufordern, seine Blobs für jede Distribution zu signieren, oder ein User-Space-Framework einzurichten, um dies zu tun. Linus beschließt, Microsofts Schwanz nicht zu lutschen. Das ist kein technisches Argument.

Welche Vorteile habe ich als Privatanwender mit UEFI und Secure Boot?

Die sichtbarste Funktion ist der UEFI-Schnellstart. Ich habe mehrere Windows 8-Logo-Desktops in den Händen und sie booten so schnell, dass ich es oft vermisse, das Boot-Menü aufzurufen. Intel und OEMs haben einige technische Probleme.

Wenn Sie die Art von Linux-Benutzern sind, die es leidenschaftlich hassen, aufgebläht zu sein und Code zu duplizieren , möchten Sie möglicherweise auch Multiboot auf Firmware-Ebene verwalten und Bootloader ganz loswerden. UEFI bietet einen Boot-Manager, mit dem Sie direkt in den Kernel booten oder andere Betriebssysteme über das Firmware-Menü booten können. Obwohl es einige Bastelarbeiten braucht.

Auch schickere Grafiken während des Bootens und im Firmware-Menü. Bessere Sicherheit beim Booten (Secure Boot). Andere Funktionen (IPv4 / 6-Netboot, 2 TB + -Boot-Geräte usw.) sind hauptsächlich für Unternehmensbenutzer vorgesehen.

Wie auch immer, wie Linus sagte , soll BIOS / UEFI "nur das Betriebssystem laden und die Hölle loswerden", und UEFI scheint dies auf jeden Fall für Heimanwender mit Schnellstart zu sein. Es macht sicherlich mehr als BIOS unter der Haube, aber wenn wir über Heimanwender sprechen, werden sie sich nicht darum kümmern.

Wie erfolgt die Unterzeichnung?

Theoretisch wird eine Binärdatei mit einem privaten Schlüssel verschlüsselt, um eine Signatur zu erstellen. Anschließend kann die Signatur mit dem öffentlichen Schlüssel überprüft werden, um zu beweisen, dass die Binärdatei vom Eigentümer des privaten Schlüssels signiert wurde. Anschließend kann die Binärdatei überprüft werden. Sehen Sie mehr auf Wikipedia .

Technisch gesehen wird nur der Hash der Binärdatei signiert und die Signatur wird in die Binärdatei mit PE-Format und zusätzlichem Format-Twiddling eingebettet.

Der öffentliche Schlüssel wird von Ihrem OEM in Ihrer Firmware gespeichert und stammt von Microsoft. Sie haben zwei Möglichkeiten:

  1. Generieren Sie Ihr eigenes Schlüsselpaar und verwalten Sie diese sicher, installieren Sie Ihren eigenen öffentlichen Schlüssel für die Firmware und signieren Sie die Binärdatei mit Ihrem eigenen privaten Schlüssel ( sbsign von Ubuntu oder pesign von Fedora) oder
  2. Senden Sie Ihre Binärdatei an Microsoft und lassen Sie sie signieren.

Wer kann Unterschriften / Zertifikate erhalten? Ist es bezahlt? Kann es öffentlich sein? (Es sollte im Quellcode von Linux verfügbar sein, nicht wahr?)

Da Signaturen / Zertifikate in Binärdateien eingebettet sind, wird von allen Benutzern erwartet, dass sie diese erhalten. Jeder kann seine eigene Zertifizierungsstelle einrichten und ein Zertifikat für sich selbst erstellen. Wenn Sie jedoch möchten, dass Microsoft ein Zertifikat für Sie erstellt, müssen Sie Verisign durchlaufen, um Ihre Identität zu überprüfen. Der Prozess kostet 99 $. Der öffentliche Schlüssel ist in Firmware. Der private Schlüssel befindet sich im Safe von Microsoft. Das Zertifikat befindet sich in der signierten Binärdatei. Kein Quellcode beteiligt.

Ist Microsoft die einzige Autorität, die Signaturen bereitstellt? Sollte es keine unabhängige Stiftung geben, die sie zur Verfügung stellt?

Die technische Seite ist im Vergleich zum Prozess der Verwaltung der PKI, der Überprüfung der Identität und der Abstimmung mit allen bekannten OEMs und Hardwareanbietern eher trivial. Das kostet ein Schatz. Microsoft verfügt über eine Infrastruktur (WHQL) und jahrelange Erfahrung dafür. Also bieten sie an, Binärdateien zu signieren. Jede unabhängige Stiftung kann das Gleiche anbieten, aber bisher hat es noch keine getan.

Aus einer UEFI-Sitzung auf der IDF 2013 geht hervor, dass Canonical auch damit begonnen hat, einen eigenen Schlüssel für eine Tablet-Firmware festzulegen. Canonical kann also ihre eigenen Binärdateien signieren, ohne Microsoft zu durchlaufen. Es ist jedoch unwahrscheinlich, dass sie Binärdateien für Sie signieren, da sie nicht wissen, wer Sie sind.

Wie wird sich dies auf Open Source- und Free-Kernel, Hobby-Entwickler / akademische Kernel-Entwickler usw. auswirken?

Ihr angepasster Kernel bootet nicht unter Secure Boot, da er nicht signiert ist. Sie können es jedoch ausschalten.

Das Vertrauensmodell von Secure Boot sperrt einige Aspekte des Kernels. Als ob Sie Ihren Kernel nicht zerstören können, indem Sie an / dev / kmem schreiben, selbst wenn Sie jetzt root sind. Sie können den Ruhezustand nicht auf der Festplatte aktivieren, da nicht sichergestellt werden kann, dass das Kernel-Image bei der Wiederaufnahme nicht in ein Bootkit geändert wird. Sie können den Core nicht sichern, wenn Ihr Kernel in Panik gerät, da der Mechanismus von kdump (kexec) verwendet werden kann, um ein Bootkit zu starten (das auch im Upstream-Modus ausgeführt wird). Diese sind umstritten und werden von Linus nicht für den Mainline-Kernel akzeptiert. Einige Distributionen (Fedora, RHEL, Ubuntu, openSUSE, SUSE) werden jedoch mit eigenen Secure Boot-Patches ausgeliefert.

Persönlich kostet die für die Erstellung eines Secure Boot-Kernels erforderliche Modulsignatur 10 Minuten, während die eigentliche Kompilierung nur 5 Minuten dauert. Wenn ich die Modulsignatur ausschalte und den Ccache einschalte, dauert die Kernel-Erstellung nur eine Minute.

UEFI ist ein völlig anderer Bootpfad als das BIOS. Der gesamte BIOS-Startcode wird nicht von der UEFI-Firmware aufgerufen.

Eine spanische Linux-Benutzergruppe namens Hispalinux hat eine Beschwerde gegen Microsoft zu diesem Thema bei der Europäischen Kommission eingereicht.

Wie oben erwähnt, hat niemand außer Microsoft den öffentlichen Dienst übernommen. Derzeit gibt es keine Beweise dafür, dass Microsoft beabsichtigt, hier etwas Böses zu tun, aber es gibt auch nichts, was Microsoft davon abhält, sein De-facto-Monopol zu missbrauchen und eine Stromreise zu unternehmen. Während Benutzergruppen von FSF und Linux möglicherweise nicht sehr pragmatisch aussehen und sich nicht wirklich hinsetzen, um Probleme konstruktiv zu lösen, ist es durchaus notwendig, dass die Leute Druck auf Microsoft ausüben und sie vor den Auswirkungen warnen.

Sollte ich besorgt sein? Ich lehne es ab, weder proprietäre Software noch von vertrauenswürdigen Unternehmen signierte Software zu verwenden. Das habe ich bis jetzt getan und ich möchte so weitermachen.

Gründe für Secure Boot:

  • Es eliminiert einen echten Sicherheitsangriffsvektor.
  • Dies ist ein technischer Mechanismus, um dem Benutzer mehr Freiheit bei der Steuerung seiner Hardware zu geben.
  • Linux-Benutzer müssen den Secure Boot-Mechanismus verstehen und proaktiv handeln, bevor Microsoft das Monopol der Secure Boot- Richtlinie zu weit ausloten kann .
Lingzhu Xiang
quelle
2
Vielen Dank für diese ausführliche, großartige Antwort! Sehr umfangreich. UEFI klingt ziemlich cool, obwohl ich weder Code dafür verwendet noch geschrieben habe.
1
Sehr gute Antwort. Nur zwei Dinge: 1) Normalerweise besteht die Möglichkeit, Ihre eigenen Schlüssel in Ihr UEFI zu laden - auf diese Weise können Sie alles, was Sie selbst signieren, sicher booten. 2) Sicherer Start ist nur bis zu dem Punkt sicher, an dem man UEFI vertraut. Wenn man ein schädliches Firmware-Update verwendet, wird die Vertrauenskette unterbrochen. Und das ist nicht unvorstellbar .
Peterph
Verwenden GNU / Linux-Distributionen also FastBoot / QuickBoot? Ich verstehe nicht, warum es schwierig sein sollte, aber ich kann auch keine Informationen dazu finden - aber da Sie dies als sichtbare Funktion für den Endbenutzer erwähnen, wird es wohl endlich verwendet?
Hi-Angel
9

Ich habe dies gerade mit einem kürzlich gekauften Laptop durchgemacht, der mit Windows 8 und UEFI Secure Boot geliefert wurde. Nach viel Zeit und Recherche kann ich Folgendes beantworten:

  • Klingt nicht so, als würdest du in die Kategorie "Heimanwender" passen.

Die Vorteile von UEFI für den Durchschnittsbenutzer bestehen darin, dass das erste, was sie auf ihrem Bildschirm sehen, das UEFI-Bootloader-Display von Microsoft / Vendor ist. Keine dieser beängstigenden Dinge wie "Drücken Sie Entf für Setup, F11, um das Startgerät auszuwählen" usw.

Es wird dann schön in den Microsoft-Kernel / Bootloader-Wartebildschirm übergehen. Dies bietet die Möglichkeit, Microsoft-Themen aufzugreifen. Ob das ein tatsächlicher Vorteil ist, liegt wohl im Auge des Betrachters. Ich war ziemlich verärgert, dass ich nicht die normalen Informationen hatte, die ich beim Booten erwarten würde. Zum Beispiel viel Glück, wenn Ihr Anbieter keinen Standardschlüssel verwendet, um das Basis-UEFI / Bios-Setup aufzurufen.

Oh, ja, und die Theorie ist, dass dies die Viren des Bootsektors stoppen oder zumindest die Ersteller dazu bringen wird, eine ID zu erstellen / zu stehlen und 99 US-Dollar an Verisign (die RedHat Fedora-Route. Google it.) Zu zahlen.

Ah, und da ist die Reibung. Jeder kann mit jedem Schlüssel einen Code signieren. Das Problem ist, dass auf dem Computer nur Code ausgeführt wird, der von einem vertrauenswürdigen Autoritätsschlüssel signiert ist. Die öffentliche Hälfte des Schlüssels ist werkseitig im UEFI-Kern des Systems installiert und wird zum Überprüfen der Signatur der UEFI-Programme (Startcode) verwendet, die mit dem privaten Schlüssel signiert sind.

Ratet mal, wer der öffentliche Schlüssel ist, der im Werk installiert wurde? Ratet mal, wer verlangt, dass Secure Boot standardmäßig aktiviert ist?

Jeder Systemhersteller wird den Microsoft-Schlüssel offensichtlich dort einstecken. Sie könnten auch den Canonical-Schlüssel (Ubuntu), den Red Hat-Schlüssel, den Apple-Schlüssel usw. eingeben. Mehr Schlüssel bedeuten jedoch mehr Punkte für Sicherheitsverletzungen, und es gibt offensichtlich eine physikalische Grenze für die Anzahl der Speicherplätze.

Und was ist die Lösung für einen rebellischen Computerbenutzer wie Sie?

  • Ich hoffe, Ihr Systemanbieter ermöglicht Ihnen den Zugriff auf die Systemstartkonfiguration

  • Ich hoffe, Sie können den sicheren Start deaktivieren. Windows-Startcode wird weiterhin ohne sicheren Start ausgeführt.

  • Wenn Sie wirklich Glück haben, können Sie vom Systemanbieter Ihre eigenen Zertifizierungsschlüssel eingeben und Ihre eigenen Daten signieren. Dies wird nur dann wirklich benötigt, wenn Sie mit Secure Boot herumspielen möchten.

Mit meinem MSI-Laptop kann ich all das tun.

Ich würde gerne eine Welt sehen, in der jeder eine kostenlose Kopie einer Linux-Distribution kaufen und sein Betriebssystem ersetzen kann. Dies ist, was wir vor Secure Boot hatten. Wir hatten auch viele Bootsektor-Viren. Das Deaktivieren des sicheren Startvorgangs in Ihrer Systemkonfiguration ist wahrscheinlich eine kleine Hürde, um zu überprüfen, ob Sie über die erforderliche Intelligenz verfügen, um ein Betriebssystem zu installieren, oder jemanden zu kennen, der dies tut.

Nicht die Fähigkeit zu haben, es auszuschalten, ist die schlechte Sache, und das liegt beim Hersteller. Beschuldigen Sie Microsoft nicht, es sei denn, sie "überzeugen" den Hersteller, das Deaktivieren des sicheren Startvorgangs zu verhindern.

Der andere Typ
quelle
Herzlich willkommen und vielen Dank! Sehr coole Antwort, aber ich werde ein bisschen länger warten, bevor ich akzeptiere, da ich die Gedanken anderer Leute sehen möchte.