DE102021105949A1 - Freischaltung des zugriffs auf informationen in abhängigkeit von der validierung von programmcodes virtueller entitäten - Google Patents

Freischaltung des zugriffs auf informationen in abhängigkeit von der validierung von programmcodes virtueller entitäten Download PDF

Info

Publication number
DE102021105949A1
DE102021105949A1 DE102021105949.6A DE102021105949A DE102021105949A1 DE 102021105949 A1 DE102021105949 A1 DE 102021105949A1 DE 102021105949 A DE102021105949 A DE 102021105949A DE 102021105949 A1 DE102021105949 A1 DE 102021105949A1
Authority
DE
Germany
Prior art keywords
computing device
information
validation
management controller
virtual
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
DE102021105949.6A
Other languages
English (en)
Inventor
Joseph Wright
Chris Davenport
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 DE102021105949A1 publication Critical patent/DE102021105949A1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/602Providing cryptographic facilities or services
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

In einigen Beispielen enthält eine Verwaltungssteuerung eine Kommunikationsschnittstelle, um mit einer Rechenvorrichtung zu kommunizieren, wobei die Verwaltungssteuerung von einem Prozessor der Rechenvorrichtung getrennt ist. Die Verwaltungssteuerung enthält einen Verwaltungsprozessor, um eine Validierung von Programmcodes virtueller Entitäten der Rechenvorrichtung durchzuführen und als Reaktion auf die Validierung der Programmcodes den Zugriff auf Informationen in einem Informationsspeicher freizugeben, um den Zugriff auf die Informationen durch die Rechenvorrichtung zu ermöglichen, wobei die Informationen zur Verwendung durch die virtuellen Entitäten der Rechenvorrichtung bestimmt sind und wobei der Verwaltungsprozessor den Zugriff auf die Informationen in dem Informationsspeicher vor der Validierung sperren soll.

Description

  • Hintergrund
  • Ein Computergerät kann virtuelle Entitäten enthalten, wie z. B. Container oder virtuelle Maschinen (VMs). Jede virtuelle Entität kann für die Ausführung im Computergerät initialisiert und konfiguriert werden. Die Initialisierung und Konfiguration jeder virtuellen Entität kann auf Konfigurationsdaten und anderen Informationen basieren.
  • Figurenliste
  • Einige Implementierungen der vorliegenden Offenbarung werden mit Bezug auf die folgenden Figuren beschrieben.
    • und sind Blockdiagramme von Computergehäusen, die virtuelle Entitäten und einen Management-Controller gemäß einiger Beispiele enthalten.
    • ist ein Blockdiagramm eines Management-Controllers, gemäß einiger Beispiele.
    • ist ein Blockdiagramm eines Speichermediums, das maschinenlesbare Anweisungen gemäß einigen Beispielen speichert.
    • ist ein Flussdiagramm eines Prozesses gemäß einiger Beispiele.
  • In den Zeichnungen bezeichnen identische Referenznummern ähnliche, aber nicht notwendigerweise identische, Elemente. Die Abbildungen sind nicht notwendigerweise maßstabsgetreu, und die Größe einiger Teile kann zur besseren Veranschaulichung des gezeigten Beispiels übertrieben sein. Darüber hinaus bieten die Zeichnungen Beispiele und/oder Implementierungen, die mit der Beschreibung übereinstimmen; die Beschreibung ist jedoch nicht auf die in den Zeichnungen dargestellten Beispiele und/oder Implementierungen beschränkt.
  • Detaillierte Beschreibung
  • In der vorliegenden Offenlegung schließt die Verwendung des Begriffs „ein“, „eine“ oder „die“ auch die Pluralformen ein, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Auch der Begriff „beinhaltet“, „einschließlich“, „umfasst“, „mit“, „haben“ oder „mit“, wenn er in dieser Offenbarung verwendet wird, spezifiziert das Vorhandensein der angegebenen Elemente, schließt aber das Vorhandensein oder die Zugabe anderer Elemente nicht aus.
  • Eine „virtuelle Entität“ kann sich auf eine logische Entität innerhalb eines Computergeräts beziehen, die in der Lage ist, Aufgaben der virtuellen Entität unabhängig von einer anderen virtuellen Entität im Computergerät auszuführen. Ein Beispiel für eine virtuelle Entität ist ein Container. Ein weiteres Beispiel für eine virtuelle Entität ist eine virtuelle Maschine (VM). In Beispielen, in denen eine virtuelle Entität ein Container oder eine VM ist, stellt die virtuelle Entität eine virtuelle Umgebung bereit, in der ein Programm (oder mehrere Programme) ausgeführt werden kann, so dass das/die Programm(e), das/die in der virtuellen Umgebung ausgeführt wird/werden, von dem/den Programm(en) in anderen virtuellen Umgebungen (andere Container oder VMs) isoliert ist.
  • Container sind VMs ähnlich, aber Container haben entspannte Isolationseigenschaften, um ein Host-Betriebssystem eines Computergeräts unter mehreren Anwendungsprogrammen, die in den Containern ausgeführt werden, zu teilen. Container bieten eine Möglichkeit, das Host-Betriebssystem zu virtualisieren, sodass mehrere Arbeitslasten (von Anwendungsprogrammen in den Containern) auf einer einzigen Instanz des Host-Betriebssystems ausgeführt werden können. Im Gegensatz dazu haben VMs jeweilige Gastbetriebssysteme, die in den entsprechenden VMs laufen. Ein Anwendungsprogramm in einer VM läuft in der Umgebung des Gastbetriebssystems der VM.
  • Eine virtuelle Entität kann auf der Grundlage von Konfigurationsdaten in einem Computergerät initialisiert und ausgeführt werden. Ein „Konfigurationsdaten“ für eine virtuelle Entität kann verschiedene Eigenschaften der virtuellen Entität definieren. Zum Beispiel können die Konfigurationsdaten eine Spezifikation (z. B. in Form einer Vorlage) enthalten, die den Namen, die Funktionen und andere Eigenschaften der virtuellen Entität definiert. Als weiteres Beispiel können die Konfigurationsdaten Werte von Variablen, Aufgaben, die von der virtuellen Entität ausgeführt werden sollen, usw. festlegen.
  • In einigen Fällen können die Konfigurationsdaten virtueller Entitäten an einem ungesicherten oder unzureichend gesicherten Speicherort in einem Computergerät gespeichert werden, wodurch ein Angreifer unbefugten Zugriff erlangen oder eine Beschädigung der Konfigurationsdaten verursachen kann. In einigen Fällen können die Konfigurationsdaten beispielsweise mit einem Betriebssystem des Computergeräts gespeichert werden, das einem Angriff durch einen Angreifer ausgesetzt sein kann. Ein Angreifer kann sich auf Malware, einen menschlichen Hacker oder jede andere Entität beziehen, die nicht berechtigt ist, eine Operation durchzuführen oder auf Informationen eines Computergeräts zuzugreifen. Ein Angreifer kann über die Konfigurationsdaten angreifen, indem er die Konfigurationsdaten so verändert, dass sich die virtuelle Entität nicht in der erwarteten Weise verhält, die Konfigurationsdaten löscht oder anderweitig beschädigt, so dass die virtuelle Entität nicht ausgeführt werden kann, die Konfigurationsdaten als Teil des Datendiebstahls abruft und so weiter.
  • Wenn die Konfigurationsdaten kompromittiert sind, kann die virtuelle Entität möglicherweise gar nicht oder nicht richtig ausgeführt werden. In anderen Fällen, wenn die Konfigurationsdaten kompromittiert sind, kann ein Angreifer unbefugten Zugriff auf eine Ressource oder Daten im Computergerät erhalten. In weiteren Beispielen, wenn die Konfigurationsdaten von einer nicht autorisierten Entität abgerufen werden, kann die nicht autorisierte Entität die Konfigurationsdaten auf nicht autorisierte Weise verwenden.
  • In Übereinstimmung mit einigen Implementierungen der vorliegenden Offenbarung kann eine Verwaltungssteuerung, die von einem Prozessor einer Rechenvorrichtung getrennt ist, zur Validierung von Programmcode virtueller Entitäten in der Rechenvorrichtung verwendet werden. Als Reaktion auf die Validierung des Programmcodes gibt die Verwaltungssteuerung den Zugriff auf Informationen in einem Informationsspeicher frei, um den Zugriff auf die Informationen durch das Computergerät zu ermöglichen, wobei die Informationen zur Verwendung durch die virtuellen Entitäten des Computergeräts bestimmt sind und die Verwaltungssteuerung den Zugriff auf die Informationen im Informationsspeicher vor der Validierung sperren soll.
  • ist ein Blockdiagramm eines Computergehäuses 100, das ein Computergerät 102 und einen Baseboard-Management-Controller (BMC) 104 enthält. Der BMC 104 ist ein Beispiel für einen Management-Controller, der von einem Prozessor 106 des Computergeräts 102 getrennt ist. Ein Prozessor kann einen Mikroprozessor, einen Kern eines Multi-Core-Mikroprozessors, einen Mikrocontroller, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array oder eine andere Hardware-Verarbeitungsschaltung umfassen.
  • Das BMC 104 kann mit dem Computergerät 102 über eine sichere Verbindung 108 zwischen dem Computergerät 102 und dem BMC 104 kommunizieren.
  • Eine „sichere Verbindung“ kann sich auf ein beliebiges Kommunikationsmedium beziehen, sei es physisch oder logisch, das die BMC 104 vor unberechtigtem Zugriff durch einen Angreifer schützt. Beispielsweise kann sich die BMC 104 auf einem Kommunikationskanal (z. B. einem Bus, einem Netzwerk usw.) befinden, auf den Programme, die im Computergerät 102 ausgeführt werden können, wie Anwendungsprogramme oder ein Betriebssystem (OS), keinen Zugriff haben. In anderen Beispielen kann die Kommunikation über die sichere Verbindung 108 geschützt werden, z. B. durch einen Verschlüsselungsmechanismus, bei dem die zwischen der BMC 104 und dem Computergerät 102 ausgetauschten Informationen verschlüsselt werden.
  • In einigen Beispielen kann ein „Computergerät“ eine beliebige oder eine Kombination der folgenden Geräte umfassen: einen Server-Computer, einen Desktop-Computer, ein Notebook, einen Tablet-Computer, ein Smartphone, einen Kommunikationsknoten (z. B. einen Switch, einen Router usw.), einen Speicherserver, ein Fahrzeug oder eine Steuerung des Fahrzeugs usw.
  • Obwohl das Computergehäuse 100 mit nur einem Computergerät 102 zeigt, kann das Computergehäuse 100 in anderen Beispielen auch mehrere Computergeräte enthalten. In solchen Beispielen kann das Computergehäuse 100 die Form eines Racks haben, das eine Reihe von Computergeräten enthält. Das BMC 104 (oder alternativ mehrere BMCs) kann mit den mehreren Computergeräten im Computergehäuse 100 kommunizieren.
  • Wie hierin verwendet, ist ein „BMC“ ein spezialisierter Service-Controller, der den physischen Zustand eines Computergeräts (wie 102) mithilfe von Sensoren überwacht und mit einem Managementsystem 105 (das z. B. vom Computergehäuse 100 entfernt ist) über eine unabhängige „Out-of-Band“-Verbindung kommuniziert. Die BMC 104 kann auch mit Anwendungen kommunizieren, die auf einer Betriebssystemebene über einen IOCTL-Schnittstellentreiber (Input/Output Controller), eine REST-Anwendungsprogrammschnittstelle (API) (Representational State Transfer) oder einen anderen Systemsoftware-Proxy ausgeführt werden, der die Kommunikation zwischen der BMC 104 und Anwendungsprogrammen erleichtert. Die BMC 104 kann auf Hardware-Ebene Zugriff auf HardwareKomponenten haben, die sich im Computergerät befinden. Die BMC 104 kann in der Lage sein, die Hardwarekomponenten direkt zu verändern (z. B. Einstellungen oder Konfigurationen der Hardwarekomponenten). Die BMC 104 kann unabhängig von einem Betriebssystem 109 des Computergeräts 102 arbeiten. Die BMC 104 kann sich auf der Hauptplatine oder der Hauptplatine des Computergeräts 102 befinden, um von der BMC 104 überwacht zu werden. Die Tatsache, dass die BMC 104 auf einer Hauptplatine des verwalteten Computergeräts 102 montiert oder anderweitig mit dem verwalteten Computergerät 102 verbunden oder daran angebracht ist, verhindert nicht, dass die BMC 104 als getrennt von einer Verarbeitungsressource (z. B. 106 im Computergerät 102) betrachtet wird, die das Betriebssystem 109 ausführt. Das BMC 104 verfügt über Verwaltungsfähigkeiten, um Komponenten des Computergeräts 102 zu verwalten. Beispiele für Verwaltungsfähigkeiten des BMC 104 können eine beliebige oder eine Kombination aus dem Folgenden umfassen: Stromverbrauchssteuerung zur Durchführung des Stromverbrauchsmanagements des Computergeräts 102 (z. B. zum Übergang des Computergeräts zwischen verschiedenen Stromverbrauchszuständen als Reaktion auf erkannte Ereignisse), thermische Überwachung und Steuerung des Computergeräts 102 (z. B. zur Überwachung von Temperaturen des Computergeräts und zur Steuerung von Wärmemanagementgeräten des Computergeräts), Lüftersteuerung von Lüftern im Computergerät 102, Systemzustandsüberwachung basierend auf der Überwachung von Messdaten verschiedener Sensoren des Computergeräts 102, Fernzugriff auf das Computergerät 102 (z. B. um über ein Netzwerk auf das Computergerät zuzugreifen), Fernneustart des Computergeräts 102 (um das Computergerät mit einem Fernbefehl zum Neustart zu veranlassen), Systemeinrichtung und - bereitstellung des Computergeräts 102, Systemsicherheit, um Sicherheitsverfahren im Computergerät 102 zu implementieren, und so weiter.
  • In einigen Beispielen kann das BMC 104 eine sogenannte „Lights-Out“-Funktionalität für Computergeräte bereitstellen. Die Lights-Out-Funktionalität kann es einem Benutzer, z. B. einem Systemadministrator, ermöglichen, Verwaltungsvorgänge auf dem Computergerät 102 durchzuführen, selbst wenn das Betriebssystem 109 nicht auf dem Computergerät 102 installiert oder nicht funktionsfähig ist.
  • Darüber hinaus kann die BMC 104 in einigen Beispielen, wie in gezeigt, mit Hilfsenergie betrieben werden, die von einer Hilfsstromversorgung 110 (z. B. einer Batterie) bereitgestellt wird; infolgedessen muss das Computergerät 102 nicht eingeschaltet sein, damit die BMC 104 die Operationen der BMC durchführen kann. Die vom BMC 104 bereitgestellten Dienste können als „Out-of-Band“-Dienste betrachtet werden, da das Betriebssystem 109 möglicherweise nicht läuft und das Computergerät 102 in manchen Fällen ausgeschaltet ist oder nicht ordnungsgemäß funktioniert (z. B. wenn das Computergerät 102 einen Fehler oder einen Hardwareausfall aufweist).
  • Die BMC 104 kann eine Kommunikationsschnittstelle 112, z. B. eine Netzwerkschnittstelle und/oder eine serielle Schnittstelle, enthalten, die ein Gerät eines Administrators oder einer anderen Instanz (z. B. das Managementsystem 105) verwenden kann, um aus der Ferne mit der BMC 104 zu kommunizieren. Die Kommunikationsschnittstelle 112 kann einen Transceiver zum Senden und Empfangen von Signalen über einen Kommunikationskanal sowie eine oder mehrere Protokollschichten umfassen, die mit einem oder mehreren Kommunikationsprotokollen verbunden sind, die für die Kommunikation von Daten über den Kommunikationskanal verwendet werden. Ein „Out-of-Band“-Dienst kann von der BMC 104 über einen dedizierten Verwaltungskanal (z. B. die Kommunikationsschnittstelle) bereitgestellt werden und ist unabhängig davon verfügbar, ob sich das Computergerät 102 in einem eingeschalteten Zustand befindet oder nicht.
  • Die Hilfsstromversorgung 110 ist getrennt von einer Hauptstromversorgung (nicht dargestellt), die das Computergerät 102 mit Strom versorgt.
  • Das BMC 104 umfasst außerdem einen Prozessor 114 und einen nichtflüchtigen Speicher 116. Der nichtflüchtige Speicher 116 kann unter Verwendung einer nichtflüchtigen Speichervorrichtung (oder mehrerer nichtflüchtiger Speichervorrichtungen) implementiert werden, wie z. B. einer Flash-Speichervorrichtung oder einer anderen Art von Speichervorrichtung, die die in der Speichervorrichtung gespeicherten Daten beibehält, auch wenn die Stromversorgung der Speichervorrichtung unterbrochen wird.
  • Der nichtflüchtige Speicher 116 speichert Programmcode-Validierungsanweisungen 118 (z. B. in Form von Firmware oder Software), die auf dem Prozessor 114 des BMC 104 ausführbar sind, um Programmcodes des Computergeräts 102 zu validieren. Die Programmcodes des Computergeräts 102 umfassen die folgenden Programmcodes (einschließlich maschinenlesbarer Anweisungen), die in einem Speichermedium 128 des Computergeräts 102 gespeichert sind: Programmcodes der virtuellen Entität 130, Firmware 132, die den Boot-Code 134 enthält, und das Betriebssystem 109. Die Validierung der Programmcodes, die von den Programmcode-Validierungsanweisungen 118 durchgeführt wird, umfasst eine Sequenz von Validierungsaufgaben (auch als „Root of Trust“-Sequenz bezeichnet), die verschiedene Programmcodes in einer bestimmten Reihenfolge validieren.
  • Das Speichermedium 128 kann mit einem Speichergerät oder mehreren Speichergeräten implementiert werden. Beispiele für Speichergeräte können eine beliebige oder eine Kombination der folgenden Elemente sein: ein nichtflüchtiges Speichergerät, ein plattenbasiertes Speichergerät, ein flüchtiges Speichergerät usw.
  • Die Abfolge der Validierungsaufgaben kann z. B. die folgende Sequenz umfassen. Beim Einschalten des Computergeräts 102 holt die Programmcode-Validierungsanweisung 118 den Startup-Code aus dem Speichermedium 128 des Computergeräts 102. Der Startup-Code kann einen Boot-Block des Boot-Codes 134 enthalten. Der Bootcode 134 wird ausgeführt, um verschiedene elektronische Komponenten des Computergeräts 102 zu initialisieren. Der Boot-Block des Boot-Codes 134 bezieht sich auf einen anfänglichen Teil des Boot-Codes 134, der verwendet wird, um den ersten Start des Computergeräts 102 durchzuführen.
  • Die Programmcode-Validierungsanweisungen 118 sind ausführbar, um den Startup-Code zu validieren, z. B. durch Berechnen eines Hash-Werts auf der Grundlage einer auf den Startup-Code angewendeten Hash-Funktion und Vergleichen des berechneten Hash-Werts mit einem gespeicherten Hash-Wert, um festzustellen, ob der Startup-Code gültig ist oder nicht (d. h. nicht auf unautorisierte Weise geändert wurde). Die Hash-Funktion kann eine kryptografische Hash-Funktion sein, wie z. B. eine SHA-Funktion (Secure Hash Algorithm), eine HMAC-Hash-Funktion (Hash-based Message Authentication Code), die auch als Keyed-Hashing for Message Authentication-Hash-Funktion bezeichnet wird, wie im Request for Comments (RFC) 6151 vom Februar 1997 beschrieben, eine bcrypt-Hash-Funktion usw.
  • Wenn die Programmcode-Validierungsanweisungen 118 den Startcode erfolgreich validieren, kann die BMC 104 den Prozessor 106 des Computergeräts 102 aus dem Reset herausnehmen und erlaubt dem Computergerät 102, einen zusätzlichen Teil der Programmcodes abzuholen. Zum Beispiel können aufeinanderfolgende Teile des Startcodes 134 und dann die Firmware 132 abgerufen werden, wenn die jeweiligen Programmcodes durch die Programmcode-Validierungsanweisungen 118 des BMC 104 validiert werden. Sobald die Firmware 132 validiert ist, kann der Kernel des Betriebssystems 109 zur Validierung durch die Programmcode-Validierungsanweisungen 118 abgerufen werden, gefolgt vom Abrufen und Validieren eines restlichen Teils des Betriebssystems 109. Sobald das Betriebssystem 109 validiert ist, können die Programmcode-Validierungsanweisungen 118 des BMC 104 einen Anwendungsstapel des Computergeräts 102 validieren. In einigen Beispielen kann der Anwendungsstapel die Programmcodes 130 der virtuellen Entität des Computergeräts 102 enthalten.
  • Jeder Programmcode 130 für virtuelle Entitäten stellt bei Ausführung durch das Computergerät 102 eine entsprechende virtuelle Entität im Computergerät 102 bereit. Die virtuellen Entitäten, die von den jeweiligen Programmcodes für virtuelle Entitäten 130 bereitgestellt werden, können Container, VMs usw. umfassen. Die Programmcode-Validierungsanweisungen 118 der BMC 104 können, wenn sie von der BMC 104 ausgeführt werden, die Programmcodes der virtuellen Entitäten 130 validieren.
  • Die Validierung jedes Programmcodes des Computergeräts 102 kann Hash-Werte verwenden, wie oben für die Validierung des Startcodes beschrieben. In anderen Beispielen kann ein Programmcode basierend auf der Verwendung von Verschlüsselungsschlüsseln, kryptografischen Signaturen usw. validiert werden. Verschlüsselungsschlüssel können zum Entschlüsseln von verschlüsseltem Programmcode verwendet werden, um festzustellen, ob der verschlüsselte Programmcode erfolgreich entschlüsselt werden kann. Eine kryptografische Signatur kann verwendet werden, um festzustellen, ob die mit einem Programmcode verbundene Signatur eine gültige Signatur ist.
  • Wie in gezeigt, speichert der nichtflüchtige Speicher 116 ferner Konfigurationsdaten 136 für virtuelle Entitäten, die den Programmcodes 130 für virtuelle Entitäten des Computergeräts 102 entsprechen. Genauer gesagt kann auf die Konfigurationsdaten 136 durch einen entsprechenden Programmcode 130 für virtuelle Entitäten zugegriffen werden, um die jeweilige virtuelle Entität zu konfigurieren, die in der Rechenvorrichtung 102 gestartet werden soll. Beispiele für die Konfigurationsdaten 136 umfassen die weiter oben diskutierten Konfigurationsdaten.
  • Gemäß einigen Implementierungen der vorliegenden Offenbarung bleiben die im nichtflüchtigen Speicher 116 der BMC 104 gespeicherten Konfigurationsdaten 136 für den Zugriff durch das Computergerät 102 (oder genauer gesagt durch einen Programmcode 130 für eine virtuelle Entität im Computergerät 102) gesperrt, bis die Abfolge der Validierungsaufgaben durch die von der BMC 104 ausgeführten Programmcode-Validierungsanweisungen 118 erfolgreich abgeschlossen wurde. In einigen Beispielen kann sich das Sperren der Konfigurationsdaten 136 vor dem Zugriff auf einen Mechanismus oder eine Technik beziehen, durch den/die eine Anfrage nach den Konfigurationsdaten 136 von der BMC 104 abgelehnt wird.
  • In weiteren Beispielen kann sich das Sperren der Konfigurationsdaten 136 vor dem Zugriff darauf beziehen, dass verhindert wird, dass ein Schlüssel (wie z. B. ein Verschlüsselungsschlüssel) an einen Programmcode 130 der virtuellen Entität übermittelt wird, so dass der Programmcode 130 der virtuellen Entität nicht in der Lage ist, die Konfigurationsdaten 136 zu entschlüsseln, die in dem nichtflüchtigen Speicher 116 in verschlüsselter Form gespeichert sein können. Der Schlüssel kann als Teil der Schlüsseldaten 138 im nicht-flüchtigen Speicher 116 gespeichert werden. Sobald der Verschlüsselungsschlüssel (oder genauer gesagt ein Entschlüsselungsschlüssel) dem Programmcode 130 der virtuellen Entität zur Verfügung gestellt wird, ist der Programmcode 130 der virtuellen Entität in der Lage, die verschlüsselten Konfigurationsdaten 136 zu entschlüsseln, um auf die entschlüsselten Konfigurationsdaten 136 zuzugreifen.
  • In einigen Beispielen können die Schlüsseldaten 138 auch einen Authentifizierungsschlüssel (oder mehrere Authentifizierungsschlüssel) enthalten, den virtuelle Entitäten, die den Programmcodes der virtuellen Entitäten 130 entsprechen, verwenden können, um sich gegenseitig zu authentifizieren. Zum Beispiel können mehrere virtuelle Entitäten Teil eines Clusters virtueller Entitäten sein, und solche virtuellen Teilnehmer können miteinander interagieren, um bestimmte Aufgaben auszuführen. Die Interaktionen zwischen den virtuellen Entitäten werden gesichert, indem die virtuellen Entitäten sich gegenseitig mit dem/den Authentifizierungsschlüssel(n) authentifizieren können.
  • zeigt ein Beispiel eines Computergehäuses 200, das eine Recheneinheit 202 enthält, die so angeordnet ist, dass sie einen Container gemäß KUBERNETES bereitstellt. KUBERNETES bietet eine portable, erweiterbare Open-Source-Plattform für die Verwaltung von containerisierten Workloads und Diensten, die sowohl eine deklarative Konfiguration als auch eine Automatisierung ermöglicht.
  • Die KUBERNETES-Plattform besteht aus einer KUBERNETES-Kontrollebene (auch KUBERNETES-Master genannt) und einer Anzahl (eins oder größer als eins) von KUBERNETES-Workern. Der Master und der/die Worker bilden zusammen einen Cluster.
  • Der Master bezieht sich auf eine Sammlung von Prozessen zur Verwaltung des Clusterzustandes. Die Prozesse des Masters können in einem Master-Knoten 204 ausgeführt werden. Ein „Knoten“ bezieht sich auf einen Arbeitsrechner, der in Form einer VM oder eines physischen Rechners vorliegen kann.
  • Die Prozesse eines Workers werden auf einem Worker-Knoten 206 ausgeführt. Ein Cluster kann den Master-Knoten 204 und eine Anzahl (einen oder mehr als einen) von Worker-Knoten 206 umfassen. Ein Worker-Knoten 206 führt ein containerisiertes Anwendungsprogramm aus. Genauer gesagt hostet ein Arbeitsknoten 206 Pods, die die Komponenten der Arbeitslast des im Arbeitsknoten 206 ausgeführten Anwendungsprogramms sind. Der Master-Knoten 204 hostet auch Pods, die die Prozesse des Masters zur Verwaltung des Clusters bereitstellen.
  • Ein „Pod“ ist die grundlegende Ausführungseinheit in einer KUBERNETES-Umgebung. Anders ausgedrückt ist ein Pod die kleinste und einfachste Einheit im KUBERNETES-Objektmodell, die erstellt bzw. deployed werden kann. Ein Pod repräsentiert Prozess(e), die im Cluster laufen. Ein Pod kann einen einzelnen Container ausführen oder mehrere Container, die zusammenarbeiten.
  • Ein Pod kapselt den Container einer Anwendung (oder in einigen Fällen mehrere Container), Speicherressourcen, eine eindeutige Netzwerkadresse (z. B. eine Internetprotokoll- oder IP-Adresse) und Optionen, die festlegen, wie der/die Container ausgeführt werden sollen.
  • In einigen Beispielen können die Prozesse des Master-Knotens 204 in einer KUBERNETES-Umgebung einen API-Server-Pod 208, einen Scheduler-Pod 210 und einen Controller-Manager-Pod 212 umfassen.
  • Der API-Server-Pod 208 stellt die API der KUBERNETES-Kontrollebene zur Verfügung, wobei die API das Abrufen, Erstellen, Aktualisieren und Löschen von Ressourcen unterstützt, z. B. durch Verwendung von Hypertext Transfer Protocol (HTTP)-Befehlen.
  • Der Scheduler-Pod 210 kann auf neu erstellte Pods achten und wählt einen Arbeitsknoten 206 zur Ausführung jedes neu erstellten Pods aus. In einigen Beispielen können Faktoren, die für Planungsentscheidungen berücksichtigt werden, eine beliebige oder eine Kombination der folgenden Faktoren umfassen: Ressourcenanforderungen, Hardware-/Software-/Richtlinienbeschränkungen, Affinitäts- und Anti-Affinitäts-Spezifikationen, Datenlokalität, Interferenzen zwischen Arbeitslasten, Fristen und so weiter.
  • Der Controller-Manager-Pod 212 kann erkennen und darauf reagieren, wenn Arbeiterknoten 206 ausfallen, Konten und API-Zugriffstoken erstellen und so weiter.
  • Obwohl bestimmte Beispielprozesse des Masterknotens 204 aufgeführt sind, können in anderen Beispielen auch andere Prozesse im Arbeitsknoten 206 laufen.
  • In der KUBERNETES-Umgebung kann jeder Arbeitsknoten 206 einen Kubelet-Pod 214 und eine Anzahl (eins oder mehr als eins) von Worker-Pods 216 ausführen. Der Kubelet-Pod 214 kann mit dem Master kommunizieren, damit der Arbeitsknoten 206 vom Master gesteuert werden kann (oder genauer gesagt, von den Prozessen des Masterknotens 204). Jeder Worker-Pod 216 führt die Arbeitslast eines Anwendungsprogramms aus, das von dem Worker-Knoten 206 gehostet wird. Obwohl nicht dargestellt, kann ein Arbeitsknoten 206 auch einen Proxy-Pod ausführen, bei dem es sich um einen Netzwerk-Proxy handelt, der die Netzwerkregeln für den Cluster verwaltet.
  • Das Computergehäuse 200 enthält außerdem die BMC 104, um ähnliche Aufgaben wie die BMC 104 von durchzuführen. Genauer gesagt können die Programmcode-Validierungsanweisungen 118 Programmcodes der Rechenvorrichtung 202 validieren, einschließlich der Programmcodes für den KUBERNETES-Master und den/die Worker, zusätzlich zu den anderen in dargestellten Programmcodes. Die BMC 104 kann den Zugriff auf die im nichtflüchtigen Speicher 116 der BMC gespeicherten Konfigurationsdaten 136 sperren, bis die Programmcode-Validierungsanweisungen 118 die Programmcodes des Rechengeräts 202 erfolgreich validiert haben, einschließlich der Programmcodes für den Masterknoten 204 und den/die Arbeitsknoten 206.
  • ist ein Blockdiagramm eines Management-Controllers 300 (z. B. der BMC 104 von oder ) gemäß einigen Beispielen. Der Management-Controller 300 umfasst eine Kommunikationsschnittstelle 302 zur Kommunikation mit einem Computergerät (z. B. 102 in oder in ). Der Management-Controller 300 ist von einem Prozessor des Computergeräts getrennt.
  • Die Verwaltungssteuerung 300 enthält einen Verwaltungsprozessor 304 zur Durchführung verschiedener Aufgaben. Zu den Aufgaben des Verwaltungsprozessors 304 gehört eine Aufgabe zur Validierung virtueller Entitäten 306, um eine Validierung von Programmcodes virtueller Entitäten des Computergeräts durchzuführen. Beispiele für die virtuellen Entitäten können Container (wie sie von Pods in den Worker-Knoten 206 von bereitgestellt werden), VMs und so weiter umfassen. In einigen Beispielen kann die Validierung auf der Berechnung eines Hash-Werts für jeden der Programmcodes basieren.
  • Zu den Aufgaben des Verwaltungsprozessors 304 gehört eine Aufgabe 308 zum Entsperren des Informationsspeichers, um als Reaktion auf die Validierung der Programmcodes den Zugriff auf Informationen (z. B. die Konfigurationsdaten 126 von oder ) in einem Informationsspeicher (z. B. dem nichtflüchtigen Speicher 116 von oder ) freizugeben, um den Zugriff auf die Informationen durch das Rechengerät zu ermöglichen. Die Informationen sind für die Verwendung durch die virtuellen Entitäten des Computergeräts bestimmt, wobei der Verwaltungsprozessor 304 den Zugriff auf die Informationen im Informationsspeicher vor der Validierung sperren soll.
  • In einigen Beispielen soll der Verwaltungsprozessor 304 den Zugriff auf die Informationen im Informationsspeicher freischalten, indem er einen Schlüssel an das Computergerät sendet. Der Schlüssel (der vom Verwaltungsprozessor 304 aus dem Informationsspeicher abgerufen werden kann) enthält einen Entschlüsselungsschlüssel zum Entschlüsseln verschlüsselter Informationen im Informationsspeicher.
  • In weiteren Beispielen können die Informationen im Informationsspeicher, auf die zugegriffen wird, einen Authentifizierungsschlüssel für die Verwendung durch die virtuellen Einheiten bei der Durchführung der gegenseitigen Authentifizierung enthalten (z. B. in Beispielen, in denen die virtuellen Einheiten Teil eines Clusters sind).
  • In weiteren Beispielen kann der Management-Controller 300 eine Kommunikationsschnittstelle (z. B. 112 in oder ) enthalten, um mit einer entfernten Entität (z. B. 105 in ) als Teil der Verwaltung des Computergeräts zu kommunizieren.
  • ist ein Blockdiagramm eines nicht-transitorischen maschinenlesbaren oder computerlesbaren Speichermediums 400, das maschinenlesbare Befehle speichert, die bei Ausführung einen Management-Controller (z. B. 104 aus oder ) veranlassen, verschiedene Aufgaben durchzuführen.
  • Die maschinenlesbaren Anweisungen enthalten Anweisungen zur Validierung von Programmcodes virtueller Entitäten (402), um eine Validierung von Programmcodes eines Clusters virtueller Entitäten in einem Computergerät (z. B. 102 von oder von ) durchzuführen, wobei die Verwaltungssteuerung von dem Computergerät getrennt ist und von einer Hilfsstromversorgung (z. B. 110 von oder ) mit Strom versorgt wird, selbst wenn die Stromversorgung des Computergeräts unterbrochen wird.
  • Die maschinenlesbaren Befehle enthalten ferner Anweisungen 404 zum Entsperren des Informationsspeichers, um als Reaktion auf die Validierung der Programmcodes den Zugriff auf Informationen (z. B. die Konfigurationsdaten 136 aus oder ) in einem Informationsspeicher (z. B. dem nichtflüchtigen Speicher 116 aus oder ) zu entsperren, um den Zugriff auf die Informationen durch die Rechenvorrichtung zu ermöglichen. Die Informationen sind für die Verwendung durch den Cluster virtueller Entitäten bei der Interaktion miteinander und zur Ausführung von Aufgaben der virtuellen Entitäten im Cluster virtueller Entitäten bestimmt, und die Verwaltungssteuerung soll den Zugriff auf die Informationen im Informationsspeicher vor der Validierung sperren.
  • In einigen Beispielen umfasst der Cluster virtueller Entitäten eine virtuelle Master-Entität (z. B. einen KUBERNETES-Master) und eine virtuelle Worker-Entität (z. B. einen KUBERNETES-Worker).
  • ist ein Flussdiagramm eines Prozesses 500, der von einer Verwaltungssteuerung (z. B. BMC 104 aus oder ) in einigen Beispielen durchgeführt wird. Der Prozess 500 umfasst die Durchführung (bei 502) einer Sequenz von Validierungen von maschinenlesbaren Anweisungen eines Computergeräts, das von der Verwaltungssteuerung getrennt ist, wobei die Sequenz von Validierungen eine erste Validierung eines Boot-Codes des Computergeräts und eine zweite Validierung von Programmcodes virtueller Entitäten in dem Computergerät umfasst.
  • Der Prozess 500 umfasst als Reaktion auf die erste Validierung und die zweite Validierung das Freigeben (bei 504) des Zugriffs auf Informationen in einem Informationsspeicher, um den Zugriff auf die Informationen durch die Computervorrichtung zu ermöglichen, wobei die Informationen zur Verwendung durch die virtuellen Entitäten bei der Interaktion miteinander und zum Ausführen von Aufgaben der virtuellen Entitäten bestimmt sind, und wobei die Verwaltungssteuerung den Zugriff auf die Informationen in dem Informationsspeicher vor dem Abschluss der Sequenz von Validierungen sperren soll.
  • Ein Speichermedium (z. B., 116 von oder , von ) kann eine beliebige oder eine Kombination der folgenden Elemente enthalten: eine Halbleiterspeichereinrichtung, wie z. B. ein dynamischer oder statischer Direktzugriffsspeicher (DRAM oder SRAM), ein löschbarer und programmierbarer Festwertspeicher (EPROM), ein elektrisch löschbarer und programmierbarer Festwertspeicher (EEPROM) und ein Flash-Speicher oder eine andere Art von nichtflüchtiger Speichereinrichtung; eine Magnetplatte, wie z. B. eine Festplatte, eine Diskette und eine Wechselplatte; ein anderes magnetisches Medium, einschließlich eines Bandes; ein optisches Medium, wie z. B. eine Compact Disk (CD) oder eine digitale Videodisk (DVD); oder eine andere Art von Speichereinrichtung. Beachten Sie, dass die oben besprochenen Anweisungen auf einem einzigen computer- oder maschinenlesbaren Speichermedium bereitgestellt werden können, oder alternativ auf mehreren computer- oder maschinenlesbaren Speichermedien, die in einem großen System mit möglicherweise mehreren Knoten verteilt sind. Ein solches computerlesbares oder maschinenlesbares Speichermedium oder solche Speichermedien werden als Teil eines Artikels (oder Herstellungsartikels) betrachtet. Ein Artikel oder Herstellungsgegenstand kann sich auf jede hergestellte Einzelkomponente oder mehrere Komponenten beziehen. Das Speichermedium oder die Speichermedien können sich entweder in der Maschine befinden, in der die maschinenlesbaren Anweisungen ausgeführt werden, oder an einem entfernten Standort, von dem maschinenlesbare Anweisungen über ein Netzwerk zur Ausführung heruntergeladen werden können.
  • In der vorstehenden Beschreibung sind zahlreiche Details aufgeführt, um ein Verständnis des hier offengelegten Gegenstands zu ermöglichen. Es können jedoch auch Implementierungen ohne einige dieser Details durchgeführt werden. Andere Implementierungen können Modifikationen und Variationen von den oben beschriebenen Details enthalten. Es ist beabsichtigt, dass die beigefügten Ansprüche solche Modifikationen und Variationen abdecken.

Claims (20)

  1. Ein Management-Controller, der Folgendes umfasst: eine Kommunikationsschnittstelle zur Kommunikation mit einem Computergerät, wobei die Verwaltungssteuerung von einem Prozessor des Computergeräts getrennt ist; und einen Verwaltungsprozessor zu: eine Validierung von Programmcodes virtueller Entitäten des Rechengeräts durchführen, und als Reaktion auf die Validierung der Programmcodes den Zugriff auf Informationen in einem Informationsspeicher freizugeben, um den Zugriff auf die Informationen durch die Rechenvorrichtung zu ermöglichen, wobei die Informationen zur Verwendung durch die virtuellen Entitäten der Rechenvorrichtung bestimmt sind und wobei der Verwaltungsprozessor den Zugriff auf die Informationen in dem Informationsspeicher vor der Validierung blockieren soll.
  2. Management-Controller nach Anspruch 1, wobei die virtuellen Entitäten Container umfassen, und wobei die Validierung der Programmcodes eine Validierung von Codes der Container in der Rechenvorrichtung umfasst.
  3. Management-Controller nach Anspruch 1, wobei die virtuellen Entitäten virtuelle Maschinen umfassen, und wobei die Validierung der Programmcodes die Validierung von Codes der virtuellen Maschinen in der Rechenvorrichtung umfasst.
  4. Management-Controller nach Anspruch 1, wobei der Verwaltungsprozessor den Zugriff auf die Informationen im Informationsspeicher durch Senden eines Schlüssels an das Rechengerät freischalten soll.
  5. Management-Controller nach Anspruch 4, wobei der Schlüssel einen Entschlüsselungsschlüssel zum Entschlüsseln verschlüsselter Informationen im Informationsspeicher umfasst.
  6. Management-Controller nach Anspruch 4, wobei der Verwaltungsprozessor den Schlüssel aus dem Informationsspeicher abruft.
  7. Management-Controller nach Anspruch 1, wobei die Informationen im Informationsspeicher Konfigurationsdaten zur Konfiguration der virtuellen Entitäten umfassen.
  8. Management-Controller nach Anspruch 1, wobei die Informationen im Informationsspeicher einen Authentifizierungsschlüssel zur Verwendung durch die virtuellen Einheiten bei der Durchführung der Authentifizierung umfassen.
  9. Management-Controller nach Anspruch 1, wobei die Validierung auf der Berechnung eines Hashwerts jedes der Programmcodes basiert.
  10. Management-Controller nach Anspruch 1, ferner umfassend: eine Kommunikationsschnittstelle zur Kommunikation mit einer entfernten Entität als Teil der Verwaltung des Computergeräts.
  11. Management-Controller nach Anspruch 1, wobei der Management-Controller ein Baseboard-Management-Controller ist.
  12. Management-Controller nach Anspruch 1, wobei der Management-Prozessor dazu dient: weitere andere Programmcodes des Rechengeräts vor der Validierung der Programmcodes der virtuellen Entitäten validieren.
  13. Management-Controller nach Anspruch 12, wobei die anderen Programmcodes einen Bootcode und einen Betriebssystemcode des Computergeräts umfassen.
  14. Ein nicht-transitorisches, maschinenlesbares Speichermedium, das Befehle enthält, die bei Ausführung einen Management-Controller dazu veranlassen: die Validierung von Programmcodes eines Clusters virtueller Entitäten in einer Rechenvorrichtung durchführen, wobei der Verwaltungscontroller von der Rechenvorrichtung getrennt ist und durch eine Hilfsenergieversorgung mit Strom versorgt bleibt, auch wenn die Stromversorgung der Rechenvorrichtung unterbrochen ist; und als Reaktion auf die Validierung der Programmcodes den Zugriff auf Informationen in einem Informationsspeicher freizugeben, um den Zugriff auf die Informationen durch die Computervorrichtung zu ermöglichen, wobei die Informationen zur Verwendung durch den Cluster virtueller Entitäten bei der Interaktion miteinander und zum Ausführen von Aufgaben der virtuellen Entitäten in dem Cluster virtueller Entitäten bestimmt sind, und wobei die Verwaltungssteuerung den Zugriff auf die Informationen in dem Informationsspeicher vor der Validierung blockieren soll.
  15. Nicht-transitorisches maschinenlesbares Speichermedium nach Anspruch 14, wobei der Cluster virtueller Entitäten eine virtuelle Master-Entität und eine virtuelle Worker-Entität umfasst.
  16. Nicht-transitorisches maschinenlesbares Speichermedium nach Anspruch 15, wobei die virtuelle Master-Entität Prozesse eines Master-Knotens umfasst und die virtuelle Worker-Entität Prozesse eines Worker-Knotens umfasst.
  17. Nicht-transitorisches maschinenlesbares Speichermedium nach Anspruch 14, wobei die Anweisungen bei Ausführung die Verwaltungssteuerung veranlassen, den Zugriff auf die Informationen im Informationsspeicher durch Senden eines Schlüssels an die Rechenvorrichtung freizugeben.
  18. Nicht-transitorisches maschinenlesbares Speichermedium nach Anspruch 17, wobei der Schlüssel einen Entschlüsselungsschlüssel zum Entschlüsseln verschlüsselter Informationen im Informationsspeicher umfasst.
  19. Ein Verfahren, das von einem Management-Controller ausgeführt wird, umfassend: Durchführen einer Sequenz von Validierungen von maschinenlesbaren Befehlen einer Rechenvorrichtung, die von der Verwaltungssteuerung getrennt ist, wobei die Sequenz von Validierungen eine erste Validierung eines Boot-Codes der Rechenvorrichtung und eine zweite Validierung von Programmcodes virtueller Einheiten in der Rechenvorrichtung umfasst; und als Reaktion auf die erste Validierung und die zweite Validierung den Zugriff auf Informationen in einem Informationsspeicher freizugeben, um den Zugriff auf die Informationen durch die Computervorrichtung zu ermöglichen, wobei die Informationen zur Verwendung durch die virtuellen Entitäten bei der Interaktion miteinander und zum Ausführen von Aufgaben der virtuellen Entitäten bestimmt sind, und wobei die Verwaltungssteuerung den Zugriff auf die Informationen in dem Informationsspeicher vor dem Abschluss der Sequenz von Validierungen sperren soll.
  20. Verfahren nach Anspruch 19, wobei die Abfolge von Validierungen ferner eine dritte Validierung eines Kerns des Computergeräts umfasst, wobei die erste Validierung und die dritte Validierung vor der zweiten Validierung durchgeführt werden.
DE102021105949.6A 2020-04-27 2021-03-11 Freischaltung des zugriffs auf informationen in abhängigkeit von der validierung von programmcodes virtueller entitäten Pending DE102021105949A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/859,321 US11537732B2 (en) 2020-04-27 2020-04-27 Unlocking access of information responsive to validation of program codes of virtual entities
US16/859,321 2020-04-27

Publications (1)

Publication Number Publication Date
DE102021105949A1 true DE102021105949A1 (de) 2021-10-28

Family

ID=78222405

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021105949.6A Pending DE102021105949A1 (de) 2020-04-27 2021-03-11 Freischaltung des zugriffs auf informationen in abhängigkeit von der validierung von programmcodes virtueller entitäten

Country Status (3)

Country Link
US (1) US11537732B2 (de)
CN (1) CN113645179B (de)
DE (1) DE102021105949A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669645B2 (en) * 2021-07-27 2023-06-06 Dell Products L.P. Delegated authorization via chassis management controller
US20220004398A1 (en) * 2021-09-22 2022-01-06 Intel Corporation Integrated circuit package reconfiguration mechanism
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443078B2 (en) * 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
US10461937B1 (en) * 2013-12-18 2019-10-29 Amazon Technologies, Inc. Hypervisor supported secrets compartment
US9626512B1 (en) * 2015-03-30 2017-04-18 Amazon Technologies, Inc. Validating using an offload device security component
US11042643B2 (en) * 2015-12-24 2021-06-22 Intel Corporation Trusted deployment of application containers in cloud data centers
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
US11809576B2 (en) * 2020-01-30 2023-11-07 Red Hat, Inc. Establishing secure remote access to debug logs

Also Published As

Publication number Publication date
US11537732B2 (en) 2022-12-27
CN113645179A (zh) 2021-11-12
CN113645179B (zh) 2024-04-05
US20210334399A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
DE102021105949A1 (de) Freischaltung des zugriffs auf informationen in abhängigkeit von der validierung von programmcodes virtueller entitäten
US8254579B1 (en) Cryptographic key distribution using a trusted computing platform
DE112018003077T5 (de) Ein cluster von sicheren ausführungsplattformen
US10922117B2 (en) VTPM-based virtual machine security protection method and system
DE112016000576T5 (de) Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus
US20120185930A1 (en) Domains based security for clusters
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
EP3876127A1 (de) Gerätefernwartung auf basis verteilter datenspeicherung
DE102015003236A1 (de) Verfahren und System zum Bereitstellen von temporären, sicheren Zugang ermöglichenden virtuellen Betriebsmitteln
DE102022109212A1 (de) Sicherung der Kommunikation mit Sicherheitsprozessoren mit Plattformschlüsseln
DE102022108380A1 (de) Verwaltung der speicherung von geheimnissen in speichern von baseboard-management-controller
US10678953B1 (en) Self-contained key management device
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
DE102021108971A1 (de) Steuerung des zugriffs auf periphere anschlüsse eines host-rechnersystems
DE102021127629A1 (de) Virtualisierung der sicheren speicherung eines baseboard management controllers auf einem host- computergerät
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE102022109208A1 (de) Verwaltung der Verwendung von Geheimnissen der Verwaltungssteuerung basierend auf der Besitzgeschichte der Firmware
DE112012004308B4 (de) Verfahren, System, Vermittlungsserver, Client und Computerprogramm zum Löschen von Daten zum Aufrechterhalten einer Sicherungsstufe
DE102021108961A1 (de) Verschlüsselungsschlüssel von speichersystemen
DE102021101891A1 (de) Bestimmen , ob eine aktion zur berechnung ausgeführt werden soll gerät basierend auf der analyse von endorsement-informationen eines sicherheits-coprozessors
US11641281B2 (en) Hashing values using salts and peppers
DE102018217431A1 (de) Sicherer Schlüsseltausch auf einem Gerät, insbesondere einem eingebetteten Gerät
EP3761202A1 (de) System und verfahren zur speicherung eines zu schützenden datensatzes

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, TEX., US

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE

Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE

R016 Response to examination communication