DE102021107211A1 - Speichermodul-Authentifizierungserweiterung - Google Patents

Speichermodul-Authentifizierungserweiterung Download PDF

Info

Publication number
DE102021107211A1
DE102021107211A1 DE102021107211.5A DE102021107211A DE102021107211A1 DE 102021107211 A1 DE102021107211 A1 DE 102021107211A1 DE 102021107211 A DE102021107211 A DE 102021107211A DE 102021107211 A1 DE102021107211 A1 DE 102021107211A1
Authority
DE
Germany
Prior art keywords
hardware module
nonce
key
module
management system
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.)
Granted
Application number
DE102021107211.5A
Other languages
English (en)
Other versions
DE102021107211B4 (de
Inventor
Melvin Benedict
Eric L. Pope
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 DE102021107211A1 publication Critical patent/DE102021107211A1/de
Application granted granted Critical
Publication of DE102021107211B4 publication Critical patent/DE102021107211B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Es werden Systeme und Verfahren für eine sekundäre Authentifizierung eines Speichermoduls bereitgestellt. Ein Nonce-Schlüssel wird in ein Nonce-Register eines Register-Arrays auf dem Speichermodul geschrieben, wobei das Nonce-Register über zwei verschiedene Schnittstellen zugänglich ist. In verschiedenen Ausführungsformen kann der Nonce-Schlüssel von einem Verwaltungssystem der Computerplattform erzeugt werden, nachdem ein oder mehrere Authentifizierungsprozesse für ein Speichermodul über eine Verwaltungsschnittstelle durchgeführt wurden. Authentifizierungsinformationen zur Verwendung bei der Durchführung der Authentifizierung können in einer Identifikationskomponente auf dem Speichermodul gespeichert werden. Bei erfolgreicher Authentifizierung kann das Managementsystem den Nonce-Schlüssel erzeugen und in das Nonce-Register schreiben. Beim Empfang einer Anforderung zum Zugriff auf eine Adresse kann ein Speicher-Controller das Nonce-Register des Speichermoduls an der angeforderten Adresse lesen und den Nonce-Schlüssel mit einer in der Anforderung enthaltenen Kennung vergleichen.

Description

  • Beschreibung des Standes der Technik
  • Serial presence detect (SPD) ist ein standardisierter Ansatz für den Zugriff auf Informationen innerhalb eines Speichermoduls einer Computing-Plattform. Beim Einschalten der Computerplattform ermöglicht SPD dem System, die vorhandenen Speichermodule sowie die Konfigurationsparameter für das Speichermodul zu identifizieren. Ein SPD-Hub ist eine Hardwarespeicherkomponente jedes Speichermoduls, die alle Konfigurationsinformationen und Parameter speichert, die für den Betrieb dieses Speichermoduls auf der Plattform erforderlich sind. Die Zentraleinheit (CPU) des Rechnersystems greift beim Einschalten auf diese Informationen zu, um die Plattform so zu konfigurieren, dass der Speicherzugriff möglich ist.
  • Figurenliste
  • Die vorliegende Offenbarung wird gemäß einer oder mehrerer verschiedener Ausführungsformen unter Bezugnahme auf die folgenden Figuren detailliert beschrieben. Die Figuren dienen nur der Veranschaulichung und stellen lediglich typische oder beispielhafte Ausführungsformen dar.
    • ist eine Beispiel-Computerplattform in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie.
    • ist ein Beispiel für ein Verfahren in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie.
    • ist ein weiteres Verfahren in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie.
    • ist ein weiteres Verfahren in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie.
    • ist ein Beispiel für eine Computerplattform, die Befehle auf einem maschinenlesbaren Speichermedium in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie speichert.
    • ist eine Beispiel-Computerkomponente, die zur Implementierung verschiedener Merkmale der in der vorliegenden Offenlegung beschriebenen Ausführungsformen verwendet werden kann.
  • Die Abbildungen erheben keinen Anspruch auf Vollständigkeit und beschränken die vorliegende Offenbarung nicht auf die genaue dargestellte Form.
  • Detaillierte Beschreibung
  • In der gesamten IT-Branche gibt es eine Bewegung, alle Komponenten einer Plattform zu authentifizieren. Angreifer können die an eine Plattform angeschlossenen Komponenten nutzen, um unter anderem den Dienst zu unterbrechen, Daten zu stehlen oder die physische Infrastruktur zu zerstören. Solche Angriffe können durchgeführt werden, indem authentische Komponenten (z. B. Speichermodule oder darin enthaltene Geräte) durch gefälschte Versionen ersetzt werden, sei es durch den Austausch in der Lieferkette, während der Systemmontage oder durch den -Austausch nach der Bereitstellung vor Ort-. Indem sie authentische Komponenten durch Fälschungen ersetzen, sind Angreifer in der Lage, die Firmware des Systems zu kompromittieren und die Betriebssystemabwehr unwirksam zu machen. Diese Hintertüren können unentdeckt bleiben.
  • Im Zuge des technologischen Fortschritts werden neue Generationen von Hardwarekomponenten mit Blick auf die Authentifizierung entwickelt. Als nicht einschränkendes Beispiel gehen die Speichermodule der nächsten Generation dazu über, Authentifizierungsinformationen auf dem Modul zu integrieren. Unter Verwendung des SPD-Hubs können Authentifizierungssequenzen oder Zertifikate auf dem Speichermodul gespeichert werden, auf die der Management-Controller der Plattform zugreifen kann, um das Modul zu authentifizieren. Beim Einschalten kann der Management-Controller nach den im SPD-Hub enthaltenen Authentifizierungsinformationen suchen und einen Authentifizierungsprozess durchführen, um sicherzustellen, dass das an die Plattform angeschlossene Speichermodul authentisch und kein gefälschtes Gerät ist. Sobald die Authentifizierung erfolgt ist, konfiguriert der Management-Controller das Speichermodul und das System so, dass ein Benutzer oder eine Anwendung auf das Speichermodul zugreifen und/oder Daten in das Modul schreiben kann.
  • Die Einführung von Speichermodulen der nächsten Generation bringt jedoch eine Diskrepanz zwischen der Geschwindigkeit der Verwaltungsschnittstelle, die zur Durchführung der Authentifizierung verwendet wird, und der vom Speichermodul für die Datenkommunikation verwendeten Speicherschnittstelle mit sich. Speichermodule der nächsten Generation verwenden Hochgeschwindigkeits-Schnittstellenstandards, um Anwendungen den Zugriff auf das Speichermodul zu ermöglichen, einschließlich, aber nicht beschränkt auf, DDRx (double Data Rate Version x) oder NVM Express (NVMe), unter anderem. Plattformmanagement-Schnittstellen verwenden in der Regel langsamere Kommunikationsschnittstellen, wie I2C, I3C oder PCIe. Dieser Unterschied wirft die Frage auf, ob das über die -Hochgeschwindigkeitsschnittstelle adressierte Modul dasselbe -ist wie das über die langsamere Managementschnittstelle validierte Modul.
  • Ausführungsformen der vorliegenden Offenlegung bieten ein System und Verfahren zur Authentifizierung von Hardwaremodulen, das sicherstellt, dass das adressierte Hardwaremodul mit dem validierten Hardwaremodul identisch ist. Wie unten beschrieben, enthält jedes mit einer Computerplattform verbundene Hardwaremodul eine Identifikationskomponente, die Authentifizierungsinformationen für das Hardwaremodul speichert. In verschiedenen Ausführungsformen kann die Identifikationskomponente den SPD-Hub oder ein anderes Konfigurationsdatenspeichergerät des Hardwaremoduls umfassen. Ein Verwaltungssystem der Plattform, das über die Verwaltungsschnittstelle kommunikativ mit der Identifikationskomponente des Hardwaremoduls verbunden ist, kann die Authentifizierungsinformationen abrufen und die Authentifizierung durchführen. In einigen Ausführungsformen kann das Managementsystem einen Management-Controller des Plattformsystems umfassen, während in anderen Ausführungsformen ein dediziertes Managementsystem in der Computerplattform enthalten sein kann. Nach der Authentifizierung kann das Managementsystem einen Nonce-Schlüssel erzeugen und den Nonce-Schlüssel in ein Nonce-Register der Identifikationskomponente des Hardwaremoduls schreiben. Ein Nonce ist eine Zahl (entweder zufällig oder zugewiesen), die nur einmal verwendet wird. In verschiedenen Ausführungsformen kann das Nonce-Register ein dediziertes Register eines Register-Arrays sein, wobei in anderen Ausführungsformen das Nonce-Register ein Fehlerregister umfassen kann. Jede Zugriffsanforderung auf ein Hardwaremodul von der Plattform enthält einen Wert, der den Nonce-Schlüssel repräsentiert, der vom Managementsystem während der Authentifizierung zufällig generiert wurde. Wenn eine Modulsteuerung eine Zugriffsanforderung über die Speicherschnittstelle empfängt, kann die Modulsteuerung den zufälligen Nonce-Schlüssel aus einem Nonce-Register des Hardwaremoduls an der Adresse abrufen und den abgerufenen Nonce-Schlüssel mit dem Wert in der Anforderung vergleichen. Wenn die Modulsteuerung feststellt, dass die beiden Werte übereinstimmen, kann die Zugriffsanforderung von der anfordernden Anwendung zugelassen werden. Wenn die Werte nicht übereinstimmen, kann die Modulsteuerung die Anforderung ablehnen. In verschiedenen Ausführungsformen kann die Modulsteuerung eine Fehlermeldung oder eine andere Anzeige zurückgeben, dass die Anforderung abgelehnt wurde. In einigen Ausführungsformen kann die Modulsteuerung eine Anzeige an das Managementsystem und/oder eine zentrale Verarbeitungseinheit (CPU) der Plattform senden, die das nicht validierte Hardwaremodul anzeigt oder ein Flag bezüglich des nicht validierten Hardwaremoduls setzt. Weitere Aspekte der Technologie werden in Bezug auf die unten genannten Ausführungsformen erörtert.
  • zeigt eine Beispiel-Computerplattform 100 in Übereinstimmung mit der hier offengelegten Technologie. Die Beispielplattform 100 dient nur zur Veranschaulichung und sollte nicht als auf die dargestellte Ausführungsform beschränkt verstanden werden. Zur Vereinfachung der Diskussion wird die Technologie der vorliegenden Offenbarung in Bezug auf die Authentifizierung eines Speichermoduls 101 erörtert. Die hier offengelegte Technologie ist jedoch für die Authentifizierung eines beliebigen Hardwaremoduls anwendbar, das über zwei Schnittstellen (z. B. Verwaltungsschnittstelle und Datenschnittstelle) mit einer Computerplattform verbunden werden kann, einschließlich, aber nicht beschränkt auf Prozessoren, Schnittstellenkarten, Grafikprozessoren, austauschbare Stromversorgungseinheiten (RPUs), NVMe-Speicherlaufwerke, Add-in-Leiterplatten (PCBs) (z. B. PCIe-Erweiterungskarten) und Switches unter anderem. Wie in dargestellt, kann die Computerplattform 100 ein Verwaltungssystem 102, einen Speichercontroller 103 und ein Speichermodul 101 umfassen, das einen SPD-Hub 104, ein Register-Array 105 und eine Vielzahl von integrierten Speicherschaltungen (ICs) 106 umfasst. In verschiedenen Ausführungsformen kann die Computerplattform 100 einen oder mehrere Server, einen Router, einen Switch, ein Gateway-Gerät oder ein anderes Gerät innerhalb eines Netzwerks umfassen.
  • In verschiedenen Ausführungsformen kann das Managementsystem 102 so konfiguriert sein, dass es die Operationen der Computerplattform 100 verwaltet. Nicht einschränkende Beispiele für das Managementsystem 102 sind der Baseboard Management Controller (BMC), ein eindeutiger Sicherheitsprozessor, eine Zentraleinheit (CPU), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein Field Programmable Gate Array (FPGA), ein komplexer programmierbarer Logikbaustein (CPLD), ein programmierbares Logikarray (PLA) und andere in der Technik bekannte Verarbeitungsschaltungen. In verschiedenen Ausführungsformen kann das Verwaltungssystem 102 so konfiguriert sein, dass es einen oder mehrere Authentifizierungsprozesse durchführt. Zu den Authentifizierungsprozessen können unter anderem ein standardisierter, in der Technik bekannter Authentifizierungsprozess, ein proprietärer Authentifizierungsprozess der Computerplattform 100 oder eine Kombination aus beidem gehören. Die Authentifizierungsprozesse können durch die Ausführung nicht-transitorischer maschinenlesbarer Anweisungen durch das Managementsystem 102 implementiert werden. In verschiedenen Ausführungsformen kann das Verwaltungssystem 102 einen dedizierten Authentifizierungs-Controller enthalten, der zur Ausführung des einen oder mehrerer Authentifizierungsprozesse konfiguriert ist.
  • Während der Einschaltsequenz kann das Verwaltungssystem 102 das Vorhandensein des Speichermoduls 101 über eine Verwaltungsschnittstelle 106 erkennen. In verschiedenen Ausführungsformen kann das Speichermodul 101 einen oder mehrere Typen von Speichermodulen umfassen, die in der Technik bekannt sind, einschließlich, aber nicht beschränkt auf -Single-Inline-Speichermodule (SIMMs), -Dual-Inline-Speichermodule (DIMMs), FLASH-Speichermodule und andere. In einigen Ausführungsformen kann das Speichermodul 101 eine -Hochgeschwindigkeitsschnittstelle für Daten -umfassen, -während in anderen Ausführungsformen die Datenschnittstelle (d. h. die Speicherschnittstelle 107) des Speichermoduls 101 eine ähnliche Schnittstelle wie die Verwaltungsschnittstelle 106 umfassen kann. Obwohl die hier offengelegte Technologie darauf ausgelegt ist, eine sicherere Authentifizierung des Hardwaremoduls zu ermöglichen, wenn es einen Geschwindigkeitsunterschied zwischen der Management- und der Datenschnittstelle gibt, ist sie gleichermaßen anwendbar, wenn der Geschwindigkeitsunterschied zwischen den Schnittstellen gering oder vernachlässigbar ist. Nicht einschränkende Beispiele für Management-Schnittstellen 106 sind 12C, I3C, PCI, PCIe, System-Management-Bus und andere Bus-Schnittstellen, die in Computerplattformen ähnlich der Computerplattform 100 für die Management-Kommunikation verwendet werden. In einigen Ausführungsformen kann die Verwaltungsschnittstelle 106 eine Out-of-Band-Verwaltungsschnittstelle umfassen.
  • Das Speichermodul 101 kann ferner eine Identifikationskomponente enthalten, die über eine Verwaltungsschnittstelle 106 mit dem Verwaltungssystem 102 kommunikativ verbunden ist. Die Identifikationskomponente kann einen Speicherchip umfassen, der zum Speichern von Konfigurationsinformationen in Bezug auf ein Hardwaremodul konfiguriert ist. In der dargestellten Ausführungsform umfasst das Identifikationsmodul den SPD-Hub 104 des Speichermoduls 101. Der SPD-Hub 104 kann einen Speicherchip umfassen, der auf dem Speichermodul 101 angeordnet und so konfiguriert ist, dass er Identifizierungsinformationen für das Speichermodul 101 verwaltet, einschließlich, aber nicht beschränkt auf Konfigurationsparameter für das Speichermodul 101, einschließlich der Speicher-ICs 106. In verschiedenen Ausführungsformen können ein oder mehrere Speicher-ICs 106 auf dem Speichermodul 101 angeordnet sein. Jeder Speicher-IC 106 umfasst eine Speicherschaltung, die zum Speichern von Informationsbits konfiguriert ist. Damit die Plattform ordnungsgemäß auf das Speichermodul 101 zugreifen kann, kann das Verwaltungssystem 102 Konfigurationsparameter vom SPD-Hub 104 über die Verwaltungsschnittstelle 106 abrufen und diese Informationen zur Konfiguration der Computerplattform 106 und des Speichermoduls 101 verwenden. In verschiedenen Ausführungsformen kann der SPD-Hub 104 ferner so konfiguriert sein, dass er Authentifizierungsinformationen für das Speichermodul 101 verwaltet. In einigen Ausführungsformen kann die Identifikationskomponente einen vom SPD-Hub 104 getrennten Chip umfassen, wobei der getrennte Speicherchip (in nicht dargestellt) über die Verwaltungsschnittstelle 106 mit dem Verwaltungssystem 102 kommunikativ verbunden ist. In Hardwaremodulen, in denen der SPD-Hub 102 nicht vorhanden ist, kann eine Identifikationskomponente enthalten sein, die die Authentifizierungsinformationen für das Hardwaremodul enthält, einschließlich, aber nicht beschränkt auf ein Register oder einen Mediencontroller. In verschiedenen Ausführungsformen kann das Speichermodul 101 eines oder mehrere der folgenden Elemente umfassen: DRAM, FLASH-Speicher, -Solid-State-Speicher (SSD), Festplattenlaufwerke (HDDs) oder andere Speichergeräte.
  • Während des Authentifizierungsprozesses kann das Managementsystem 102 über den SPD-Hub 104 auf die Authentifizierungsinformationen zugreifen. Nach der Validierung, dass das Speichermodul 101 ein authentisches Modul ist, kann das Managementsystem 102 einen zufälligen Nonce-Wert erzeugen, der als eindeutiger Nonce-Schlüssel zur Identifizierung des Speichermoduls 101 in verschiedenen Ausführungsformen dient. Jeder Nonce-Schlüssel kann eine geeignete Anzahl von Bits umfassen, um ein gewünschtes Maß an Sicherheit zu bieten, dass der Nonce-Schlüssel eindeutig ist, um dieses Hardwaremodul zu identifizieren. In verschiedenen Ausführungsformen kann eine Vielzahl von Vertrauensstufen implementiert werden, wobei jede Vertrauensstufe die Anzahl der für den Nonce-Schlüssel verwendeten Bits erhöht. Als nicht einschränkendes Beispiel kann eine hohe Vertrauensstufe 32 oder mehr Bits für den Nonce-Schlüssel umfassen, während eine niedrige Vertrauensstufe 24 oder weniger Bits für den Nonce-Schlüssel umfassen kann. In verschiedenen Ausführungsformen kann die Bestimmung der geeigneten Anzahl von Bits auf der Grundlage einer Bitgröße des Nonce-Registers bestimmt werden. Das Verwaltungssystem 102 kann veranlassen, dass der zufällige Nonce-Schlüssel in einem Nonce-Register 108 des Registerarrays 105 gespeichert wird. Das Register-Array 105 kann eine Registerkomponente sein, die mit dem SPD-Hub 104 verbunden ist, während in anderen Ausführungsformen das Register-Array 105 eines der Speicher-ICs 106 umfassen kann, die so konfiguriert sind, dass sie Informationen bezüglich des Speichermoduls 101 aufrechterhalten. Das Nonce-Register 108 kann in einigen Ausführungsformen einen dedizierten Eintrag innerhalb des Register-Arrays 105 umfassen, während das Nonce-Register 108 ein Fehlerregister des Register-Arrays 105 umfassen kann. Das Speichern des Nonce-Schlüssels im Nonce-Register 108 stellt eine eindeutige Kennung für das Speichermodul 101 bereit, die zur sekundären Authentifizierung verwendet werden kann, bevor eine Zugriffsanforderung zugelassen wird. Das heißt, die Verwendung des Nonce-Schlüssels ermöglicht eine Validierungsmethode vom Typ Zwei-Faktor-Verifizierung für die Authentifizierung von Hardwarekomponenten. Daher wird das Vertrauen erhöht, dass das adressierte Speichermodul das authentifizierte Speichermodul ist.
  • In verschiedenen Ausführungsformen umfasst die Computerplattform 100 ferner einen Speicher-Controller 103, der so konfiguriert ist, dass er den Zugriff auf die Speicher-ICs 106 des Speichermoduls 101 steuert. In einigen Ausführungsformen kann jedes Speichermodul 101 einen zugehörigen Speicher-Controller 103 haben, während in anderen Ausführungsformen ein einzelner Speicher-Controller 103 so konfiguriert sein kann, dass er den Zugriff auf den gesamten mit der Computerplattform 100 verbundenen Speicher steuert. In einigen Ausführungsformen kann der Speicher-Controller 103 ein dediziertes Gerät umfassen, das kommunikativ mit der Computerplattform 100 gekoppelt ist, eine integrierte Schaltung der Computerplattform 100 und/oder einen Teil der CPU der Computerplattform 100. Der Speicher-Controller 107 kann über eine Speicherschnittstelle 107 kommunikativ mit den Speicher-ICs 106 gekoppelt sein. In verschiedenen Ausführungsformen kann die Speicherschnittstelle eine oder mehrere -Hochgeschwindigkeitsschnittstellen umfassen-, einschließlich, aber nicht beschränkt auf NVMe, DDRx, SPI, eSPI und andere. In verschiedenen Ausführungsformen kann die Speicherschnittstelle 107 eine logische Geräteschnittstelle umfassen.
  • Der Speicher-Controller 103 kann auch über die Speicherschnittstelle 107 kommunikativ mit dem Register-Array 105 gekoppelt sein. Auf diese Weise ist der Speicher-Controller 103 in der Lage, einen oder mehrere Einträge innerhalb des Register-Arrays 105 zu lesen, einschließlich, aber nicht beschränkt auf das Nonce-Register 108. In einigen Ausführungsformen kann der Speicher-Controller 103 so konfiguriert sein, dass er aus dem Nonce-Register 108 liest und/oder in dieses schreibt. Wenn der Speicher-Controller 103 eine Zugriffsanforderung von einer Anwendung erhält, kann der Speicher-Controller 103 zunächst den im Nonce-Register 108 des von der Anwendung angeforderten Speichermoduls 101 gespeicherten Wert lesen. Innerhalb jeder Zugriffsanforderung kann ein Identifikationswert enthalten sein, der die gleiche Länge wie der erwartete Nonce-Schlüssel hat. Der Speicher-Controller 103 kann den Wert innerhalb der Anforderung mit dem Nonce-Schlüssel vergleichen, der aus dem Nonce-Register 108 des angeforderten Speichermoduls 101 gezogen wurde. Wenn die beiden Werte übereinstimmen, kann der Speicher-Controller 103 feststellen, dass das angeforderte Speichermodul dasselbe Speichermodul 101 ist, das vom Verwaltungssystem 102 authentifiziert wurde. Wenn die Werte nicht übereinstimmen, kann der Speicher-Controller 103 feststellen, dass das angeschlossene Speichermodul 101 nicht dasselbe Speichermodul 101 ist, das durch das Managementsystem 102 authentifiziert wurde.
  • Unter Verwendung der hier offengelegten Technologie ermöglicht das Verwaltungssystem 102 eine Methode der sekundären Authentifizierung, ohne die Gesamtleistung der Computerplattform 100 zu beeinträchtigen, ähnlich wie bei der Zwei-Faktor-Authentifizierung, die für den Kontozugriff verwendet wird (z. B. Mobile Banking). Durch die Platzierung des Nonce-Schlüssels in einem Nonce-Register 108, auf das über zwei Schnittstellen zugegriffen werden kann (d. h. die Verwaltungsschnittstelle 106 und die Speicherschnittstelle 107), ermöglichen die hier beschriebenen Ausführungsformen die Validierung der Identität des adressierten Speichermoduls 101. Dementsprechend kann die Validierung, dass das Speichermodul 101 dieselbe Komponente ist, die vom Managementsystem 102 authentifiziert wurde, mit der Geschwindigkeit der Speicherschnittstelle 107 und für jede Zugriffsanforderung erfolgen. Außerdem kann diese Funktionalität die Sicherheit erhöhen, dass das Hardwaremodul (hier das Speichermodul 101) zwischen dem Zeitpunkt der Authentifizierung und dem Empfang der Zugriffsanforderung nicht manipuliert wurde.
  • In verschiedenen Ausführungsformen kann das Verwaltungssystem 102 das Speichermodul 101 erneut authentifizieren, während die Computerplattform 100 in Betrieb ist. Die fortgesetzte Authentifizierung kann verwendet werden, um eine weitere Sicherheitsebene hinzuzufügen. Jede Authentifizierung führt zur Erzeugung eines neuen Nonce-Schlüssels, der dann über den vorherigen Nonce-Schlüssel in das Nonce-Register 108 geschrieben wird. Selbst wenn ein Angreifer in der Lage wäre, den Nonce-Schlüssel von einer vorherigen Authentifizierung zu erhalten, würde die kontinuierliche Authentifizierung die Wirksamkeit solcher Angriffsversuche begrenzen. In verschiedenen Ausführungsformen kann das Verwaltungssystem 102 so konfiguriert sein, dass es periodisch eine Authentifizierungsfunktion auf dem Speichermodul 102 durchführt, einen neuen Nonce-Schlüssel erzeugt und den neuen Nonce-Schlüssel im Nonce-Register 108 des Speichermoduls 101 speichert. In anderen Ausführungsformen kann das Verwaltungssystem 102 so konfiguriert sein, dass es die Authentifizierungsfunktion in zufälligen Abständen durchführt. In verschiedenen Ausführungsformen können der Speicher-Controller 103 und das Management-System 102 optional über eine Controller-Management-Schnittstelle 109 kommunikativ gekoppelt sein. In verschiedenen Ausführungsformen können die Controller-Verwaltungsschnittstelle 109 und die Verwaltungsschnittstelle 106 mit demselben Kommunikationsbus der Computerplattform 100 gekoppelt sein, so dass eine einzige Verbindung zwischen dem Verwaltungssystem 102 und dem Kommunikationsbus (z. B. 12C, I3C usw.) erforderlich ist.
  • zeigt ein Beispielverfahren 200 in Übereinstimmung mit der hier offengelegten Technologie. Das Beispielverfahren 200 dient nur zur Veranschaulichung und sollte nicht als Einschränkung des Umfangs der Technologie auf nur die dargestellte Ausführungsform ausgelegt werden. Das Beispielverfahren 200 stellt ein Verfahren zur Authentifizierung von Hardwaremodulen bereit, die mit einer Computerplattform verbunden sind, wie z. B. die Computerplattform 100, die in Bezug auf besprochen wurde. In verschiedenen Ausführungsformen kann das Verfahren 200 von einem Managementsystem einer Computerplattform ausgeführt werden, ähnlich dem Managementsystem 102, das in Bezug auf diskutiert wird. Das Verfahren 200 kann die Ausführung eines Satzes von Anweisungen, die in einem nicht-transitorischen maschinenlesbaren Speichermedium gespeichert sind, durch eine oder mehrere Verarbeitungsschaltungen des Managementsystems umfassen. Wie in gezeigt, kann ein Managementsystem ein Hardwaremodul, das mit einer Computerplattform verbunden ist, bei Operation 202 erkennen. Das Hardwaremodul kann eine von mehreren Hardwarekomponenten umfassen, einschließlich, aber nicht beschränkt auf Speichermodule, Erweiterungskarten, Stromversorgungen und andere. Das Managementsystem kann das Vorhandensein eines Hardwaremoduls basierend auf einem oder mehreren Sensoren erkennen, die so konfiguriert sind, dass sie erkennen, ob eine Hardwarekomponente in einen Komponentensteckplatz der Computerplattform eingesetzt ist, auf der Erkennung eines oder mehrerer Signale an einer Managementschnittstelle, auf dem Empfang einer Antwort auf einen vom Managementsystem gesendeten Ping oder auf einer Kombination davon. In einigen Ausführungsformen kann ein standardisiertes Erkennungsprotokoll verwendet werden, einschließlich, aber nicht beschränkt auf Serial Presence Detect (SPD), Parallel Presence Detect (PPD), FRU EEPROM, MCTP-Bindungsprotokoll und andere.
  • Bei Vorgang 204 kann das Verwaltungssystem Authentifizierungsinformationen abrufen, die in einer Identifizierungskomponente des erkannten Hardwaremoduls gepflegt werden. Jedes Hardwaremodul kann eine oder mehrere Identifikationskomponenten enthalten, die so konfiguriert sind, dass sie eine oder mehrere Arten von Identifikationsdaten für das Hardwaremodul, einschließlich Authentifizierungsinformationen, speichern. Authentifizierungsinformationen können ein oder mehrere Authentifizierungszertifikate enthalten, die Informationen umfassen, die für einen oder mehrere Authentifizierungsprozesse gelten. In einigen Ausführungsformen können das eine oder die mehreren Authentifizierungszertifikate mit einem oder mehreren Zertifikatsstandards, die Sequenzen, Hash-Berechnungen oder Blockchain-Datenpunkte definieren, einer oder mehreren proprietären Zertifizierungsarchitekturen oder einer Kombination aus beidem übereinstimmen. In verschiedenen Ausführungsformen kann das Abrufen der Authentifizierungsinformationen das Lesen eines oder mehrerer Speichereinträge der Identifikationskomponente umfassen, die zum Speichern der Authentifizierungsinformationen konfiguriert sind. Die Authentifizierungsinformationen können über die Verwaltungsschnittstelle abgerufen werden, die das Verwaltungssystem und die Identifikationskomponente des Hardwaremoduls kommunikativ verbindet. In verschiedenen Ausführungsformen kann das Hardwaremodul ein Speichermodul umfassen und die Identifikationskomponente kann einen SPD-Hub umfassen, ähnlich dem in beschriebenen System.
  • Nach dem Abrufen der Authentifizierungsinformationen kann das Verwaltungssystem einen oder mehrere Authentifizierungsprozesse unter Verwendung der Authentifizierungsinformationen bei Operation 206 durchführen. In verschiedenen Ausführungsformen können der eine oder die mehreren Authentifizierungsprozesse einen oder mehrere standardisierte Authentifizierungsprozesse, proprietäre Authentifizierungsprozesse oder eine Kombination aus beiden umfassen. Die hier offengelegte Technologie ist auf jeden Authentifizierungsprozess anwendbar, der unter Verwendung der von der Identifikationskomponente des Hardwaremoduls verwalteten Authentifizierungsinformationen durchgeführt werden kann.
  • Wenn die Authentifizierung als erfolgreich erachtet wird, kann das Verwaltungssystem bei Vorgang 208 einen Nonce-Schlüssel erzeugen. Der Nonce-Schlüssel kann einen Zufallswert umfassen, der erzeugt wurde, um das Hardwaremodul als authentifiziertes Hardwaremodul zu identifizieren. In verschiedenen Ausführungsformen kann die Länge des Nonce-Schlüssels der Größe eines Registers eines Registerarrays der Identifikationskomponente auf dem Hardwaremodul entsprechen. In einigen Ausführungsformen kann der Nonce-Schlüssel aus einem 32-Bit-Zufallswert bestehen. Ein neuer Nonce-Schlüssel kann jedes Mal erzeugt werden, wenn ein Authentifizierungsprozess unter Verwendung der Authentifizierungsinformationen der Identifikationskomponente angewendet wird. Bei Operation 210 kann das Managementsystem den Nonce-Schlüssel in ein Nonce-Register eines der Identifikationskomponente zugeordneten Registerarrays schreiben. Das Managementsystem kann den Nonce-Schlüssel über die Identifikationskomponente in das Nonce-Register schreiben.
  • Wenn der/die Authentifizierungsprozess(e) fehlschlagen, kann das Verwaltungssystem das Hardwaremodul bei Vorgang 212 als nicht authentifiziert kennzeichnen. In verschiedenen Ausführungsformen können das Verwaltungssystem und/oder andere Komponenten der Computerplattform das Kennzeichen, das eine fehlgeschlagene Authentifizierung anzeigt, verwenden, um das weitere Vorgehen zu bestimmen. Als nicht einschränkendes Beispiel kann das Kennzeichen das Verwaltungssystem veranlassen, das Hardwaremodul nicht zu konfigurieren. In anderen Ausführungsformen kann das Managementsystem den Fehler basierend auf dem Flag einem Benutzer oder einer oder mehreren anderen Komponenten der Computerplattform anzeigen. In einigen Ausführungsformen kann das Managementsystem das gekennzeichnete Hardwaremodul in einer sandkastenartigen -Umgebung konfigurieren-, um eine Fehlerbehebung in einer sicheren Umgebung zu ermöglichen, die vom Rest der Betriebsumgebung der Computerplattform isoliert ist.
  • Das Verfahren 200 kann für jedes Hardwaremodul einer Vielzahl von Hardwaremodulen ausgeführt werden, die mit der Computerplattform verbunden sind. In verschiedenen Ausführungsformen kann das Verfahren 200 während des Einschaltens der Computerplattform ausgeführt werden, und in einigen Ausführungsformen kann das Verfahren 200 während des Betriebs immer dann ausgeführt werden, wenn ein neues Hardwaremodul als mit der Computerplattform verbunden erkannt wird (z. B. eine im laufenden Betrieb austauschbare Hardwarekomponente). In verschiedenen Ausführungsformen kann das Verfahren 200 in periodischen Intervallen während des Betriebs der Computerplattform durchgeführt werden, wobei für jede erfolgreiche Authentifizierung neue Nonce-Schlüssel erzeugt werden. Eine solche periodische Authentifizierung kann zusätzliche Sicherheit für den Fall bieten, dass ein Nonce-Schlüssel auf irgendeine Weise von einem Angreifer abgefangen wird. In einigen Ausführungsformen kann das Verfahren 200 in zufälligen Intervallen durchgeführt werden, um die Möglichkeit eines Angreifers, den für die sekundäre Authentifizierung verwendeten Nonce-Schlüssel abzufangen, wenn eine Zugriffsanforderung empfangen wird, weiter zu reduzieren.
  • zeigt ein weiteres Beispielverfahren 300A in Übereinstimmung mit der Technologie der vorliegenden Offenbarung. Das Beispielverfahren 300A dient nur zur Veranschaulichung und sollte nicht als Einschränkung des Umfangs der Technologie auf nur die dargestellte Ausführungsform interpretiert werden. In verschiedenen Ausführungsformen kann das Verfahren 300A von einem Hardware-Modul-Controller einer Computerplattform ausgeführt werden, ähnlich dem Speicher-Controller 103, der in Bezug auf diskutiert wurde. Ein Hardwaremodul-Controller kann eine oder mehrere Komponenten der Computerplattform 100 umfassen, die so konfiguriert sind, dass sie den Zugriff und/oder den Betrieb des/der angeschlossenen Hardwaremoduls/e steuern. In verschiedenen Ausführungsformen kann das Verfahren 300a in einer oder mehreren Hardwarekomponenten oder einer Kombination aus einer oder mehreren Hardwarekomponenten und Firmware der einen oder mehreren Hardwarekomponenten verkörpert sein. Der Einfachheit halber wird das Verfahren 300A in Bezug auf die Computerplattform 100 von erörtert, aber das Verfahren 300A ist auf andere Hardwaremodulsteuerungen einer Computerplattform 100 anwendbar. Wie in gezeigt, kann der Speichercontroller eine Anforderung zum Zugriff auf ein Hardwaremodul an einer Adresse bei Operation 302 empfangen. In verschiedenen Ausführungsformen kann die in der Anforderung enthaltene Adresse einer Speicheradresse eines Speicher-ICs des Speichermoduls entsprechen. Die Anforderung kann von einer oder mehreren Anwendungen, die auf der Computerplattform ausgeführt werden, einem Benutzer der Computerplattform oder einer Kombination davon in verschiedenen Ausführungsformen empfangen werden.
  • Bei Operation 304 kann der Speicher-Controller einen in der Anforderung enthaltenen Identifizierungsschlüssel lesen. Der Identifizierungsschlüssel kann ein in der Anforderung enthaltener Wert sein, der das angeforderte Hardwaremodul identifiziert, das mit der Adresse in der Anforderung verbunden ist. In verschiedenen Ausführungsformen kann der Identifizierungsschlüssel die gleiche Länge wie ein erwarteter Nonce-Schlüssel aufweisen, wie der Nonce-Schlüssel, der oben in Bezug auf die und diskutiert wurde. Bei Operation 306 kann der Speicher-Controller den Nonce-Schlüssel aus einem Nonce-Register des angeschlossenen Hardware-Moduls an der Adresse in der Anforderung lesen. Die Adresse in der Anforderung ist mit einem entsprechenden Komponentensteckplatz der Computerplattform verbunden. Wenn eine Anforderung empfangen wird, kann der Speicher-Controller daher den Nonce-Schlüssel des Hardware-Moduls lesen, das derzeit mit diesem Komponentensteckplatz verbunden ist.
  • Sobald der Identifier-Schlüssel und der Nonce-Schlüssel gelesen wurden, kann der Speicher-Controller die beiden Schlüssel miteinander vergleichen, um festzustellen, ob sie bei Vorgang 308 übereinstimmen. Obwohl die in der Anforderung enthaltene Adresse dazu führt, dass der Speicher-Controller den Nonce-Schlüssel des aktuell angeschlossenen Hardware-Moduls liest, ist der Identifier-Schlüssel ein Wert, der auf das authentifizierte Hardware-Modul hinweist, von dem erwartet wird, dass es mit der Adresse verbunden ist. In verschiedenen Ausführungsformen kann das Verwaltungssystem nach der Authentifizierung einer Hardwarekomponente (z. B. einer Speicherkomponente) einen Identifizierungsschlüssel in die Pfadinformationen aufnehmen, der den Standort der Hardwarekomponente identifiziert. Dieser Identifizierungsschlüssel ist eine Kopie des Nonce-Schlüssels, der nach der erfolgreichen Authentifizierung erzeugt wurde. Wenn eine Anwendung oder eine andere Systeminstanz auf die Hardwarekomponente zugreifen möchte, enthalten die Pfadinformationen, die bei der Adressierung der Anfrage verwendet werden, diesen Identifizierungsschlüssel. Der Vergleich des Identifier-Schlüssels in der Anfrage mit dem Nonce-Schlüssel des angeschlossenen Hardwaremoduls bietet eine größere Sicherheit, dass das tatsächlich angesprochene Hardwaremodul dasselbe ist, das für diesen Adressraum authentifiziert wurde. Auf eine Weise kann ein solcher Vergleich Vertrauen schaffen, wenn es einen Geschwindigkeitsunterschied zwischen der Verwaltungsschnittstelle und der Speicherschnittstelle (oder Datenschnittstelle für andere Hardwaremodule) gibt. Unabhängig von den Geschwindigkeiten der Schnittstellen liefert der Vergleich den Nachweis, dass der Authentifizierungsprozess erfolgreich war und keine Manipulationen nach der Authentifizierung stattgefunden haben.
  • Wenn es eine Übereinstimmung zwischen den Schlüsseln gibt, kann der Speicher-Controller die Anfrage für den Zugriff durch die Anwendung bei Operation 312 erlauben. In verschiedenen Ausführungsformen kann das Zulassen der Anforderung die Bereitstellung einer Kopie der an der angeforderten Adresse gespeicherten Daten an die Anwendung und/oder den Benutzer umfassen. Wenn es keine Übereinstimmung zwischen den Schlüsseln gibt (oder wenn es keinen Nonce-Wert innerhalb des Nonce-Registers gab, der vom Speicher-Controller gelesen werden kann), kann der Speicher-Controller die Anforderung bei Operation 314 verweigern. Wenn es keinen Nonce-Schlüssel gibt, kann der Speicher-Controller optional die Lesevorgänge 308 und 310 überspringen (wie durch die gestrichelte Linie in angezeigt) und von Vorgang 306 direkt zu Vorgang 314 übergehen (d. h. die Anforderung ablehnen), da das Fehlen eines Nonce-Schlüssels ein Hinweis darauf ist, dass das Hardwaremodul keinen Authentifizierungsprozess durchlaufen hat. Bei Vorgang 316 kann der Speicher-Controller das angeschlossene Hardwaremodul als nicht authentifiziert kennzeichnen. In verschiedenen Ausführungsformen kann die Kennzeichnung eine Anzeige umfassen, die an die Anwendung, das Verwaltungssystem, andere Komponenten der Computerplattform oder eine Kombination davon übertragen werden kann. Die Identifizierung des nicht authentifizierten Hardwaremoduls kann ein Hinweis auf einen auf Substitution basierenden -Angriff sein-, und das Kennzeichen kann zur Behebung des Problems verwendet werden.
  • In verschiedenen Ausführungsformen kann das Verfahren 300A bei jeder vom Speicher-Controller empfangenen Zugriffsanforderung auftreten, während in anderen Ausführungsformen das Verfahren 300A auftreten kann, wenn die Zeit zwischen Zugriffsanforderungen für das angeschlossene Hardwaremodul, das an einer oder mehreren Adressen in einer Zugriffsanforderung zugänglich ist, einen bestimmten Schwellenwert überschreitet. Wenn der Speicher-Controller vor kurzem verifiziert hatte, dass das angeschlossene Hardwaremodul das authentifizierte Hardwaremodul ist, kann sich der Speicher-Controller auf diese Information verlassen, wenn kurz darauf ein Zugriff auf dasselbe angeschlossene Hardwaremodul empfangen wird. In verschiedenen Ausführungsformen kann der Schwellenwert auf der Grundlage einer Anzahl von Taktzyklen seit dem letzten Zugriffsversuch auf diese angeschlossene Hardwarekomponente bestimmt werden, während in anderen Ausführungsformen der Schwellenwert auf einer erwarteten Zeit zum Entfernen und Ersetzen eines Hardwaremoduls innerhalb der Computerplattform basieren kann.
  • In verschiedenen Ausführungsformen kann das Verwaltungssystem so konfiguriert sein, dass es das Verfahren 300A ausführt. In solchen Ausführungsformen kann der Speicher-Controller den Identifizierungsschlüssel in einer Zugriffsanforderung identifizieren und den Identifizierungsschlüssel an das Managementsystem senden. Nach Empfang des Identifizierungsschlüssels kann das Verwaltungssystem auf das Nonce-Register eines angeschlossenen Hardwaremoduls an der angeforderten Adresse zugreifen und den Vergleich durchführen.
  • In einigen Ausführungsformen kann das Verwaltungssystem die sekundäre Authentifizierung durchführen, ähnlich wie das Verfahren 300A in . zeigt ein weiteres Beispielverfahren 300B in Übereinstimmung mit Ausführungsformen der hier offengelegten Technologie. Das Beispielverfahren 300B dient nur zur Veranschaulichung und sollte nicht so ausgelegt werden, dass der Umfang der Technologie nur auf die dargestellte Ausführungsform beschränkt ist. Wie in gezeigt, kann ein zweites Computerplattformsystem den Nonce-Schlüssel erzeugen und in das Nonce-Register des Hardwaremoduls bei Operation 320 schreiben. Nicht einschränkende Beispiele für zweite Computerplattformsysteme, die den Nonce-Schlüssel generieren und in das Hardwaremodul schreiben können, sind u. a. das BIOS der Computerplattform, die Systemfirmware oder ein oder mehrere Gerätetreiber. In verschiedenen Ausführungsformen können die zweiten Computerplattformsysteme mit dem Hardwaremodul über eine Schnittstelle kommunikativ gekoppelt sein, einschließlich, aber nicht beschränkt auf eine Datenschnittstelle (z. B. die Speicherschnittstelle 107 von ). In verschiedenen Ausführungsformen kann die zweite Rechenplattformanwendung so konfiguriert sein, dass sie auf das Nonce-Register des Hardwaremoduls zugreift, bevor ein oder mehrere Authentifizierungsprozesse durch das Managementsystem durchgeführt werden, während in anderen Ausführungsformen die zweite Rechenplattform so konfiguriert sein kann, dass sie den einen oder die mehreren Authentifizierungsprozesse durchführt.
  • Bei Vorgang 322 kann das Verwaltungssystem vom zweiten Computerplattformsystem eine Mitteilung über den erzeugten und in das Nonce-Register geschriebenen Nonce-Schlüssel erhalten. In verschiedenen Ausführungsformen kann das zweite Computerplattformsystem das Verwaltungssystem über eine Computerplattformschnittstelle informieren, wie z. B. die Controller-Verwaltungsschnittstelle 109 oder die Verwaltungsschnittstelle 106, die in Bezug auf diskutiert wurde. Nachdem es über den Nonce-Schlüssel informiert wurde, kann das Managementsystem in Operation 324 Authentifizierungsinformationen von einer Identifizierungskomponente des Hardwaremoduls abrufen und in Operation 326 einen oder mehrere Authentifizierungsprozesse unter Verwendung der Authentifizierungsinformationen durchführen. Die Vorgänge 324 und 326 können in ähnlicher Weise durchgeführt werden wie die Vorgänge 204 und 206, die in Bezug auf besprochen wurden. Wenn die Authentifizierung in Vorgang 326 nicht erfolgreich ist, kann das Hardwaremodul in Vorgang 328 als nicht authentisch gekennzeichnet werden, ähnlich wie in Vorgang 212 in beschrieben. Wenn die Authentifizierungsprozesse bei Operation 326 erfolgreich sind, kann das Managementsystem den empfangenen Nonce-Schlüssel von dem zweiten Computerplattformsystem mit dem Nonce-Schlüssel vergleichen, der bei Operation 330 aus dem Nonce-Register des Hardwaremoduls gelesen wurde. Auf diese Weise kann das Verwaltungssystem eine sekundäre Authentifizierung durchführen, dass das Hardwaremodul das richtige Hardwaremodul ist. Wenn die Nonce-Schlüssel nicht übereinstimmen, kann das Hardwaremodul in Vorgang 328 als nicht authentisch gekennzeichnet werden. Wenn die Nonce-Schlüssel übereinstimmen, kann das Verwaltungssystem das Hardwaremodul in Vorgang 332 als authentisch kennzeichnen.
  • ist eine Beispiel-Computerplattform 400 in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung. Wo Operationen und Funktionalität der Computerplattform 400 denen ähnlich sind, die in Bezug auf diskutiert wurden, sollte die Beschreibung als zutreffend interpretiert werden. In verschiedenen Ausführungsformen kann die Datenverarbeitungsplattform 400 der Datenverarbeitungsplattform 100 ähnlich sein, die in Bezug auf die besprochen wurde. Die Datenverarbeitungsplattform 400 umfasst Hardware-Prozessoren 402. In verschiedenen Ausführungsformen können die Hardware-Prozessoren 402 das Verwaltungssystem 102 und/oder den Speicher-Controller 103 umfassen, die in Bezug auf ABB. -13 besprochen wurden. In einigen Ausführungsformen können die Hardwareprozessoren 402 einen oder mehrere Hardwaremodul-Controller umfassen, die so konfiguriert sind, dass sie den Zugriff und/oder die Steuerung anderer Arten von Hardwaremodulen der Computerplattform 400 steuern.
  • Die Hardware-Prozessoren 402 sind so konfiguriert, dass sie Anweisungen ausführen, die auf einem maschinenlesbaren Medium 404 gespeichert sind. Bei dem maschinenlesbaren Medium 404 kann es sich um einen oder mehrere Typen von nicht-transitorischen Computerspeichermedien handeln. Nicht einschränkende Beispiele sind: Flash-Speicher, Solid-State-Speichergeräte (SSDs), ein Storage Area Network (SAN), Wechselspeicher (z. B. Memory-Stick, CD, SD-Karten usw.) oder interner Computer-RAM oder -ROM, neben anderen Arten von Computer-Speichermedien. In verschiedenen Ausführungsformen kann das maschinenlesbare Medium 404 ähnlich wie das nicht-transitorische maschinenlesbare Speichermedium sein, das in Bezug auf die und besprochen wurde. Die auf dem maschinenlesbaren Medium 404 gespeicherten Anweisungen-können verschiedene Unteranweisungen zur Ausführung der durch die identifizierten Funktionen verkörperten Funktion enthalten. Beispielsweise kann die Anweisung 406 „Erkennen eines oder mehrerer angeschlossener Hardwaremodule“ verschiedene Unteranweisungen zum Erkennen angeschlossener Hardwarekomponenten über einen oder mehrere Kommunikationsbusse der Computerplattform in ähnlicher Weise wie oben in Bezug auf die beschrieben enthalten. Die Anweisung 406 kann ferner Unteranweisungen zur Erkennung angeschlossener Module unter Verwendung eines oder mehrerer standardisierter, in der Technik bekannter Erkennungsprotokolle enthalten.
  • Die Anweisung „Abrufen von Authentifizierungsinformationen für jedes angeschlossene Hardwaremodul“ 408 kann verschiedene Unteranweisungen -für den Zugriff auf Authentifizierungsinformationen enthalten-, die auf dem angeschlossenen Hardwaremodul gespeichert sind, und zwar in ähnlicher Weise wie -oben in -ABB. -14- beschrieben-. Das Abrufen der Informationen kann über eine Verwaltungsschnittstelle zwischen einem Hardwaremodul und einem Verwaltungssystem der Computerplattform erfolgen. In verschiedenen Ausführungsformen kann die Anweisung 408 Unteranweisungen -für den Zugriff auf Authentifizierungsinformationen enthalten-, die in einer Identifikationskomponente des Hardwaremoduls verwaltet werden. In verschiedenen Ausführungsformen kann die Identifikationskomponente einen SPD-Hub eines Speichermoduls umfassen.
  • Die Anweisung „authenticate each hardware module“ 410 kann verschiedene Unteranweisungen -zur Durchführung eines oder mehrerer Authentifizierungsprozesse in ähnlicher Weise wie oben in Bezug auf beschrieben enthalten. Die Anweisung „generate a nonce key“ 412 kann verschiedene Unteranweisungen -zur Durchführung einer Zufallswertgenerierung in ähnlicher Weise wie oben in Bezug auf die beschrieben enthalten. In verschiedenen Ausführungsformen kann der Befehl 412 ferner Unterbefehle zum Schreiben des erzeugten Nonce-Schlüssels in ein Nonce-Register eines Registerarrays des Hardwaremoduls enthalten. Die Anweisung 412 kann ferner Anweisungen zum Schreiben des generierten Nonce-Schlüssels über eine Verwaltungsschnittstelle über die Identifikationskomponente enthalten.
  • Die Anweisung „Empfang einer Zugriffsanforderung auf ein angeschlossenes Hardwaremodul“ 414 kann verschiedene Unteranweisungen -zum Empfangen einer Anforderung von einer Anwendung oder einem Benutzer der Computerplattform in ähnlicher Weise wie oben in Bezug auf die beschrieben enthalten. Die Anweisung „Vergleich eines Identifizierungsschlüssels in einer Anforderung mit einem Nonce-Schlüssel, der dem angeschlossenen Hardwaremodul zugeordnet ist“ 416 kann verschiedene Unteranweisungen -zum Lesen und/oder Abrufen des Identifizierungsschlüssels aus einer Zugriffsanforderung und eines Nonce-Schlüssels innerhalb eines Nonce-Registers einer Hardwarekomponente, auf die an der Adresse in der Anforderung zugegriffen werden kann, in ähnlicher Weise wie in Bezug auf beschrieben, enthalten. In verschiedenen Ausführungsformen kann die Anweisung 416 ferner Unteranweisungen enthalten-, um den Identifizierungsschlüssel innerhalb der Anforderung zu identifizieren. Die Anweisung 416 kann Unteranweisungen -zum Übertragen des Identifizierungsschlüssels an ein Verwaltungssystem der Computerplattform enthalten.
  • Die Anweisung „Bestimmen, ob der Identifizierungsschlüssel und der Nonce-Schlüssel übereinstimmen“ 418 kann verschiedene Unteranweisungen -zum Identifizieren des Ergebnisses des Vergleichs des Identifizierungsschlüssels und des Nonce-Schlüssels aus der Anweisung 418 in ähnlicher Weise wie oben in Bezug auf die beschrieben enthalten. In verschiedenen Ausführungsformen kann die Anweisung 418 ferner eine oder mehrere Unteranweisungen enthalten-, um der Anwendung und/oder dem Benutzer den Zugriff auf die angeforderte Speicheradresse zu ermöglichen, wenn der Identifizierungsschlüssel und der Nonce-Schlüssel übereinstimmen, wodurch festgestellt wird, dass das angeschlossene Hardwaremodul das gleiche Hardwaremodul ist, das zuvor authentifiziert wurde. Die Anweisung 418 kann Unteranweisungen enthalten-, um das angeschlossene Hardwaremodul als nicht authentifiziertes Hardwaremodul zu kennzeichnen und die Kennzeichnungsanzeige an eine oder mehrere andere Komponenten der Computerplattform in einer ähnlichen Weise zu senden, wie sie oben in Bezug auf ABB. -14- beschrieben wurde-.
  • Es sei darauf hingewiesen, dass die hier verwendeten Begriffe „optimieren“, „optimal“ und dergleichen verwendet werden können, um die Leistung so effektiv oder perfekt wie möglich zu machen oder zu erreichen. Wie jedoch ein Fachmann, der dieses Dokument liest, erkennen wird, kann Perfektion nicht immer erreicht werden. Dementsprechend können diese Begriffe auch bedeuten, die Leistung so gut oder effektiv wie möglich oder praktisch unter den gegebenen Umständen zu machen oder zu erreichen, oder die Leistung besser zu machen oder zu erreichen als die, die mit anderen Einstellungen oder Parametern erreicht werden kann. ]
  • zeigt ein Blockdiagramm eines beispielhaften Computersystems 500, in dem verschiedene der hier beschriebenen Ausführungsformen implementiert werden können. Das Computersystem 500 umfasst einen Bus 502 oder einen anderen Kommunikationsmechanismus zur Übermittlung von Informationen, einen oder mehrere mit dem Bus 502 gekoppelte Hardwareprozessoren 504 zur Verarbeitung von Informationen. Der/die Hardware-Prozessor(en) 504 kann/können z. B. ein oder mehrere Allzweck-Mikroprozessoren sein.
  • Das Computersystem 500 umfasst auch einen Hauptspeicher 506, wie z. B. einen Speicher mit wahlfreiem Zugriff (RAM), einen Cache und/oder andere dynamische Speichergeräte, die mit dem Bus 502 verbunden sind, um Informationen und Anweisungen zu speichern, die vom Prozessor 504 ausgeführt werden sollen. Der Hauptspeicher 506 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen verwendet werden, die vom Prozessor 504 ausgeführt werden sollen. Solche Anweisungen, wenn sie in Speichermedien gespeichert sind, auf die der Prozessor 504 zugreifen kann, machen das Computersystem 500 zu einer Spezialmaschine, die so angepasst ist, dass sie die in den Anweisungen angegebenen Operationen ausführt.
  • Das Computersystem 500 umfasst außerdem einen Festwertspeicher (ROM) 508 oder ein anderes statisches Speichergerät, das mit dem Bus 502 verbunden ist, um statische Informationen und Anweisungen für den Prozessor 504 zu speichern. Ein Speichergerät 510, z. B. eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Laufwerk) usw., ist vorgesehen und mit dem Bus 502 gekoppelt, um Informationen und Anweisungen zu speichern.
  • Das Computersystem 500 kann über den Bus 502 mit einem Display 512, z. B. einer Flüssigkristallanzeige (LCD) (oder einem Touchscreen), zur Anzeige von Informationen für einen Computerbenutzer gekoppelt sein. Ein Eingabegerät 514, einschließlich alphanumerischer und anderer Tasten, ist mit dem Bus 502 gekoppelt, um Informationen und Befehlsauswahlen an den Prozessor 504 zu übermitteln. Eine andere Art von Benutzer-Eingabegerät ist die Cursorsteuerung 516, wie z. B. eine Maus, ein Trackball oder Cursor-Richtungstasten zur Übermittlung von Richtungsinformationen und Befehlsauswahlen an den Prozessor 504 und zur Steuerung der Cursorbewegung auf der Anzeige 512. In einigen Ausführungsformen können die gleichen Richtungsinformationen und Befehlsauswahlen wie bei der Cursorsteuerung über den Empfang von Berührungen auf einem Touchscreen ohne Cursor implementiert werden.
  • Das Computersystem 500 kann ein Benutzerschnittstellenmodul zur Implementierung einer grafischen Benutzeroberfläche enthalten, das in einem Massenspeichergerät als ausführbare Softwarecodes gespeichert sein kann, die von dem/den Computergerät(en) ausgeführt werden. Dieses und andere Module können beispielhaft Komponenten wie Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Aufgabenkomponenten, Prozesse, Funktionen, Attribute, Prozeduren, Unterprogramme, Segmente von Programmcode, Treiber, Firmware, Mikrocode, Schaltungen, Daten, Datenbanken, Datenstrukturen, Tabellen, Arrays und Variablen enthalten.
  • Im Allgemeinen kann sich das hier verwendete Wort „Komponente“, „Engine“, „System“, „Datenbank“, „Datenspeicher“ und dergleichen auf eine in Hardware oder Firmware verkörperte Logik oder auf eine Sammlung von Softwareanweisungen beziehen, die möglicherweise Ein- und Ausstiegspunkte haben und in einer Programmiersprache wie z. B. Java, C oder C++ geschrieben sind. Eine Softwarekomponente kann kompiliert und zu einem ausführbaren Programm verknüpft werden, in einer dynamischen Link-Bibliothek installiert werden oder in einer interpretierten Programmiersprache wie z. B. BASIC, Perl oder Python geschrieben sein. Softwarekomponenten können von anderen Komponenten oder von sich selbst aus aufrufbar sein und/oder als Reaktion auf erkannte Ereignisse oder Interrupts aufgerufen werden. Softwarekomponenten, die für die Ausführung auf Computergeräten konfiguriert sind, können auf einem computerlesbaren Medium, wie z. B. einer Compact Disc, einer digitalen Video-Disc, einem Flash-Laufwerk, einer Magnetplatte oder einem anderen greifbaren Medium, oder als digitaler Download bereitgestellt werden (und können ursprünglich in einem komprimierten oder installierbaren Format gespeichert sein, das vor der Ausführung eine Installation, Dekomprimierung oder Entschlüsselung erfordert). Ein solcher Softwarecode kann teilweise oder vollständig auf einer Speichervorrichtung des ausführenden Computergeräts gespeichert werden, um von dem Computergerät ausgeführt zu werden. Softwareanweisungen können in Firmware, wie z. B. einem EPROM, eingebettet sein. Es versteht sich von selbst, dass Hardware-Komponenten aus angeschlossenen Logikeinheiten, wie Gattern und Flipflops, bestehen können und/oder aus programmierbaren Einheiten, wie programmierbaren Gate-Arrays oder Prozessoren, zusammengesetzt sein können.
  • Das Computersystem 500 kann die hier beschriebenen Techniken unter Verwendung von kundenspezifischer festverdrahteter Logik, einem oder mehreren ASICs oder FPGAs, Firmware und/oder Programmlogik implementieren, die in Kombination mit dem Computersystem das Computersystem 500 zu einer Spezialmaschine macht oder programmiert. Gemäß einer Ausführungsform werden die hierin beschriebenen Techniken vom Computersystem 500 als Reaktion auf den/die Prozessor(en) 504 ausgeführt, der/die eine oder mehrere Sequenzen von einer oder mehreren Anweisungen ausführt/ausführen, die im Hauptspeicher 506 enthalten sind. Solche Anweisungen können in den Hauptspeicher 506 von einem anderen Speichermedium, wie z. B. dem Speichergerät 510, eingelesen werden. Die Ausführung der im Hauptspeicher 506 enthaltenen Befehlssequenzen veranlasst den/die Prozessor(en) 504, die hier beschriebenen Prozessschritte durchzuführen. In alternativen Ausführungsformen können fest verdrahtete Schaltungen anstelle von oder in Kombination mit Softwareanweisungen verwendet werden.
  • Der Begriff „nicht-transitorische Medien“ und ähnliche Begriffe, wie sie hier verwendet werden, beziehen sich auf alle Medien, die Daten und/oder Befehle speichern, die eine Maschine dazu veranlassen, auf eine bestimmte Weise zu arbeiten. Solche nicht-transitorischen Medien können nichtflüchtige Medien und/oder flüchtige Medien umfassen. Zu den nichtflüchtigen Medien gehören z. B. optische oder magnetische Platten, wie das Speichergerät 510. Zu den flüchtigen Medien gehören dynamische Speicher, wie z. B. der Hauptspeicher 506. Zu den üblichen Formen nichtflüchtiger Medien gehören beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Solid-State-Laufwerk, ein Magnetband oder ein anderes magnetisches Datenspeichermedium, eine CD-ROM, ein anderes optisches Datenspeichermedium, ein beliebiges physikalisches Medium mit Lochmustern, ein RAM, ein PROM und EPROM, ein FLASH-EPROM, NVRAM, ein beliebiger anderer Speicherchip oder eine Kassette sowie vernetzte Versionen derselben.
  • Nicht-transitorische Medien unterscheiden sich von Übertragungsmedien, können aber in Verbindung mit diesen verwendet werden. Übertragungsmedien sind an der Übertragung von Informationen zwischen nicht-transitiven Medien beteiligt. Zu den Übertragungsmedien gehören z. B. Koaxialkabel, Kupferdraht und Lichtwellenleiter, einschließlich der Drähte, aus denen der Bus 502 besteht. Übertragungsmedien können auch in Form von akustischen oder Lichtwellen auftreten, wie sie z. B. bei der Radiowellen- und Infrarot-Datenkommunikation erzeugt werden.
  • Das Computersystem 500 enthält auch eine Kommunikationsschnittstelle 518, die mit dem Bus 502 gekoppelt ist. Die Netzwerkschnittstelle 518 stellt eine Zweiwege-Datenkommunikationskopplung zu einer oder mehreren Netzwerkverbindungen bereit, die mit einem oder mehreren lokalen Netzwerken verbunden sind. Beispielsweise kann die Kommunikationsschnittstelle 518 eine ISDN-Karte (Integrated Services Digital Network), ein Kabelmodem, ein Satellitenmodem oder ein Modem sein, um eine Datenkommunikationsverbindung mit einer entsprechenden Art von Telefonleitung bereitzustellen. Als weiteres Beispiel kann die Netzwerkschnittstelle 518 eine LAN-Karte (Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN (oder einer WAN-Komponente zur Kommunikation mit einem WAN) bereitzustellen. Es können auch drahtlose Verbindungen implementiert werden. In jeder derartigen Implementierung sendet und empfängt die Netzwerkschnittstelle 518 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen, die verschiedene Arten von Informationen darstellen.
  • Eine Netzwerkverbindung bietet typischerweise Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datengeräten. So kann eine Netzwerkverbindung beispielsweise eine Verbindung über ein lokales Netzwerk zu einem Host-Computer oder zu Datengeräten bereitstellen, die von einem Internet Service Provider (ISP) betrieben werden. Der ISP wiederum bietet Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz an, das heute allgemein als „Internet“ bezeichnet wird. Sowohl das lokale Netzwerk als auch das Internet verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netzwerke und die Signale auf der Netzwerkverbindung und durch die Kommunikationsschnittstelle 518, die die digitalen Daten zum und vom Computersystem 500 tragen, sind Beispielformen von Übertragungsmedien.
  • Das Computersystem 500 kann Nachrichten senden und Daten, einschließlich Programmcode, über das/die Netzwerk(e), die Netzwerkverbindung und die Kommunikationsschnittstelle 518 empfangen. Im Internet-Beispiel könnte ein Server einen angeforderten Code für ein Anwendungsprogramm über das Internet, den ISP, das lokale Netzwerk und die Kommunikationsschnittstelle 518 übertragen.
  • Der empfangene Code kann von Prozessor 504 ausgeführt werden, wenn er empfangen wird, und/oder in Speichergerät 510 oder einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert werden.
  • Jeder der in den vorangegangenen Abschnitten beschriebenen Prozesse, Methoden und Algorithmen kann in Codekomponenten verkörpert und vollständig oder teilweise automatisiert sein, die von einem oder mehreren Computersystemen oder Computerprozessoren ausgeführt werden, die Computerhardware umfassen. Das eine oder die mehreren Computersysteme oder Computerprozessoren können auch so betrieben werden, dass sie die Ausführung der relevanten Vorgänge in einer „Cloud Computing“-Umgebung oder als „Software as a Service“ (SaaS) unterstützen. Die Prozesse und Algorithmen können teilweise oder vollständig in anwendungsspezifischen Schaltkreisen implementiert sein. Die verschiedenen oben beschriebenen Funktionen und Prozesse können unabhängig voneinander verwendet oder auf verschiedene Weise kombiniert werden. Verschiedene Kombinationen und Unterkombinationen sollen in den Anwendungsbereich dieser Offenlegung fallen, und bestimmte Verfahrens- oder Prozessblöcke können in einigen Implementierungen weggelassen werden. Die hier beschriebenen Methoden und Prozesse sind auch nicht auf eine bestimmte Reihenfolge beschränkt, und die Blöcke oder Zustände, die sich darauf beziehen, können in anderen geeigneten Sequenzen ausgeführt werden, oder sie können parallel oder auf eine andere Weise ausgeführt werden. Blöcke oder Zustände können zu den offengelegten Ausführungsbeispielen hinzugefügt oder aus ihnen entfernt werden. Die Ausführung bestimmter Operationen oder Prozesse kann auf Computersysteme oder Computerprozessoren verteilt sein, die sich nicht nur innerhalb einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen verteilt sind.
  • Eine Schaltung kann in jeder Form von Hardware, Software oder einer Kombination davon implementiert sein. Beispielsweise können ein oder mehrere Prozessoren, Controller, ASICs, PLAs, PALs, CPLDs, FPGAs, logische Komponenten, Software-Routinen oder andere Mechanismen implementiert werden, um eine Schaltung zu bilden. Bei der Implementierung können die verschiedenen hier beschriebenen Schaltungen als diskrete Schaltungen implementiert werden, oder die beschriebenen Funktionen und Merkmale können teilweise oder insgesamt auf eine oder mehrere Schaltungen aufgeteilt werden. Auch wenn verschiedene Merkmale oder Elemente der Funktionalität einzeln als separate Schaltkreise beschrieben oder beansprucht werden, können diese Merkmale und Funktionen von einem oder mehreren gemeinsamen Schaltkreisen gemeinsam genutzt werden, und eine solche Beschreibung soll nicht voraussetzen oder implizieren, dass separate Schaltkreise erforderlich sind, um diese Merkmale oder Funktionen zu implementieren. Wenn eine Schaltung ganz oder teilweise mit Software implementiert ist, kann diese Software so implementiert werden, dass sie mit einem Computer- oder Verarbeitungssystem arbeitet, das in der Lage ist, die in Bezug darauf beschriebene Funktionalität auszuführen, wie z. B. das Computersystem 500.
  • Wie hierin verwendet, kann der Begriff „oder“ sowohl in einem einschließenden als auch in einem ausschließenden Sinn verstanden werden. Darüber hinaus ist die Beschreibung von Ressourcen, Vorgängen oder Strukturen im Singular nicht so zu verstehen, dass der Plural ausgeschlossen wird. Bedingte Ausdrücke wie z. B. „kann“, „könnte“, „könnte“ oder „darf“, sofern nicht ausdrücklich anders angegeben oder im Kontext anders verstanden, sollen im Allgemeinen vermitteln, dass bestimmte Ausführungsformen bestimmte Merkmale, Elemente und/oder Schritte enthalten, während andere Ausführungsformen diese nicht enthalten.
  • Begriffe und Ausdrücke, die in diesem Dokument verwendet werden, und Variationen davon, sollten, sofern nicht ausdrücklich anders angegeben, als offen und nicht als einschränkend verstanden werden. Adjektive wie „konventionell“, „traditionell“, „normal“, „Standard“, „bekannt“ und Begriffe mit ähnlicher Bedeutung sind nicht so zu verstehen, dass sie den beschriebenen Gegenstand auf einen bestimmten Zeitraum oder auf einen Gegenstand beschränken, der zu einem bestimmten Zeitpunkt verfügbar ist, sondern sollten so verstanden werden, dass sie konventionelle, traditionelle, normale oder Standardtechnologien umfassen, die jetzt oder zu einem beliebigen Zeitpunkt in der Zukunft verfügbar oder bekannt sein können. Das Vorhandensein von erweiternden Wörtern und Ausdrücken wie „eine oder mehrere“, „mindestens“, „aber nicht beschränkt auf“ oder anderen ähnlichen Ausdrücken in einigen Fällen ist nicht so zu verstehen, dass der engere Fall beabsichtigt oder erforderlich ist in Fällen, in denen solche erweiternden Ausdrücke fehlen können.

Claims (20)

  1. Ein Verfahren, das Folgendes umfasst: Empfangen einer Anforderung zum Zugriff auf ein angefordertes Hardwaremodul von einer Anwendung, die auf der Computerplattform ausgeführt wird, durch ein erstes Gerät einer Computerplattform; Lesen, durch das erste Gerät, eines Identifikationsschlüssels, der in der Anfrage enthalten ist; Lesen eines Nonce-Schlüssels, der in einem Nonce-Register eines Hardwaremoduls an einer in der Anforderung enthaltenen Adresse gehalten wird, durch das erste Gerät; Vergleichen des identifizierten Schlüssels und des Nonce-Schlüssels durch das erste Gerät; wenn der Identifizierungsschlüssel mit dem Nonce-Schlüssel übereinstimmt; Bestimmen, durch die erste Vorrichtung, dass das angeforderte Hardwaremodul ein authentifiziertes Hardwaremodul ist, das mit der Adresse innerhalb der Anforderung verbunden ist; und Ermöglichen des Zugriffs der Anwendung auf das Hardwaremodul durch das erste Gerät.
  2. Das Verfahren nach Anspruch 1, ferner umfassend, wenn der Identifizierungsschlüssel nicht mit dem Nonce-Schlüssel übereinstimmt, das Bestimmen, durch die erste Vorrichtung, dass das Hardwaremodul an der Adresse kein authentifiziertes Hardwaremodul ist.
  3. Das Verfahren nach Anspruch 2, ferner umfassend das Kennzeichnen des Hardwaremoduls an der in der Anforderung enthaltenen Adresse durch das erste Gerät als nicht authentifiziertes Modul.
  4. Das Verfahren nach Anspruch 1, wobei das Hardwaremodul ein Speichermodul umfasst, das mit der Computerplattform verbunden ist.
  5. Das Verfahren nach Anspruch 4, wobei die erste Vorrichtung einen Speicher-Controller umfasst, der so konfiguriert ist, dass er über eine Speicherschnittstelle auf das Nonce-Register zugreift, oder ein Verwaltungssystem, das so konfiguriert ist, dass es über eine Verwaltungsschnittstelle das Nonce-Register liest.
  6. Das Verfahren nach Anspruch 1, wobei der Nonce-Schlüssel einen Zufallswert umfasst, der von einem Managementsystem erzeugt wird, wenn das Hardwaremodul erfolgreich authentifiziert wurde.
  7. Das Verfahren nach Anspruch 1, wobei der Nonce-Schlüssel von einem Verwaltungssystem der Computerplattform erzeugt wird, das anzeigt, dass ein Authentifizierungsprozess das Hardwaremodul an der Adresse erfolgreich authentifiziert hat.
  8. Das Verfahren nach Anspruch 7, das weiterhin umfasst: Abrufen von Authentifizierungsinformationen, die in einer Identifikationskomponente eines angeschlossenen Hardwaremoduls gehalten werden, durch das Managementsystem; und Schreiben des Nonce-Schlüssels durch das Managementsystem in das Nonce-Register des authentifizierten Hardwaremoduls.
  9. Ein Verfahren, das Folgendes umfasst: Durchführen einer ersten Authentifizierung einer Identifikationskomponente eines angeschlossenen Hardwaremoduls über eine erste Schnittstelle durch ein erstes Gerät, wobei das angeschlossene Hardwaremodul mit einer Computerplattform verbunden ist; wenn die erste Authentifizierung erfolgreich ist, Schreiben eines Nonce-Schlüssels durch das erste Gerät in ein Nonce-Register der Identifikationskomponente des authentifizierten angeschlossenen Hardwaremoduls; Empfangen einer Anforderung zum Zugriff auf ein angefordertes Hardwaremodul von einer Anwendung, die auf der Computerplattform ausgeführt wird, wobei die Anforderung einen Identifizierungsschlüssel, der das angeforderte Hardwaremodul identifiziert, und eine Adresse für den Zugriff enthält, wobei die Anforderung über eine zweite Schnittstelle empfangen wird; Lesen eines Nonce-Schlüssels aus einem Nonce-Register des angeforderten Hardwaremoduls durch das zweite Gerät; Vergleichen des Nonce-Schlüssels aus dem Nonce-Register des angeforderten Hardwaremoduls und des in der Zugriffsanforderung enthaltenen Identifizierungsschlüssels durch das zweite Gerät; wenn der Identifizierungsschlüssel mit dem aus dem Nonce-Register gelesenen Nonce-Schlüssel übereinstimmt, Bestimmen durch die zweite Vorrichtung, dass das angeforderte Hardwaremodul das authentifizierte angeschlossene Hardwaremodul ist; und Ermöglicht dem zweiten Gerät den Zugriff auf das angeforderte Hardwaremodul an der in der Anforderung enthaltenen Adresse.
  10. Das Verfahren nach Anspruch 9, das ferner umfasst, dass, wenn der Identifizierungsschlüssel nicht mit dem Nonce-Schlüssel übereinstimmt, durch die zweite Vorrichtung bestimmt wird, dass ein Hardwaremodul an der Adresse kein authentifiziertes Hardwaremodul ist.
  11. Das Verfahren nach Anspruch 10, ferner umfassend das Kennzeichnen des Hardwaremoduls an der in der Anforderung enthaltenen Adresse durch das zweite Gerät als nicht authentifiziertes Modul.
  12. Das Verfahren nach Anspruch 9, wobei die erste Vorrichtung ein Verwaltungssystem der Computerplattform ist, die zweite Vorrichtung ein Speichercontroller der Computerplattform ist und das angeschlossene Hardwaremodul ein Speichermodul ist.
  13. Das Verfahren nach Anspruch 12, wobei die Identifikationskomponente einen SPD-Hub (Serial Presence Detect) des Speichermoduls umfasst, wobei der SPD-Hub Authentifizierungsinformationen umfasst, die zur Verwendung durch das Managementsystem während eines Authentifizierungsprozesses geeignet sind.
  14. Das Verfahren nach Anspruch 12, wobei die erste Schnittstelle eine Managementschnittstelle und die zweite Schnittstelle eine Speicherschnittstelle ist.
  15. Das Verfahren nach Anspruch 9, wobei die erste Vorrichtung ein Speicher-Controller der Computerplattform ist, die zweite Vorrichtung ein Verwaltungssystem der Computerplattform ist und das angeschlossene Hardwaremodul ein Speichermodul ist.
  16. Das Verfahren nach Anspruch 15, wobei das Empfangen einer Zugriffsanforderung das Empfangen einer Kopie einer Zugriffsanforderung, die der Speicher-Controller von einer Anwendung empfangen hat, durch das Verwaltungssystem umfasst.
  17. Das Verfahren nach Anspruch 15, wobei das Empfangen einer Zugriffsanforderung umfasst: Empfangen der Zugriffsanforderung durch den Speicher-Controller; Identifizieren des Identifizierungsschlüssels innerhalb der Anfrage durch den Speicher-Controller; und Empfangen des Identifizierungsschlüssels vom Speicher-Controller durch das Verwaltungssystem.
  18. Das Verfahren nach Anspruch 9, wobei der Nonce-Schlüssel und der Identifizierungsschlüssel jeweils einen 32-Bit-Zufallswert umfassen.
  19. Eine Computerplattform, die Folgendes umfasst: ein Verwaltungssystem, das so konfiguriert ist, dass es einen oder mehrere Authentifizierungsprozesse durchführt; einen Hardwaremodul-Controller, der so konfiguriert ist, dass er den Zugriff auf ein oder mehrere Hardwaremodule steuert, die mit der Computerplattform verbunden sind; und ein oder mehrere Hardwaremodule, die mit der Computerplattform verbunden sind, wobei jedes der Hardwaremodule eine Verwaltungsschnittstelle und eine Datenschnittstelle aufweist; wobei das Verwaltungssystem über die Verwaltungsschnittstelle kommunikativ mit einer Identifikationskomponente und einem Register jedes der Hardwaremodule gekoppelt ist, wobei der Hardwaremodul-Controller kommunikativ mit dem Register jedes Hardwaremoduls gekoppelt ist und das Verwaltungssystem so konfiguriert ist, dass es einen Authentifizierungsprozess auf jedem Hardwaremodul durchführt, der Folgendes umfasst: Authentifizierungsinformationen abrufen, die in der Identifikationskomponente verwaltet werden; das Hardwaremodul anhand der Authentifizierungsinformationen authentifizieren; wenn die Authentifizierung des Hardwaremoduls erfolgreich ist, Erzeugen eines Nonce-Schlüssels, der einen Zufallswert umfasst; und Schreiben des Nonce-Schlüssels in das Register des Hardwaremoduls.
  20. Die Computerplattform nach Anspruch 19, wobei das eine oder die mehreren Hardwaremodule ein oder mehrere Speichermodule umfassen und die Identifikationskomponente jedes Speichermoduls einen SPD-Hub (Serial Presence Detect) des jeweiligen Speichermoduls umfasst.
DE102021107211.5A 2020-05-08 2021-03-23 Speichermodul-Authentifizierungserweiterung Active DE102021107211B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/870,063 2020-05-08
US16/870,063 US11609980B2 (en) 2020-05-08 2020-05-08 Memory module authentication extension

Publications (2)

Publication Number Publication Date
DE102021107211A1 true DE102021107211A1 (de) 2021-11-11
DE102021107211B4 DE102021107211B4 (de) 2024-06-27

Family

ID=78231968

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021107211.5A Active DE102021107211B4 (de) 2020-05-08 2021-03-23 Speichermodul-Authentifizierungserweiterung

Country Status (3)

Country Link
US (2) US11609980B2 (de)
CN (1) CN113626791B (de)
DE (1) DE102021107211B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11650936B2 (en) 2020-05-08 2023-05-16 Hewlett Packard Enterprise Development Lp Field-replaceable unit (FRU) secure component binding
US11609980B2 (en) * 2020-05-08 2023-03-21 Hewlett Packard Enterprise Development Lp Memory module authentication extension

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289688B2 (en) * 2010-06-22 2019-05-14 International Business Machines Corporation Metadata access in a dispersed storage network
US20070101401A1 (en) * 2005-10-27 2007-05-03 Genty Denise M Method and apparatus for super secure network authentication
JP4643479B2 (ja) 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
US8104073B2 (en) * 2007-08-10 2012-01-24 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols
US8245053B2 (en) 2009-03-10 2012-08-14 Dell Products, Inc. Methods and systems for binding a removable trusted platform module to an information handling system
US8797139B2 (en) 2012-02-23 2014-08-05 Infineon Technologies Ag System-level chip identify verification (locking) method with authentication chip
US20140281539A1 (en) * 2012-03-30 2014-09-18 Goldman, Sachs & Co. Secure Mobile Framework With Operating System Integrity Checking
GB2522032A (en) 2014-01-10 2015-07-15 Ibm Controlling the configuration of computer systems
US20150372825A1 (en) 2014-06-23 2015-12-24 Google Inc. Per-Device Authentication
US9806887B1 (en) * 2014-09-23 2017-10-31 Amazon Technologies, Inc. Authenticating nonces prior to encrypting and decrypting cryptographic keys
US9652253B2 (en) * 2015-09-16 2017-05-16 Dell Products L.P. Field replaceable unit authentication system
CN105354121A (zh) 2015-11-20 2016-02-24 浪潮集团有限公司 一种用于验证多种读写方式存储模块的验证平台的搭建方法
US10587421B2 (en) 2017-01-12 2020-03-10 Honeywell International Inc. Techniques for genuine device assurance by establishing identity and trust using certificates
US10880296B2 (en) * 2017-03-30 2020-12-29 Kingston Digital Inc. Smart security storage
US11120117B2 (en) * 2018-03-19 2021-09-14 Hcl Technologies Limited System and method for delegating access of sensitive information
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
US10776293B2 (en) 2018-05-01 2020-09-15 Integrated Device Technology, Inc. DDR5 RCD interface protocol and operation
US10839108B2 (en) 2018-05-29 2020-11-17 Seagate Technology Llc Storage device and verification thereof
US10771264B2 (en) 2018-10-10 2020-09-08 Hewlett Packard Enterprise Development Lp Securing firmware
US11308194B2 (en) 2018-10-31 2022-04-19 Seagate Technology Llc Monitoring device components using distributed ledger
US11609980B2 (en) * 2020-05-08 2023-03-21 Hewlett Packard Enterprise Development Lp Memory module authentication extension
US11650936B2 (en) * 2020-05-08 2023-05-16 Hewlett Packard Enterprise Development Lp Field-replaceable unit (FRU) secure component binding

Also Published As

Publication number Publication date
US20210349985A1 (en) 2021-11-11
US11609980B2 (en) 2023-03-21
US11899777B2 (en) 2024-02-13
CN113626791A (zh) 2021-11-09
US20230222203A1 (en) 2023-07-13
CN113626791B (zh) 2023-09-12
DE102021107211B4 (de) 2024-06-27

Similar Documents

Publication Publication Date Title
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
EP2727277B1 (de) System zur sicheren übertragung von daten und verfahren
DE102020122712A1 (de) Integritätsmanifest-zertifikat
DE102007057901A1 (de) Anordnung und Verfahren zur sicheren Aktualisierung von Firmwarevorrichtungen unter Verwendung eines Hypervisor
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE112018004753T5 (de) Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle
DE102021107211B4 (de) Speichermodul-Authentifizierungserweiterung
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102008006759A1 (de) Prozessor-Anordnungen, Prozessor, Verfahren zum Betreiben einer Prozessor-Anordnung
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE202014010905U1 (de) Operationen von nichtflüchtigen Speichern
DE102016106871A1 (de) Steuervorrichtung und Verfahren zum Sichern von Daten
DE60317024T2 (de) Methode zum Setzen der Konfigurationsinformationen eines Speichergerätes
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln
DE102010038179B4 (de) Individuelle Aktualisierung von Computerprogrammen
DE102018130297A1 (de) Arbeitsnachweis-Konzept für ein Fahrzeug
EP3191902B1 (de) Verfahren zum zugreifen auf funktionen eines embedded-geräts
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE112019004146T5 (de) Authentifizierung von dateien
EP3244331B1 (de) Verfahren zum lesen von attributen aus einem id-token
DE102019105390A1 (de) Ersetzen von sicherheitsanmeldeinformationen für das fahrzeugsteuermodul
DE102021104326A1 (de) Sichere speicherverbesserungen für authentifizierungssysteme

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
R016 Response to examination communication
R018 Grant decision by examination section/examining division