Sicheres Initial Program Load (IPL) Verfahren
Die Secure Boot-Funktion verhindert den unbefugten Zugriff auf Kundendaten, entweder durch nicht autorisierte Firmware, die auf einem Systemprozessor läuft, oder durch Zugriff über Sicherheitslücken in autorisierter Serviceprozessor-Firmware oder über Hardware-Service-Schnittstellen, auf die über den flexiblen Serviceprozessor (FSP) zugegriffen wird.
- Auf Betriebssystemsoftware basierende Angriffe, um unbefugten Zugriff auf Kundendaten zu erlangen.
- Abtrünnige Systemadministratoren.
- Physikalische Hardware-Angriffe (z. B. Austausch von Chips und Aufzeichnung des Busverkehrs).
Die Secure Boot-Funktion implementiert eine prozessorbasierte Vertrauenskette in der POWER9 prozessorhardware, die durch den Firmware-Stack aktiviert POWER9 firmware-Stack aktiviert wird. Die Secure Boot-Funktion bietet eine vertrauenswürdige Firmware-Basis zur Verbesserung der Vertraulichkeit und Integrität von Kundendaten in einer virtualisierten Umgebung.
Die vertrauenswürdige Boot-Funktion von POWER9 prozessorbasierter Server ermöglicht die Messung der Systemkonfiguration und des IPL-Pfadcodes (Initial Program Load), der später als Beweis verwendet werden kann, indem die anfängliche IPL-Pfadkonfiguration des Systems bescheinigt wird. Um eine zentrale Vertrauensbasis für diese Messungen (CRTM) zu schaffen, wird ein Secure Boot-Flow verwendet, der in jeder Phase des IPL-Prozesses kryptografische Überprüfungen vornimmt, bis die Kommunikation mit dem Trusted Platform Module (TPM) hergestellt ist. Der Secure-Boot-Fluss gewährleistet die Integrität der gesamten Firmware, die auf Core-Prozessoren ausgeführt werden muss, und verhindert so die Ausführung nicht autorisierter oder böswillig veränderter Firmware. Wenn die Authentifizierung des Codes zu irgendeinem Zeitpunkt fehlschlägt, kann der IPL-Prozess nicht zu Ende geführt werden.
Die Secure Boot-Funktion in POWER9 systemen schafft Vertrauen durch den Bootvorgang der Plattform. Vertrauenswürdig bedeutet hier, dass der Code, der während des IPL-Prozesses ausgeführt wird, vom Plattformhersteller stammt, vom Plattformhersteller signiert ist und nicht verändert wurde.
Der in prozessorbasierten Servern verfügbare Schutz im sicheren Modus POWER9 prozessorbasierten Servern erhält das Vertrauen aufrecht, indem der Lese-/Schreibzugriff auf die Kundendaten durch den FSP und die Dienstschnittstellen verhindert wird, indem die Ausführung von nicht vertrauenswürdigem Code auf dem Host-Prozessor verhindert wird und indem das Vertrauen an allen wichtigen Punkten des Secure-Boot-Prozesses aufrechterhalten wird.
Die POWER9 Secure Boot-Funktion implementiert eine prozessorbasierte Vertrauenskette. Die Kette beginnt mit einer implizit vertrauenswürdigen Komponente, während andere Komponenten authentifiziert und auf Integrität geprüft werden, bevor sie auf den Prozessorkernen des Hosts ausgeführt werden. Der Verifizierungscode, der sich im gesperrten Prozessor im Serial Electrically Erasable Programmable ROM (SEEPROM) befindet, validiert das erste Laden der Firmware. Die Firmware prüft die kryptografischen Signaturen aller nachfolgenden Firmware, die vertrauenswürdig sein muss und zur Ausführung auf die POWER9 prozessorkernen geladen werden. Auf einem POWER9 system werden die SEEPROM-Sicherheitsschalter im Self-Boot-Engine (SBE)-Code eingestellt und auf der Fertigungsstraße des Systems fixiert, um die Grundlage für die Hardware-Durchsetzung sicherer IPL-Ströme zu schaffen. Physikalische Sicherheitsmodus-Jumper sind auf der Backplane eines Systems verfügbar. Die Jumper können verwendet werden, um die Sicherheitsmodus-Schalter des Prozessors außer Kraft zu setzen, wenn eine Person physischen Zugriff auf das System hat. Der sichere IPL-Prozess verbessert die vertrauenswürdige Computing Power®-Plattform weiter.
Das folgende Diagramm veranschaulicht die Abläufe eines sicheren und vertrauenswürdigen Boot-IPL-Prozesses.

Die Secure-Boot-Funktion legt das gesperrte SEEPROM, die SBE und den Host-Boot-Basiscode (einschließlich eines kleinen Teils des erweiterten Host-Boot-Codes) als Core Root of Trust for Measurement (CRTM) fest, wobei die Vertrauenskette um den Power Hypervisor (PHYP), die Partitions-Firmware (PFW), ausgewählte Zusatzpartitionen (Physical Trusted Platform Module ( pTPM ), Virtual Trusted Platform Module ( vTPM ), Host-Boot-Runtime und Verschlüsselungszusätze) und den On-Chip-Controller (OCC - Wärmemanagement) erweitert wird. Diese Vertrauensdomäne und die Hardware-Sicherheitsunterstützung des Prozessors stellen sicher, dass die Kundendaten nicht durch irgendwelche Hardware- oder Firmware-Mechanismen angezeigt oder verändert werden.
Der gesamte vertrauenswürdige Firmware-Stack wird durch die Verwendung signierter Images authentifiziert und in vertrauenswürdigen Speicherbereichen ausgeführt. Der FSP wird aus der Vertrauensdomäne des Host-Servers herausgehalten, und der FSP wird am Zugriff auf ADU-Register (Alter/Display Unit), andere geschützte Register und vertrauenswürdige Speicherbereiche gehindert. Die Self Boot Engine (SBE) erzwingt die FSP-Blockierung, indem sie die schwarze Liste der Prozessorregister-Lese-/Schreib-Scan-Kommunikationseinrichtungen (SCOM) filtert. Die SCOM-Funktionen werden durch den Schalter für sicheren Zugriff im SEEPROM-Bereich des Prozessorchips aktiviert.
Die folgende Abbildung zeigt die Secure Boot-Umgebung.

Wenn der Secure-Boot-Prozess beginnt, sendet das FSP-Element eine Boot-Anforderung und Details über den Boot-Typ an die Prozessorchips im System. Intern wird der Zustand der Secure-Boot-Logik von zuvor eingestellten Werten bereinigt, um von einem geeigneten, bekannten Zustand auszugehen. Der Zustand wird auch von allen zuvor ausgeführten Temperierungsanforderungen befreit. Um zu verhindern, dass ein böswilliger Angreifer diesen ersten Schritt überspringt, werden Hardware-Schutzmechanismen implementiert. Der Zugriff des FSP auf die internen Chip-Ressourcen ist gesperrt und die Secure Boot Engine beginnt mit dem Abrufen des Initialisierungscodes aus dem modulinternen, sicheren, nichtflüchtigen und gesperrten Speicher. Dieser Code führt eine grundlegende Chip-Initialisierung durch und setzt das TPM zurück.
Nachdem der erste Schritt des Bootvorgangs abgeschlossen ist, lädt die Self Boot Engine (SBE) den Host-Bootloader und den Validierungscode aus dem SEEPROM in den internen L3 Cache des Prozessorchips. Dann wird ein Prozessorkern gestartet, und der Bootloader holt den anfänglichen Host Boot Base (HBB)-Code aus dem Prozessor-NOR (PNOR)-Flash-Chip und lädt ihn in den Cache L3. Im sicheren Modus wird der Validierungscode aus dem Cache L3 verwendet, um das HBB-Image zu verifizieren, das nun im vertrauenswürdigen Cache verfügbar ist. Nachdem der anfängliche Flash-Code verifiziert wurde, führt der Prozessorkern den validierten Code aus dem vertrauenswürdigen Speicherbereich aus und lädt und validiert die erweiterten HB-Funktionen (HBI). Nachdem das HBI gemessen und die Signatur verifiziert und kopiert wurde, wird seine Messung (Bildhash), die auf eine gültige Authentifizierung hinweist, im TPM aufgezeichnet, wie in Schritt 1 in Abbildung Sicherer und vertrauenswürdiger Bootvorgang dargestellt. Zu diesem Zeitpunkt ist der gesamte ausgeführte Code vollständig im PNOR-Flash-Chip enthalten, und auf das System wurde nicht über andere Mechanismen zugegriffen. Dies wird als die Grenze des vertrauenswürdigen Stiefels bezeichnet. Falls die Überprüfung fehlschlägt, wird das System sofort angehalten und ist durch Hardware-Schutzmechanismen geschützt, um die Ausführung von nicht vertrauenswürdigem oder bösartigem Code zu verhindern.
Der HB-Code verwaltet dann alle anstehenden Aktualisierungen des sicheren nichtflüchtigen Speichers, indem er ein neues vertrauenswürdiges Bild verwendet. Um den Core Root of Trust (CRTM) zu schützen, sperrt der HB-Code den sicheren Speicher und verhindert damit jeden weiteren Schreibzugriff auf diesen Speicher (diese Aktion bedeutet, dass das System nach einem Neustart in diesen vertrauenswürdigen Zustand zurückkehrt). Der HB-Code initialisiert dann den On-Chip-Speicher-Controller und die angeschlossenen Speicher-Dual-Inline-Speichermodule (DIMMs). Der HB-Code initialisiert auch andere Chips, die direkt mit dem Prozessor verbunden sind, auf dem er läuft, bevor er die speicherkohärente Schnittstelle zu den anderen Chips im System einrichtet. Diese anderen Chips werden ebenfalls überprüft, um sicherzustellen, dass sie sich in einem sicheren und vertrauenswürdigen Zustand befinden.
Höhere Firmware-Stack-Komponenten werden dann geladen, verifiziert und ausgeführt, und ihre Messungen werden im TPM aufgezeichnet. Mit dieser Aktion wird Schritt 2 abgeschlossen, der in der Abbildung Sicherer und vertrauenswürdiger Bootvorgang dargestellt ist. In Schritt 3 der Abbildung Secure and Trusted Boot flow wird die Power Hypervisor (PHYP)-Nutzlast in den Hauptspeicher geladen. Dann wird der Code kryptografisch authentifiziert, und nach erfolgreicher Authentifizierung beginnt der PHYP zu laufen. Die Authentifizierungsmessung des PHYP-Codes wird im TPM aufgezeichnet. In ähnlicher Weise werden die Schritte 4 bis 8, die in der Abbildung Sicherer und vertrauenswürdiger Bootvorgang dargestellt sind, durchgeführt, um den Code aus dem nicht gesperrten Flash-Speicher in den vertrauenswürdigen Speicher zu laden, der Code wird kryptografisch authentifiziert, und dann werden verschiedene Zusatzprogramme und die Partitions-Firmware (PFW) ausgeführt.