In diesem Artikel wird Secure Boot beschrieben und wie er auf Linux erweitert wird, insbesondere mit RHEL7. Er bietet außerdem einige Einblicke in den Linux-eigenen „Trusted Kernel Boot“-Start und die Auswirkungen auf Benutzerspeicher-Anwendungen.
Secure Boot (sicherer Start) wurde entwickelt, um zu verhindern, dass Root-Kits unter Verwendung von Mechanismen wie Option ROM und MBRs während des Starts im Speicher installiert und in das Betriebssystem geladen werden, um die Kontrolle über das System zu übernehmen und vor Anti-Malware-Programmen verborgen zu bleiben. Dieses Problem ist im Laufe der Zeit gewachsen und spielt eine wichtige Rolle bei Verlust, Beschädigung und Diebstahl von Daten. Schadsoftware kann in der Mitte des BIOS- und Betriebssystemladeprogramms aktiv werden. Sie kann auch zwischen Betriebssystemladeprogramm und Betriebssystem aktiv werden.
UEFI ist der neue Standard der Hardware- und Softwareschnittstelle für moderne Serverplattformen mit einer umfassenden Benutzeroberfläche, Modularität und Auswahl von Standardschnittstellen für IHVs zur Entwicklung von Gerätetreibern in UEFI, die nahtlos in die Pre-Boot-Umgebung integriert sind, die flexibler als ältere BIOS-Umgebungen ist. Die Übernahme von UEFI auf allen Betriebssystemen und Plattformen nimmt weiterhin zu, wobei viele der wichtigsten Client- und Serverbetriebssystem-Versionen sie unterstützen.
Unter der Leitung von Microsoft hat das UEFI-Standardisierungsgremium eine Möglichkeit gefunden, die Installation von Malware-Rootkits während des Startvorgangs mithilfe eines Mechanismus zum Laden und Ausführen von Binärdateien zu verhindern, die nicht geändert wurden und der Plattform bekannt sind. Dieser Mechanismus wird als Secure Boot bezeichnet: Lesen Sie dazu Microsoft way of Secure Boot (Methode des sicheren Starts von Microsoft). Auf ähnliche Weise haben verschiedene Betriebssystemhersteller unterschiedliche Methoden zum Erzielen eines sicheren Starts integriert.
Sichere UEFI-Plattformen laden nur Software-Binärdateien, z. B. Option-ROM-Treiber, Systemstartprogramme und Betriebssystemladeprogramme, die nicht modifiziert sind und von der Plattform als vertrauenswürdig eingestuft werden. In den UEFI-Spezifikationen finden Sie detaillierte Informationen zum Mechanismus von Secure Boot.
Die UEFI-Spezifikation definiert die für den sicheren Start erforderliche Infrastruktur. Wir bieten eine kurze Einführung in die mit Secure Boot verwendete Terminologie für alle, die diese ausführlicher verstehen möchten.
Secure Boot schützt das System und seine Daten nicht während der Ausführung. Secure Boot stoppt den Start des Betriebssystems, wenn eine Komponente im Startvorgang nicht authentifiziert wird, was verhindert, dass Systeme versteckte Schadsoftware ausführen.
Diese Kernthemen sind die Basis von Secure Boot. Weitere Informationen zu diesen Themen finden Sie in der UEFI-Spezifikation. Dort wird ausführlich beschrieben, wie die Binärdateien signiert werden. Siehe Abschnitt 28.
Authenticated Variables: UEFI stellt einen Dienst mit dem Namen Authenticated Variables bereit, was bedeutet, dass nur ein zertifiziertes Modul oder ein authentisches Code-Modul Schreibrechte hat, d. h. nur ein Codemodul mit einem Schlüsselzertifikat erhält Schreibrechte. Jede Partei kann diese Variablen jedoch lesen.
Plattformschlüssel (PK): Der Plattformschlüssel begründet die Vertrauensbeziehung zwischen dem Plattform-Eigentümer und der Firmware, die vom Plattformhersteller im NVM installiert wird.
KEK: der Key Exchange Key (Schlüsselaustauschschlüssel) schafft Vertrauen zwischen dem Betriebssystem und der Plattform-Firmware. Die KEK-Komponenten werden vom Betriebssystem und/oder Drittanbietern, die mit der Plattform-Firmware kommunizieren möchten, auf der Plattform installiert.
DB: Eine autorisierte Datenbank mit den öffentlichen Schlüsseln und Zertifikaten des Codemoduls, das zur Interaktion mit der Plattform-Firmware berechtigt ist.
Dbx: DB auf der schwarzen Liste. Ein Codemodul, das mit diesen Zertifikaten übereinstimmt, kann nicht gestartet werden.
Signatur: Die Signatur wird durch den privaten Schlüssel und den Hash der Binärdatei erzeugt, die signiert wird.
Zertifikat: Authenticode-Zertifikat mit öffentlichem Schlüssel, der dem privaten Schlüssel entspricht, mit dem das Image signiert wird.
Die UEFI-Plattform-Firmware lädt die von der Zertifizierungsstelle (Certification Authority, CA), in diesem Fall Microsoft, signierten Drittanbietertreiber, optionROMS und Betriebssystemladeprogramme. Alle Hardwareanbieter können ihre Treiber in das UEFI BIOS schreiben und sie von Microsoft für den Einsatz auf der UEFI-Plattform signieren lassen. OEMs installieren den öffentlichen Teil des Schlüssels in der Plattform-DB und der Dienst „UEFI Loader Protocol“ validiert die Signatur der Binärdatei anhand der autorisierten DB, bevor sie auf der Plattform ausgeführt werden darf. Diese Authentifizierungskette wird vom UEFI zum Betriebssystemladeprogramm und dem Betriebssystem fortgesetzt.
Zusammenfassend lässt UEFI zu, dass Betriebssystemladeprogramme, die signiert sind und deren Schlüssel in der Datenbank vorhanden sind, ausgeführt werden können. Mit diesem Schlüsselmechanismus wird sichergestellt, dass das Betriebssystemladeprogramm oder die Option-ROMs nur dann ausgeführt werden dürfen, wenn sie autorisiert sind und nicht verändert wurden.
Abbildung 1: Firmware für UEFI-Plattform