DE102021127242A1 - System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem - Google Patents

System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem Download PDF

Info

Publication number
DE102021127242A1
DE102021127242A1 DE102021127242.4A DE102021127242A DE102021127242A1 DE 102021127242 A1 DE102021127242 A1 DE 102021127242A1 DE 102021127242 A DE102021127242 A DE 102021127242A DE 102021127242 A1 DE102021127242 A1 DE 102021127242A1
Authority
DE
Germany
Prior art keywords
information file
boot information
boot
computer system
host computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021127242.4A
Other languages
English (en)
Inventor
Lee A. Preimesberger
Vartan Yosef Kasheshian
Jorge Cisneros
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021127242A1 publication Critical patent/DE102021127242A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

Beispielimplementierungen beziehen sich auf ein System und ein Verfahren zum Signieren einer Boot-Informationsdatei durch einen Verwaltbarkeitscontroller und zum Verriegeln eines Host-Computersystems mit einer signierten Boot-Informationsdatei. Die Boot-Informationsdatei kann eine Boot-Loader-Datei und/oder eine Betriebssystem-Kernel-Datei des Host-Computersystems enthalten. Der Verwaltungskontroller empfängt die Boot-Informationsdatei von einem Prozessor eines Computergeräts. Darüber hinaus signiert der Verwaltungskontroller die Boot-Informationsdatei mit einem Hash-Wert einer eindeutigen Kennung, um die signierte Boot-Informationsdatei zu erzeugen und an den Prozessor zu übermitteln. Später aktualisiert der Verwaltungskontroller eine Boot-Datenbank, die in einem nichtflüchtigen Direktzugriffsspeicher einer Firmware-Engine des Host-Computersystems gespeichert ist, mit den Daumenabdruckdaten der signierten Boot-Informationsdatei, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln, als Reaktion auf das erfolgreiche Herunterladen der signierten Boot-Informationsdatei durch den Prozessor.

Description

  • HINTERGRUND
  • Rechenzentren können über Computersysteme verfügen, die eine oder mehrere Arbeitslasten (Anwendungssoftware) von Kunden ausführen. Jedes Mal, wenn das Computersystem im Rechenzentrum hochgefahren/neu gestartet wird, müssen unter Umständen verschiedene Initialisierungsverfahren und Tests (sichere Boot-Tests) durchgeführt werden, bevor das Computersystem für die Ausführung des Betriebssystems (OS) und der Anwendungssoftware über das OS verfügbar gemacht wird. Es kann unerlässlich sein, das Computersystem sicher zu booten, um die Integrität der Software des Computersystems (d. h. der Startzeitsoftware) vor dem Laden des Betriebssystems zu gewährleisten. So kann sicheres Booten es ermöglichen, autorisierte Signaturen der Bootzeitsoftware, denen ein Originalgerätehersteller (OEM) vertraut, in einer Boot-Datenbank einer Firmware-Engine zu speichern, um sicherzustellen, dass das Computersystem mit der Software mit autorisierten Signaturen bootet. Dementsprechend prüft die Firmware-Engine beim Starten/Booten des Computersystems, ob die Signaturen der in einer Boot-Informationsdatei aufgeführten Software mit den autorisierten Signaturen in der Boot-Datenbank übereinstimmen, und wenn die Signaturen validiert sind, gibt die Firmware-Engine die Steuerung an die Boot-Informationsdatei weiter, um das Booten des Computersystems zu ermöglichen.
  • Figurenliste
  • Im Folgenden werden verschiedene Beispiele unter Bezugnahme auf die folgenden Abbildungen beschrieben.
    • 1 ist ein Blockdiagramm, das ein Host-Computersystem mit einem Verwaltungscontroller, einem Prozessor und einer Firmware-Engine gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 2 ist ein Blockdiagramm, das eine Verwaltungssteuerung mit einer Verarbeitungsressource darstellt, die betriebsfähig mit einem maschinenlesbaren Medium gekoppelt ist, das ausführbare Programmanweisungen speichert, in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung.
    • 3 ist ein Blockdiagramm, das eine Verarbeitungsressource und ein maschinenlesbares Medium darstellt, das mit Beispielbefehlen kodiert ist, die von einem Verwaltungscontroller ausgeführt werden können, um eine Boot-Informationsdatei zu signieren und eine signierte Boot-Informationsdatei mit einem Host-Computersystem zu verriegeln, in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein Flussdiagramm, das ein Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem gemäß den Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 5 ist ein Flussdiagramm, das ein Verfahren zum Booten eines Host-Computersystems gemäß den Ausführungsformen der vorliegenden Offenbarung darstellt.
  • In den Zeichnungen können identische Bezugsnummern ähnliche, aber nicht unbedingt identische Elemente bezeichnen. Eine Indexzahl „N“, die an einige der Bezugszahlen angehängt ist, ist lediglich als Hinweis auf eine Vielzahl zu verstehen und muss nicht unbedingt für jede Bezugszahl mit einer solchen Indexzahl „N“ die gleiche Menge darstellen. Darüber hinaus kann die Verwendung einer Bezugszahl ohne Indexnummer, auf die an anderer Stelle mit einer Indexnummer Bezug genommen wird, eine allgemeine Bezugnahme auf die entsprechenden pluralen Elemente insgesamt oder einzeln sein. In einem anderen Beispiel kann anstelle der Indexnummer N die Indexnummer „I“, „M“ usw. verwendet werden. Die Abbildungen sind nicht unbedingt maßstabsgetreu, und die Größe einiger Teile kann zur besseren Veranschaulichung des gezeigten Beispiels übertrieben sein. Außerdem enthalten die Zeichnungen Beispiele und/oder Ausführungsformen, die mit der Beschreibung übereinstimmen; die Beschreibung ist jedoch nicht auf die in den Zeichnungen dargestellten Beispiele und/oder Ausführungsformen beschränkt.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende detaillierte Beschreibung bezieht sich auf die beigefügten Zeichnungen. Wo immer möglich, werden in den Zeichnungen und in der folgenden Beschreibung dieselben Bezugsnummern verwendet, um auf gleiche oder ähnliche Teile hinzuweisen. Es wird jedoch ausdrücklich darauf hingewiesen, dass die Zeichnungen nur der Veranschaulichung und Beschreibung dienen. Obwohl in diesem Dokument mehrere Beispiele beschrieben werden, sind Änderungen, Anpassungen und andere Ausführungen möglich. Dementsprechend schränkt die folgende detaillierte Beschreibung die offengelegten Beispiele nicht ein. Stattdessen kann der richtige Umfang der offengelegten Beispiele durch die beigefügten Ansprüche definiert werden.
  • Die hier verwendete Terminologie dient nur der Beschreibung von Beispielen und ist nicht als einschränkend zu verstehen. Die hier verwendeten Singularformen „ein“, „ein“ und „die“ schließen auch die Pluralformen ein, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Der hier verwendete Begriff „Mehrzahl“ ist definiert als zwei oder mehr als zwei. Der hier verwendete Begriff „ein weiteres“ bedeutet mindestens ein zweites oder mehr. Der hier verwendete Begriff „gekoppelt“ bedeutet, sofern nicht anders angegeben, verbunden, sei es direkt ohne zwischengeschaltete Elemente oder indirekt mit mindestens einem zwischengeschalteten Element. Zwei Elemente können mechanisch, elektrisch oder kommunikativ über einen Kommunikationskanal, - weg, -netz oder -system miteinander verbunden sein. Der Begriff „und/oder“, wie er hier verwendet wird, bezieht sich auf alle möglichen Kombinationen von einem oder mehreren der aufgeführten Elemente und umfasst diese. Obwohl die Begriffe „erstes“, „zweites“, „drittes“ usw. hier verwendet werden, um verschiedene Elemente zu beschreiben, sollten diese Elemente nicht durch diese Begriffe eingeschränkt werden, da diese Begriffe nur verwendet werden, um ein Element von einem anderen zu unterscheiden, es sei denn, es wird etwas anderes angegeben oder der Kontext zeigt etwas anderes an. Wie hierin verwendet, bedeutet der Begriff „beinhaltet“, dass er beinhaltet, aber nicht darauf beschränkt ist, der Begriff „einschließlich“ bedeutet, dass er beinhaltet, aber nicht darauf beschränkt ist. Der Begriff „basierend auf“ bedeutet zumindest teilweise basierend auf.
  • Der hier verwendete Begriff „Verwaltbarkeitscontroller“ bezeichnet einen spezialisierten Dienstprozessor, der zur Überwachung des physischen Zustands eines Host-Computersystems mithilfe eines oder mehrerer Sensoren dient. Der Verwaltbarkeitscontroller kann über eine Verbindung, z. B. eine Netzwerkverbindung, mit einem Administrator oder Benutzer kommunizieren.
  • Wie hier verwendet, kann sich der Begriff „Host-Computersystem“ auf ein Serversystem beziehen, das in einer Rechenzentrumsumgebung zur Ausführung einer oder mehrerer Arbeitslasten eines Kunden eingesetzt wird. Das Host-Computersystem kann sich auch auf ein Speichersystem beziehen, das in der Rechenzentrumsumgebung zum Speichern von Daten des Kunden eingesetzt wird. Der Begriff „Rechengerät“ kann sich auf das Host-Rechnersystem oder ein externes Rechnersystem beziehen. Der hier verwendete Begriff „externes Computersystem“ kann sich auf das Serversystem beziehen, das für eine sichere Verwaltung des Host-Computersystems verwendet wird. Der hier verwendete Begriff „Arbeitslast“ kann sich auf eine Anwendungssoftware beziehen, die auf dem Host-Computersystem läuft und mit der mehrere Benutzer verbunden sind, die mit der Anwendungssoftware interagieren, um die gewünschten Dienste zu erhalten.
  • Der hier verwendete Begriff „Boot-Informationsdatei“ kann sich auf eine Firmware-Engine-bewusste Betriebssystem-Loader-Datei oder bootfähige Datei des Host-Computersystems beziehen. Die Boot-Informationsdatei lädt und startet die Boot-Zeit-Aufgaben und -Prozesse des Betriebssystems, das zum Host-Computersystem gehört. Der hier verwendete Begriff „Firmware-Engine“ kann sich auf eine Kombination aus einer Hardware und einem Softwareprogramm oder einem Satz von Anweisungen beziehen, die auf der Hardware zum Booten des Host-Computersystems programmiert sind. Ein Beispiel für eine Firmware-Engine kann ein Basic Input Output System (BIOS) oder ein Unified Extensible Firmware Interface (UEFI) sein, das auf einem Speicherchip gespeichert ist und von einem Prozessor ausgeführt wird. Die Firmware-Engine kann Signaturen in der Boot-Informationsdatei überprüfen, bevor sie die Steuerung an die Boot-Informationsdatei zum Laden des Betriebssystems oder zum Starten der Boot-Zeitaufgaben und -Prozesse des Betriebssystems im Host-Computersystem weitergibt.
  • Der hier verwendete Begriff „gehashte Daten“ kann sich auf eine Zeichenfolge beziehen, die spezifisch oder an eine Hardware-Ressource des Host-Computersystems gebunden ist. Die gehashten Daten werden von einem Algorithmus unter Verwendung einer eindeutigen Kennung des Verwaltungskontrollers erzeugt. Der Begriff „eindeutiger Bezeichner“ kann sich auf einen privaten Schlüssel beziehen, der dem Verwaltungskontrollgerät entspricht. Wie hier verwendet, kann sich der Begriff „privater Schlüssel“ auf eine eindeutige alphanumerische Zeichenkette beziehen, die dem Steuergerät für die Verwaltbarkeit entspricht. Der hier verwendete Begriff „signierte Boot-Informationsdatei“ oder „angehängte Boot-Informationsdatei“ kann sich auf die Boot-Informationsdatei beziehen, an deren Hauptteil die gehashten Daten angehängt sind. Die gehashten Daten können verwendet werden, um die angehängte oder signierte Boot-Informationsdatei mit dem Host-Computersystem für das anschließende Booten zu verriegeln. Der hier verwendete Begriff „Boot-Datenbank“ kann sich auf eine interne Datei oder einen Datensatz der Firmware-Engine beziehen, die eine Liste der autorisierten/vertrauenswürdigen Schlüssel der Boot-Zeit-Software enthält. Die Liste der Schlüssel kann i) allgemeine autorisierte Signaturen von Software, denen ein Originalgerätehersteller (OEM) vertraut, und/oder ii) einen Fingerabdruck der signierten Boot-Informationsdatei enthalten. Wie hier verwendet, kann sich der Begriff „Thumbprint-Daten“ auf einen gemeinsamen Schlüssel oder Bezeichner beziehen, der die signierte Boot-Informationsdatei oder eine angehängte Boot-Information darstellt. Der hier verwendete Begriff „ähnliche Dateien“ kann sich auf Dateien beziehen, die zum Zweck der Identifizierung oder Erkennung von Dateien denselben gemeinsamen Schlüssel oder Bezeichner haben.
  • Der hier verwendete Begriff „vorbestimmte Verbindung“ kann sich auf einen Pfad zum Zugriff auf die Boot-Informationsdatei im nichtflüchtigen Speicher des Computersystems beziehen. Der hier verwendete Begriff „Kundensignatur“ kann sich auf einen privaten Schlüssel des Kunden beziehen. Der hier verwendete Begriff „mehrere Parameter“ kann sich auf verschiedene Arten/Typen der autorisierten Software (Bootzeitsoftware) und deren Attribute beziehen, die für das Booten des Host-Computersystems zur Verfügung gestellt werden, wie z. B. Arten von Betriebssystemen und deren Versionen, Arten von Sicherheitssoftware und deren Versionen oder Ähnliches.
  • Zur Erläuterung der vorliegenden Offenbarung werden bestimmte Beispiele unter Bezugnahme auf die in den 1-5 dargestellten Komponenten beschrieben. Die Funktionalität der dargestellten Komponenten kann sich jedoch überschneiden und in einer geringeren oder größeren Anzahl von Elementen und Komponenten vorhanden sein. Darüber hinaus kann die gesamte oder ein Teil der Funktionalität der dargestellten Elemente nebeneinander bestehen oder auf mehrere geografisch verteilte Standorte verteilt sein. Darüber hinaus können die beschriebenen Beispiele in verschiedenen Umgebungen implementiert werden und sind nicht auf die dargestellten Beispiele beschränkt. Ferner ist die in den 1 und 4-5 beschriebene Abfolge von Vorgängen ein Beispiel und nicht als Einschränkung zu verstehen. Es können zusätzliche oder weniger Vorgänge oder Kombinationen von Vorgängen verwendet oder variiert werden, ohne dass dies den Rahmen der dargestellten Beispiele sprengen würde. Die vorliegende Offenbarung enthält daher lediglich Beispiele für Implementierungen, und es können viele Variationen und Änderungen an den beschriebenen Beispielen vorgenommen werden. Solche Modifikationen und Variationen sollen in den Anwendungsbereich dieser Offenbarung einbezogen werden und sind durch die folgenden Ansprüche geschützt.
  • Host-Computersysteme, wie z. B. Serversysteme, bieten im Allgemeinen eine als „sicheres Booten“ bezeichnete Funktion, die sicherstellt, dass Software (Boot-Zeit-Software) mit autorisierten Signaturen, denen ein Originalgerätehersteller (OEM) vertraut, nur zum Booten des Host-Computersystems verwendet wird. Wenn das Host-Computersystem startet oder hochfährt, kann eine Firmware-Engine des Host-Computersystems die Signaturen der Software, die in einer Boot-Informationsdatei des Host-Computersystems aufgeführt sind, mit den autorisierten Signaturen der Software vergleichen, die in einer Boot-Datenbank der Firmware-Engine gespeichert sind. In solchen Beispielen kann die Firmware-Engine, wenn die Signaturen validiert sind, die Boot-Informationsdatei steuern, um das Booten des Host-Computersystems oder das Laden des Betriebssystems des Host-Computersystems zu ermöglichen.
  • Der sichere Bootvorgang kann jedoch nicht gewährleisten, dass das Host-Computersystem mit der Boot-Informationsdatei, die validierte Signaturen aufweist, verriegelt ist. Mit anderen Worten, das sichere Booten bietet keine Funktionen, die das Booten eines anderen Computersystems unter Verwendung der Boot-Informationsdatei des Host-Computersystems mit validierten Signaturen einschränken. Wenn beispielsweise das Host-Computersystem in die Hände eines unbefugten Benutzers gelangt, kann ein Festplattenlaufwerk des Host-Computersystems, das die Boot-Informationsdatei enthält, entfernt und in dem anderen Computersystem zum Booten des anderen Computersystems verwendet werden, wobei Spyware oder Root-Kits auf dem entfernten Festplattenlaufwerk installiert werden. In solchen Beispielen kann das entfernte Festplattenlaufwerk (oder das kompromittierte Festplattenlaufwerk) im Host-Computersystem wiederhergestellt werden. Dadurch wird es dem unbefugten Benutzer ermöglicht, verdeckte Informationen über die Aktivitäten des Host-Computersystems zu erhalten, z. B. die Aktivitäten im Zusammenhang mit der Arbeitslast, die im Host-Computersystem läuft/ausgeführt wird, indem er verdeckt Daten von dem kompromittierten Festplattenlaufwerk überträgt.
  • Um solche Probleme beim sicheren Booten zu beheben, können die gemeinsamen autorisierten Signaturen aller Software aus der Boot-Datenbank gelöscht und die autorisierten Signaturen ausgewählter Software in die Boot-Datenbank aufgenommen werden. Außerdem kann die Boot-Informationsdatei des Host-Computersystems mit einer Liste der ausgewählten Software aktualisiert werden, deren autorisierte Signaturen der Boot-Datenbank hinzugefügt werden. Die oben erwähnte Funktion des sicheren Bootens kann jedoch nicht gewährleisten, dass die Boot-Informationsdatei mit der Liste der ausgewählten Software mit dem Host-Computersystem verriegelt ist. So kann beispielsweise die Firmware-Engine eines anderen Computersystems, das die autorisierten Signaturen der ausgewählten Software in seiner Boot-Datenbank hat, die Liste der ausgewählten Software in der Boot-Informationsdatei des Host-Computersystems validieren. Dadurch wird das Booten des anderen Computersystems unter Verwendung der Boot-Informationsdatei des Host-Computersystems ermöglicht. Daher kann die Verknüpfung der Boot-Informationsdatei mit dem Host-Computersystem die Erstellung von UEFI-Binärdateien (Unified Extensible Firmware Interface) und die Verwendung angepasster Herstellerwerkzeuge zur Aktualisierung der Boot-Datenbank und der Boot-Informationsdatei erfordern. Ein solcher Prozess kann für normale Administratoren/Benutzer unerschwinglich sein. Darüber hinaus kann ein unbefugter Benutzer, der über das Wissen zur Erstellung von UEFI-Binärdateien und den Zugang zu den angepassten Hersteller-Tools verfügt, immer noch die Verriegelungen umgehen und die Spyware oder die Root-Kits in das aus dem Host-Computersystem entfernte Festplattenlaufwerk einbringen.
  • Eine praktikable technische Lösung für die oben genannten Probleme kann darin bestehen, dass zunächst eine Boot-Informationsdatei von mindestens einer Hardwareressource, z. B. einem Verwaltbarkeitscontroller eines Host-Computersystems, signiert wird, um eine signierte Boot-Informationsdatei zu erzeugen. Des Weiteren beinhaltet die technische Lösung das Anhängen der Signatur des Verwaltungscontrollers an die Boot-Informationsdatei, die in einem nichtflüchtigen Speicherlaufwerk, wie z. B. einem Festplattenlaufwerk des Host-Computersystems, gespeichert ist. Später beinhaltet die technische Lösung das Aktualisieren einer Boot-Datenbank in einer Firmware-Engine des Host-Computersystems mit den Fingerabdruckdaten der signierten oder angehängten Boot-Informationsdatei. Dadurch kann das Host-Computersystem mit der signierten oder angehängten Boot-Informationsdatei für Boot-Zwecke verriegelt werden. In solchen Beispielen kann das Host-Computersystem selbst dann nicht mit der signierten oder angehängten Boot-Informationsdatei booten, wenn das Host-Computersystem kompromittiert wird (d. h. wenn das Festplattenlaufwerk aus dem Host-Computersystem entfernt und in einem anderen Computersystem verwendet wird). Weil die Firmware-Engine des anderen Computersystems möglicherweise nicht in der Lage ist, die Signatur der angehängten oder signierten Boot-Informationsdatei in dem entfernten Festplattenlaufwerk zu überprüfen, da der Verwaltbarkeitscontroller des Host-Computersystems (der zum Signieren der Boot-Informationsdatei verwendet wird) und der Verwaltbarkeitscontroller des anderen Computersystems unterschiedlich sind. Außerdem kann das Host-Computersystem die Boot-Informationsdatei, die in einem anderen Festplattenlaufwerk (d.h. einem ausgetauschten Festplattenlaufwerk) gespeichert ist, möglicherweise nicht zum Booten verwenden. Denn die Firmware-Engine des Host-Computersystems ist möglicherweise nicht in der Lage, die signierte oder angehängte Boot-Informationsdatei (d. h. basierend auf den in der Boot-Datenbank gespeicherten Thumbprint-Daten) in dem anderen Festplattenlaufwerk zu finden, um die Signatur der signierten oder angehängten Boot-Informationsdatei für das Booten zu validieren.
  • In einem oder mehreren Beispielen kann der Verwaltungskontroller die Boot-Informationsdatei unter Verwendung von gehashten Daten einer eindeutigen Kennung signieren, die dem Verwaltungskontroller gehört. Bei dem eindeutigen Bezeichner kann es sich um einen privaten Schlüssel handeln, der dem Verwaltungskontrollgerät entspricht und in einem vertrauenswürdigen Plattformmodul des Verwaltungskontrollgeräts gespeichert ist. Mit anderen Worten, der eindeutige Bezeichner ist ein unverwechselbarer Schlüssel, der für jeden Verwaltbarkeitscontroller spezifisch ist. Daher kann die signierte Boot-Informationsdatei des Host-Computersystems nicht zum Booten des anderen Computersystems verwendet werden. In einigen Beispielen ist das vertrauenswürdige Plattformmodul ein sicherer Speicherbereich des Verwaltbarkeitscontrollers, auf den andere Hardwareressourcen des Host-Computersystems keinen Zugriff haben. In einem oder mehreren Beispielen kann der eindeutige Bezeichner mit einem Algorithmus wie dem sicheren Hash-Algorithmus (SHA)-256, SHA-512 oder ähnlichem gehasht werden, bevor die Boot-Informationsdatei mit den gehashten Daten signiert wird.
  • In einigen Beispielen kann die Firmware-Engine beim anschließenden Booten des Host-Computersystems auf die signierte oder angehängte Boot-Informationsdatei zugreifen, die in dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems auf der Grundlage der in der Boot-Datenbank aktualisierten Thumbprint-Daten gespeichert ist. Später kann die Firmware-Engine die gehashten Daten in der signierten oder angehängten Boot-Informationsdatei unter Verwendung eines öffentlichen Schlüssels des Verwaltbarkeitscontrollers validieren. Dementsprechend kann die Firmware-Engine dem Prozessor des Host-Computersystems erlauben, die Boot-Informationsdatei zum Laden eines Betriebssystems des Host-Computersystems als Reaktion auf die erfolgreiche Validierung der signierten Boot-Informationsdatei zu verwenden. In solchen Beispielen kann der Verwaltungskontroller bereits vorhandene Boot-Daten in der Boot-Datenbank in eine bereinigte Boot-Datenbank der Firmware-Engine löschen, bevor die Boot-Datenbank mit den Thumbprint-Daten der signierten Boot-Informationsdatei aktualisiert wird.
  • Dementsprechend beschreibt die vorliegende Offenlegung Beispielimplementierungen von System und Verfahren zum Signieren einer Boot-Informationsdatei durch einen Verwaltungscontroller eines Host-Computersystems und zum Verriegeln des Host-Computersystems mit einer signierten Boot-Informationsdatei zum Booten des Host-Computersystems. In einigen Beispielen kann die Boot-Informationsdatei eine Boot-Loader-Datei oder eine Betriebssystem (OS)-Kernel-Datei des Host-Computersystems enthalten. Der Verwaltungskontroller kann die Boot-Informationsdatei von einem Prozessor eines Computergeräts empfangen. In einigen Beispielen handelt es sich bei der Boot-Informationsdatei um eine angepasste Boot-Informationsdatei zum Ausführen einer oder mehrerer Arbeitslasten auf dem Host-Computersystem, und das Computergerät ist das Host-Computersystem oder ein externes Computersystem. Der Verwaltungskontroller kann die Boot-Informationsdatei mit einem Hashwert eines eindeutigen Bezeichners signieren, um eine signierte Boot-Informationsdatei zu erzeugen, und kann die signierte Boot-Informationsdatei an den Prozessor übermitteln. Darüber hinaus kann der Verwaltungskontroller eine Boot-Datenbank in einer Firmware-Engine des Host-Computersystems mit Daumenabdruckdaten der signierten Boot-Informationsdatei aktualisieren, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln, als Reaktion auf das erfolgreiche Herunterladen der signierten Boot-Informationsdatei durch den Prozessor.
  • 1 zeigt eine Beispielumgebung 100, z. B. eine Rechenzentrumsumgebung, in der ein Host-Rechnersystem 102 eingesetzt werden kann, um eine oder mehrere Arbeitslasten (d. h. Anwendungssoftware) eines Kunden auszuführen, um Dienste für angeschlossene Benutzer bereitzustellen. Die Beispielumgebung 100 kann zusätzlich über ein externes Computersystem 104 verfügen, das über ein Netzwerk 106 mit einem Host-Computersystem 102 gekoppelt ist, um die eine oder mehreren Arbeitslasten, die in dem Host-Computersystem 102 laufen, sicher zu verwalten. In einigen Beispielen kann das Netzwerk 106 ein TCP/IP-Netzwerk (Transmission Control Protocol/Internet Protocol) sein, bei dem es sich um eine Reihe von Kommunikationsprotokollen handelt, die zur Verbindung von Netzwerkgeräten im Internet verwendet werden. In einem oder mehreren Beispielen kann die Umgebung 100 als ein Unternehmenssystem, ein Verbrauchersystem oder ein industrielles System implementiert werden, das die Ausführung oder den Betrieb der einen oder mehreren Arbeitslasten des Kunden erleichtert, um den angeschlossenen Benutzern die gewünschten Dienste bereitzustellen und die eine oder mehreren Arbeitslasten parallel vor Sicherheitsschwachstellen zu schützen.
  • In einigen Beispielen kann das Host-Computersystem 102 ein Serversystem sein, das sensible Daten enthält, die zu einer oder mehreren Arbeitslasten gehören, und mit dem TCP/IP-Netz 106, einschließlich dem Internet, verbunden ist. In einigen anderen Beispielen kann das Host-Computersystem 102 ein Speichersystem oder ähnliches sein. In ähnlicher Weise kann das externe Rechnersystem 104 das Serversystem sein, das für die Verwaltung der einen oder mehreren Arbeitslasten konfiguriert ist, die auf dem Host-Rechnersystem 102 laufen. In einem oder mehreren Beispielen können sowohl das Host-Rechnersystem 102 als auch das externe Rechnersystem 104 von einem Administrator 108 der Beispielumgebung 100 verwaltet und/oder gesteuert werden.
  • In einigen Beispielen kann das Host-Computersystem 102 einen Prozessor 110 (erster Prozessor), einen Speicher 112 (erster Speicher), ein nichtflüchtiges Speicherlaufwerk 114 (erstes Laufwerk), einen Verwaltbarkeitscontroller 116 und eine Firmware-Engine 118 umfassen. Bei dem Prozessor 110 kann es sich um einen physischen Prozessor handeln, z. B. eine Zentraleinheit (CPU), die Programmanweisungen einer oder mehrerer Arbeitslasten ausführen kann, die im Host-Computersystem 102 laufen, indem sie die durch die Programmanweisungen spezifizierten arithmetischen, logischen, Steuer- und Eingabe/Ausgabe-Operationen (E/A) durchführt. Beispielsweise kann der Prozessor 110 funktionsfähig mit dem Speicher 112 und dem nichtflüchtigen Speicherlaufwerk 114 gekoppelt sein, um die im nichtflüchtigen Speicherlaufwerk 114 gespeicherten Programmanweisungen in den Speicher 112 zu laden und Software des Host-Computersystems 102 auszuführen, wie z. B. ein Betriebssystem (OS) und die eine oder mehreren Arbeitslasten, die auf dem OS laufen. Es sei hier angemerkt, dass das Betriebssystem alle grundlegenden Aufgaben wie Dateiverwaltung, Speicherverwaltung, Prozessverwaltung, Verarbeitung von Ein- und Ausgaben und Steuerung von Peripheriegeräten wie Druckern, Modems oder Ähnlichem ausführen kann. Bei der einen oder mehreren Arbeitslasten kann es sich um eine Produktionslast, eine Entwicklungslast oder eine Testlast handeln, je nach den Anforderungen des Kunden. Jeder der ein oder mehreren Workloads kann vertrauliche Informationen oder Daten enthalten, die für den Kunden geschützt sind. In einigen Beispielen kann der Produktions-Workload eine Geldautomaten-Anwendungssoftware, eine Lohnabrechnungs-Anwendungssoftware oder ähnliches enthalten. In ähnlicher Weise kann der Entwicklungsaufwand die Implementierung von Prozessen und Programmierwerkzeugen zur Erstellung einer neuen Anwendung oder eines Softwareprodukts umfassen. Darüber hinaus kann der Testaufwand die Implementierung eines anderen Satzes von Prozessen und Testwerkzeugen umfassen, um die neue Anwendung oder das Softwareprodukt zu testen. In einem oder mehreren Beispielen kann der Prozessor 110 auch mit dem Verwaltbarkeitscontroller 116 und der Firmware-Engine 118 des Host-Computersystems 102 betriebsbereit verbunden sein.
  • Der Speicher 112 ist ein flüchtiger Speicher, z. B. ein Direktzugriffsspeicher, der als interner Speicher des Prozessors 110 fungiert. Im Allgemeinen kann der Speicher 112 dem Prozessor 110 ermöglichen, i) Daten, ii) Programmanweisungen und/oder iii) Programmergebnisse zu lesen oder zu speichern, wenn das Host-Computersystem 102 eingeschaltet oder in Betrieb ist. Wenn das Host-Computersystem 102 beispielsweise gebootet/neugestartet oder betriebsbereit ist, werden das Betriebssystem und die eine oder mehreren Arbeitslasten, die auf dem Betriebssystem laufen, vom nichtflüchtigen Speicherlaufwerk 114 in den Speicher 112 geladen, wo der Prozessor 110 diese in den Speicher 112 geladenen Daten zur Durchführung der erforderlichen Aufgaben verwenden kann.
  • Das nichtflüchtige Speicherlaufwerk 114 kann ein Festplattenlaufwerk, ein Solid-State-Laufwerk oder Ähnliches sein. In einem oder mehreren Beispielen kann das nichtflüchtige Speicherlaufwerk 114 eine Vielzahl von Partitionen 126 zum Speichern von Dateien des Host-Computersystems 102 in einer primären Partition 126A und von Dateien oder Daten von Benutzern in einer erweiterten Partition 126B enthalten. Die primäre Partition 126A kann zum Beispiel zum Speichern einer Boot-Informationsdatei 128 verwendet werden. In einem oder mehreren Beispielen kann die Boot-Informationsdatei 128 eine Boot-Loader-Datei oder eine Betriebssystem-Kernel-Datei sein. Es sei darauf hingewiesen, dass es sich bei der Bootloader-Datei um eine spezielle Betriebssystemsoftware handeln kann, die in einem ersten Block oder Sektor der primären Partition 126A oder einer bestimmten Partition des nichtflüchtigen Speicherlaufwerks 114 gespeichert ist. In solchen Beispielen kann die Boot-Loader-Datei, wie GRUB, während des Hochfahrens des Host-Computersystems 102 vom nichtflüchtigen Speicherlaufwerk 114 in den Speicher 112 geladen werden. In ähnlicherWeise ist die Betriebssystem-Kerneldatei ein Softwareprogramm, das einen Kernbestandteil des Betriebssystems bildet und in dem nichtflüchtigen Speicherlaufwerk 114 gespeichert wird, um die Interaktion zwischen Hardware- und Softwarekomponenten des Host-Computersystems 102 zu erleichtern.
  • Der Verwaltbarkeitscontroller 116 kann ein spezialisierter Dienstprozessor sein, der zur Überwachung des physischen Zustands des Host-Computersystems 102 mithilfe eines oder mehrerer Sensoren (nicht dargestellt) verwendet wird. Der Verwaltbarkeitscontroller 116 kann über das Netzwerk 106 mit dem Administrator 108 oder Benutzer kommunizieren. In einigen Beispielen ist der Verwaltbarkeitscontroller 116 ein Baseboard Management Controller (BMC), der in eine Leiterplatte (z. B. die Hauptplatine) des zu überwachenden Host-Computersystems 102 eingebettet ist. In solchen Beispielen kann die Leiterplatte auch den Prozessor 110 beherbergen. In einigen Beispielen kann der Verwaltbarkeitscontroller 116 ein anderer, vom Prozessor 110 getrennter Prozessor sein, der für die Ausführung des Betriebssystems des Host-Computersystems 102 konfiguriert ist. Der Verwaltungskontroller 116 kann dem Administrator 108 helfen, das Host-Computersystem 102 und andere mit dem Host-Computersystem 102 verbundene Hardwaregeräte aus der Ferne zu überwachen. Der Verwaltungskontroller 116 kann eine eigene Internetprotokoll (IP)-Adresse haben, auf die über die Web-Konsole oder die Befehlszeilenschnittstelle zugegriffen werden kann. Darüber hinaus kann der Verwaltbarkeitscontroller 116 über einen eigenen Speicher (maschinenlesbares Medium) und eine mit dem Speicher verbundene Verarbeitungsressource verfügen und eine oder mehrere im Speicher gespeicherte Programmanweisungen ausführen, um das Host-Computersystem 102 zu überwachen, die Hardwareressourcen des Host-Computersystems 102 zu regulieren und mit dem externen Computersystem 104 zu interagieren. Der Verwaltungskontroller 116 kann auch über eine Hilfsstromschiene (nicht dargestellt) mit Strom versorgt werden, selbst wenn das Host-Computersystem 102 ausgeschaltet ist. Auf diese Weise kann das externe Computersystem 104 jederzeit eine sichere Verbindung mit dem Verwaltbarkeitscontroller 116 herstellen und eine kontinuierliche Interaktion mit dem Verwaltbarkeitscontroller 116 während des gesamten Lebenszyklus des Host-Computersystems 102 aufrechterhalten. In einigen Beispielen verfügt der Verwaltbarkeitscontroller 116 über eine eindeutige Kennung, die beim erstmaligen Einschalten des Host-Computersystems 102 unter Verwendung der Anmeldeinformationen des Kunden oder der Kundensignatur erzeugt werden kann. In einigen Beispielen ist der eindeutige Schlüssel ein privater Schlüssel des Verwaltbarkeitscontrollers 116, der eine eindeutige Zeichenfolge aus alphanumerischen Zeichen enthält. In einigen Beispielen wird der eindeutige Schlüssel in einem vertrauenswürdigen Plattformmodul (TPM) 130 des Verwaltungssteuergeräts 116 gespeichert. Das TPM 130 ist ein sicherer Speicherbereich des Verwaltungscontrollers, auf den andere Hardwareressourcen des Host-Computersystems 102 und der Administrator 108 oder andere Benutzer keinen Zugriff haben.
  • Bei der Firmware-Engine 118 kann es sich um einen Chipsatz handeln, in den ausführbare Programmanweisungen eingebettet sind, um die Initialisierung der Hardwareressourcen des Host-Computersystems 102 während des Bootens (oder Rebootens) durchzuführen und Laufzeitdienste für die eine oder mehreren Arbeitslasten des Host-Computersystems 102 bereitzustellen. In einigen Beispielen kann es sich bei der einen oder den mehreren Arbeitslasten um Anwendungssoftware handeln, die auf dem Betriebssystem läuft. In einigen Beispielen kann die Firmware-Engine 118 ein Unified Extensible Firmware Interface (UEFI) oder ein Basic Input Output System (BIOS) umfassen. In einigen Beispielen kann die Firmware-Engine 118 eine Boot-Datenbank 132 und eine bereinigte Boot-Datenbank 134 enthalten, die in einem nichtflüchtigen Direktzugriffsspeicher 136 der Firmware-Engine 118 gespeichert sind. Die Boot-Datenbank 132 kann auf eine interne Datei oder einen Datensatz der Firmware-Engine 118 verweisen. In der Boot-Datenbank 132 können i) autorisierte Signaturen der ausgewählten Software, denen ein Erstausrüster (OEM) vertraut, und/oder ii) Thumbprint-Daten einer signierten Boot-Informationsdatei gespeichert sein. In ähnlicher Weise kann sich die bereinigte Boot-Datenbank 134 auch auf die interne Datei oder den Datensatz der Firmware-Engine 118 beziehen. In der bereinigten Boot-Datenbank 134 können die autorisierten Signaturen aller gängigen Software gespeichert werden, denen der OEM vertraut und die nicht in der Liste der Software (Boot-Zeit) in der Boot-Informationsdatei 128 enthalten sind.
  • Das externe Rechensystem 104 kann einen Prozessor 120 (zweiter Prozessor), einen Speicher 122 (zweiter Speicher) und ein nichtflüchtiges Speicherlaufwerk 124 (zweites Laufwerk) umfassen. In einigen Beispielen können der Prozessor 120, der Speicher 122 und das nichtflüchtige Speicherlaufwerk 124 im Wesentlichen mit dem ersten Prozessor 110, dem ersten Speicher 112 und dem ersten nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 identisch sein. Das externe Computersystem 104 kann über das Netzwerk 106 mit dem Verwaltbarkeitscontroller 116 und dem nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 verbunden sein. In einigen Beispielen kann der Administrator 108 eine Webkonsole oder eine Befehlszeilenschnittstelle (nicht dargestellt) im externen Computersystem 104 verwenden, um die Kommunikation mit dem Verwaltbarkeitscontroller 116 herzustellen. In einigen anderen Beispielen kann der Administrator 108 die Webkonsole oder die Befehlszeilenschnittstelle im Host-Computersystem 102 verwenden, um die Kommunikation mit dem Verwaltbarkeitscontroller 116 herzustellen.
  • In einem oder mehreren Beispielen kann der Administrator 108 das Host-Computersystem 102 zunächst für die Ausführung der einen oder mehreren Arbeitslasten auf dem Host-Computersystem 102 einrichten. Dementsprechend kann der Administrator 108 eine ursprüngliche Boot-Informationsdatei 128 (auch bekannt als Boot-Informationsdatei) auf der Grundlage der Anforderungen der einen oder mehreren Arbeitslasten anpassen (oder lokal erstellen). In einigen Beispielen kann der Administrator 108 das externe Computersystem 104 zum Anpassen der ursprünglichen Boot-Informationsdatei 128 verwenden. In einem oder mehreren Beispielen kann die ursprüngliche Boot-Informationsdatei 128 eine Vielzahl von Parametern enthalten, die verschiedenen Arten/Typen von autorisierter Software (Boot-Zeit-Software) und ihren Attributen entsprechen, denen ein Originalgerätehersteller (OEM) zum Booten des Host-Computersystems 102 vertraut. Die Vielzahl der Parameter kann beispielsweise verschiedene Arten von Betriebssystemen und deren Versionen, verschiedene Arten von Sicherheitssoftware und deren Versionen oder Ähnliches umfassen. In solchen Beispielen kann der Administrator 108 die ursprüngliche Boot-Informationsdatei 128 anpassen, indem er die Vielzahl von Parametern aktualisiert. So kann der Administrator 108 beispielsweise nur einige der zahlreichen Parameter aus der ursprünglichen Boot-Informationsdatei 128 beibehalten (oder die übrigen Parameter deaktivieren). In einigen Beispielen kann der Administrator 108 ein Betriebssystem mit einer bestimmten Version aus verschiedenen Arten von Betriebssystemen und deren Versionen und eine Sicherheitssoftware mit einer bestimmten Version aus den verschiedenen Arten der Sicherheitssoftware und deren Versionen aus der ursprünglichen Boot-Informationsdatei 128 auswählen, um eine angepasste Boot-Informationsdatei 128A zu bilden. In einigen anderen Beispielen kann der Administrator 108 eine angepasste Boot-Informationsdatei 128A von einem Anbieter erhalten. Das ausgewählte Betriebssystem und die Sicherheitssoftware in der angepassten Boot-Informationsdatei 128A können Signaturen der jeweiligen Hersteller aufweisen, denen der OEM vertraut. Zusätzlich kann der Administrator 108 die kundenspezifische Boot-Informationsdatei 128A mit der Signatur des Kunden versehen, um zu bestätigen, dass die Anpassung der ursprünglichen Boot-Informationsdatei 128 auf den Anforderungen des Kunden basiert. In einigen Beispielen kann die Kundensignatur und die Signatur des jeweiligen Herstellers der Software ein privater Schlüssel (oder ein Zertifikat) des Kunden bzw. des Herstellers sein. In einigen Beispielen kann die angepasste Boot-Informationsdatei 128A zum Ausführen der Arbeitslast, z. B. einer „Geldautomaten-Anwendungssoftware“, auf dem Host-Computersystem 102 verwendet werden. Der Administrator 108 kann die benutzerdefinierte Boot-Informationsdatei 128A später in der primären Partition 126A des nichtflüchtigen Speicherlaufwerks 114 des Host-Computersystems 102 über das Netzwerk 106 oder über ein anderes bootfähiges Gerät, wie z. B. ein „Flash-Laufwerk“ (nicht dargestellt), das an das Host-Computersystem 102 angeschlossen ist, installieren.
  • In einem oder mehreren Beispielen kann die benutzerdefinierte Boot-Informationsdatei 128A später von der Verwaltungssteuerung 116 signiert werden, um eine signierte Boot-Informationsdatei 128B und/oder eine angehängte Boot-Informationsdatei 128C zu erzeugen. In solchen Beispielen kann die signierte oder die angehängte Boot-Informationsdatei 128B, 128C verwendet werden, um sich mit dem Host-Computersystem 102 zu verriegeln, wie hier beschrieben.
  • In einigen Beispielen kann der Verwaltbarkeitscontroller 116 des Host-Computersystems 102 die angepasste Boot-Informationsdatei 128A vom ersten Prozessor 110 des Host-Computersystems 102 oder vom zweiten Prozessor 120 des externen Computersystems 104 erhalten. Mit anderen Worten, der Administrator 108 kann entweder das Host-Computersystem 102 oder das externe Computersystem 104 verwenden, um die benutzerdefinierte Boot-Informationsdatei 128A an den Verwaltbarkeitscontroller 116 zu senden. Beispielsweise kann sich der Administrator 108 zunächst bei der Verwaltbarkeitssteuerung 116 unter Verwendung seiner Anmeldedaten authentifizieren. Später kann der Administrator 108 eine Webkonsole oder eine Befehlszeilenschnittstelle des Host-Computersystems 102 oder des externen Computersystems 104 verwenden, um die sichere Verbindung mit dem Verwaltbarkeitscontroller 116 herzustellen. Nach der Authentifizierung und dem Aufbau der sicheren Verbindung mit dem Verwaltbarkeitscontroller 116 kann der Administrator 108 einen vorbestimmten Link zu einem nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 senden, um die benutzerdefinierte Boot-Informationsdatei 128A mit dem Verwaltbarkeitscontroller 116 zu teilen. In solchen Beispielen kann der Verwaltbarkeitscontroller 116 auf den vorbestimmten Link zugreifen, um die benutzerdefinierte Boot-Informationsdatei 128A von dem nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 zu empfangen.
  • In einigen anderen Beispielen kann der Administrator 108 direkt die Webkonsole oder die Befehlszeilenschnittstelle des Host-Computersystems 102 oder des externen Computersystems 104 verwenden, um die Verbindung mit dem Verwaltbarkeitscontroller 116 herzustellen. Nach dem Aufbau der Verbindung mit dem Verwaltbarkeitscontroller 116 kann der Administrator 108 den vorbestimmten Link zum nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 senden, um die angepasste Boot-Informationsdatei 128A mit dem Verwaltbarkeitscontroller 116 zu teilen. In solchen Beispielen kann der Verwaltbarkeitscontroller 116 zunächst die Kundensignatur in der benutzerdefinierten Boot-Informationsdatei 128A validieren. Nach erfolgreicher Validierung der Kundensignatur in der benutzerdefinierten Boot-Informationsdatei 128A kann der Verwaltungskontroller 116 die benutzerdefinierte Boot-Informationsdatei 128A von dem nichtflüchtigen Speicherlaufwerk 114 empfangen. In einem oder mehreren Beispielen kann der Verwaltungskontroller 116 einen öffentlichen Schlüssel des Kunden verwenden, um die benutzerdefinierte Boot-Informationsdatei 128A zu validieren, und wenn die Kundensignatur in der benutzerdefinierten Boot-Informationsdatei 128A validiert ist, kann der Verwaltungskontroller 116 auf den vorgegebenen Link zugreifen, um die benutzerdefinierte Boot-Informationsdatei 128A vom nichtflüchtigen Speicherlaufwerk 114 zu empfangen. In einigen Beispielen kann der Verwaltungskontroller 116 die kundenspezifische Boot-Informationsdatei 128A in Form von Binärdateien empfangen.
  • Außerdem kann der Verwaltungskontroller 116 die benutzerdefinierte Boot-Informationsdatei 128A mit den gehashten Daten des eindeutigen Bezeichners signieren, um eine signierte Boot-Informationsdatei 128B zu erzeugen. Beispielsweise kann der Verwaltungskontroller 116 zunächst auf das vertrauenswürdige Plattformmodul 130 zugreifen, um den eindeutigen Bezeichner zu erhalten. In einigen Beispielen ist der eindeutige Bezeichner der private Schlüssel des Verwaltungskontrollers 116. In einem oder mehreren Beispielen kann der private Schlüssel eine Zeichenkette aus alphanumerischen Zeichen enthalten, die spezifisch für den Verwaltbarkeitscontroller 116 ist. Der private Schlüssel ist möglicherweise weder für den Administrator 108 noch für Benutzer oder andere Hardwareressourcen des Host-Computersystems 102 zugänglich. Später kann der Verwaltungskontroller 116 Algorithmen wie den sicheren Hash-Algorithmus (SHA)-256, SHA-512 oder ähnliches verwenden, um die gehashten Daten aus dem eindeutigen Bezeichner zu erzeugen. In einigen Beispielen können die gehashten Daten aus einer Zeichenkette bestehen. Anschließend kann der Verwaltungskontroller 116 die gehashten Daten verwenden, um die benutzerdefinierte Boot-Informationsdatei 128A zu signieren und die signierte Boot-Informationsdatei 128B zu erzeugen. In einem oder mehreren Beispielen kann das Signieren der benutzerdefinierten Boot-Informationsdatei 128A bedeuten, dass die gehashten Daten der eindeutigen Kennung in der benutzerdefinierten Boot-Informationsdatei 128A, die von der Verwaltungssteuerung 116 empfangen wurde, angehängt werden, um die signierte Boot-Informationsdatei 128B zu erzeugen. In einigen Beispielen kann die signierte Boot-Informationsdatei 128B durch einen gemeinsamen Schlüssel oder Bezeichner erkannt werden. In einem oder mehreren Beispielen kann der gemeinsame Schlüssel oder Bezeichner ein sogenannter Daumenabdruck 128D sein, der ein Wort, eine Zahl, einen Buchstaben, ein Symbol oder eine beliebige Kombination davon enthalten kann.
  • Der Verwaltungskontroller 116 kann später die signierte Boot-Informationsdatei 128B an den ersten Prozessor 110 oder den zweiten Prozessor 120 übermitteln. Beispielsweise kann der Verwaltbarkeitscontroller 116 dem Administrator 108 einen Hardlink zum Herunterladen der signierten Boot-Informationsdatei 128B bereitstellen. In einigen Beispielen kann der erste Prozessor 110 die signierte Boot-Informationsdatei 128B vorübergehend in das nichtflüchtige Speicherlaufwerk 114 herunterladen. In einigen anderen Beispielen kann der zweite Prozessor 120 die signierte Boot-Informationsdatei 128B vorübergehend in das nichtflüchtige Speicherlaufwerk 124 herunterladen. In solchen Beispielen kann der Administrator 108 die signierte Boot-Informationsdatei 128B später auf ein gesichertes Laufwerk (nicht abgebildet) übertragen, um sie bei Bedarf wieder zu verwenden. In einem oder mehreren Beispielen kann der Verwaltungskontroller 116 nach erfolgreichem Herunterladen der signierten Boot-Informationsdatei 128B eine Bestätigung von dem ersten Prozessor 110 oder dem zweiten Prozessor 120 erhalten. In solchen Beispielen kann der Verwaltbarkeitscontroller 116 später eine Kommunikation mit der Firmware-Engine 118 des Host-Computersystems 102 herstellen, indem er ein Industriestandard-Kommunikationsprotokoll verwendet, wie z. B. das 12C-Protokoll (Inter-integrated Circuit), den SMBus (System Management Bus) oder Ähnliches. Nach dem Aufbau der Kommunikation mit der Firmware-Engine 118 kann der Verwaltungskontroller 116 auf die Boot-Datenbank 132 zugreifen und bereits vorhandene Boot-Daten in der Boot-Datenbank 132 in die bereinigte Boot-Datenbank 134 verschieben. In einigen Beispielen umfasst das Löschen der bereits vorhandenen Daten aus der Boot-Datenbank 132 das Löschen gemeinsamer autorisierter Signaturen aller Software (Boot-Zeit-Software), denen der OEM vertraut, in die bereinigte Boot-Datenbank 134. Später kann der Verwaltungskontroller 116 die Boot-Datenbank 132 mit den Fingerabdruckdaten 128D der signierten Boot-Informationsdatei 128B aktualisieren. In einigen Beispielen können die Daumenabdruckdaten 128D den gemeinsamen Schlüssel oder Bezeichner der signierten Boot-Informationsdatei 128B zum Zweck der Identifizierung oder Erkennung der signierten Boot-Informationsdatei 128B enthalten.
  • Anschließend kann der Verwaltungskontroller 116 auf das nichtflüchtige Speicherlaufwerk 114 des Host-Computersystems 102 zugreifen, indem er die vorbestimmte Verbindung verwendet. Der Verwaltungskontroller 116 kann dann die im nichtflüchtigen Speicher 114 gespeicherte benutzerdefinierte Boot-Informationsdatei 128A aktualisieren, indem er die benutzerdefinierte Boot-Informationsdatei 128A unter Verwendung der gehashten Daten des eindeutigen Bezeichners anhängt, um die angehängte Boot-Informationsdatei 128C zu erzeugen. Die benutzerdefinierte Boot-Informationsdatei 128B kann nach dem Aktualisieren oder Anhängen der benutzerdefinierten Boot-Informationsdatei 128B mit den gehashten Daten des eindeutigen Bezeichners nicht mehr existieren. In einem oder mehreren Beispielen sind die angehängte Boot-Informationsdatei 128C und die signierte Boot-Informationsdatei 128B ähnliche Dateien. Mit anderen Worten, die angehängte Boot-Informationsdatei 128C und die signierte Boot-Informationsdatei 128B können denselben gemeinsamen Schlüssel oder Bezeichner und denselben Inhalt im gesamten Körper der beiden Dateien 128B, 128C zum Zweck der Identifizierung oder Erkennung von Dateien haben. Wenn zum Beispiel die signierte Boot-Informationsdatei den gemeinsamen Schlüssel „1234ABCD“ hat, kann die angehängte Boot-Informationsdatei ebenfalls den gleichen gemeinsamen Schlüssel haben, zum Beispiel „1234ABCD“. Außerdem können die in der Boot-Datenbank 132 gespeicherten Fingerabdruckdaten 128D denselben gemeinsamen Schlüssel haben, z. B. „1234ABCD“.
  • In einigen Beispielen, wenn das nichtflüchtige Speicherlaufwerk 114 des Host-Computersystems 102 beschädigt wird oder einen fehlerhaften bootfähigen Sektor in der primären Partition 126A des nichtflüchtigen Speichers 114 hat. Die angehängte Boot-Informationsdatei 128C, die in dem nichtflüchtigen Speicherlaufwerk 114 gespeichert ist, kann für den Zweck des Bootens des Host-Computersystems 102 unzugänglich werden. In solchen Beispielen kann der Administrator 108 das nichtflüchtige Speicherlaufwerk 114 durch ein neues nichtflüchtiges Speicherlaufwerk (nicht dargestellt) ersetzen und die signierte Boot-Informationsdatei 128B (die in einem gesicherten Laufwerk gespeichert ist) in einer primären Partition des neuen nichtflüchtigen Speicherlaufwerks speichern. Daher kann die signierte Boot-Informationsdatei 128B, die in dem neuen nichtflüchtigen Speicherlaufwerk gespeichert ist, auch denselben gemeinsamen Schlüssel haben wie der gemeinsame Schlüssel der angehängten Boot-Informationsdatei 128C. Auf diese Weise kann die Firmware-Engine 118 die signierte Boot-Informationsdatei 128B, die in dem neuen nichtflüchtigen Speicherlaufwerk gespeichert ist, unter Verwendung der Daumenabdruckdaten 128D identifizieren und dem Host-Computersystem 102 ermöglichen, unter Verwendung der neuen (ersetzten) nichtflüchtigen Speicherplatte mit der signierten Boot-Informationsdatei 128B zu booten.
  • In einigen anderen Beispielen muss die ursprüngliche Boot-Informationsdatei 128 oder die benutzerdefinierte Boot-Informationsdatei 128A je nach den Anforderungen des Arbeitsaufkommens möglicherweise von Zeit zu Zeit aktualisiert werden. So kann es beispielsweise erforderlich sein, die Version der Sicherheitssoftware zu aktualisieren, um einige neue Schwachstellen zu beheben, die in der in der ursprünglichen oder angepassten oder signierten Boot-Informationsdatei 128, 128A, 128B aufgeführten Sicherheitssoftware identifiziert wurden. In solchen Beispielen kann der Administrator 108 die Vielzahl von Parametern in der angepassten Boot-Informationsdatei 128A oder der ursprünglichen Boot-Informationsdatei 128 wie oben beschrieben aktualisieren, um eine neue angepasste Boot-Informationsdatei zu erzeugen. Ferner kann der Administrator 108 den ersten Prozessor 110 oder den zweiten Prozessor 120 anweisen, die hier beschriebenen Schritte zum Signieren der neuen benutzerdefinierten Boot-Informationsdatei zu wiederholen. Beispielsweise kann der Verwaltungskontroller 116 bei Empfang der neuen Boot-Informationsdatei eine neue signierte Boot-Informationsdatei erzeugen. Später kann der Verwaltungskontroller 116 die neu signierte Boot-Informationsdatei an den ersten Prozessor 110 oder den zweiten Prozessor 120 übermitteln, um die neu signierte Boot-Informationsdatei herunterzuladen. In solchen Beispielen kann der Verwaltbarkeitscontroller 116 neue Thumbprint-Daten, die der neu signierten Boot-Informationsdatei entsprechen, in der Boot-Datenbank 132 der Firmware-Engine 118 aufzeichnen, wenn der erste Prozessor 110 oder der zweite Prozessor 120 die neu signierte Boot-Informationsdatei erfolgreich heruntergeladen hat. Darüber hinaus kann der Verwaltungskontroller 116 die vorhandenen Fingerabdruckdaten in der bereinigten Boot-Datenbank 134 löschen. Später kann der Verwaltungskontroller 116 die ursprüngliche Boot-Informationsdatei 128 in dem nichtflüchtigen Speicher 114 mit den gehashten Daten des eindeutigen Bezeichners anhängen, um eine neue angehängte Boot-Informationsdatei zu erzeugen. In solchen Beispielen kann die signierte Boot-Informationsdatei 128B oder die angehängte Boot-Informationsdatei 128C, die ursprünglich von dem Verwaltungskontroller 116 signiert wurden, durch die neue signierte Boot-Informationsdatei oder die neue angehängte Boot-Informationsdatei ersetzt werden.
  • In einem oder mehreren Beispielen können der Verwaltbarkeitscontroller 116 und die Firmware-Engine 118 in der Lage sein, die angehängte Boot-Informationsdatei 128C (oder signierte Boot-Informationsdatei 128B) mit dem Host-Computersystem 102 zu verriegeln. Denn die angehängte Boot-Informationsdatei 128C, die im nichtflüchtigen Speicherlaufwerk 114 des Host-Computersystems 102 gespeichert ist, enthält die gehashten Daten der eindeutigen Kennung des Verwaltbarkeitscontrollers 116. Während die Boot-Datenbank 132 in der Firmware-Engine 118 des Host-Computersystems 102 die Thumbprint-Daten 128D der angehängten Boot-Informationsdatei 128C enthält. Dementsprechend können der Verwaltbarkeitscontroller 116 und die Firmware-Engine 118 in der Lage sein, das Host-Computersystem 102 mit der angehängten Boot-Informationsdatei 128C zu verriegeln, um das Host-Computersystem 102 zu booten, wie im Folgenden beschrieben.
  • In einigen Beispielen kann die Firmware-Engine 118 beim anschließenden Booten/Neustart des Host-Computersystems 102 zunächst den Einschalt-Selbsttest (POST) der Hardware-Ressourcen des Host-Computersystems 102 durchführen. Wenn der POST-Prozess erfolgreich abgeschlossen ist, kann die Firmware-Engine 118 nach der Boot-Informationsdatei 128 des Host-Computersystems 102 suchen, um die Steuerung für das Laden eines Betriebssystems (OS) des Host-Computersystems 102 bereitzustellen. Beispielsweise kann die Firmware-Engine 118 die Boot-Datenbank 132 überprüfen, um die Boot-Informationsdatei 128 zu ermitteln, die mit dem Host-Computersystem 102 verbunden/verriegelt ist. In solchen Beispielen kann die Firmware-Engine 118 die in der Boot-Datenbank 132 gespeicherten Thumbprint-Daten 128D erhalten, um die signierte oder angehängte Boot-Informationsdatei 128B, 128C in einem oder mehreren bootfähigen Speichermedien des Host-Computersystems 102 zu finden. In solchen Beispielen kann die Firmware-Engine 118 zunächst die Boot-Informationsdatei 128 mit den Daumenabdruckdaten 128D in einem Wechselspeichermedium (gemäß der Boot-Sequenz), wie z. B. einer Compact Disk (CD) oder einem USB-Stick, und später in einem festen Speichermedium, wie z. B. dem nichtflüchtigen Speicherlaufwerk 114, suchen. Wie bereits erwähnt, kann die Firmware-Engine 118 das Wechselspeichermedium oder das Festspeichermedium mit Hilfe des gemeinsamen Schlüssels oder Bezeichners, der in den Thumbprint-Daten 128D angegeben ist, durchsuchen, um die angehängte Boot-Informationsdatei 128C zu finden. Dementsprechend kann die Firmware-Engine 118 feststellen, dass die angehängte Boot-Informationsdatei 128C, die in der primären Partition 126A im nichtflüchtigen Speicherlaufwerk 114 gespeichert ist, den gleichen Schlüssel oder Bezeichner wie die Daumenabdruckdaten 128D hat.
  • In einigen Beispielen kann die Firmware-Engine 118, wenn sie die angehängte Boot-Informationsdatei 128C mit dem gemeinsamen Schlüssel oder Bezeichner nicht finden kann, eine Fehlermeldung an den Administrator 108 zurückgeben. Wenn die Firmware-Engine 118 in der Lage ist, die angehängte Boot-Informationsdatei 128C mit dem gemeinsamen Schlüssel oder Bezeichner zu finden, kann die Firmware-Engine 118 in einigen Beispielen auf den öffentlichen Schlüssel des Verwaltbarkeitscontrollers 116 zugreifen, um die Signatur zu validieren (d. h. die gehashten Daten des eindeutigen Bezeichners, der in die angehängte Boot-Informationsdatei 128C eingefügt wurde). In einigen Beispielen kann die Firmware-Engine 118 nach erfolgreicher Validierung der Signatur den Prozessor 110 des Host-Computersystems 102 steuern, damit der Prozessor 110 die angehängte Boot-Informationsdatei 128C zum Laden des Betriebssystems des Host-Computersystems 102 verwenden kann.
  • 2 ist ein Blockdiagramm eines Verwaltbarkeitscontrollers 216 mit einer Verarbeitungsressource 250 und einem maschinenlesbaren Medium 252, das ausführbare Programmanweisungen speichert. Es sollte hier angemerkt werden, dass der in 2 beschriebene Verwaltbarkeitscontroller 216 gleich oder ähnlich dem in 1 beschriebenen Verwaltbarkeitscontroller 116 sein kann. In einigen Beispielen ist die Verarbeitungsressource 250 funktionsfähig mit dem maschinenlesbaren Medium 252 verbunden. Die Verarbeitungsressource 250 kann ein physischer Prozessor sein. In einigen Beispielen kann es sich bei dem physischen Prozessor um einen Mikroprozessor handeln, der für die Durchführung der in 1 beschriebenen Funktionen geeignet ist. In einigen Beispielen ist das maschinenlesbare Medium 252 nicht-transitory und wird alternativ als nicht-transitory maschinenlesbares Medium bezeichnet. Die Verarbeitungsressource 250 führt eine oder mehrere Programmanweisungen aus, um eine oder mehrere der in 1 beschriebenen Funktionen auszuführen.
  • Die Verarbeitungsressource 250 kann Programmbefehle zum Empfangen einer Boot-Informationsdatei des Host-Computersystems von einem Prozessor eines Computergeräts ausführen. In einigen Beispielen handelt es sich bei der Boot-Informationsdatei um mindestens eine Boot-Loader-Datei oder eine Betriebssystem-Kernel-Datei. In einem oder mehreren Beispielen ist die Boot-Informationsdatei eine benutzerdefinierte Boot-Informationsdatei, und das Computergerät ist das Host-Computersystem oder ein externes Computersystem. In einigen Beispielen kann das Empfangen der Boot-Informationsdatei das Ausführen von Programmanweisungen zum Herstellen einer sicheren Verbindung zwischen dem Prozessor des Computergeräts und der Verarbeitungsressource 250 des Verwaltbarkeitscontrollers und das Senden eines vorbestimmten Links zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems zum Freigeben der Boot-Informationsdatei an den Verwaltbarkeitscontroller umfassen. Ferner kann das Empfangen der Boot-Informationsdatei das Ausführen von Programmanweisungen für den Zugriff auf den vorbestimmten Link umfassen, um die Boot-Informationsdatei von dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems zu empfangen.
  • In einigen anderen Beispielen kann das Empfangen der Boot-Informationsdatei das Ausführen von Programmanweisungen zum Herstellen einer Verbindung zwischen der Verarbeitungsressource 250 und dem Prozessor des Computergeräts und das Senden eines vorbestimmten Links zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems umfassen, um die Boot-Informationsdatei mit dem Verwaltungskontroller zu teilen. Ferner kann das Empfangen der Boot-Informationsdatei das Ausführen von Programmanweisungen zum Zugreifen auf die vorbestimmte Verknüpfung umfassen, um eine Kundensignatur in der Boot-Informationsdatei zu validieren, und das Empfangen der Boot-Informationsdatei von dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems bei erfolgreicher Validierung der Kundensignatur in der Boot-Informationsdatei.
  • Ferner kann die Verarbeitungsressource 250 später die eine oder mehrere Programmanweisungen zum Signieren der Boot-Informationsdatei mit einem Hash-Wert eines eindeutigen Bezeichners ausführen und eine signierte Boot-Informationsdatei erzeugen. In einigen Beispielen kann der eindeutige Bezeichner ein privater Schlüssel sein, der der Verwaltbarkeitssteuerung entspricht und in einem vertrauenswürdigen Plattformmodul der Verwaltbarkeitssteuerung gespeichert ist. Der eindeutige Bezeichner kann mit einem Algorithmus wie dem Secure Hash Algorithm (SHA)-256, SHA-512 oder ähnlichem gehasht werden, um die gehashten Daten zu erzeugen.
  • Die Verarbeitungsressource 250 kann ferner die eine oder mehrere Programmanweisungen ausführen, um die signierte Boot-Informationsdatei an den Prozessor des Computergeräts zu übermitteln. In einigen Beispielen kann der Verwaltungskontroller eine feste Verbindung zum Prozessor bereitstellen, um die signierte Boot-Informationsdatei herunterzuladen.
  • Ferner kann die Verarbeitungsressource 250 die eine oder mehrere Programmanweisungen ausführen, um eine Boot-Datenbank, die in einem nichtflüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine des Host-Computersystems gespeichert ist, mit Miniaturabdruckdaten der signierten Boot-Informationsdatei zu aktualisieren, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln, wie als Reaktion auf einen erfolgreichen Download der signierten Boot-Informationsdatei durch den Prozessor. In einigen Beispielen können die Fingerabdruckdaten einen gemeinsamen Schlüssel oder Bezeichner der signierten Boot-Informationsdatei zum Zweck der Identifizierung oder Erkennung der signierten Boot-Informationsdatei enthalten.
  • 3 ist ein Blockdiagramm 300, das eine Verarbeitungsressource 350 und ein maschinenlesbares Medium 352 darstellt, das mit Beispielbefehlen kodiert ist, die von einem Verwaltbarkeitscontroller ausgeführt werden können, um eine Boot-Informationsdatei mit einem Host-Computersystem zu signieren und zu verriegeln. Es sollte hier angemerkt werden, dass der Verwaltbarkeitscontroller, auf den in 3 Bezug genommen wird, gleich oder ähnlich dem Verwaltbarkeitscontroller 116, 216 sein kann, der in 1-2 beschrieben ist. Das maschinenlesbare Medium 352 ist nicht transitorisch und wird alternativ auch als nichttransitorisches maschinenlesbares Medium bezeichnet. In einigen Beispielen kann auf das maschinenlesbare Medium 352 von der Verarbeitungsressource 350 zugegriffen werden. In einigen Beispielen speichert das maschinenlesbare Medium 352 die Programmanweisungen, die der Funktionalität des Verwaltbarkeitscontrollers entsprechen, wie in den 1-2 beschrieben. Der maschinenlesbare Datenträger 352 kann mit beispielhaften ersten, zweiten, dritten und vierten Anweisungen 302, 304, 306 bzw. 308 kodiert sein.
  • Der erste Befehl 302 kann, wenn er von der Verarbeitungsressource 350 ausgeführt wird, Aspekte des Empfangs einer Boot-Informationsdatei des Host-Computersystems von einem Prozessor eines Computergeräts implementieren, wobei der Prozessor von der Verwaltungssteuerung getrennt ist. In einigen Beispielen handelt es sich bei der Boot-Informationsdatei um mindestens eine der folgenden Dateien: eine Boot-Loader-Datei oder eine Betriebssystem-Kernel-Datei. Ebenso kann die Boot-Informationsdatei eine angepasste Boot-Informationsdatei mit einer Vielzahl von Parametern sein, die für die Ausführung einer oder mehrerer Arbeitslasten im Host-Computersystem konfiguriert sind. Der Schritt des Empfangens der Boot-Informationsdatei des Host-Computersystems wird in 1 ausführlich beschrieben.
  • Der zweite Befehl 304 kann, wenn er von der Verarbeitungsressource 350 ausgeführt wird, Aspekte des Signierens der Boot-Informationsdatei mit gehashten Daten eines eindeutigen Bezeichners implementieren, um eine signierte Boot-Informationsdatei zu erzeugen. In einigen Beispielen kann der eindeutige Bezeichner ein privater Schlüssel sein, der dem Verwaltungskontroller entspricht und in einem vertrauenswürdigen Plattformmodul des Verwaltungskontrollers gespeichert ist. Der eindeutige Bezeichner kann mit einem Algorithmus wie dem Secure Hash Algorithm (SHA)-256, SHA-512 oder ähnlichem gehasht werden, um die gehashten Daten zu erzeugen. Der Schritt des Signierens der Boot-Informationsdatei ist in 1 ausführlich beschrieben.
  • Der dritte Befehl 306 kann, wenn er von der Verarbeitungsressource 350 ausgeführt wird, Aspekte der Übermittlung der signierten Boot-Informationsdatei an den Prozessor implementieren. In einigen Beispielen kann der Verwaltungskontroller eine feste Verbindung zum Prozessor herstellen, um die signierte Boot-Informationsdatei herunterzuladen. Der Schritt der Übermittlung der signierten Boot-Informationsdatei ist in 1 ausführlich beschrieben.
  • Der vierte Befehl 308 kann, wenn er von der Verarbeitungsressource 350 ausgeführt wird, Aspekte des Aktualisierens einer Boot-Datenbank, die in einem nichtflüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine des Host-Computersystems gespeichert ist, mit Daumenabdruckdaten der signierten Boot-Informationsdatei implementieren, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln, wie in einer Reaktion auf das erfolgreiche Herunterladen der signierten Boot-Informationsdatei durch den Prozessor. In einigen Beispielen können die Fingerabdruckdaten einen gemeinsamen Schlüssel oder Bezeichner der signierten Boot-Informationsdatei zum Zweck der Identifizierung oder Erkennung der signierten Boot-Informationsdatei enthalten. Der Schritt des Aktualisierens der Boot-Datenbank ist in 1 ausführlich beschrieben.
  • In einigen Beispielen kann das maschinenlesbare Medium 352 mit beispielhaften fünften und sechsten Anweisungen kodiert sein. Beispielsweise kann der fünfte Befehl, wenn er von der Verarbeitungsressource 350 ausgeführt wird, Aspekte des Anhängens der in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeicherten Boot-Informationsdatei implementieren, indem die gehashten Daten des eindeutigen Bezeichners verwendet werden, um eine angehängte Boot-Informationsdatei zu erzeugen. In einem oder mehreren Beispielen sind die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei ähnliche Dateien. Der Schritt des Anhängens der Boot-Datenbank an ein nichtflüchtiges Speicherlaufwerk des Host-Computersystems wird in 1 ausführlich beschrieben. In ähnlicher Weise kann die sechste Anweisung, wenn sie von der Verarbeitungsressource 350 ausgeführt wird, Aspekte der Wiederholung der zweiten, dritten, vierten und fünften Anweisungen des Signierens der Boot-Informationsdatei, des Übermittelns der signierten Boot-Informationsdatei, des Aktualisierens der Boot-Datenbank in der Firmware-Engine und des Anhängens der Boot-Informationsdatei an den nichtflüchtigen Speicher beim Empfang einer aktualisierten Boot-Informationsdatei vom Prozessor implementieren. Die Schritte der Wiederholung der zweiten, dritten, vierten und fünften Anweisung sind in 1 detailliert beschrieben.
  • 4 ist ein Flussdiagramm, das ein Verfahren 400 zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem gemäß den Ausführungsformen der vorliegenden Offenbarung darstellt. Es ist zu beachten, dass das Verfahren 400 in Verbindung mit 1 beschrieben wird. In einem oder mehreren Beispielen wird eine Vielzahl der hierin beschriebenen Schritte des Verfahrens 400 von einem Verwaltungskontroller durchgeführt.
  • Das Verfahren 400 beginnt in Block 402 und geht weiter zu Block 404. In Block 404 umfasst das Verfahren 400 das Anpassen einer Boot-Informationsdatei für ein Host-Computersystem unter Verwendung eines Prozessors eines Computergeräts, wie in 1 beschrieben. In einem oder mehreren Beispielen kann ein Administrator des Computergeräts die Boot-Informationsdatei (auch bekannt als ursprüngliche Boot-Informationsdatei) aktualisieren, die eine Vielzahl von Parametern enthält, die für die Ausführung einer oder mehrerer Arbeitslasten im Host-Computersystem konfiguriert sind. Beispielsweise kann der Administrator nur einige der mehreren Parameter aus der ursprünglichen Boot-Informationsdatei beibehalten (oder die übrigen Parameter deaktivieren), um die ursprüngliche Boot-Informationsdatei anzupassen und die angepasste Boot-Informationsdatei zu erzeugen. In einigen Beispielen ist die ursprüngliche Boot-Informationsdatei mindestens eine Boot-Loader-Datei oder eine Betriebssystem-Kernel-Datei, und das Computergerät ist das Host-Computersystem oder ein externes Computersystem. Das Verfahren 400 wird mit Block 406 fortgesetzt.
  • In Block 406 umfasst das Verfahren 400 den Empfang der angepassten Boot-Informationsdatei des Host-Computersystems vom Prozessor des Computergeräts, wie in 1 beschrieben. In einem oder mehreren Beispielen kann der Verwaltbarkeitscontroller des Host-Computersystems so konfiguriert sein, dass er die angepasste Boot-Informationsdatei vom Prozessor des Computergeräts empfängt. In einigen Beispielen kann der Empfang der angepassten Boot-Informationsdatei beinhalten, dass der Prozessor i) eine sichere Verbindung mit dem Verwaltbarkeits-Controller herstellt und ii) einen vorbestimmten Link zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems postet, um die Boot-Informationsdatei mit dem Verwaltbarkeits-Controller zu teilen. Ferner kann der Empfang der angepassten Boot-Informationsdatei beinhalten, dass der Verwaltbarkeits-Controller iii) auf den vorbestimmten Link zugreift, um die Boot-Informationsdatei von dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems zu empfangen.
  • In einigen anderen Beispielen kann das Empfangen der Boot-Informationsdatei beinhalten, dass der Prozessor i) eine Verbindung mit dem Verwaltbarkeitscontroller herstellt und ii) einen vorbestimmten Link zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems postet, um die Boot-Informationsdatei mit dem Verwaltbarkeitscontroller zu teilen. Ferner kann das Empfangen der Boot-Informationsdatei beinhalten, dass der Verwaltbarkeits-Controller iii) auf den vorbestimmten Link zugreift, um eine Kundensignatur in der Boot-Informationsdatei zu validieren, und die Boot-Informationsdatei von dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems bei erfolgreicher Validierung der Kundensignatur in der Boot-Informationsdatei empfängt. Das Verfahren 400 geht weiter zu Block 408.
  • In Block 408 umfasst das Verfahren 400 das Signieren der benutzerdefinierten Boot-Informationsdatei mit gehashten Daten eines eindeutigen Bezeichners, um eine signierte Boot-Informationsdatei zu erzeugen, wie in 1 beschrieben. In einem oder mehreren Beispielen kann der Verwaltungskontroller des Host-Computersystems die angepasste Boot-Informationsdatei mit den gehashten Daten signieren. In einigen Beispielen kann der eindeutige Bezeichner ein privater Schlüssel sein, der dem Verwaltungskontroller entspricht und in einem vertrauenswürdigen Plattformmodul des Verwaltungskontrollers gespeichert ist. Der eindeutige Bezeichner wird mit einem Algorithmus wie dem sicheren Hash-Algorithmus (SHA)-256, SHA-512 oder ähnlichem gehasht, um die gehashten Daten zu erzeugen. Das Verfahren 400 wird mit Block 410 fortgesetzt.
  • In Block 410 umfasst das Verfahren 400 die Übermittlung der signierten Boot-Informationsdatei an den Prozessor, wie in 1 beschrieben. In einem oder mehreren Beispielen kann der Verwaltungskontroller die signierte Boot-Informationsdatei zum Herunterladen der signierten Boot-Informationsdatei durch den Prozessor übermitteln. In einigen Beispielen kann der Verwaltungskontroller eine feste Verbindung zum Prozessor für das Herunterladen bereitstellen. Das Verfahren 400 geht zu Block 412 über.
  • In Block 412 umfasst das Verfahren 400 die Feststellung, ob die signierte Boot-Informationsdatei vom Prozessor des Computergeräts heruntergeladen wurde. In einem oder mehreren Beispielen kann der Verwaltungskontroller eine Bestätigung vom Prozessor über den Status des Herunterladens der Boot-Informationsdatei vom Prozessor erhalten. Wenn der Verwaltungskontroller daher in Block 412 feststellt, dass der Prozessor in der Lage ist, die signierte Boot-Informationsdatei herunterzuladen, d. h. „ja“ in Block 412, dann geht das Verfahren 400 zu Block 414 über.
  • In Block 414 umfasst das Verfahren 400 das Löschen bereits vorhandener Boot-Daten aus einer Boot-Datenbank, die in einem nichtflüchtigen Direktzugriffsspeicher einer Firmware-Engine im Host-Computersystem gespeichert ist, wie in 1 beschrieben. In einigen Beispielen umfasst das Bereinigen der bereits vorhandenen Daten aus der Boot-Datenbank das Bereinigen gemeinsamer autorisierter Signaturen aller Software (Boot-Zeit-Software), denen der OEM vertraut, in eine bereinigte Boot-Datenbank, die in dem nichtflüchtigen Direktzugriffsspeicher der Firmware-Engine gespeichert ist. Das Verfahren 400 wird mit Block 416 fortgesetzt.
  • In Block 416 umfasst das Verfahren 400 das Aktualisieren der Boot-Datenbank in der Firmware-Engine mit den Fingerabdruckdaten der signierten Boot-Informationsdatei, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln. In einem oder mehreren Beispielen kann der Verwaltbarkeitscontroller die Boot-Datenbank in der Firmware-Engine aktualisieren. In einigen Beispielen können die Daumenabdruckdaten einen gemeinsamen Schlüssel oder Bezeichner der signierten Boot-Informationsdatei haben, um die signierte Boot-Informationsdatei während des anschließenden Bootens des Host-Computersystems durch die Firmware-Engine zu identifizieren oder zu erkennen. Das Verfahren 400 geht weiter zu Block 418.
  • In Block 418 umfasst das Verfahren 400 das Anhängen der in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeicherten Boot-Informationsdatei, indem die gehashten Daten des eindeutigen Bezeichners verwendet werden, um eine angehängte Boot-Informationsdatei zu erzeugen. In einem oder mehreren Beispielen kann der Verwaltungskontroller die benutzerdefinierte Boot-Informationsdatei anhängen, die in dem nichtflüchtigen Speicherlaufwerk gespeichert ist. In einem oder mehreren Beispielen sind die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei ähnliche Dateien. Beispielsweise können die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei denselben gemeinsamen Schlüssel oder Bezeichner und denselben Inhalt im Hauptteil der beiden Dateien haben. Das Verfahren 400 endet in Block 420.
  • Zurück zu einer anderen Funktion in Block 412: Wenn der Verwaltungskontroller feststellt, dass die signierte Boot-Informationsdatei nicht vom Prozessor des Computergeräts heruntergeladen wird, d. h. „nein“ in Block 412, dann endet das Verfahren 400 in Block 420.
  • 5 ist ein Flussdiagramm, das ein Verfahren 500 zum Booten eines Host-Computersystems in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung darstellt. Es ist zu beachten, dass das Verfahren 500 in Verbindung mit 1 beschrieben wird. In einem oder mehreren Beispielen wird eine Vielzahl der hierin beschriebenen Schritte in dem Verfahren 500 von einer Firmware-Engine ausgeführt.
  • Das Verfahren 500 beginnt in Block 502 und wird in Block 504 fortgesetzt. In Block 504 umfasst das Verfahren 500 den Zugriff auf eine Boot-Datenbank, die in einem nichtflüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine gespeichert ist, um einen Fingerabdruck einer signierten Boot-Informationsdatei zu erhalten. In einigen Beispielen können sich die Fingerabdruckdaten auf einen gemeinsamen Schlüssel oder Bezeichner beziehen, der die signierte Boot-Informationsdatei oder eine angehängte Boot-Informationsdatei darstellt. Das Verfahren 500 geht zu Block 506 über.
  • In Block 506 umfasst das Verfahren 500 die Bestimmung, ob ein Host-Computersystem eine Boot-Informationsdatei hat, die mit den Fingerabdruckdaten übereinstimmt. Beispielsweise umfasst das Verfahren 500 das Durchsuchen eines Bootsektors in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems, um die Boot-Informationsdatei mit den Daumenabdruckdaten zu finden, die mit den Daumenabdruckdaten der signierten Boot-Informationsdatei übereinstimmen. Wenn die Firmware-Engine daher in Block 506 feststellt, dass eine angehängte Boot-Informationsdatei die Daumenabdruckdaten aufweist, die mit den Daumenabdruckdaten der signierten Boot-Informationsdatei übereinstimmen, d.h. „ja“ in Block 506, dann geht das Verfahren 500 zu Block 508
  • In Block 508 umfasst das Verfahren 500 ferner den Zugriff auf die angehängte Boot-Informationsdatei, die im Boot-Sektor des nichtflüchtigen Speicherlaufwerks des Host-Computersystems gespeichert ist, auf der Grundlage der in der Boot-Datenbank gespeicherten Daumenabdruckdaten, um gehashte Daten der eindeutigen Kennung zu erhalten, die in der angehängten Boot-Informationsdatei angehängt sind. In einigen Beispielen können die gehashten Daten des eindeutigen Bezeichners an das Ende der angehängten Boot-Informationsdatei angehängt werden. Das Verfahren 500 geht zu Block 510 über.
  • In Block 510 umfasst das Verfahren 500 die Validierung der gehashten Daten der eindeutigen Kennung in der angehängten Boot-Informationsdatei unter Verwendung eines öffentlichen Schlüssels eines Verwaltbarkeitscontrollers. In einigen Beispielen kann die Firmware-Engine über den öffentlichen Schlüssel des Verwaltbarkeitscontrollers verfügen, der in einem nichtflüchtigen Direktzugriffsspeicher der Firmware-Engine gespeichert ist. In solchen Beispielen kann die Firmware-Engine die gehashten Daten unter Verwendung des öffentlichen Schlüssels entschlüsseln, um die Gültigkeit der gehashten Daten zu bestimmen, die aus der angehängten Boot-Informationsdatei stammen. Wenn die Firmware-Engine daher in Block 510 feststellt, dass die aus der angehängten Boot-Informationsdatei erhaltenen gehashten Daten eine gültige Signatur aufweisen, d. h. in Block 510 „ja“, geht das Verfahren 500 zu Block 512 über.
  • In Block 512 umfasst das Verfahren 500 die Erlaubnis für einen Prozessor des Host-Computersystems, die angehängte Boot-Informationsdatei zum Laden eines Betriebssystems des Host-Computersystems zu verwenden. Mit anderen Worten, die Firmware-Engine kann die Boot-Informationsdatei steuern, um das Booten des Host-Computersystems oder das Laden des Betriebssystems des Host-Computersystems zu ermöglichen, wenn die Hash-Daten, die von der angehängten Boot-Informationsdatei erhalten wurden, erfolgreich validiert wurden. Das Verfahren 500 endet in Block 514.
  • Zurück zu einer anderen Funktion in Block 506: Wenn die Firmware-Engine feststellt, dass der Boot-Sektor im nichtflüchtigen Speicherlaufwerk des Host-Computersystems nicht die Boot-Informationsdatei enthält, die mit den Thumbprint-Daten der signierten Boot-Informationsdatei übereinstimmt, d. h. „nein“ in Block 506, dann endet das Verfahren 500 in Block 514. Mit anderen Worten, wenn die Firmware-Engine nicht in der Lage ist, die Boot-Informationsdatei zu finden, die den gleichen Schlüssel oder Bezeichner wie die signierte Boot-Informationsdatei hat, dann kann die Firmware-Engine eine Fehlermeldung an einen Administrator des Host-Computersystems zurückgeben.
  • Ähnlich verhält es sich mit einer anderen Funktion in Block 510: Wenn die Firmware-Engine feststellt, dass die gehashten Daten, die aus der angehängten Boot-Informationsdatei gewonnen wurden, keine gültige Signatur für die des Verwaltungskontrollers des Host-Computersystems aufweisen, d. h. „nein“ in Block 510, dann endet das Verfahren 500 in Block 514. Mit anderen Worten, wenn die Firmware-Engine nicht in der Lage ist, die Signaturen zu validieren, kann die Firmware-Engine die Fehlermeldung an den Administrator des Host-Computersystems zurückgeben.
  • Verschiedene Funktionen, wie sie in den hier beschriebenen Beispielen dargestellt sind, können implementiert werden, um absichtliche oder unabsichtliche Disk-Swap-Unlocks zu vermeiden, bei denen eine versehentlich signierte oder veraltete und anfällige Boot-Informationsdatei in das Host-Computersystem eingeführt werden kann, um den Boot-Prozess zu unterbrechen. Das Host-Computersystem darf nur Informationsdateien booten, die mit einer eindeutigen Kennung des Verwaltungscontrollers des Host-Computersystems signiert und installiert sind.
  • In der vorstehenden Beschreibung sind zahlreiche Details aufgeführt, um das Verständnis des hierin offengelegten Gegenstands zu erleichtern. Die Umsetzung kann jedoch auch ohne einige oder alle dieser Details erfolgen. Andere Implementierungen können Modifikationen, Kombinationen und Variationen der oben beschriebenen Details beinhalten. Es ist beabsichtigt, dass die folgenden Ansprüche solche Modifikationen und Variationen abdecken.

Claims (20)

  1. Ein Verfahren, das Folgendes umfasst: Empfangen einer Boot-Informationsdatei des Host-Computersystems von einem Prozessor eines Computergeräts durch einen Verwaltungskontroller des Host-Computersystems; Signieren der Boot-Informationsdatei durch den Verwaltungskontroller mit gehashten Daten eines eindeutigen Bezeichners, um eine signierte Boot-Informationsdatei zu erzeugen; Übermittlung der signierten Boot-Informationsdatei an den Prozessor durch den Verwaltungskontroller; und als Reaktion auf ein erfolgreiches Herunterladen der signierten Boot-Informationsdatei durch den Prozessor, Aktualisieren einer Boot-Datenbank, die in einem nicht-flüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine des Host-Computersystems gespeichert ist, durch den Verwaltbarkeits-Controller mit Thumbprint-Daten der signierten Boot-Informationsdatei zum Verriegeln des Host-Computersystems mit der signierten Boot-Informationsdatei.
  2. Verfahren nach Anspruch 1, ferner umfassend das Anhängen der Boot-Informationsdatei, die in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeichert ist, durch den Verwaltbarkeits-Controller unter Verwendung der gehashten Daten des eindeutigen Bezeichners, um eine angehängte Boot-Informationsdatei zu erzeugen, wobei die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei ähnliche Dateien sind.
  3. Verfahren nach Anspruch 2, das ferner die Wiederholung der Schritte des Signierens der Boot-Informationsdatei, des Übermittelns der signierten Boot-Informationsdatei, des Aktualisierens der Boot-Datenbank in der Firmware-Engine und des Anhängens der in dem nichtflüchtigen Speicherlaufwerk gespeicherten Boot-Informationsdatei durch den Verwaltungskontroller beim Empfang einer aktualisierten Boot-Informationsdatei von dem Prozessor umfasst.
  4. Verfahren nach Anspruch 2, das ferner umfasst, dass beim anschließenden Booten des Host-Computersystems: Zugreifen auf die angehängte Boot-Informationsdatei, die in dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeichert ist, durch die Firmware-Engine auf der Grundlage der in der Boot-Datenbank gespeicherten Thumbprint-Daten; Validieren der gehashten Daten des eindeutigen Bezeichners in der angehängten Boot-Informationsdatei durch die Firmware-Engine unter Verwendung eines öffentlichen Schlüssels des Verwaltbarkeits-Controllers; und als Reaktion auf eine erfolgreiche Validierung dem Prozessor durch die Firmware-Engine erlauben, die Boot-Informationsdatei zum Laden eines Betriebssystems des Host-Computersystems zu verwenden.
  5. Verfahren nach Anspruch 1, wobei das Empfangen der Boot-Informationsdatei umfasst: Aufbau einer sicheren Verbindung mit dem Verwaltungscontroller durch den Prozessor; Absenden einer vorbestimmten Verbindung zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems durch den Prozessor, um die Boot-Informationsdatei mit dem Verwaltbarkeits-Controller zu teilen; und Zugriff durch den Verwaltungskontroller auf die vorbestimmte Verbindung, um die Boot-Informationsdatei vom nichtflüchtigen Speicherlaufwerk des Host-Computersystems zu empfangen.
  6. Verfahren nach Anspruch 1, wobei das Empfangen der Boot-Informationsdatei umfasst: Herstellung einer Verbindung mit dem Verwaltungscontroller durch den Prozessor; Absenden einer vorbestimmten Verbindung zu einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems durch den Prozessor, um die Boot-Informationsdatei mit dem Verwaltbarkeits-Controller zu teilen; und Zugreifen auf die vorbestimmte Verbindung durch den Verwaltungskontroller, um eine Kundensignatur in der Boot-Informationsdatei zu validieren, und Empfangen der Boot-Informationsdatei von dem nichtflüchtigen Speicherlaufwerk des Host-Computersystems bei erfolgreicher Validierung der Kundensignatur in der Boot-Informationsdatei.
  7. Verfahren nach Anspruch 1, wobei die Boot-Informationsdatei eine benutzerdefinierte Boot-Informationsdatei mit einer Vielzahl von Parametern ist, die für die Ausführung einer oder mehrerer Arbeitslasten in dem Host-Computersystem konfiguriert sind.
  8. Verfahren nach Anspruch 1, wobei die Boot-Informationsdatei mindestens eine Boot-Loader-Datei oder eine Betriebssystem (OS)-Kernel-Datei des Host-Computersystems umfasst.
  9. Verfahren nach Anspruch 1, wobei der eindeutige Bezeichner ein privater Schlüssel ist, der dem Verwaltungskontroller entspricht und in einem vertrauenswürdigen Plattformmodul des Verwaltungskontrollers gespeichert ist.
  10. Verfahren nach Anspruch 1, das ferner umfasst, dass als Reaktion auf ein erfolgreiches Herunterladen der signierten Boot-Informationsdatei durch den Prozessor bereits vorhandene Boot-Daten in der Boot-Datenbank durch den Verwaltbarkeits-Controller in eine bereinigte Boot-Datenbank gelöscht werden, die in dem nichtflüchtigen Direktzugriffsspeicher der Firmware-Engine gespeichert ist, bevor die Boot-Datenbank mit den Thumbprint-Daten der signierten Boot-Informationsdatei aktualisiert wird.
  11. Einen Verwaltbarkeitscontroller für ein Host-Computersystem, der Folgendes umfasst: ein maschinenlesbares Medium, das Programmbefehle speichert; und eine Verarbeitungsressource, die betriebsfähig mit dem maschinenlesbaren Medium verbunden ist, wobei die Verarbeitungsressource die Programmanweisungen ausführt, um: eine Boot-Informationsdatei des Host-Computersystems von einem Prozessor eines Computergeräts empfangen; die Boot-Informationsdatei mit gehashten Daten eines eindeutigen Bezeichners signieren, um eine signierte Boot-Informationsdatei zu erzeugen; Übermittlung der signierten Boot-Informationsdatei an den Prozessor; und als Reaktion auf ein erfolgreiches Herunterladen der signierten Boot-Informationsdatei durch den Prozessor eine Boot-Datenbank, die in einem nichtflüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine des Host-Computersystems gespeichert ist , mit den Fingerabdruckdaten der signierten Boot-Informationsdatei zu aktualisieren, um das Host-Computersystem mit der signierten Boot-Informationsdatei zu verriegeln.
  12. Der Verwaltbarkeitscontroller nach Anspruch 11, wobei die Verarbeitungsressource ferner die Programmanweisungen ausführt, um die in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeicherte Boot-Informationsdatei durch Verwendung der gehashten Daten des eindeutigen Bezeichners anzuhängen, um eine angehängte Boot-Informationsdatei zu erzeugen, wobei die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei ähnliche Dateien sind.
  13. Der Verwaltbarkeitscontroller nach Anspruch 12, wobei die Verarbeitungsressource ferner die Programmanweisungen ausführt, um die Schritte des Signierens der Boot-Informationsdatei, des Übermittelns der signierten Boot-Informationsdatei, des Aktualisierens der Boot-Datenbank in der Firmware-Engine und des Anhängens der in dem nichtflüchtigen Speicherlaufwerk gespeicherten Boot-Informationsdatei durch das verwaltbare Steuergerät zu wiederholen, wenn eine aktualisierte Boot-Informationsdatei vom Prozessor empfangen wird.
  14. Der Verwaltbarkeitscontroller nach Anspruch 11, wobei die Boot-Informationsdatei eine angepasste Boot-Informationsdatei mit einer Vielzahl von Parametern ist, die für die Ausführung einer oder mehrerer Arbeitslasten im Host-Computersystem konfiguriert sind.
  15. Der Verwaltbarkeitscontroller nach Anspruch 11, wobei die Boot-Informationsdatei mindestens eine der folgenden Dateien umfasst: eine Boot-Loader-Datei oder eine Betriebssystem-Kernel-Datei des Host-Computersystems.
  16. Der Verwaltbarkeitscontroller nach Anspruch 11, wobei der eindeutige Bezeichner ein dem Verwaltungssteuergerät entsprechender privater Schlüssel ist, der in einem vertrauenswürdigen Plattformmodul des Verwaltungssteuergeräts gespeichert ist.
  17. Der Verwaltbarkeitscontroller nach Anspruch 11, der ferner als Reaktion auf ein erfolgreiches Herunterladen der signierten Boot-Informationsdatei durch den Prozessor umfasst, dass der Verwaltbarkeitscontroller bereits vorhandene Boot-Daten in der Boot-Datenbank in eine bereinigte Boot-Datenbank löscht, die in dem nichtflüchtigen Direktzugriffsspeicher der Firmware-Engine gespeichert ist, bevor die Boot-Datenbank mit den Thumbprint-Daten der signierten Boot-Informationsdatei aktualisiert wird.
  18. Ein nicht-transitorisches maschinenlesbares Medium, das Befehle speichert, die von einem Verwaltungscontroller eines Host-Computersystems ausgeführt werden können, wobei die Befehle Folgendes umfassen: einen ersten Befehl zum Empfangen einer Boot-Informationsdatei des Host-Computersystems von einem Prozessor eines Computergeräts, wobei der Prozessor von dem Verwaltbarkeitscontroller getrennt ist; eine zweite Anweisung zum Signieren der Boot-Informationsdatei mit gehashten Daten eines eindeutigen Bezeichners, um eine signierte Boot-Informationsdatei zu erzeugen; eine dritte Anweisung zur Übermittlung der signierten Boot-Informationsdatei an den Prozessor; und eine vierte Anweisung zum Aktualisieren einer Boot-Datenbank, die in einem nichtflüchtigen Speicher mit wahlfreiem Zugriff einer Firmware-Engine des Host-Computersystems gespeichert ist, mit Daumenabdruckdaten der signierten Boot-Informationsdatei zum Verriegeln des Host-Computersystems mit der signierten Boot-Informationsdatei als Reaktion auf das erfolgreiche Herunterladen der signierten Boot-Informationsdatei durch den Prozessor.
  19. Ein nicht-transitorisches maschinenlesbares Medium nach Anspruch 18, wobei die Anweisungen ferner eine fünfte Anweisung zum Anhängen der in einem nichtflüchtigen Speicherlaufwerk des Host-Computersystems gespeicherten Boot-Informationsdatei umfassen, indem die gehashten Daten des eindeutigen Bezeichners zum Erzeugen einer angehängten Boot-Informationsdatei verwendet werden, wobei die angehängte Boot-Informationsdatei und die signierte Boot-Informationsdatei ähnliche Dateien sind.
  20. Ein nicht-transitorisches maschinenlesbares Medium nach Anspruch 19, wobei die Befehle ferner einen sechsten Befehl umfassen, um den zweiten Befehl zum Signieren der Boot-Informationsdatei zu wiederholen, den dritten Befehl, um die Boot-Informationsdatei zu übermitteln, den vierten Befehl, um die Boot-Informationsdatei zu aktualisieren, und den fünften Befehl, um die Boot-Informationsdatei an das nichtflüchtige Speicherlaufwerk anzuhängen, wenn eine aktualisierte Boot-Informationsdatei vom Prozessor empfangen wird.
DE102021127242.4A 2021-04-13 2021-10-20 System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem Pending DE102021127242A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/228,917 2021-04-13
US17/228,917 US11907375B2 (en) 2021-04-13 2021-04-13 System and method for signing and interlocking a boot information file to a host computing system

Publications (1)

Publication Number Publication Date
DE102021127242A1 true DE102021127242A1 (de) 2022-10-13

Family

ID=83361971

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021127242.4A Pending DE102021127242A1 (de) 2021-04-13 2021-10-20 System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem

Country Status (3)

Country Link
US (1) US11907375B2 (de)
CN (1) CN115203678A (de)
DE (1) DE102021127242A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989305B2 (en) * 2022-07-21 2024-05-21 Dell Products L.P. Automated update of a customized secure boot policy

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082440B2 (en) 2008-09-29 2011-12-20 Intel Corporation Managed data region for server management
CN102722665B (zh) 2012-05-22 2015-04-29 中国科学院计算技术研究所 基于tpm/vtpm的可信程序列表生成方法及系统
CN102750471B (zh) 2012-05-22 2015-02-11 中国科学院计算技术研究所 基于tpm 的本地验证式启动方法
US9779241B2 (en) 2013-09-25 2017-10-03 Cisco Technology, Inc. Synchronization of UEFI secure boot variables on a managed server
MY177609A (en) 2013-12-04 2020-09-22 Mimos Berhad A system and method to secure virtual machine images in cloud computing
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
US9767045B2 (en) * 2014-08-29 2017-09-19 Memory Technologies Llc Control for authenticated accesses to a memory device
US10812466B2 (en) * 2015-05-05 2020-10-20 Mcafee, Llc Using trusted platform module to build real time indicators of attack information
US10204241B2 (en) * 2017-06-30 2019-02-12 Microsoft Technology Licensing, Llc Theft and tamper resistant data protection
US11416616B2 (en) * 2017-11-30 2022-08-16 Forcepoint Llc Secure boot chain for live boot systems
US20190236279A1 (en) * 2018-01-31 2019-08-01 Hewlett Packard Enterprise Development Lp Perform security action based on inventory comparison
EP3762827A4 (de) 2018-04-17 2021-04-14 Samsung Electronics Co., Ltd. Verfahren und vorrichtung zur verwaltung von kerneldiensten in einem multikernsystem
US10984107B2 (en) * 2018-04-24 2021-04-20 Mellanox Technologies, Ltd. Secure boot
US11151255B2 (en) 2018-10-26 2021-10-19 Dell Products L.P. Method to securely allow a customer to install and boot their own firmware, without compromising secure boot
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
US10997299B2 (en) * 2019-03-12 2021-05-04 Dell Products L.P. System and method of authenticating and restoring firmware of complex logic devices
US10747875B1 (en) 2020-03-19 2020-08-18 Cyberark Software Ltd. Customizing operating system kernels with secure kernel modules
US11907372B2 (en) * 2020-07-13 2024-02-20 Dell Products L.P. Systems and methods for modifying system pre-boot interface configuration based on usage characteristics of an individual information handling system
US11599378B2 (en) * 2020-12-09 2023-03-07 Dell Products L.P. Data encryption key management system

Also Published As

Publication number Publication date
US11907375B2 (en) 2024-02-20
US20220327215A1 (en) 2022-10-13
CN115203678A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102007016054B4 (de) System und Verfahren für eine automatisierte Betriebssysteminstallation
DE102007057901B4 (de) Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor
DE102005038866B4 (de) Sicheres elektronisches Auslieferungssiegel für ein informationsverarbeitendes System
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE112006001744T5 (de) Manipulationsschutz, um Installation von Betriebssystemen und anderer Software zu beschränken
DE102009044576A1 (de) Verwaltung von Hardwarepasswörtern
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE112016000576T5 (de) Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus
DE112009002207B4 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
DE10248465A1 (de) System und Verfahren zum Sichern eines Computers
DE102006009943A1 (de) Verfahren zum Anwenden von tragbarer Software
DE102021109231A1 (de) Bedienungssystem installation mechanismus
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
WO2013102564A1 (de) Rechnersystem zum aktualisieren von programmen und daten in unterschiedlichen speicherbereichen mit oder ohne schreibberechtigungen
DE102022109208A1 (de) Verwaltung der Verwendung von Geheimnissen der Verwaltungssteuerung basierend auf der Besitzgeschichte der Firmware
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
US10855451B1 (en) Removable circuit for unlocking self-encrypting data storage devices
DE102021127242A1 (de) System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem
DE102009008362B4 (de) Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System
DE102021127629A1 (de) Virtualisierung der sicheren speicherung eines baseboard management controllers auf einem host- computergerät
DE102021101891A1 (de) Bestimmen , ob eine aktion zur berechnung ausgeführt werden soll gerät basierend auf der analyse von endorsement-informationen eines sicherheits-coprozessors
DE112008002005T5 (de) System und Verfahren einer eingriffbeständigen Steuerung
WO2017005410A1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US

R012 Request for examination validly filed