DE112021000964T5 - Zur multi-faktor-authentifizierung fähiges speichersubsystem - Google Patents

Zur multi-faktor-authentifizierung fähiges speichersubsystem Download PDF

Info

Publication number
DE112021000964T5
DE112021000964T5 DE112021000964.8T DE112021000964T DE112021000964T5 DE 112021000964 T5 DE112021000964 T5 DE 112021000964T5 DE 112021000964 T DE112021000964 T DE 112021000964T DE 112021000964 T5 DE112021000964 T5 DE 112021000964T5
Authority
DE
Germany
Prior art keywords
data
host system
storage subsystem
request
challenge
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
DE112021000964.8T
Other languages
English (en)
Inventor
James Ruane
Robert W. Strong
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE112021000964T5 publication Critical patent/DE112021000964T5/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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • 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/3271Cryptographic 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 challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Von einem Hostsystem wird eine Anfrage empfangen, eine Authentifizierungssitzung einzuleiten. Challenge-Daten werden basierend auf der Anfrage erzeugt und dem Hostsystem als Reaktion auf die Anfrage bereitgestellt. Authentifizierungsdaten werden vom Hostsystem empfangen. Die Authentifizierungsdaten umfassen eine digitale Signatur und Aktivierungsdaten. Die digitale Signatur wird durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt, und die Aktivierungsdaten umfassen mindestens die Challenge-Daten. Die digitale Signatur wird basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, validiert. Zugriff wird auf mindestens einen Abschnitt der Daten bereitgestellt, die durch eine Speicherkomponente gespeichert werden, basierend mindestens teilweise auf der Validierung der digitalen Signatur.

Description

  • PRIORITÄTSANMELDUNG
  • Diese Anmeldung beansprucht die Nutzung der Priorität der US-Anmeldung mit der Seriennummer 16/780,532 , eingereicht am 3. Februar 2020, die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • TECHNISCHES GEBIET
  • Ausführungsformen der Offenbarung betreffen allgemein Speichersubsysteme und betreffen insbesondere zur Multi-Faktor-Authentifizierung fähige Speichersubsysteme.
  • HINTERGRUND
  • Ein Speichersubsystem kann eine oder mehrere Speicherkomponenten beinhalten, die Daten speichern. Die Speicherkomponenten können beispielsweise nichtflüchtige Speicherkomponenten und flüchtige Speicherkomponenten sein. Im Allgemeinen kann ein Hostsystem ein Speichersubsystem nutzen, um Daten in den Speicherkomponenten zu speichern und Daten aus den Speicherkomponenten abzurufen.
  • Figurenliste
  • Die vorliegende Offenbarung wird durch die nachfolgend angegebene detaillierte Beschreibung und durch die beigefügten Zeichnungen verschiedener Ausführungsformen der Offenbarung leichter zu verstehen sein.
    • 1 veranschaulicht eine beispielhafte Rechenumgebung, die ein Speichersubsystem, konfiguriert zur Multi-Faktor-Authentifizierung, gemäß einigen Ausführungsformen der vorliegenden Offenlegung beinhaltet.
    • 2 ist ein Swimlane-Diagramm, das Interaktionen zwischen Komponenten in der Rechenumgebung beim Durchführen eines beispielhaften Verfahrens zur Multi-Faktor-Authentifizierung gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 3 ist ein Datenflussdiagramm, das Interaktionen zwischen Komponenten der Rechenumgebung beim Durchführen eines beispielhaften Verfahrens zur Multi-Faktor-Authentifizierung gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 4 und 5 sind Flussdiagramme, die ein beispielhaftes Verfahren zur Multi-Faktor-Authentifizierung in einem Speichersubsystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulichen.
    • 6 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Ausführungsformen der vorliegenden Offenbarung betrieben werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung richten sich auf Multi-Faktor-Authentifizierung in einem Speichersubsystem. Ein Speichersubsystem kann eine Speichervorrichtung, ein Speichermodul oder eine Mischform aus Speichervorrichtung und Speichermodul sein. Beispiele für Speichervorrichtungen und Speichermodule werden im Folgenden in Verbindung mit 1 beschrieben. Im Allgemeinen kann ein Hostsystem ein Speichersubsystem verwenden, das eine oder mehrere Speichervorrichtungen beinhaltet, die Daten speichern. Das Hostsystem kann Daten bereitstellen, die im Speichersubsystem gespeichert werden sollen und kann anfordern, dass Daten aus dem Speichersubsystem abgerufen werden.
  • Ein Speichersubsystem kann vertrauliche, geschützte oder andere sensible Informationen speichern, auf die nur speziell autorisierte Benutzer Zugriff haben sollten. Aspekte der vorliegenden Offenbarung behandeln die vorangehenden und andere Probleme durch Implementieren eines Multi-Faktor-Authentifizierungsprozesses zum Zugreifen auf ein Speichersubsystem, das einen unbefugten Zugriff auf Informationen verhindert, die durch das Speichersubsystem gespeichert sind. Das Speichersubsystem kann so konfiguriert werden, dass es den Zugriff auf darin gespeicherte Daten verhindert, bis der Multi-Faktor-Authentifizierungsprozess erfolgreich durchgeführt wurde.
  • Als Teil des Multi-Faktor-Authentifizierungsprozesses wird ein öffentlicher Schlüssel eines asymmetrischen Schlüsselpaars (hier auch als „kryptografische Schlüssel“ bezeichnet) einem Speichersubsystem bereitgestellt (z. B. während der Benutzerkonfiguration des Speichersubsystems), während der private Schlüssel in einer sicheren Umgebung wie einem Hardware-Sicherheitsmodul (HSM) eines Unternehmens servers, einem Trusted Platform Modul (TPM) oder einer Smartcard aufbewahrt wird, die extern und unabhängig von dem Speichersubsystem ist.
  • Ein Hostsystem übermittelt eine Anfrage an das Speichersubsystem, um eine Authentifizierungssitzung mit dem Speichersubsystem einzuleiten. Die Anfrage kann in einigen Ausführungsformen eine Anfrage zum Zugreifen auf spezifische Daten umfassen, die von dem Speichersubsystem gespeichert sind (z. B. ein bestimmter Ordner oder ein bestimmtes Verzeichnis eines Dateisystems, das von dem Speichersubsystem gespeichert ist). Als Reaktion auf die Anfrage erzeugt eine Speichersubsystem-Steuerung Challenge-Daten und gibt sie an das Hostsystem zurück. Das Hostsystem wiederum kann Aktivierungsdaten basierend auf den Challenge-Daten und in einigen Ausführungsformen ein vom Benutzer bereitgestelltes Passwort erzeugen. Das Hostsystem erzeugt ferner basierend auf den Aktivierungsdaten eine digitale Signatur. Beispielsweise kann das Hostsystem eine asymmetrische kryptografische Signatur unter Verwendung eines kryptografischen Algorithmus wie etwa des Rivest Shamir Adleman (RSA) Algorithmus erzeugen. Das Signieren der Aktivierungsdaten kann innerhalb der sicheren Umgebung erfolgen. Das Hostsystem stellt Authentifizierungsdaten an die Speichersubsystem-Steuerung bereit, die die Aktivierungsdaten und die digitale Signatur umfassen. Die Speichersubsystem-Steuerung validiert die digitale Signatur unter Verwendung des öffentlichen Schlüssels und verifiziert die Aktivierungsdaten.
  • Basierend auf einer erfolgreichen Validierung der digitalen Signatur und einer Verifizierung der Aktivierungsdaten ermöglicht die Speichersubsystem-Steuerung den Zugriff auf mindestens einen Teil der Daten, die durch das Speichersubsystem gespeichert werden. Beispielsweise kann die Speichersubsystem-Steuerung den Zugriff auf Daten ermöglichen, die in der anfänglichen Anfrage spezifiziert sind. Es versteht sich, dass die Verwendung des oben beschriebenen Multi-Faktor-Authentifizierungsprozesses in Speichersubsystemen Schwachstellen reduziert, indem sichergestellt wird, dass auf Daten, die durch das Speichersubsystem gespeichert werden, nur von autorisierten Parteien zugegriffen wird.
  • 1 veranschaulicht eine beispielhafte Rechenumgebung 100, die ein Speichersubsystem 110 gemäß einigen Ausführungsformen der vorliegenden Offenlegung beinhaltet. Das Speichersubsystem 110 kann Medien beinhalten, wie z. B. die Speicherkomponenten 112-1 bis 112-N (im Folgenden auch als „Speichervorrichtungen“ bezeichnet). Die Speicherkomponenten 112-1 bis 112-N können flüchtige Speicherkomponenten, nichtflüchtige Speicherkomponenten oder eine Kombination davon sein. Ein Speichersubsystem 110 kann eine Speichervorrichtung, ein Speichermodul oder eine Mischform aus Speichervorrichtung und Speichermodul sein. Beispiele für eine Speichervorrichtung beinhalten ein Solid-State-Laufwerk (solid-state drive - SSD), ein Flash-Laufwerk, ein USB-Flash-Laufwerk (Universal Serial Bus), ein eMMC-Laufwerk (Embedded Multi-Media Steuerung), ein UFS-Laufwerk (Universal Flash Storage) und ein Festplattenlaufwerk (HDD). Beispiele für Speichermodule beinhalten ein Dual In-Line Memory Module (DIMM), ein Small Outline DIMM (SO-DIMM) und ein nichtflüchtiges Dual In-Line Memory Module (NVDIMM).
  • Die Computerumgebung 100 kann ein Hostsystem 120 beinhalten, das mit einem Speichersystem gekoppelt ist. Das Arbeitsspeichersystem kann ein oder mehrere Speichersubsysteme 110 beinhalten. In einigen Ausführungsformen ist das Hostsystem 120 mit verschiedenen Typen von Speichersubsystemen 110 gekoppelt. 1 veranschaulicht ein Beispiel für ein Hostsystem 120, das mit einem Speichersubsystem 110 gekoppelt ist. Das Hostsystem 120 verwendet das Speichersubsystem 110 beispielsweise dazu, Daten in das Speichersubsystem 110 zu schreiben und Daten aus dem Speichersubsystem 110 zu lesen. Wie hierin verwendet, bezieht sich „gekoppelt an“ im Allgemeinen auf eine Verbindung zwischen Komponenten, bei der es sich um eine indirekte kommunikative Verbindung oder eine direkte kommunikative Verbindung (z. B. ohne zwischengeschaltete Komponenten) handeln kann, unabhängig davon, ob sie verdrahtet oder drahtlos ist und Verbindungen wie elektrische, optische, magnetische usw. beinhaltet.
  • Das Hostsystem 120 kann eine Computervorrichtung sein, wie etwa ein Desktop-Computer, ein Laptop-Computer, ein Netzwerkserver, eine mobile Vorrichtung, ein eingebetteter Computer (z. B. einer, der in einem Fahrzeug, einer Industrieanlage oder einer vernetzten kommerziellen Vorrichtung beinhaltet ist) oder eine solche Computervorrichtung, die einen Speicher und eine Verarbeitungsvorrichtung beinhaltet. Das Hostsystem 120 kann das Speichersubsystem 110 beinhalten oder mit diesem gekoppelt sein, so dass das Hostsystem 120 Daten aus dem Speichersubsystem 110 lesen oder in dieses schreiben kann. Das Hostsystem 120 kann über eine physische Hostschnittstelle an das Speichersubsystem 110 gekoppelt sein. Beispiele für eine physische Hostschnittstelle beinhalten eine Serial-Advanced-Technology-Attachment(SATA) -Schnittstelle, eine Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle, eine Universal-Serial-Bus(USB)-Schnittstelle, eine Fibre-Channel-Schnittstelle, eine Serial-Attached-SCSI(SAS)-Schnittstelle, einen System-Management-Bus (SMBus), einen Inter-Integrated-Circuit(I2C) -Bus und so weiter. Die physische Hostschnittstelle kann verwendet werden, um Daten zwischen dem Hostsystem 120 und dem Speichersubsystem 110 zu übertragen. Das Hostsystem 120 kann ferner eine NVM-Express(NVMe)-Schnittstelle nutzen, um auf die Speicherkomponenten 112-1 bis 112-N zuzugreifen, wenn das Speichersubsystem 110 durch die PCIe-Schnittstelle mit dem Hostsystem 120 gekoppelt ist. Die physische Hostschnittstelle kann eine Schnittstelle zum Weiterleiten von Steuerungs-, Adress-, Daten- und anderen Signalen zwischen dem Speichersubsystem 110 und dem Hostsystem 120 bereitstellen.
  • Die Speicherkomponenten 112-1 bis 112-N können eine beliebige Kombination der unterschiedlichen Arten von nichtflüchtigen Speicherkomponenten und/oder flüchtigen Speicherkomponenten beinhalten. Ein Beispiel für nichtflüchtige Speicherkomponenten beinhaltet einen Flash-Speicher vom Negativ-Und(NAND)-Typ. Jede der Speicherkomponenten 112-1 bis 112-N kann ein oder mehrere Arrays von Speicherzellen beinhalten, wie etwa Single-Level-Zellen (SLCs) oder Multi-Level-Zellen (MLCs), Triple-Level-Zellen (TLCs) oder Quad-Level-Zellen (QLCs). In einigen Ausführungsformen kann eine bestimmte Speicherkomponente sowohl einen SLC-Abschnitt als auch einen anderen Typ Abschnitt (z.B. MLC, TLC, QLC) von Speicherzellen beinhalten. Jede der Speicherzellen kann ein oder mehrere Bits von Daten speichern, die vom Hostsystem 120 verwendet werden. Obwohl nichtflüchtige Speicherkomponenten wie Flash-Speicher des Typs NAND beschrieben werden, können die Speicherkomponenten 112-1 bis 112-N auf jedem anderen Speichertyp basieren, z. B. auf einem flüchtigen Speicher. In einigen Ausführungsformen können die Speicherkomponenten 112-1 bis 112-N Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), dynamischer Direktzugriffsspeicher (DRAM), synchroner dynamischer Direktzugriffsspeicher (SDRAM), Phasenänderungsspeicher (PCM), Magneto-Direktzugriffsspeicher (MRAM), Negativ-Oder(NOR)-Flash-Speicher, elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM) und ein Kreuzpunktarray von nichtflüchtigen Speicherzellen sein, sind aber nicht darauf beschränkt. Ein Kreuzpunktarray eines nichtflüchtigen Speichers kann eine Bitspeicherung basierend auf einer Änderung des Bahnwiderstands in Verbindung mit einem stapelbaren Kreuzgitter-Datenzugriffsarray durchführen. Darüber hinaus kann ein nichtflüchtiger Kreuzpunktspeicher im Gegensatz zu vielen Flash-Speichern eine Write-in-Place-Operation ausführen, bei der eine nichtflüchtige Speicherzelle programmiert werden kann, ohne dass die nichtflüchtige Speicherzelle zuvor gelöscht wurde. Außerdem können, wie oben erwähnt, die Speicherzellen der Speicherkomponenten 112-1 bis 112-N zu Seiten zusammengefasst werden, die sich auf eine Einheit der Speicherkomponente beziehen können, die zum Speichern von Daten verwendet wird. Bei einigen Speichertypen (z. B. NAND) können Seiten zu Blöcken gruppiert werden.
  • Eine Speichersubsystem-Steuerung 115 (im Folgenden als „Steuerung“ bezeichnet) kann mit den Speicherkomponenten 112-1 bis 112-N kommunizieren, um Operationen wie das Lesen von Daten, das Schreiben von Daten oder das Löschen von Daten an den Speicherkomponenten 112-1 bis 112-N und andere solche Operationen durchzuführen. Die Steuerung 115 kann Hardware wie etwa eine oder mehrere integrierte Schaltungen und/oder diskrete Komponenten, einen Pufferspeicher oder eine Kombination davon beinhalten. Die Steuerung 115 kann ein Mikrocontroller, eine Logikschaltkreis für spezielle Zwecke (z. B. ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) usw.) oder ein anderer geeigneter Prozessor sein. Die Steuerung 115 kann einen Prozessor (Verarbeitungsvorrichtung) 117 beinhalten, die dazu konfiguriert ist, Anweisungen auszuführen, die in einem lokalen Speicher 119 gespeichert sind. In dem veranschaulichten Beispiel beinhaltet der lokale Speicher 119 der Steuerung 115 einen eingebetteten Speicher, der dazu konfiguriert ist, Anweisungen zum Durchführen verschiedener Prozesse, Operationen, logischer Abläufe und Routinen zu speichern, die den Betrieb des Speichersubsystems 110 steuern, einschließlich der Abwicklung von Kommunikationen zwischen dem Speichersubsystem 110 und dem Hostsystem 120. In einigen Ausführungsformen kann der lokale Speicher 119 Speicherregister beinhalten, die Speicherzeiger, abgerufene Daten usw. speichern. Der lokale Speicher 119 kann auch einen ROM zum Speichern von Mikrocode beinhalten. Während das beispielhafte Speichersubsystem 110 in 1 so veranschaulicht wurde, dass es die Steuerung 115 beinhaltet, beinhaltet ein Speichersubsystem 110 in einer anderen Ausführungsform der vorliegenden Offenbarung möglicherweise keine Steuerung 115 und kann stattdessen auf eine externe Steuerung zurückgreifen (z.B. bereitgestellt durch einen externen Host oder durch einen Prozessor oder eine Steuerung, die unabhängig von dem Speichersubsystem sind).
  • Im Allgemeinen kann die Steuerung 115 Befehle oder Operationen von dem Hostsystem 120 empfangen und kann die Befehle oder Operationen in Anweisungen oder geeignete Befehle umwandeln, um den gewünschten Zugriff auf die Speicherkomponenten 112-1 bis 112-N zu erreichen. Die Steuerung 115 kann auch für andere Operationen verantwortlich sein, wie etwa Verschleißausgleichsvorgänge, Speicherbereinigungsoperationen, Fehlererkennungs- und Fehlerkorrekturcode(error-correcting code - ECC)-Operationen, Verschlüsselungsoperationen, Caching-Operationen und Adressübersetzungen zwischen einer logischen Blockadresse und einer physischen Blockadresse, die den Speicherkomponenten 112-1 bis 112-N zugeordnet sind. Die Steuerung 115 kann ferner eine Hostschnittstellenschaltkreis beinhalten, um mit dem Hostsystem 120 über die physische Hostschnittstelle zu kommunizieren. Die Hostschnittstellenschaltkreis kann die von dem Hostsystem 120 empfangenen Befehle in Befehlsanweisungen umwandeln, um auf die Speicherkomponenten 112-1 bis 112-N zuzugreifen, sowie die den Speicherkomponenten 112-1 bis 112-N zugeordneten Antworten in Informationen für das Hostsystem 120 umwandeln.
  • Das Speichersubsystem 110 kann außerdem zusätzliche Schaltkreise oder Komponenten beinhalten, die nicht veranschaulicht sind. In einigen Ausführungsformen kann das Speichersubsystem 110 einen Cache oder Pufferspeicher (z. B. DRAM) und einen Adressschaltkreis (z. B. einen Zeilendecodierer und einen Spaltendecodierer) beinhalten, die eine Adresse von der Steuerung 115 empfangen und die Adresse decodieren können, um auf die Speicherkomponenten 112-1 bis 112-N zuzugreifen.
  • Das Speichersubsystem 110 beinhaltet auch eine Sicherheitskomponente 113, die eine sichere Multi-Faktor-Authentifizierung mit dem Speichersubsystem 110 erleichtert. Die Sicherheitskomponente 113 kann in der Steuerung 115 oder in einer oder mehreren der Speicherkomponenten 112-1 bis 112-N beinhaltet sein. In einigen Ausführungsformen beinhaltet die Steuerung 115 mindestens einen Abschnitt der Sicherheitskomponente 113. Beispielsweise kann die Steuerung 115 den Prozessor 117 (Verarbeitungsvorrichtung), konfiguriert zum Ausführen von Anweisungen, die im lokalen Speicher 119 gespeichert sind, zum Durchführen der hierin beschriebenen Operationen der Sicherheitskomponente 113 beinhalten. In einigen Ausführungsformen ist die Sicherheitskomponente 113 Teil des Hostsystems 120, einer Anwendung oder eines Betriebssystems.
  • Die Sicherheitskomponente 113 kann ferner einen Schlüsselspeicher 109 beinhalten, um einen oder mehrere kryptografische Schlüssel zu speichern, die von der Sicherheitskomponente 113 zum Verschlüsseln und/oder Verifizieren von Informationen verwendet werden. Beispielsweise kann der Schlüsselspeicher 109 einen öffentlichen Schlüssel speichern, der von der Sicherheitskomponente 113 verwendet wird, um Informationen zu verschlüsseln oder Informationen zu verifizieren, die mit einem entsprechenden privaten Schlüssel signiert wurden, der durch eine Sicherheitsschlüssel-Speicherkomponente 130 aufbewahrt wurde. In einigen Ausführungsformen ist der Schlüsselspeicher 109 in einem lokalen Speicher der Speichersubsystem-Steuerung 115 (z. B. dem lokalen Speicher 119 ) implementiert. In einigen Ausführungsformen ist der Schlüsselspeicher 109 in einer oder mehreren der Speicherkomponenten 112-1 bis 112-N implementiert. Der Schlüsselspeicher 109 kann in einem nichtflüchtigen Speicher implementiert sein, sodass die darin gespeicherten kryptografischen Schlüssel bei einem Neustart des Systems nicht verloren gehen.
  • Um den Multi-Faktor-Authentifizierungsprozess einzuleiten, empfängt das Speicherteilsystem 110 eine Anfrage von dem Hostsystem 120. Die Anfrage kann in einigen Ausführungsformen eine Anfrage zum Zugreifen auf spezifische Daten umfassen, die von dem Speichersubsystem 110 gespeichert sind (z. B. ein bestimmter Ordner oder ein bestimmtes Verzeichnis eines Dateisystems, das von dem Speichersubsystem 110 gespeichert ist). Als Reaktion auf die Anfrage erzeugt die Sicherheitskomponente 113 Challenge-Daten, die mindestens eine Zufallszahl umfassen, und gibt sie an das Hostsystem 120 zurück. Das Hostsystem 120 wiederum kann Aktivierungsdaten basierend auf den Challenge-Daten und in einigen Ausführungsformen ein vom Benutzer bereitgestelltes Passwort erzeugen. Das Hostsystem 120 erzeugt ferner eine digitale Signatur basierend auf den Aktivierungsdaten unter Verwendung des privaten Schlüssels, der von der Sicherheitsschlüssel-Speicherkomponente 130 aufbewahrt wird. Das Hostsystem 120 stellt der Sicherheitskomponente 113 Authentifizierungsdaten bereit, die die Aktivierungsdaten und die digitale Signatur umfassen. Die Sicherheitskomponente 113 validiert die digitale Signatur unter Verwendung eines öffentlichen Schlüssels und verifiziert die Aktivierungsdaten.
  • Basierend auf einer erfolgreichen Validierung der digitalen Signatur und einer Verifizierung der Aktivierungsdaten ermöglicht die Sicherheitskomponente 113 den Zugriff auf mindestens einen Abschnitt der Daten, die von den Speicherkomponenten 112-1 bis 112-N gespeichert sind (z. B. Zugriff auf Daten, die in der Erstanfrage spezifiziert sind). Die Details des oben beschriebenen Mehrfaktor-Authentifizierungsprozesses können für den Benutzer des Hostsystems 120 verborgen oder größtenteils verdeckt werden. Beispielsweise wird aus der Perspektive des Benutzers eine Anfrage zum Zugriff auf Daten gestellt (in einigen Ausführungsformen zusammen mit der Eingabe eines Passworts) und dem Benutzer wird Zugriff auf die angefragten Daten gewährt, solange eine ordnungsgemäße Kommunikation zwischen dem Hostsystem 120 und der Sicherheitsschlüssel-Speicherkomponente 130 ermöglicht ist.
  • In einigen Ausführungsformen kann die Sicherheitsschlüssel-Speicherkomponente 130 eine Smartcard sein oder beinhalten. Eine Smartcard ist eine Vorrichtung, die einen eingebetteten Schaltkreis zur Ausführung einer oder mehrerer Funktionen und einen internen Speicher zur Speicherung mindestens des privaten Schlüssels beinhaltet. Die Smartcard kann mit einer Lesekomponente (nicht abgebildet) durch direkten physischen Kontakt oder über eine entfernte kontaktlose Funkschnittstelle verbunden werden. Die Lesekomponente kann Informationen von der Smartcard lesen und über eine Schnittstelle mit dem Hostsystem 120 kommunizieren. Beispielsweise kann das Speichersubsystem 110 eine Anwendungsprogrammierschnittstelle (API) beinhalten, die es der Lesekomponente ermöglicht, Informationen mit der Sicherheitskomponente 113 der Steuerung 115 auszutauschen. In einigen Ausführungsformen muss ein Benutzer möglicherweise eine persönliche Identifikationsnummer (PIN) an die Smartcard übermitteln, um auf die auf der Smartcard gespeicherten Informationen wie den privaten Schlüssel zuzugreifen. In Ausführungsformen, in denen eine Smartcard zum Speichern des privaten Schlüssels verwendet wird, bindet der Multi-Faktor-Authentifizierungsprozess das Speichersubsystem 110 an einen bestimmten Benutzer - den Benutzer, dem die Smartcard zugeordnet ist. In Übereinstimmung mit diesen Ausführungsformen bleibt das Speichersubsystem 110 in einem gesperrten Zustand, in dem kein Zugriff auf Daten möglich ist, bis die Smartcard von der Lesekomponente gelesen wird.
  • In einigen Ausführungsformen kann die Sicherheitsschlüssel-Speicherkomponente 130 ein Trusted Platform Module (TPM) sein oder beinhalten. Ein TPM ist ein spezialisierter Chip, der in das Hostsystem 120 eingebettet ist und einen privaten Schlüssel speichert, der für das Hostsystem 120 zur Authentifizierung spezifisch ist. In Ausführungsformen, in denen ein TPM zum Speichern des privaten Schlüssels verwendet wird, bindet der Multi-Faktor-Authentifizierungsprozess das Speichersubsystem 110 an das Hostsystem 120.
  • In einigen Ausführungsformen kann die Sicherheitsschlüssel-Speicherkomponente 130 ein HSM eines Unternehmensservers sein oder beinhalten, der einen Teil eines Unternehmensnetzwerks bildet, auf dem das Hostsystem 120 arbeitet. In Übereinstimmung mit diesen Ausführungsformen kann die Sicherheitskomponente 113 über eine drahtgebundene oder drahtlose Netzwerkverbindung mit der Sicherheitsschlüssel-Speicherkomponente 130 kommunizieren und Daten mit ihr austauschen. In Ausführungsformen, in denen ein HSM eines Unternehmensservers verwendet wird, um den privaten Schlüssel zu speichern, bindet der Multi-Faktor-Authentifizierungsprozess das Speichersubsystem 110 an das Unternehmensnetzwerk.
  • Die Sicherheitskomponente 113 kann mit dem Hostsystem 120 über die physische Hostschnittstelle oder einen nativen Seitenband-Kommunikationsport kommunizieren (z. B. einen Universal Asynchronous Receiver/Transmitter (UART)-Port oder einen anderen seriellen Kommunikationsport, der Zweiwegekommunikation unterstützt), der speziell als Diagnose- oder Wartungsport konfiguriert sein kann.
  • 2 ist ein Swimlane-Diagramm, das Interaktionen zwischen Komponenten in der Rechenumgebung 100 beim Durchführen eines beispielhaften Verfahrens 200 für Multi-Faktor-Authentifizierung gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Vor dem Verfahren 200 wird ein asymmetrisches Verschlüsselungsschlüsselpaar - ein öffentlicher Schlüssel und ein privater Schlüssel - im Voraus erzeugt, und die Sicherheitskomponente 113 wird mit dem öffentlichen Schlüssel ausgestattet, während die Sicherheitsschlüssel-Speicherkomponente 130 den privaten Schlüssel aufbewahrt. Die Sicherheitskomponente 113 speichert den öffentlichen Schlüssel in dem Schlüsselspeicher 109. Ferner ist das Speichersubsystem 110 konfiguriert, um einen Zugriff auf Daten zu verhindern, bis das Verfahren 200 durchgeführt wird.
  • Wie in 2 gezeigt, beginnt das Verfahren 200 bei Operation 202, wo das Hostsystem 120 eine Anfrage an die Sicherheitskomponente 113 sendet, um eine Authentifizierungssitzung mit dem Speichersubsystem 110 einzuleiten (z. B. um auf Daten zuzugreifen, die durch das Speichersubsystem 110 gespeichert sind). Die Anfrage kann in einigen Ausführungsformen bestimmte Daten spezifizieren, auf die zugegriffen werden soll.
  • Basierend auf dem Empfangen der Anfrage erzeugt die Sicherheitskomponente 113 Challenge-Daten bei Operation 204. Die Challenge-Daten umfassen mindestens eine kryptografische Nonce, um einen Anti-Replay-Schutz zu gewährleisten. Die kryptografische Nonce umfasst eine Zufallszahl. Dementsprechend beinhaltet das Erzeugen der Challenge-Daten Erzeugen einer Zufallszahl. Die Sicherheitskomponente 113 kann eine von vielen bekannten Techniken zum Erzeugen von Zufallszahlen verwenden, um die Zufallszahl zu erzeugen. In einigen Ausführungsformen können die Challenge-Daten ferner zusätzliche Felder für vorrichtungsspezifische Informationen beinhalten, die Identifikatoren beinhalten können, die der Vorrichtung zugeordnet sind, zusammen mit anderen Informationen, die Aspekte der Vorrichtung beschreiben (z. B. ein Herstellungsidentifikator). Die Sicherheitskomponente 113 stellt dem Hostsystem 120 als Reaktion auf die Anfrage bei Operation 206 die Challenge-Daten bereit. Das Einschließen von vorrichtungsspezifischen Informationen in die Challenge-Daten stellt sicher, dass die Challenge-Daten nur von der Speichersubsystem-Steuerung erzeugt werden konnten und hindert andere Vorrichtungen daran, in der Lage zu sein, die Challenge-Daten zu reproduzieren.
  • Bei Operation 208 erzeugt das Hostsystem 120 Aktivierungsdaten basierend auf den Challenge-Daten. Die Aktivierungsdaten umfassen mindestens die kryptografische Nonce und können in einigen Ausführungsformen ferner ein vom Benutzer bereitgestelltes Passwort (z. B. über eine vom Hostsystem 120 bereitgestellte Benutzerschnittstelle) beinhalten. Dementsprechend umfasst das Erzeugen der Aktivierungsdaten in diesen Ausführungsformen das Kombinieren der Challenge-Daten mit dem vom Benutzer bereitgestellten Passwort.
  • Das Hostsystem 120 erzeugt bei Operation 210 eine digitale Signatur basierend auf den Aktivierungsdaten. Das Hostsystem 120 erzeugt die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung des privaten Schlüssels, der von der Sicherheitsschlüssels-Speicherkomponente 130 aufbewahrt wird, die mit dem Hostsystem 120 kommuniziert. Bei Operation 212 stellt das Hostsystem 120 die digitale Signatur und Aktivierungsdaten der Sicherheitskomponente 113 bereit.
  • Die Sicherheitskomponente 113 validiert die digitale Signatur unter Verwendung des öffentlichen Schlüssels bei Operation 214. Falls die Sicherheitskomponente 113 bestimmt, dass die digitale Signatur ungültig ist, schlägt die Authentifizierung fehl und das Verfahren 200 endet. Andernfalls, falls die Sicherheitskomponente 113 bestimmt, dass die digitale Signatur gültig ist, verifiziert die Sicherheitskomponente 113 die Aktivierungsdaten bei Operation 216. Das Verifizieren der Aktivierungsdaten kann das Verifizieren einer Länge der in den Aktivierungsdaten beinhalteten kryptografischen Nonce beinhalten; Verifizieren, dass die in den Aktivierungsdaten beinhalteten Challenge-Daten mit den bei Operation 204 erzeugten Challenge-Daten übereinstimmen; und in einigen Ausführungsformen Verifizieren, dass ein gültiges Passwort in den Aktivierungsdaten beinhaltet war. Durch Einschließen einer nur einmal verwendeten Zufallszahl (die kryptografischen Nonce) verhindern die Challenge-Daten Replay-Angriffe.
  • Bei Operation 218 stellt die Sicherheitskomponente 113 Zugriff auf mindestens einen Abschnitt von Daten bereit, die durch das Speichersubsystem 110 gespeichert sind. In einigen Ausführungsformen kann die Sicherheitskomponente 113 Zugriff auf den gesamten Datensatz bereitstellen, der durch das Speichersubsystem 110 gespeichert ist. In einigen Ausführungsformen kann die Sicherheitskomponente 113 Zugriff auf nur einen Datenteilsatz bereitstellen, der durch das Speichersubsystem 110 gespeichert ist. Beispielsweise kann die Sicherheitskomponente 113 Zugriff nur auf angefragte Daten bereitstellen, die in der Anfrage zum Einleiten der Authentifizierungssitzung spezifiziert sind.
  • 3 ist ein Datenflussdiagramm, das Interaktionen zwischen Komponenten der Rechenumgebung 100 beim Durchführen eines beispielhaften Verfahrens für Multi-Faktor-Authentifizierung gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Im Kontext von 3 gezeigt, kann ein asymmetrisches Verschlüsselungsschlüsselpaar - ein öffentlicher Schlüssel 300 und ein privater Schlüssel 304 - vorab erzeugt werden und die Sicherheitskomponente 113 kann mit dem öffentlichen Schlüssel 300 ausgestattet werden, während die Sicherheitsschlüssel-Speicherkomponente 130 den privaten Schlüssel 304 aufbewahrt. Die Sicherheitskomponente 113 speichert den öffentlichen Schlüssel 300 in dem Schlüsselspeicher 109. Die Sicherheitsschlüssel-Speicherkomponente 130 kann in einigen Beispielen eine Smartcard und/oder ein Smartcard-Lesegerät, ein TPM oder ein HSM eines Unternehmensservers sein oder umfassen. Die Sicherheitskomponente 113 verhindert den Zugriff auf Daten, die durch das Speichersubsystem 110 gespeichert sind, bis ein Multi-Faktor-Authentifizierungsprozess durchgeführt wird, wie unten beschrieben.
  • Wie gezeigt, sendet das Hostsystem 120 eine Anfrage 306 an die Sicherheitskomponente 113, um eine Authentifizierungssitzung mit dem Speichersubsystem 110 einzuleiten. Die Anfrage 306 kann in einigen Ausführungsformen bestimmte Daten spezifizieren, auf die zugegriffen werden soll. Beispielsweise kann die Anfrage 306 eine physische Blockadresse oder eine andere Ressourcenkennung beinhalten, die den angefragten Daten entspricht. Die Adresse oder andere Kennung kann einen Ort identifizieren, an dem die angefragten Daten auf einer oder mehreren der Speicherkomponenten 112-1 bis 112-N gespeichert sind. Die Adresse oder andere Kennung kann beispielsweise einem Ordner oder Verzeichnis eines Dateisystems entsprechen, das von einer der Speicherkomponenten 112-1 bis 112-N gespeichert wird.
  • Basierend auf dem Empfangen der Anfrage erzeugt die Sicherheitskomponente 113 Challenge-Daten 302, die eine kryptografische Nonce 303 umfassen. Die kryptografische Nonce 303 kann in die Challenge-Daten 302 eingeschlossen werden, um einen Anti-Replay-Schutz sicherzustellen. Die kryptografische Nonce 303 umfasst eine Zufallszahl. Dementsprechend beinhaltet das Erzeugen der Challenge-Daten 302 das Erzeugen einer Zufallszahl. Die Sicherheitskomponente 113 kann eine von vielen bekannten Techniken zum Erzeugen von Zufallszahlen verwenden, um die Zufallszahl zu erzeugen. Die Sicherheitskomponente 113 stellt dem Hostsystem 120 als Reaktion auf die Anfrage 306 die Challenge-Daten 302 bereit.
  • Das Hostsystem 120 erzeugt Aktivierungsdaten 308, die mindestens die Challenge-Daten 302 umfassen. In einigen Ausführungsformen kann ein Benutzer 310 des Hostsystems 120 als Teil des Authentifizierungsprozesses ein Passwort 312 (z. B. über eine vom Hostsystem 120 bereitgestellte Benutzerschnittstelle) bereitstellen. In Übereinstimmung mit diesen Ausführungsformen umfassen die Aktivierungsdaten 308 eine Kombination aus den Challenge-Daten 302 und dem Passwort 312. Dementsprechend umfasst das Erzeugen der Aktivierungsdaten 308 in diesen Ausführungsformen das Kombinieren der Challenge-Daten 302 mit dem Passwort 312.
  • Das Hostsystem 120 erzeugt basierend auf den Aktivierungsdaten eine digitale Signatur 314. Das Hostsystem 120 erzeugt die digitale Signatur 314 durch kryptografisches Signieren (bei 316) der Aktivierungsdaten 308 unter Verwendung des privaten Schlüssels 304, der von der Sicherheitsschlüssel-Speicherkomponente 130 aufbewahrt wird, die mit dem Hostsystem 120 kommuniziert. Das Hostsystem 120 erzeugt Authentifizierungsdaten 318 durch Kombinieren der digitalen Signatur 314 und der Aktivierungsdaten 308 und stellt die Authentifizierungsdaten 318 der Sicherheitskomponente 113 bereit.
  • Bei 320 validiert die Sicherheitskomponente 113 die digitale Signatur 314 basierend auf den Challenge-Daten 302 unter Verwendung des öffentlichen Schlüssels 300. Falls die Sicherheitskomponente 113 bestimmt, dass die digitale Signatur 314 ungültig ist, schlägt die Authentifizierung fehl. Andernfalls, falls die Sicherheitskomponente 113 bestimmt, dass die digitale Signatur 314 gültig ist, verifiziert die Sicherheitskomponente 113 die Aktivierungsdaten 308 bei 322. Wie nachstehend ausführlicher erörtert wird, kann das Verifizieren der Aktivierungsdaten 308 das Verifizieren einer Länge der kryptografischen Nonce 303 beinhalten, die in den Aktivierungsdaten 308 beinhaltet ist; Verifizieren, dass die in den Aktivierungsdaten 308 beinhaltete Challenge-Daten mit den Challenge-Daten 302 übereinstimmen; und in einigen Ausführungsformen Verifizieren, dass das Passwort 312 gültig ist.
  • Bei 324 stellt die Sicherheitskomponente 113 Zugriff auf mindestens einen Abschnitt der Daten bereit, die durch das Speichersubsystem 110 gespeichert sind, indem sie eine oder mehrere der Speicherkomponenten 112-1 bis 112-N entsperrt. In einigen Ausführungsformen kann die Sicherheitskomponente 113 Zugriff auf den gesamten Datensatz bereitstellen, der durch das Speichersubsystem 110 gespeichert ist. In einigen Ausführungsformen kann die Sicherheitskomponente 113 Zugriff auf nur einen Datenteilsatz bereitstellen, der durch das Speichersubsystem 110 gespeichert ist. Beispielsweise kann die Sicherheitskomponente 113 Zugriff nur auf angefragte Daten bereitstellen, die in der Anfrage 306 spezifiziert sind. Die Details des oben beschriebenen Multi-Faktor-Authentifizierungsprozesses können für den Benutzer 310 verborgen oder größtenteils verdeckt werden. Beispielsweise wird aus der Perspektive des Benutzers 310 eine Anfrage zum Zugriff auf Daten gestellt (in einigen Ausführungsformen zusammen mit der Eingabe eines Passworts) und dem Benutzer 310 wird Zugriff gewährt, solange eine ordnungsgemäße Kommunikation zwischen dem Hostsystem 120 und der Sicherheitsschlüssel-Speicherkomponente 130 ermöglicht ist.
  • 4 und 5 sind Flussdiagramme, die ein beispielhaftes Verfahren 400 Multi-Faktor-Authentifizierung in einem Speichersubsystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulichen. Das Verfahren 400 kann von einer Verarbeitungslogik ausgeführt werden, die Hardware (z. B. eine Verarbeitungsvorrichtung, Schaltkreise, dedizierte Logik, programmierbare Logik, Mikrocode, Hardware einer Vorrichtung, einen integrierten Schaltkreis usw.), Software (z. B. Anweisungen, die auf einer Verarbeitungsvorrichtung ausgeführt werden) oder eine Kombination davon beinhalten kann. In einigen Ausführungsformen wird das Verfahren 400 von der Sicherheitskomponente 113 von 1 ausgeführt. Obwohl Prozesse in einer bestimmten Sequenz oder Reihenfolge dargestellt sind, kann die Reihenfolge der Prozesse, sofern nicht anders angegeben, geändert werden. Somit sollten die veranschaulichten Ausführungsformen lediglich als Beispiele verstanden werden, und die veranschaulichten Prozesse können in einer unterschiedlichen Reihenfolge durchgeführt werden, und einige Prozesse können parallel durchgeführt werden. Zusätzlich können ein oder mehrere Prozesse in verschiedenen Ausführungsformen ausgelassen werden. Somit sind nicht alle Prozesse in jeder Ausführungsform erforderlich. Andere Prozessflüsse sind möglich.
  • Bei Operation 405 empfängt die Verarbeitungsvorrichtung eine Anfrage, eine Authentifizierungssitzung mit einem Speichersubsystem einzuleiten. In einigen Ausführungsformen kann die Anfrage eine Anfrage zum Zugreifen auf spezifische Daten von einem Speichersubsystem (z. B. dem Speichersubsystem 110) beinhalten. Beispielsweise kann die Anfrage eine Kennung oder Adresse beinhalten, die einer der Speicherkomponenten 112-1 bis 112-N oder einem Abschnitt davon entspricht, wo die angefragten Daten gespeichert sind. Die angefragten Daten können beispielsweise einem Ordner oder Verzeichnis eines Dateisystems entsprechen, das von einer der Speicherkomponenten 112-1 bis 112-N gespeichert wird. Die Anfrage kann von dem Hostsystem 120 empfangen werden. In einigen Ausführungsformen beinhaltet das Empfangen der Anfrage den Empfang eines oder mehrerer Befehle vom Hostsystem über eine Hostsystemschnittstelle. In einigen Ausführungsformen beinhaltet das Empfangen der Anfrage das Empfangen der Anfrage von dem Hostsystem über einen Kommunikationsport (z. B. einen UART-Port oder einen anderen seriellen Kommunikationsport, der eine Zweiwegekommunikation unterstützt).
  • Die Verarbeitungsvorrichtung erzeugt bei Operation 410 Challenge-Daten als Reaktion auf das Empfangen der Anfrage. Die Challenge-Daten umfassen mindestens eine kryptografische Nonce. Die kryptografische Nonce umfasst eine Zufallszahl. Dementsprechend beinhaltet das Erzeugen der Challenge-Daten das Erzeugen einer Zufallszahl. Die Verarbeitungsvorrichtung kann die Zufallszahl unter Verwendung von einem der vielen bekannten Zufallszahlengeneratoren erzeugen.
  • In einigen Ausführungsformen können die Challenge-Daten zusätzliche Felder für vorrichtungsspezifische Informationen umfassen, die das Speichersubsystem beschreiben, das Identifikatoren beinhalten kann, die der Vorrichtung zugeordnet sind, zusammen mit anderen Informationen, die Aspekte der Vorrichtung beschreiben. In Übereinstimmung mit diesen Ausführungsformen kann das Erzeugen der Challenge-Daten ferner das Kombinieren der kryptografischen Nonce mit den vorrichtungsspezifischen Informationen beinhalten.
  • Bei Operation 415 stellt die Verarbeitungsvorrichtung die Challenge-Daten als Reaktion auf die Anfrage bereit. Beispielsweise kann die Verarbeitungsvorrichtung die Challenge-Daten als Reaktion auf eine vom Hostsystem 120 empfangene Anfrage an das Hostsystem 120 zurückgeben.
  • Die Verarbeitungsvorrichtung empfängt bei Operation 420 Authentifizierungsdaten. Die Authentifizierungsdaten umfassen Aktivierungsdaten und eine digitale Signatur. Die Aktivierungsdaten umfassen mindestens die von der Verarbeitungseinrichtung erzeugten Challenge-Daten. In einigen Ausführungsformen können die Aktivierungsdaten ferner ein Passwort umfassen, das von dem Benutzer 310 des Hostsystems 120 bereitgestellt wird. Die digitale Signatur wird durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt. Beispielsweise kann das Hostsystem 120 den privaten Schlüssel verwenden, um je nach Ausführungsform die Challenge-Daten oder eine Kombination aus den Challenge-Daten und einem Passwort kryptografisch zu signieren.
  • Die Verarbeitungsvorrichtung validiert die digitale Signatur basierend auf den Challenge-Daten unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, der verwendet wird, um die digitale Signatur (bei Operation 425) zu erstellen. Beispielsweise kann die Verarbeitungsvorrichtung einen öffentlichen Schlüssel verwenden, der in dem Schlüsselspeicher 109 gespeichert ist. Genauer gesagt, kann die Verarbeitungsvorrichtung den asymmetrischen kryptografischen Algorithmus verwenden, der beim Erzeugen der digitalen Signatur (z. B. RSA) verwendet wird, um die digitale Signatur unter Verwendung des öffentlichen Schlüssels zu validieren.
  • In Übereinstimmung mit einigen Ausführungsformen kann die Verarbeitungsvorrichtung die digitale Signatur validieren, indem sie Hash-Daten basierend auf den Challenge-Daten unter Verwendung des öffentlichen Schlüssels erzeugt, die digitale Signatur unter Verwendung des öffentlichen Schlüssels entschlüsselt und die Hash-Daten mit den entschlüsselten Daten vergleicht, um zu verifizieren, dass die beiden Werte übereinstimmen. Falls die Werte nicht übereinstimmen (nicht gezeigt), schlägt die Authentifizierung fehl.
  • Andernfalls fährt das Verfahren 400 mit Operation 430 fort, wo die Verarbeitungsvorrichtung die Aktivierungsdaten verifiziert. Weitere Details bezüglich der Verifizierung der Aktivierungsdaten werden weiter unten unter Bezugnahme auf 5 erörtert.
  • Bei Operation 435 ermöglicht die Verarbeitungsvorrichtung den Zugriff auf mindestens einen Abschnitt der Daten, die durch das Speichersubsystem gespeichert sind. Das heißt, die Verarbeitungsvorrichtung entsperrt das Speichersubsystem, um einem Benutzer zu ermöglichen, auf darauf gespeicherte Daten zuzugreifen. Die Verarbeitungsvorrichtung kann eine oder mehrere Speicherkomponenten oder einen oder mehrere Abschnitte einer einzelnen Speicherkomponente entsperren.
  • In einigen Ausführungsformen kann die Verarbeitungsvorrichtung Zugriff auf nur einen Abschnitt der Daten bereitstellen, die durch das Speichersubsystem gespeichert sind. In Übereinstimmung mit diesen Ausführungsformen entspricht der Abschnitt der Daten, auf den die Verarbeitungsvorrichtung Zugriff bereitstellt, den in der Anfrage spezifizierten Daten. Daher kann die Verarbeitungsvorrichtung in diesen Ausführungsformen den Zugriff auf Daten ermöglichen, die nur von einer Teilmenge der Speicherkomponenten des Speichersubsystems oder nur einem Abschnitt einer der Speicherkomponenten gespeichert werden.
  • In einigen Ausführungsformen stellt die Verarbeitungsvorrichtung Zugriff auf das gesamte Speichersubsystem bereit. Mit anderen Worten entsperrt die Verarbeitungsvorrichtung das gesamte Speichersubsystem, wodurch es einem Benutzer ermöglicht wird, auf Daten zuzugreifen, die von irgendeiner der Speicherkomponenten des Speichersubsystems gespeichert sind.
  • Wie in 5 gezeigt, kann das Verfahren 400 in einigen Ausführungsformen die Operationen 431, 432 und 433 beinhalten. In Übereinstimmung mit diesen Ausführungsformen können die Operationen 431, 432 und 433 als Teil der Operation 430 durchgeführt werden, wo die Verarbeitungsvorrichtung die Aktivierungsdaten verifiziert. Bei Operation 431 verifiziert die Verarbeitungsvorrichtung eine Länge der kryptografischen Nonce, die in den Aktivierungsdaten beinhaltet ist. Das heißt, die Verarbeitungsvorrichtung vergleicht die bei Operation 410 erzeugte kryptografische Nonce mit der in den Authentifizierungsdaten beinhalteten kryptografischen Nonce, um sicherzustellen, dass die Längen (z. B. die Anzahl von Bits) identisch sind.
  • Bei Operation 432 verifiziert die Verarbeitungsvorrichtung die Challenge-Daten, die in den Aktivierungsdaten beinhaltet sind. Das heißt, die Verarbeitungsvorrichtung vergleicht die in den Aktivierungsdaten beinhalteten Challenge-Daten mit den bei Operation 410 erzeugten Challenge-Daten, um zu bestätigen, dass die beiden Werte übereinstimmen. Die Verarbeitungsvorrichtung verifiziert bei Operation 433 auch ein Passwort, das in den Aktivierungsdaten beinhaltet ist, um zu bestätigen, dass das richtige Passwort bereitgestellt wurde.
  • BEISPIELE
  • Beispiel 1 ist ein System, umfassend: eine Speicherkomponente; und eine Speichersubsystem-Steuerung, die betriebsmäßig mit der Speicherkomponente gekoppelt ist, um Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; undBereitstellen von Zugriff auf mindestens einen Abschnitt von Daten, die durch eine Speicherkomponente eines Speichersubsystems gespeichert werden, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
  • In Beispiel 2 umfasst die Anfrage von Beispiel 1 optional eine Anfrage zum Zugreifen auf den Abschnitt der Daten, die in der Speicherkomponente gespeichert sind.
  • In Beispiel 3 umfassen die Operationen von einem der Beispiele 1 und 2 optional das Erzeugen einer Zufallszahl, die der kryptografischen Nonce entspricht.
  • In Beispiel 4 sind die Aktivierungsdaten von einem der Beispiele 1-3 optional eine Kombination der Challenge-Daten mit einem Passwort.
  • In Beispiel 5 umfassen die Operationen von einem der Beispiele 1-4 optional das Bereitstellen des Zugriffs auf mindestens den Abschnitt der Daten, der ferner auf dem Verifizieren der Aktivierungsdaten basiert.
  • In Beispiel 6 umfasst das Verifizieren der Aktivierungsdaten in einem der Beispiele 1-5 optional das Verifizieren einer Länge der kryptografischen Nonce, die in den Aktivierungsdaten beinhaltet ist; und Verifizieren der Challenge-Daten, die in den Aktivierungsdaten beinhaltet sind.
  • In Beispiel 7 umfassen die Aktivierungsdaten von einem der Beispiele 1-6 optional ein Passwort und das Verifizieren der Aktivierung in einem der Beispiele 1-7 umfasst optional ein Verifizieren des Passworts.
  • In Beispiel 8 wird der private Schlüssel von einem der Beispiele 1-7 optional durch eine Smartcard gespeichert, die kommunikativ mit der Speichersubsystem-Steuerung gekoppelt ist.
  • In Beispiel 9 wird der private Schlüssel von einem der Beispiele 1-7 optional durch ein Trusted Platform Module (TPM) des Hostsystems gespeichert.
  • In Beispiel 10 wird der private Schlüssel von einem der Beispiele 1-7 optional durch ein Hardware-Sicherheitsmodul (HSM) eines Unternehmensservers gespeichert.
  • In Beispiel 11 umfasst das System nach einem der Beispiele 1-10 optional eine physische Hostschnittstelle, um die Anfrage von dem Hostsystem zu empfangen.
  • Beispiel 12 ist ein Verfahren, umfassend: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten durch mindestens einen Hardware-Prozessor als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur durch den mindestens einen Hardware-Prozessor basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; und Bereitstellen von Zugriff auf mindestens einen Abschnitt von Daten, die durch eine Speicherkomponente eines Speichersubsystems gespeichert werden, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
  • In Beispiel 13 umfasst die Anfrage von Beispiel 12 optional eine Anfrage zum Zugreifen auf den Abschnitt der Daten, die in der Speicherkomponente gespeichert sind.
  • In Beispiel 14 umfasst das Verfahren von einem der Beispiele 12 und 13 optional das Erzeugen einer Zufallszahl, die der kryptografischen Nonce entspricht.
  • In Beispiel 15 sind die Aktivierungsdaten von einem der Beispiele 12-14 optional eine Kombination der Challenge-Daten mit einem Passwort.
  • In Beispiel 16 umfasst das Verfahren von einem der Beispiele 12-15 optional das Bereitstellen des Zugriffs auf mindestens den Abschnitt der Daten, der ferner auf dem Verifizieren der Aktivierungsdaten basiert.
  • In Beispiel 17 umfasst das Verifizieren der Aktivierungsdaten in einem der Beispiele 12-16 optional das Verifizieren einer Länge der kryptografischen Nonce, die in den Aktivierungsdaten beinhaltet ist; und Verifizieren der Challenge-Daten, die in den Aktivierungsdaten beinhaltet sind.
  • In Beispiel 18 entspricht der mindestens eine Hardware-Prozessor nach einem der Beispiele 12-17 optional einer Steuerung eines Speichersubsystems, und die Anfrage nach einem der Beispiele 12-17 wird optional über eine physische Hostschnittstelle des Speichersubsystems empfangen.
  • In Beispiel 19 wird der private Schlüssel von einem der Beispiele 12-18 optional gespeichert durch eines von: wobei der private Schlüssel gespeichert wird durch eines von: einer Smartcard, einem Trusted Platform Module (TPM) des Hostsystems oder einem Hardware-Sicherheitsmodul (HSM) eines Unternehmens servers.
  • Beispiel 20 ist ein nichtflüchtiges computerlesbares Speichermedium, das Anweisungen umfasst, die bei Ausführung durch eine Speichersubsystem-Steuerung die Speichersubsystem-Steuerung dazu konfigurieren, Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; und Bereitstellen von Zugriff auf mindestens einen Abschnitt von Daten, die durch eine Speicherkomponente eines Speichersubsystems gespeichert werden, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
  • MASCHINENARCHITEKTUR
  • 6 veranschaulicht eine beispielhafte Maschine in der Form eines Computersystems 600, in dem ein Satz von Anweisungen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hierin erörterten Methodologien durchzuführen. In einigen Ausführungsformen kann das Computersystem 600 einem Hostsystem (z. B. dem Hostsystem 120 von 1) entsprechen, das ein Speichersubsystem (z. B. das Speichersubsystem 110 von 1) beinhaltet, mit ihm gekoppelt ist oder es verwendet, oder kann verwendet werden, um die Operationen einer Steuerung durchzuführen (z. B. um ein Betriebssystem auszuführen, um Operationen entsprechend der Sicherheitskomponente 113 von 1 durchzuführen). Bei alternativen Ausführungsformen kann die Maschine mit anderen Maschinen in einem Local Area Network (LAN), einem Intranet, einem Extranet und/oder dem Internet verbunden (z. B. vernetzt) sein. Die Maschine kann in der Funktion eines Servers oder einer Client-Maschine in einer Client-Server-Netzwerkumgebung, als eine Peer-Maschine in einer Peer-to-Peer- (oder verteilten) Netzwerkumgebung oder als eine Server- oder eine Client-Maschine in einer Cloud-Computing-Infrastruktur oder Umgebung betrieben werden.
  • Die Maschine kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Appliance, ein Server, ein Netzwerk-Router, ein Switch oder eine Bridge oder eine beliebige Maschine sein, die in der Lage ist, einen Satz von Anweisungen (sequenziell oder anderweitig) auszuführen, die die von dieser Maschine auszuführenden Aktionen spezifizieren. Ferner ist der Begriff „Maschine“, obwohl eine einzelne Maschine veranschaulicht ist, außerdem so zu verstehen, dass er eine beliebige Zusammenstellung von Maschinen beinhaltet, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um eine beliebige oder mehrere der in dieser Schrift erörterten Vorgehensweisen durchzuführen.
  • Das beispielhafte Computersystem 600 beinhaltet eine Verarbeitungsvorrichtung 602, einen Hauptspeicher 604 (z. B. ROM, Flash-Speicher, DRAM wie SDRAM oder Rambus DRAM (RDRAM) usw.), einen statischen Speicher 606 (z. B. Flash-Speicher, statischen Direktzugriffsspeicher (SRAM) usw.) und ein Datenspeichersystem 618, die über einen Bus 630 miteinander kommunizieren.
  • Die Verarbeitungsvorrichtung 602 ist eine oder mehrere universelle Verarbeitungsvorrichtungen wie ein Mikroprozessor, eine Zentraleinheit und dergleichen. Insbesondere kann die Verarbeitungsvorrichtung 602 ein Mikroprozessor für die Berechnung eines komplexen Anweisungssatzes (complex instruction set computing - CISC), ein Mikroprozessor für die Berechnung eines verringerten Anweisungssatzes (reduced instruction set computing - RISC), ein Mikroprozessor für sehr lange Anweisungswörter (very long instruction word - VLIW), ein Prozessor, der andere Anweisungssätze implementiert, oder Prozessoren sein, die eine Kombination von Anweisungssätzen implementieren. Die Verarbeitungsvorrichtung 602 kann auch eine oder mehrere spezielle Verarbeitungsvorrichtungen wie ein ASIC, ein FPGA, ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor oder dergleichen sein. Die Verarbeitungsvorrichtung 602 ist dazu konfiguriert, Anweisungen 626 auszuführen, um die hierin besprochenen Operationen und Schritte auszuführen. Das Computersystem 600 kann ferner eine Netzwerk-Schnittstellenvorrichtung 608 beinhalten, um über ein Netzwerk 620 zu kommunizieren.
  • Das Datenspeichersystem 618 kann ein maschinenlesbares Speichermedium 624 (auch als computerlesbares Medium bekannt) beinhalten, auf dem ein oder mehrere Sätze von Anweisungen 626 oder Software gespeichert sind, die eine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen 626 können sich auch vollständig oder mindestens teilweise im Hauptspeicher 604 und/oder in der Vorrichtung 602 befinden, während sie von dem Computersystem 600 ausgeführt werden, wobei der Hauptspeicher 604 und die Vorrichtung 602 ebenfalls maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Speichermedium 624, das Datenspeichersystem 618 und/oder der Hauptspeicher 604 können dem Speichersubsystem 110 von 1 entsprechen
  • In einer Ausführungsform beinhalten die Befehle 626 Befehle zur Implementierung einer Funktionalität, die einer Sicherheitskomponente (z. B. der Sicherheitskomponente 113 von 1) entspricht. Während das maschinenlesbare Speichermedium 624 in einem Ausführungsbeispiel als einzelnes Medium dargestellt ist, sollte der Begriff „maschinenlesbares Speichermedium“ ein einzelnes Medium oder mehrere Medien beinhalten, die den einen oder mehrere Sätze von Anweisungen speichern. Der Begriff „maschinenlesbares Medium“ ist außerdem so zu verstehen, dass er ein beliebiges Medium beinhaltet, das in der Lage ist, einen Satz von Anweisungen zur Ausführung durch die Maschine zu speichern oder zu kodieren und welche die Maschine veranlassen, eine oder mehrere der Vorgehensweisen der vorliegenden Offenbarung durchzuführen. Der Begriff „maschinenlesbares Medium“ ist dementsprechend so zu verstehen, dass er, ohne darauf beschränkt zu sein, Festkörperspeicher und optische Medien und magnetische Medien beinhaltet.
  • Einige Abschnitte der vorhergehenden detaillierten Beschreibungen wurden hinsichtlich Algorithmen und symbolischen Darstellungen von Vorgängen an Datenbits innerhalb eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Wege, die von Fachleuten der Datenverarbeitung verwendet werden, um die Substanz ihrer Arbeit anderen Fachleuten am effektivsten zu vermitteln. Ein Algorithmus ist hier und im Allgemeinen konzipiert, eine selbstkonsistente Sequenz an Operationen zu sein, die zu einem gewünschten Ergebnis führt. Die Operationen sind diejenigen, die physische Manipulationen physischer Mengen erfordern. In der Regel, aber nicht zwingend, nehmen diese Mengen die Form von elektrischen oder magnetischen Signalen an, die dazu in der Lage sind, gespeichert, kombiniert, verglichen und anderweitig manipuliert zu werden. Es hat sich manchmal als praktisch erwiesen, hauptsächlich aus Gründen der gewöhnlichen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Charakter, Begriffe, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch berücksichtigt werden, dass all diese und ähnliche Begriffe den angemessenen physischen Größen zuzuordnen sind und lediglich praktische Bezeichnungen sind, die auf diese Größen angewandt werden. Die vorliegende Offenbarung kann die Handlung und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung betreffen, die Daten, die als physische (elektronische) Größen innerhalb der Register und Speicher des Computersystems dargestellt sind, manipuliert und in andere Daten umwandelt, die ähnlich als physische Größen innerhalb der Speicher oder Register des Computersystems oder anderer solcher Informationsdatenspeichersysteme dargestellt sind.
  • Die vorliegende Offenbarung bezieht sich außerdem auf ein Gerät zum Durchführen der Operationen in dieser Schrift. Dieses Gerät kann speziell für die beabsichtigten Zwecke konstruiert sein oder es kann einen Allzweckcomputer beinhalten, der durch ein im Computer gespeichertes Computerprogramm wahlweise aktiviert oder neu konfiguriert wird. Ein solches Computerprogramm kann auf einem computerlesbaren Speichermedium gespeichert werden, wie etwa, aber nicht beschränkt auf, jede Art von Platte, einschließlich Disketten, optische Platten, CD-ROMs und magneto-optische Platten; ROMs; RAMs; löschbare programmierbare Nur-Lese-Speicher (EPROMs); EEPROMs; magnetische oder optische Platten; oder jede Art von Medien, die zum Speichern elektronischer Anweisungen geeignet sind, die jeweils mit einem Computersystembus gekoppelt sind.
  • Die in dieser Schrift vorgestellten Algorithmen und Anzeigen beziehen sich nicht grundsätzlich auf einen bestimmten Computer oder ein bestimmtes anderes Gerät. Verschiedene Allzwecksysteme können mit Programmen gemäß den in dieser Schrift beinhalteten Lehren verwendet werden oder es kann sich als vorteilhaft erweisen, ein spezialisierteres Gerät zu konstruieren, um das Verfahren durchzuführen. Die Struktur für eine Reihe dieser Systeme wird wie in der nachfolgenden Beschreibung angegeben angezeigt. Zusätzlich wird die vorliegende Offenbarung nicht unter Bezugnahme auf eine konkrete Programmiersprache beschrieben. Es versteht sich, dass eine Reihe von Programmiersprachen verwendet werden kann, um die in dieser Schrift beschriebenen Lehren der Offenbarung umzusetzen.
  • Die vorliegende Offenbarung kann als ein Computerprogrammprodukt oder eine Software bereitgestellt sein, das/die ein maschinenlesbares Medium beinhalten kann, das darauf gespeicherte Anweisungen aufweist, die verwendet werden können, um ein Computersystem (oder andere elektronische Vorrichtungen) zu programmieren, um einen Prozess gemäß der vorliegenden Offenbarung durchzuführen. Ein maschinenlesbares Medium beinhaltet einen beliebigen Mechanismus zum Speichern von Informationen in einer Form, die von einer Maschine (z. B. einem Computer) gelesen werden kann. In einigen Ausführungsformen beinhaltet ein maschinenlesbares (z. B. computerlesbares) Medium ein maschinenlesbares (z. B. computerlesbares) Speichermedium, wie etwa ein ROM, ein RAM, Magnetplattenspeichermedien, optische Speichermedien, Flash-Speicher Komponenten und so weiter.
  • In der vorstehenden Beschreibung wurden Ausführungsformen der Offenbarung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen davon beschrieben. Es versteht sich, dass verschiedene Modifikationen daran vorgenommen werden können, ohne vom weiteren Geist und Schutzumfang der Offenbarung abzuweichen, wie sie in den folgenden Patentansprüchen dargelegt sind. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden und nichteinschränkenden Sinne zu verstehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/780532 [0001]

Claims (20)

  1. System, umfassend: eine Speicherkomponente, die Daten speichert; und eine Speichersubsystem-Steuerung, die betriebsmäßig mit der Speicherkomponente gekoppelt ist, um Operationen durchzuführen, umfassend: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; und Bereitstellen von Zugriff auf mindestens einen Abschnitt der Daten, die durch die Speicherkomponente gespeichert werden, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
  2. System nach Anspruch 1, wobei: die Anfrage eine Anfrage zum Zugreifen auf den Abschnitt der Daten umfasst, die in der Speicherkomponente gespeichert sind.
  3. System nach Anspruch 1, wobei das Erzeugen der Challenge-Daten Folgendes umfasst: Erzeugen einer Zufallszahl entsprechend der kryptografischen Nonce; und Kombinieren der Zufallszahl mit vorrichtungsspezifischen Informationen, die das System beschreiben.
  4. System nach Anspruch 1, wobei die von dem Hostsystem empfangenen Aktivierungsdaten eine Kombination aus den Challenge-Daten und einem Passwort sind.
  5. System nach Anspruch 1, wobei: die Operationen ferner Verifizieren der Aktivierungsdaten umfassen; und das Bereitstellen von Zugriff auf mindestens den Abschnitt der Daten ferner auf dem Verifizieren der Aktivierungsdaten basiert.
  6. System nach Anspruch 5, wobei das Verifizieren der Aktivierungsdaten Folgendes umfasst: Verifizieren einer Länge der kryptografischen Nonce, die in den Aktivierungsdaten beinhaltet ist; und Verifizieren der Challenge-Daten, die in den Aktivierungsdaten beinhaltet sind.
  7. System nach Anspruch 5, wobei: die Aktivierungsdaten ferner ein Passwort umfassen; und das Verifizieren der Aktivierungsdaten Verifizieren des Passworts umfasst.
  8. System nach Anspruch 1, wobei der private Schlüssel durch eine Smartcard gespeichert wird, die kommunikativ mit der Speichersubsystem-Steuerung gekoppelt ist.
  9. System nach Anspruch 1, wobei der private Schlüssel durch ein Trusted Platform Module (TPM) des Hostsystems gespeichert wird.
  10. System nach Anspruch 1, wobei der private Schlüssel durch ein Hardware-Sicherheitsmodul (HSM) eines Unternehmensservers gespeichert wird.
  11. System nach Anspruch 1, ferner umfassend: eine physische Hostschnittstelle zum Empfangen der Anfrage von dem Hostsystem.
  12. Verfahren, umfassend: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten durch mindestens einen Hardware-Prozessor als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur durch den mindestens einen Hardware-Prozessor auf der Grundlage der Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; und Bereitstellen von Zugriff auf mindestens einen Abschnitt der Daten, die von der Speicherkomponente eines Speichersubsystems gespeichert sind, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
  13. Verfahren nach Anspruch 12, wobei: die Anfrage eine Anfrage zum Zugreifen auf den Abschnitt der Daten umfasst, die in der Speicherkomponente gespeichert sind.
  14. Verfahren nach Anspruch 12, wobei das Erzeugen der Challenge-Daten Folgendes umfasst: Erzeugen einer Zufallszahl; und Kombinieren der Zufallszahl mit vorrichtungsspezifischen Informationen, die das Speichersubsystem beschreiben.
  15. Verfahren nach Anspruch 12, wobei die Aktivierungsdaten durch das Hostsystem erzeugt werden, indem die Challenge-Daten mit einem Passwort kombiniert werden.
  16. Verfahren nach Anspruch 12, ferner umfassend Verifizieren der Aktivierungsdaten, wobei das Bereitstellen von Zugriff auf den mindestens einen Abschnitt der Daten ferner auf dem Verifizieren der Aktivierungsdaten basiert.
  17. Verfahren nach Anspruch 16, wobei das Verifizieren der Aktivierungsdaten Folgendes umfasst: Verifizieren einer Länge der kryptografischen Nonce, die in den Aktivierungsdaten beinhaltet ist; und Verifizieren der Challenge-Daten, die in den Aktivierungsdaten beinhaltet sind.
  18. Verfahren nach Anspruch 17, wobei: der mindestens eine Hardware-Prozessor einer Steuerung eines Speichersubsystems entspricht; und die Anfrage über eine physische Hostschnittstelle des Speichersubsystems empfangen wird.
  19. Verfahren nach Anspruch 12, wobei der private Schlüssel gespeichert wird durch eines von: einer Smartcard, einem Trusted Platform Module (TPM) des Hostsystems oder einem Hardware-Sicherheitsmodul (HSM) eines Unternehmens servers.
  20. Nichtflüchtiges computerlesbares Speichermedium, umfassend Anweisungen, die bei Ausführung durch eine Speichersubsystem-Steuerung die Speichersubsystem-Steuerung dazu konfigurieren, Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Anfrage von einem Hostsystem zum Einleiten einer Authentifizierungssitzung mit einem Speichersubsystem; Erzeugen von Challenge-Daten als Reaktion auf die Anfrage, wobei die Challenge-Daten eine kryptografische Nonce umfassen; Bereitstellen der Challenge-Daten an das Hostsystem; Empfangen von Authentifizierungsdaten von dem Hostsystem, die eine digitale Signatur und Aktivierungsdaten umfassen, die mindestens die Challenge-Daten beinhalten, wobei die digitale Signatur durch kryptografisches Signieren der Aktivierungsdaten unter Verwendung eines privaten Schlüssels erzeugt wird; Validieren der digitalen Signatur basierend auf den Challenge-Daten und unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht; und Bereitstellen von Zugriff auf mindestens einen Abschnitt der Daten, die von der Speicherkomponente eines Speichersubsystems gespeichert sind, basierend mindestens teilweise auf der Validierung der digitalen Signatur.
DE112021000964.8T 2020-02-03 2021-02-02 Zur multi-faktor-authentifizierung fähiges speichersubsystem Pending DE112021000964T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/780,532 2020-02-03
US16/780,532 US20210243035A1 (en) 2020-02-03 2020-02-03 Multi-factor authentication enabled memory sub-system
PCT/US2021/016218 WO2021158551A1 (en) 2020-02-03 2021-02-02 Multi-factor authentication enabled memory sub-system

Publications (1)

Publication Number Publication Date
DE112021000964T5 true DE112021000964T5 (de) 2022-11-24

Family

ID=77063075

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000964.8T Pending DE112021000964T5 (de) 2020-02-03 2021-02-02 Zur multi-faktor-authentifizierung fähiges speichersubsystem

Country Status (6)

Country Link
US (1) US20210243035A1 (de)
JP (1) JP2023513480A (de)
KR (1) KR20220128394A (de)
CN (1) CN115380290A (de)
DE (1) DE112021000964T5 (de)
WO (1) WO2021158551A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020113198A1 (de) * 2020-05-15 2021-11-18 Infineon Technologies Ag Kryptografische Operation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296573B2 (en) * 2004-04-06 2012-10-23 International Business Machines Corporation System and method for remote self-enrollment in biometric databases
EA012918B1 (ru) * 2005-10-18 2010-02-26 Интертраст Текнолоджиз Корпорейшн Системы и способы на основе механизма управления цифровыми правами
US8156332B2 (en) * 2007-05-29 2012-04-10 Apple Inc. Peer-to-peer security authentication protocol
US7930554B2 (en) * 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
US8959597B2 (en) * 2010-05-19 2015-02-17 Cleversafe, Inc. Entity registration in multiple dispersed storage networks
JP6242036B2 (ja) * 2011-11-17 2017-12-06 ソニー株式会社 情報処理装置、情報記憶装置、情報処理システム、および情報処理方法、並びにプログラム
US8874926B1 (en) * 2012-03-08 2014-10-28 Sandia Corporation Increasing security in inter-chip communication
US9817989B2 (en) * 2013-07-08 2017-11-14 Empire Technology Development Llc Access control of external memory
US20180101850A1 (en) * 2016-10-12 2018-04-12 Microsoft Technology Licensing, Llc User and device authentication for web applications
CN108345782B (zh) * 2017-01-25 2021-02-12 杨建纲 智能型硬件安全载具
US10536273B2 (en) * 2017-06-27 2020-01-14 Dell Products, L.P. Multi-factor authentication in virtual, augmented, and mixed reality (xR) applications

Also Published As

Publication number Publication date
KR20220128394A (ko) 2022-09-20
CN115380290A (zh) 2022-11-22
US20210243035A1 (en) 2021-08-05
WO2021158551A1 (en) 2021-08-12
JP2023513480A (ja) 2023-03-31

Similar Documents

Publication Publication Date Title
DE112020005459T5 (de) Delegation eines kryptografischen schlüssels an ein speichersubsystem
DE102015017399B3 (de) Speichergerät, Betriebsverfahren des Speichergeräts und elektronisches Gerät mit dem Speichergerät
DE102015205396A1 (de) Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses
DE102018114266A1 (de) Nichtflüchtige speichervorrichtung mit sicherem lesen
US11249924B2 (en) Secure data communication with memory sub-system
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE112021000644T5 (de) Dynamische befehlserweiterung für ein speichersubsystem
US11783044B2 (en) Endpoint authentication based on boot-time binding of multiple components
US20230186289A1 (en) Solid State Drives with Autonomous Control of Proof of Space Activities
US20230032885A1 (en) Mechanism to Support Writing Files Into a File System Mounted in a Secure Memory Device
US20230185482A1 (en) Burn-In Solid State Drives through Generation of Proof of Space Plots in A Manufacturing Facility
US20240111910A1 (en) Security capsule for enabling restricted features of a memory device
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln
DE112021000964T5 (de) Zur multi-faktor-authentifizierung fähiges speichersubsystem
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE112020005474T5 (de) Passwortgenerierung zur einmaligen verwendung
US11736453B2 (en) Secure key storage devices
CN115019848A (zh) 存储器物理存在安全识别
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung
DE112021000150T5 (de) Datenspeicherungsvorrichtungsverschlüsselung
US11714925B2 (en) Assuring integrity and secure erasure of critical security parameters
US20240220651A1 (en) Storage device and method for generating token
DE102014112329A1 (de) Konzentration von virtuellen Bändern für selbst-verschlüsselnde Laufwerk-Einrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed