DE112021000149T5 - Verschlüsselung einer datenspeicherungsvorrichtung - Google Patents

Verschlüsselung einer datenspeicherungsvorrichtung Download PDF

Info

Publication number
DE112021000149T5
DE112021000149T5 DE112021000149.3T DE112021000149T DE112021000149T5 DE 112021000149 T5 DE112021000149 T5 DE 112021000149T5 DE 112021000149 T DE112021000149 T DE 112021000149T DE 112021000149 T5 DE112021000149 T5 DE 112021000149T5
Authority
DE
Germany
Prior art keywords
file system
blocks
data
stored
system data
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
DE112021000149.3T
Other languages
English (en)
Inventor
Matthew Harris KLAPMAN
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies 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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112021000149T5 publication Critical patent/DE112021000149T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • G06F21/80Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0623Securing storage systems in relation to content
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0661Format or protocol conversion arrangements
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Diese Offenbarung bezieht sich auf eine Speicherungsvorrichtungs-Hardware (DSD-Hardware) und insbesondere auf Systeme und Verfahren zum Verschlüsseln von Daten, die auf einer DSD gespeichert sind. Eine DSD weist ein nichtflüchtiges Speicherungsmedium auf, um mehrere Dateisystemdatenobjekte unter Verwendung einer Blockadressierung zu speichern. Die mehreren Dateisystemdatenobjekte sind durch jeweilige Bereiche von Blöcken adressierbar. Eine Vorrichtungssteuerung ist in die DSD integriert und weist eine Hardware-Schaltung auf, die eingerichtet ist, um Daten, die auf dem Speicherungsmedium gespeichert werden sollen, zu verschlüsseln und Daten, die auf dem Speicherungsmedium gespeichert sind, basierend auf verschiedenen kryptografischen Schlüsseln zu entschlüsseln und jeden der verschiedenen kryptografischen Schlüssel für einen der Bereiche von Blöcken, die ein entsprechendes Dateisystemdatenobjekt adressieren, zu verwenden. Der Entschlüsselungsteil der Hardware-Schaltung kann deaktiviert werden, sodass die Daten in verschlüsselter Form gelesen werden können.

Description

  • TECHNISCHES GEBIET
  • Aspekte der Offenbarung beziehen sich allgemein auf die Speicherungsvorrichtungshardware und insbesondere auf Systeme und Verfahren zum Verschlüsseln von Daten, die auf einer Datenspeicherungsvorrichtung gespeichert sind.
  • HINTERGRUND
  • 1 veranschaulicht ein typisches Szenario 100, das ein Host-Rechnersystem 101 und eine Datenspeicherungsvorrichtung (DSD) 102 einschließt, die über eine Datenverbindung 103, wie Fibre Channel (FC), Serial Advanced Technology Attachment (SATA), Serial Attached Small Computer System Interface (SAS) oder andere, mit dem Host-Rechnersystem 101 verbunden sind. Die DSD 102 kann sich innerhalb des Host-Rechnersystem 101 oder außerhalb des Host-Rechnersystems 101 befinden, wie auf einem separaten Rack in einem Serverraum.
  • Das Host-Rechnersystem 101 weist weiterhin einen Prozessor 104 und einen flüchtigen Speicher, wie einen Direktzugriffsspeicher (RAM) 105, auf. Das Host-Rechnersystem 101 kann ein Desktop- oder Laptop-Computer, eine Mobilvorrichtung oder ein Server in einem Rechenzentrum sein und kann ein darauf installiertes Betriebssystem, wie Microsoft Windows oder Linux, aufweisen. Das Host-Rechnersystem 101 kann auch eine virtuelle Maschine oder eine Cloud-Instanz oder eine andere Rechenvorrichtung sein. Die DSD 102 weist eine Steuerung 106, ein physisches Datenspeicherungsmedium 107 und eine Lese-/Schreibvorrichtung 108 auf. Während das aktuelle Beispiel ein Festplattenlaufwerk (HDD) mit einem rotierenden Medium beschreibt, gilt diese Offenbarung gleichermaßen für andere Speicherungsmedien, wie sie in Solid-State-Laufwerken (SSDs) oder Bändern gefunden werden.
  • Eine Schwierigkeit bei der Datenspeicherung besteht darin, dass die DSD 102 physisch entfernt oder gestohlen werden kann und in einen anderen Host-Computer eingefügt werden kann, um sensible Informationen abzurufen, die auf der DSD 102 gespeichert sind. Daher ist es wichtig, verschlüsselte „ruhende Daten“ bereitzustellen.
  • Ein Ansatz zum Bereitstellen verschlüsselter ruhender Daten ist die vollständige Festplattenverschlüsselung. Zu diesem Zweck schließt die Steuerung 106 eine Hardware-Schaltung ein, die Verschlüsselungsfunktionen durchführt, wie Advanced Encryption Standard (AES). Die Steuerung 106 kann dann alle Daten verschlüsseln, die sie über die Datenverbindung 103 empfängt und die verschlüsselten Daten auf dem Speicherungsmedium 107 speichern. Umgekehrt ruft die Steuerung 106 verschlüsselte Daten vom Speicherungsmedium 107 ab, entschlüsselt die Daten und sendet die entschlüsselten Daten über die Datenverbindung 103.
  • Der Prozessor 104 kann dann eine Software-Verschlüsselung durchführen, um die von der DSD 102 empfangenen Daten zu verschlüsseln, was nützlich sein kann, wenn die Daten dann beispielsweise über einen unsicheren Kanal an ein anderes Computersystem gesendet werden. Dies ist jedoch keine End-to-End-Lösung, da die Datenverbindung 103 zwischen der DSD und dem Host-Rechnersystem 101 die Daten im Klartext (d. h. unverschlüsselt) trägt. Daher kann es für einen Angreifer möglich sein, die Datenverbindung 103 abzuhören und einen unbefugten Zugriff auf unverschlüsselte Daten zu erhalten.
  • KURZDARSTELLUNG
  • Es wird eine Verbesserung der Hardware-Verschlüsselung durch Definieren von Blockbereichen in einer Datenspeicherungsvorrichtung (DSD) und Zuweisen eines kryptographischen Schlüssels für jeden Blockbereich bereitgestellt. Auf diese Weise kann eine einzelne Datei, die den definierten Blockbereich überspannt, in Form mehrerer Blöcke verschlüsselt abgerufen werden. Die Blöcke können dann über eine unsichere Verbindung gesendet und auf einem zweiten Rechnersystem gespeichert werden. Die Entschlüsselungshardware des zweiten Rechnersystems kann dann bei Bedarf die Blöcke entschlüsseln.
  • Hierin wird eine Datenspeicherungsvorrichtung offenbart, aufweisend:
    • ein nichtflüchtiges Speicherungsmedium zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und
    • eine Vorrichtungssteuerung, die in die Datenspeicherungsvorrichtung integriert ist und eine Hardware-Schaltung aufweist, die eingerichtet ist zum:
      • Verschlüsseln von Daten, die auf dem Speicherungsmedium gespeichert werden sollen, basierend auf verschiedenen kryptografischen Schlüsseln, und
      • Verwenden jedes Schlüssels der verschiedenen kryptografischen Schlüssel für einen der Bereiche von Blöcken, die ein jeweiliges Dateisystemdatenobjekt adressieren.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Anforderung für ein entschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem;
    • Identifizieren eines der Bereiche von Blöcken, in denen das Dateisystemdatenobjekt gespeichert ist;
    • Erhalten eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem einen der Bereiche von Blöcken;
    • Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das auf dem Speicherungsmedium gespeichert ist, unter Verwendung des erhaltenen kryptografischen Schlüssels zu entschlüsseln; und
    • Senden des entschlüsselten Dateisystemdatenobjekts an das Host-Rechnersystem.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Steuern der Hardware-Schaltung, um Daten, die auf dem Speicherungsmedium gespeichert sind, zu entschlüsseln, und
    • Empfangen und Ausführen von Befehlen von einem Befehlssatz, und
    • wobei der Befehlssatz einen Befehl zum Deaktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist, um zu bewirken, dass die Vorrichtungssteuerung eines der mehreren Dateisystemdatenobjekte in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, an das Host-Rechnersystem sendet.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Anforderung für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem nach dem Empfangen des Befehls, um eine Entschlüsselung der Daten, die auf dem Datenspeicherungsmedium gespeichert sind, zu deaktivieren, wobei die Anforderung eine Angabe eines Bereichs von Blöcken aufweist; und
    • Senden des einen der mehreren Dateisystemdatenobjekte, die im Bereich von Blöcken in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, gespeichert sind.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Anforderung für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem;
    • Identifizieren eines der Bereiche von Blöcken, in denen das angeforderte verschlüsselte Dateisystemdatenobjekt auf dem Speicherungsmedium gespeichert ist; und
    • Senden des Dateisystemdatenobjekts, das im identifizierten Bereich von Blöcken gespeichert ist, in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, auf das Host-Rechnersystem.
  • In einigen Ausführungsformen sind die Dateisystemdatenobjekte eines oder mehrere von:
    • einer Datei;
    • einer Gruppe von Dateien; und
    • einem Verzeichnis.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Angabe eines Bereichs von Blöcken von einem Host-Dateisystem, das eine Dateistruktur mit Zuordnungen zu den Bereichen von Blöcken pflegt;
    • Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem angegebenen Bereich von Blöcken; und
    • Steuern der Hardware-Schaltung, um Daten unter Verwendung des ausgewählten kryptografischen Schlüssels zu verschlüsseln.
  • In einigen Ausführungsformen weist die Datenspeicherungsvorrichtung weiterhin eine Datenspeicherung auf, um eine Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken zu speichern,
    wobei:
    • die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken mit einem ersten Schlüssel der verschiedenen kryptografischen Schlüssel verschlüsselt ist, und
    • die Vorrichtungssteuerung weiterhin eingerichtet ist zum:
      • Empfangen einer Anforderung für die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken,
      • Senden der Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken an ein Host-Rechnersystem, um es dem Host-Rechnersystem zu ermöglichen, einen Bereich von Blöcken basierend auf der gespeicherten Zuordnung zu bestimmen;
      • Empfangen eines zweiten Schlüssels der verschiedenen kryptografischen Schlüssel vom Host-Rechnersystem;
      • Empfangen einer Angabe eines Bereichs von Blöcken von einem Host-Dateisystem, das eine Dateistruktur mit Zuordnungen zu den Bereichen von Blöcken pflegt;
      • Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im Bereich von Blöcken gespeichert ist, unter Verwendung des zweiten Schlüssels der verschiedenen kryptografischen Schlüssel zu entschlüsseln; und
      • Senden des entschlüsselten Dateisystemdatenobjekts an das Host-Rechnersystem.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen des ersten Schlüssels der verschiedenen kryptografischen Schlüssel;
    • Steuern der Hardware-Schaltung, um die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken unter Verwendung des ersten Schlüssels der verschiedenen kryptografischen Schlüssel zu entschlüsseln; und
    • Senden der Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken in entschlüsselter Form an das Host-Rechnersystem.
  • In einigen Ausführungsformen weist die Datenspeicherungsvorrichtung weiterhin eine Datenspeicherung auf, um eine Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken zu speichern,
    wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum:
    • Empfangen einer Anforderung für ein Dateisystemdatenobjekt;
    • Bestimmen eines Bereichs von Blöcken basierend auf der gespeicherten Zuordnung;
    • Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem bestimmten Bereich von Blöcken;
    • Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im bestimmten Bereich von Blöcken gespeichert ist, unter Verwendung des ausgewählten kryptografischen Schlüssels zu entschlüsseln; und
    • Senden des entschlüsselten Dateisystemdatenobjekts.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Anforderung für ein Dateisystemdatenobjekt;
    • Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem Dateisystemdatenobjekt der Anforderung;
    • Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im bestimmten Bereich von Blöcken gespeichert ist, unter Verwendung des ausgewählten kryptografischen Schlüssels zu entschlüsseln; und
    • Senden des entschlüsselten Dateisystemdatenobjekts.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet, um einen oder mehrere Schlüssel der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem zu empfangen und in der Datenspeicherungsvorrichtung zu speichern.
  • In einigen Ausführungsformen weist die Datenspeicherungsvorrichtung einen flüchtigen Speicher zum Speichern des einen oder der mehreren Schlüssel der verschiedenen kryptografischen Schlüssel auf.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen einer Angabe eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem; und
    • Steuern der Hardware-Schaltung, um Daten unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel zu verschlüsseln, bis eine Angabe eines anderen der verschiedenen kryptografischen Schlüssel empfangen wird.
  • In einigen Ausführungsformen ist die Vorrichtungssteuerung weiterhin eingerichtet zum:
    • Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Aktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist;
    • Empfangen eines verschlüsselten Dateisystemdatenobjekts, das außerhalb der Datenspeicherungsvorrichtung verschlüsselt wurde;
    • Speichern des verschlüsselten Dateisystemdatenobjekts auf dem Speicherungsmedium in verschlüsselter Form;
    • Empfangen eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem;
    • Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu aktivieren;
    • Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt auf dem Speicherungsmedium unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel, die vom Host-Rechnersystem empfangen werden, zu entschlüsseln; und
    • Senden des Dateisystemdatenobjekts in entschlüsselter Form an das Host-Rechnersystem.
  • Hierin wird ein Verfahren zum Speichern von Daten in einer Datenspeicherungsvorrichtung offenbart, wobei das Verfahren aufweist:
    • Speichern mehrerer Dateisystemdatenobjekte auf einem Speicherungsmedium unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und
    • Verwenden eines Schlüssels von verschiedenen kryptographischen Schlüsseln durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, um Daten zu verschlüsseln, die auf dem Speicherungsmedium gespeichert werden sollen, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die eines der mehreren Dateisystemdatenobjekte adressieren, verwendet wird.
  • In einigen Ausführungsformen weist das Verfahren weiterhin auf:
    • Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Aktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist;
    • Empfangen eines verschlüsselten Dateisystemdatenobjekts, das außerhalb der Datenspeicherungsvorrichtung verschlüsselt wurde;
    • Speichern des verschlüsselten Dateisystemdatenobjekts auf dem Speicherungsmedium in verschlüsselter Form;
    • Empfangen eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem;
    • Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu aktivieren;
    • Entschlüsseln des Dateisystemdatenobjekts auf dem Speicherungsmedium durch die Hardware-Schaltung der Vorrichtungssteuerung, die mit der Datenspeicherungsvorrichtung integriert ist, unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel, die vom Host-Rechnersystem empfangen werden; und
    • Senden des Dateisystemdatenobjekts in entschlüsselter Form an das Host-Rechnersystem.
  • In einigen Ausführungsformen weist das Verfahren weiterhin auf:
    • Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Deaktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist;
    • Empfangen einer Anforderung für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem nach dem Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Datenspeicherungsmedium gespeichert sind, zu deaktivieren, wobei die Anforderung eine Angabe eines Bereichs von Blöcken aufweist; und
    • Senden des einen der mehreren Dateisystemdatenobjekte, die im Bereich von Blöcken in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, gespeichert sind.
  • Hierin offenbart ist ein nicht-transitorisches computerlesbares Speicherungsmedium, das in eine Datenspeicherungsvorrichtung integriert ist, und mit einer darauf gespeicherten Firmware, die, wenn sie von einer Steuerung der Datenspeicherungsvorrichtung ausgeführt wird, die Steuerung veranlasst, die folgenden Schritte durchzuführen:
    • Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und
    • Verwenden, durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, eines Schlüssels von verschiedenen kryptographischen Schlüsseln, um Daten, die auf dem Speicherungsmedium gespeichert werden sollen, zu verschlüsseln, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die ein jeweiliges Dateisystemdatenobjekt adressieren, verwendet wird.
  • Hierin wird eine Datenspeicherungsvorrichtung offenbart, aufweisend:
    • Mittel zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und
    • Mittel zum Verwenden eines Schlüssels von verschiedenen kryptographischen Schlüsseln durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, um Daten, die auf dem Mittel gespeichert werden sollen, zu verschlüsseln, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die eines der mehreren Dateisystemdatenobjekte adressieren, verwendet wird.
  • Figurenliste
    • 1 veranschaulicht ein typisches Szenario gemäß dem Stand der Technik und ein Host-Rechnersystem und eine Datenspeicherungsvorrichtung (DSD). Ein Beispiel wird nun unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 2 veranschaulicht ein Beispiel, bei dem die DSD unterschiedliche Schlüssel für verschiedene Bereiche von Blöcken gemäß einer Ausführungsform verwendet.
    • 3 zeigt ein beispielhaftes Datenspeicherungsmedium mit Blockgrenzen und Bereichen von Blöcken, für die unterschiedliche Schlüssel verwendet werden, gemäß einer Ausführungsform.
    • 4 veranschaulicht ein Beispiel, wobei die Steuerung gemäß einer Ausführungsform die Daten (die auf dem Speicherungsmedium gespeichert wurden) in entschlüsselter Form sendet.
    • 5 veranschaulicht ein Beispiel, wobei die Steuerung die Daten (die auf dem Speicherungsmedium gespeichert wurden) in verschlüsselter Form sendet, da die Daten gemäß einer Ausführungsform auf dem Speicherungsmedium gespeichert werden.
    • 6 veranschaulicht eine empfangende DSD, die ein verschlüsseltes Dateisystemdatenobjekt empfängt. Die empfangende DSD kann das Dateisystemdatenobjekt nach Empfang des entsprechenden Schlüssels gemäß einer Ausführungsform entschlüsseln.
    • 7 veranschaulicht ein weiteres Beispiel eines Datenflusses zwischen einem Host-Rechnersystem und einer DSD gemäß einer Ausführungsform.
    • 8 veranschaulicht ein Verfahren zum Speichern von Daten in einer DSD gemäß einer Ausführungsform.
    • 9 veranschaulicht eine DSD, die Mittel zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung gemäß einer Ausführungsform aufweist.
  • BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • 2 veranschaulicht ein Szenario 200 gemäß einer Ausführungsform. Szenario 200 schließt ein Host-Rechnersystem 201 und eine Datenspeicherungsvorrichtung (DSD) 202 ein, die über eine Datenverbindung 203, wie Fibre Channel (FC), Serial ATA (SATA), Serial Attached SCSI (SAS) oder andere, mit dem Host-Rechnersystem 201 verbunden sind. Die DSD 202 kann innerhalb des Host-Rechnersystems 201 oder außerhalb des Host-Rechnersystems 201 angeordnet sein, wie auf einem separaten Rack in einem Serverraum, in einer Cloud-Speicherarchitektur oder als externes Laufwerk über einen Universal Serial Bus (USB) oder einen FireWire verbunden.
  • Das Host-Rechnersystem 201 weist einen Prozessor 204 und einen flüchtigen Speicher (RAM) 205 auf. Die DSD 202 weist eine Steuerung 206 auf, die eine Hardware-Schaltung 210 aufweist, wie einen Mikrocontroller mit einer x86-Architektur, Reduced Instruction Set Computing-Architektur (RISC-Architektur), Advanced RISC-Maschine-Architektur (ARM-Architektur) oder einer anderen Architektur. Vorteilhafterweise weist die Steuerung 206 eine dedizierte Hardware-Schaltung 210 auf, um eine kryptografische Funktion durchzuführen, wie eine Hardware-Implementierung eines Verschlüsselungs- und Entschlüsselungsalgorithmus. Dies hat den Vorteil, dass alle Lese- und Schreibvorgänge auf und von der DSD 202 mit der vollen Geschwindigkeit der DSD 202 verschlüsselt und entschlüsselt werden können, sodass die Verschlüsselung und Entschlüsselung den Datentransfer zwischen Host-Rechnersystem 201 und der DSD 202 nicht verlangsamt. Beispielhafte Verschlüsselungs- und Entschlüsselungsalgorithmen, die in Hardware implementiert werden können, schließen Blowfish and Advanced Encryption Standard (AES) mit 128-Bit-, 192-Bit-oder 256-Bit-Schlüssellänge ein. In einem Beispiel weist die Steuerung nur eine Verschlüsselungsfunktionalität (keine Entschlüsselungsfunktionalität) auf, die für Speicherkartenmedien nützlich sein kann, die zum Beispiel in einer Kameraerfassungsvorrichtung verwendet werden. Die Steuerung 206 verwendet die dedizierte Hardware-Schaltung 210, wenn die Entschlüsselung oder Verschlüsselung durchgeführt werden soll. In diesem Sinne steuert die Steuerung 206 die dedizierte Hardware-Schaltung 210, um eine Verschlüsselung oder Entschlüsselung durchzuführen, wie durch Aktivieren der Hardware-Schaltung 210 durch Einstellen eines digitalen Freigabesignals, das den Prozessor in der Steuerung 206 mit der Hardware-Schaltung 210 verbindet.
  • Die DSD 202 weist weiterhin ein nichtflüchtiges physisches Datenspeicherungsmedium 207 und eine Lese-/Schreibvorrichtung 208 zum Speichern von mehreren Dateisystemdatenobjekten unter Verwendung einer Blockadressierung auf. Dies bedeutet, dass die mehreren Dateisystemdatenobjekte durch jeweilige Blockbereiche adressierbar sind. Dies wird allgemein als Blockvorrichtung bezeichnet, was bedeutet, dass die DSD 202 das Lesen und Schreiben von Daten in Blöcken, Sektoren oder Clustern fester Größe unterstützt. Beispielsweise können diese Blöcke jeweils 512 Bytes oder 4096 Bytes groß sein. Beispiele schließen Blockvorrichtungen mit rotierenden Medien, wie Festplatten, und Blockvorrichtungen, die Festkörpermedien verwenden, wie NOT-AND-Flash-Speicherkarten (NAND), NAND-Flash-Speicherchips und Festkörperlaufwerke (SSDs), ein.
  • Ein Bereich von Blöcken bedeutet mehrere Blöcke in einer logischen Sequenz, die zusammen das Dateisystemdatenobjekt speichern. Ein Bereich von Blöcken kann zusammenhängend sein oder Lücken oder Spalten aufweisen. Weiterhin kann ein Bereich von Blöcken durch eine logische Startblockadresse (Start-LBA) und eine End-LBA definiert sein. Alternativ kann ein Bereich von Blöcken durch eine Start-LBA und eine Anzahl von Blöcken des Bereichs definiert werden. Es ist auch möglich, dass der letzte Block im Bereich in Fällen, in denen das Dateisystemdatenobjekt über mehrere Bereiche verteilt ist, einen Zeiger auf einen weiteren Bereich einschließt.
  • Die Steuerung 206 (auch als „Vorrichtungssteuerung“ bezeichnet) ist in die DSD integriert, was bedeutet, dass sich die Steuerung 206 innerhalb eines Gehäuses befindet, das alle Teile der DSD 202 enthält, einschließlich des physischen Datenspeicherungsmediums 207. Wichtig ist, dass die Integration der Steuerung 206 mit der DSD 202 bedeutet, dass Signale zwischen der Steuerung 206 und dem Speicherungsmedium und der Lese-/Schreibvorrichtung 208 nicht ohne Weiteres von außerhalb der DSD 202 ohne Demontage der DSD 202 zugänglich sind. Es wird darauf hingewiesen, dass einige Designs der DSD 202 keine Demontage der DSD 202 zulassen, ohne diese zu beschädigen.
  • Steuerungskonfiguration
  • Während das Szenario in 2 ähnlich dem Szenario in 1 erscheint, ist die Steuerung 206 in 2 nun so eingerichtet, dass sie anders als die Steuerung 106 in 1 funktioniert. Die Konfiguration der Steuerung 206 kann durch Firmware, die auf dem Programmspeicher 209 installiert ist, in dem Sinne erfolgen, dass hierin beschriebene Verfahren als Quellcode implementiert sind, kompiliert sind und in den Programmspeicher 209 als Maschinencode geschrieben werden. 2 zeigt auch einen Datenspeicher 210, der zum Speichern kryptografischer Schlüssel verwendet werden kann, wie nachstehend beschrieben wird. Der Programmspeicher 209 und der Datenspeicher 210 können flüchtiger Speicher (z. B. RAM), nichtflüchtiger Speicher (z. B. Festwertspeicher (ROM)), elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM), Flash-Speicher usw. sein. Weiterhin können der Programmspeicher 209 und der Datenspeicher 210 in die Steuerung 206 integriert sein, wie durch das Montieren auf derselben Platine wie die Steuerung 206, die innerhalb desselben Chips/Mikrobausteins hergestellt ist, oder durch das Verbinden über eine Datenverbindung mit der Steuerung 206. Es ist auch möglich, dass die Steuerung 206 Speicherungsmedium 207 als Datenspeicher 210 bzw. Programmspeicher 209 verwendet.
  • Die Steuerung 206 führt den Programmcode (der auf dem Programmspeicher 209 gespeichert wurde) aus und verschlüsselt infolgedessen die auf dem Speicherungsmedium 207 zu speichernden Daten durch Steuern der kryptographischen Hardware-Schaltung 210. Die Steuerung 206 entschlüsselt auch Daten (die auf dem Speicherungsmedium gespeichert wurden) basierend auf verschiedenen kryptografischen Schlüsseln auch durch Steuern der kryptografischen Hardware-Schaltung 210. Insbesondere verwendet die Steuerung 206 jeden Schlüssel der verschiedenen kryptografischen Schlüssel für einen der Bereiche von Blöcken, die ein jeweiliges Dateisystemdatenobjekt adressieren. Die Steuerung 206 weist eine Hardware-Schaltung 210 auf, die eingerichtet ist, um Daten zu verschlüsseln und zu entschlüsseln, was bedeutet, dass die Schaltung, wie eine anwendungsspezifische integrierte Schaltungs-Implementierung (ASIC-Implementierung), oder eine Implementierung auf Gate-Ebene, eine teilweise kundenspezifische oder eine vollständige kundenspezifische Implementierung des kryptografischen Algorithmus für die Steuerung 206 verfügbar ist. Teile der Schaltung 210 können jedoch, wie hierin beschrieben, deaktiviert werden, um verschlüsselte Daten zu senden und zu empfangen. Die Steuerung 206 verwendet einen kryptografischen Schlüssel, um Daten zu verschlüsseln oder zu entschlüsseln, indem er Zugriff auf den Schlüssel für die Hardware-Schaltung 210 bereitstellt oder indem die Hardware-Schaltung 210 angibt, welcher kryptografische Schlüssel für die Verschlüsselung oder Entschlüsselung auszuwählen ist.
  • 3 zeigt ein beispielhaftes Datenspeicherungsmedium 300 gemäß einer Ausführungsform mit Blockgrenzen, die als gestrichelte vertikale Linien dargestellt sind, wie die Linie 301, die Block 302 definiert (als ein Quadrat gezeigt). Jeder Block kann, wie bereits erwähnt, eine vordefinierte Größe aufweisen, wie 512 oder 4096 Bytes. Der Einfachheit halber ist das Speicherungsmedium 300 als rechteckige Form gezeigt, aber in rotierenden Medien wären die horizontalen Linien gebogen, um Kreise um die Rotationsachse herum zu bilden, während die vertikalen Linien abgewinkelt wären, um „Sektoren“ zu definieren, die daher als Synonym für „Blöcke“ hierin verwendet werden.
  • Ein beispielhafter Bereich von Blöcken 303 ist durch ein starkes Rechteck dargestellt. Der beispielhafte Bereich von Blöcken 303 wird durch die Hardware-Schaltung in der Steuerung 206 unter Verwendung eines ersten Verschlüsselungsschlüssels verschlüsselt. Dies wird durch das Schattierungsmuster des beispielhaften Bereichs von Blöcken 303 angezeigt. Der nächste Bereich erstreckt sich über zwei Reihen von Speicherungsmedien 300 und ein anderer Schlüssel wird verwendet, der durch das quadratische Schattierungsmuster angezeigt wird. Tatsächlich wird jeder Bereich unter Verwendung eines anderen Schlüssels verschlüsselt, der allgemein durch ein entsprechendes Schattierungsmuster in 3 angegeben wird. Es wird darauf hingewiesen, dass die Blöcke im Bereich von Blöcken nicht zusammenhängend sein müssen. Zum Beispiel wird der Bereich von Blöcken, die mit „Key4‟ verschlüsselt wurden, in einen ersten Unterbereich 304 (einen einzelnen Block) und einen zweiten Unterbereich 305 (vier zusammenhängende Blöcke) fragmentiert. Die Blöcke sind fortlaufend nummeriert und die Dateizuordnungstabelle (FAT) speichert die Blocknummer, die den Start jeder Datei und die Länge des Bereichs von diesem Block angibt, der mit dem nächsten Startblock bei Unterbereichen für fragmentierte Dateien verknüpft sein kann. Wenn hierin auf eine FAT Bezug genommen wird, sollte dies auch als Dateisystemmetadaten verstanden werden, die Journaldaten einschließen.
  • Befehlssatz
  • Der Programmcode, der auf dem Programmspeicher 209 gespeichert ist, ermöglicht es der Steuerung 206, vom Host-Rechnersystem 201 empfangene Befehle zu empfangen, zu interpretieren und auszuführen. Zum Beispiel kann die Steuerung 206 dazu eingerichtet sein, den seriellen ATA-Befehlssatz (SATA) bzw. ATA-Paketschnittstellen-Befehlssatz (ATAPI) zu implementieren, der vom Technischen Ausschuss T13 erhältlich ist, wobei darauf hingewiesen wird, dass identische Funktionalitäten innerhalb von Trusted Computing Group (TCG) Opal, SCSI und anderen proprietären Architekturen implementiert werden können. Wichtig ist, dass der Befehlssatz einen Befehl SEKTOREN LESEN mit einem Befehlseingang des Sektorzählers und des Index des Startsektors aufweist (es ist anzumerken, dass „Sektor“ hier synonym mit „Block“ verwendet wird). Es wird darauf hingewiesen, dass ein DSD-Treiber vorhanden ist, der auf dem Host-Rechnersystem 101 installiert ist, und der DSD-Treiber verwendet den Befehlssatz, um High-Level-Dienste für das Betriebssystem bereitzustellen, wie Dateilesefunktionalitäten. Wenn hierin neue Befehle offenbart werden, versteht es sich, dass diese Befehle in den auf dem Host-Rechnersystem 101 installierten DSD-Treiber integriert sein können, sodass die neuen Befehle dem Host-Rechnersystem 101 zur Verfügung stehen. Zum Beispiel kann das Betriebssystem eine verschlüsselte Dateilesefunktion bereitstellen, welche die Datei zurückgibt, wie sie durch die Hardware-Schaltung 210 verschlüsselt wurde, die in der DSD 202 zum Zeitpunkt des Speicherns dieser Datei integriert wurde.
  • Der Befehlssatz kann einen Befehl einschließen, der aus dem ATA-SICHERHEITS-Funktionssatz eingestellt ist. Insbesondere kann der Befehlssatz den Befehl SICHERHEIT KENNWORT EINSTELLEN einschließen. Es wird darauf hingewiesen, dass sich dieser Befehl im ATA-Standard nicht auf die Verschlüsselung bezieht, sondern lediglich auf den Zugriff der Daten auf das Speicherungsmedium 207. Mit anderen Worten können Benutzerdaten in einem Klartext (unverschlüsselt) gespeichert werden, aber die Steuerung verweigert den Zugriff, bis das korrekte Passwort durch den Befehl SICHERHEIT KENNWORT EINSTELLEN bereitgestellt wird und die Vorrichtung mit dem Befehl SICHERHEIT-FREIGABE entsperrt wird.
  • In dieser Offenbarung kann der Befehl SICHERHEIT KENNWORT EINSTELLEN auch vom Host-Rechnersystem 201 verwendet werden, um ein Passwort für jeden der Bereiche von Blöcken an die DSD 202 zu senden. Die Steuerung 206 kann jedoch weitere kryptografische Befehle implementieren, wie SICHERHEITSENTSCHLÜSSELUNG EIN und SICHERHEITSENTSCHLÜSSELUNG AUS. Während diese Befehle nicht definieren, ob das Host-Rechnersystem 201 auf die Benutzerdaten auf dem Speicherungsmedium 207 zugreifen kann, definieren diese Befehle, ob die Steuerung 206 die Benutzerdaten (SICHERHEITSENTSCHLÜSSELUNG EIN) entschlüsselt oder die Daten in verschlüsselter Form, wie sie auf dem Speicherungsmedium 207 gespeichert sind (SICHERHEITSENTSCHLÜSSELUNG AUS), wie weiter unten beschrieben wird, sendet. Es wird angemerkt, dass die zuvor erwähnten Befehle weiterhin verwendet werden können, um die Datenspeicherungsvorrichtung 202 von allen Datenzugriff zu sperren/entsperren.
  • In einem weiteren Beispiel berechnet die Steuerung 206 einen Hash, wie einen Message Digest 5 (MD5), auf jeder Datei, die an das Host-Rechnersystem 201 zurückgesendet werden kann. Dieser Hash kann berechnet werden, um zu validieren, dass die Daten, die in das Speicherungsmedium 207 geschrieben wurden, korrekt geschrieben wurden (z. B. durch Schreiben des Werts, Zurücklesen und Berechnen des Hash-Werts). Der endgültige Hash-Wert kann vom Host-Rechnersystem 201 angefordert werden, um zu sehen, ob er mit dem Hash-Wert der ursprünglichen Datei übereinstimmt. Diese Funktion stellt den Hardware-beschleunigten Hash bereit, der den Unternehmen Zeit spart, die diese Funktion auf einem höheren Level durchführen (z. B. Lesen der gesamten Datei, nachdem sie geschrieben wurde, um den Hash zu berechnen). Es könnte auch ein Merkmal für die Steuerung 206 sein, um einen Hash-Wert auf einer Datei zu einem späteren Zeitpunkt zu berechnen, damit die Datenintegrität der Datei verifiziert wird. Der Hash kann sich auf den verschlüsselten oder unverschlüsselten Dateidaten befinden. Dies kann mit EINSTELLUNG VON HASH EIN/AUS, HASH-WERT LESEN und HASH AUF BLOCKBEREICH AUSFÜHREN mit nn bis mm Arten von Befehlen implementiert werden.
  • Dateizuordnungstabelle
  • Die Bereiche von Blöcken für jedes Dateisystemdatenobjekt können in einer Dateizuordnungstabelle (FAT) definiert werden, die im Datenspeicher 210 oder auf dem Speicherungsmedium 207 gespeichert ist. In dieser Tabelle wird jedes Dateisystemdatenobjekt durch eine einzelne verknüpfte Liste von Blöcken dargestellt. Mit anderen Worten speichert der Datenspeicher 210 eine Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken. Wiederum sei darauf hingewiesen, dass diese Zuordnung (die FAT) beispielsweise auf dem Speicherungsmedium 207 selbst gemäß dem FAT32-Format gespeichert werden kann. Die FAT kann auch als „Blockgraphenstruktur“ bezeichnet werden.
  • Dateisystemdatenobjekte schließen Dateien, Gruppen von Dateien, Ordner und Gruppen von Ordnern ein. In einem Beispiel verwendet die Steuerung 206 einen anderen kryptografischen Schlüssel für jede Datei, die auf dem Speicherungsmedium 207 gespeichert ist. In anderen Beispielen werden die Dateien in Gruppen, wie Gruppen von Dateien mit demselben Besitzer, unterteilt, sodass alle Dateien mit demselben Besitzer verschlüsselt und mit demselben kryptografischen Schlüssel entschlüsselt werden können, aber Dateien mit einem anderen Besitzer einen anderen Schlüssel benötigen.
  • Es wird darauf hingewiesen, dass die FAT in verschlüsselter Form auf dem Datenspeicher 210 oder dem Speicherungsmedium 207 gespeichert werden kann. In diesem Fall wird der für die Verschlüsselung und Entschlüsselung der FAT verwendete Schlüssel als „Volumenschlüssel“ bezeichnet. In vielen Fällen ist die FAT im Vergleich zu anderen Dateien relativ klein, sodass die Rechenlast zum Entschlüsseln der FAT relativ niedrig ist. Dies bedeutet, dass das Host-Rechnersystem 201 sowie die Steuerung 206 die FAT praktisch entschlüsseln können. Daher kann das Host-Rechnersystem 201 entweder (1) den Befehl SICHERHEITSENTSCHLÜSSELUNG AUS senden, die verschlüsselte FAT lesen, die FAT lokal mit dem Prozessor 204 entschlüsseln und den Bereich von Blöcken für eine bestimmte angeforderte Datei identifizieren oder (2) den Volumenschlüssel mit SICHERHEIT KENNWORT EINSTELLEN (Volumen_Schlüssel) senden, die Entschlüsselung mit SICHERHEITSENTSCHLÜSSELUNG EIN aktivieren und die unverschlüsselte FAT lesen.
  • Aus Sicht der Steuerung 206 speichert der Datenspeicher 210 die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken (FAT). Die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken wird mit dem Volumenschlüssel verschlüsselt. Die Steuerung 206 empfängt dann eine Anforderung für die FAT und sendet die FAT zum Host-Rechnersystem 201, um es dem Host-Rechnersystem zu ermöglichen, einen Bereich von Blöcken basierend auf der FAT zu bestimmen. Die Anforderung für die FAT kann ein Standard-Lesebefehl sein (SEKTOREN LESEN), wobei der Startblock der vordefinierte Start der FAT ist, wie die logische Blockadresse (LBA) 65 und die Anzahl der Blöcke, welche die Größe der FAT sind.
  • Wie hierin ausführlicher beschrieben, empfängt die Steuerung 206 dann vom Host-Rechnersystem 201 einen Datenschlüssel und eine Angabe eines Bereichs von Blöcken (wie durch das Host-Rechnersystem 201 basierend auf der FAT bestimmt). In diesem Sinne pflegt das Host-Rechnersystem 201 eine Dateistruktur mit Zuordnungen zu den Bereichen von Blöcken. Schließlich verwendet die Steuerung 206 den Datenschlüssel zum Entschlüsseln des im Bereich von Blöcken gespeicherten Dateisystemdatenobjekts und sendet das entschlüsselte Dateisystemdatenobjekt an das Host-Rechnersystem.
  • In einem Beispiel sendet die Steuerung 206 die FAT in entschlüsselter Form. Das heißt, die Steuerung 206 empfängt den Volumenschlüssel, entschlüsselt die FAT unter Verwendung des Volumenschlüssels und sendet die FAT an das Host-Rechnersystem in entschlüsselter Form. Das Host-Rechnersystem 201 kann dann die FAT verwenden, um Blockbereiche für Dateien zu bestimmen, indem Blockbereiche unter Verwendung des vollständigen Pfades jeder Datei gesucht werden. In einem anderen Beispiel sendet die Steuerung 206 die FAT in verschlüsselter Form und das Host-Rechnersystem 201 entschlüsselt die FAT unter Verwendung des Volumenschlüssels.
  • Entschlüsselte Daten senden
  • 4 veranschaulicht ein Beispiel, wobei die Vorrichtungssteuerung 206 gemäß einer Ausführungsform die Daten (die auf dem Speicherungsmedium 207 gespeichert wurden) in entschlüsselter Form sendet. Die Steuerung 206 kann den notwendigen kryptografischen Schlüssel aus dem Datenspeicher 210 erhalten. Die Steuerung 206 kann auch den kryptografischen Schlüssel vom Host-Rechnersystem 201 mit einem vorherigen Befehl, wie dem SICHERHEIT KENNWORT EINSTELLEN 401, empfangen und den Schlüssel auf dem Datenspeicher 210 gespeichert haben. Dann empfängt die Steuerung 206 eine Anforderung 402 für ein entschlüsseltes Dateisystemdatenobjekt vom Host-Rechnersystem 201. Diese Anforderung kann ein Standard-SATA-Befehl zum Lesen eines Bereichs von Blöcken sein, wie SEKTOREN LESEN. Als Reaktion darauf identifiziert die Steuerung 206 einen der Bereiche von Blöcken, in denen das Dateisystemdatenobjekt gespeichert ist, z. B. durch Extrahieren der Blocknummern aus der Leseanforderung. Dann erhält die Steuerung 206 einen der verschiedenen kryptografischen Schlüssel 403 basierend auf dem einen der Bereiche von Blöcken, indem der zuletzt empfangene Schlüssel aus Schritt 401 oder ein Schlüssel aus einer gespeicherten Liste von Schlüsseln verwendet wird. Die Steuerung 206 kann dann das auf dem Speicherungsmedium gespeicherte Dateisystemdatenobjekt unter Verwendung des erhaltenen kryptografischen Schlüssels entschlüsseln 404 und das entschlüsselte Dateisystemdatenobjekt 405 an das Host-Rechnersystem 201 senden.
  • Man beachte, dass es mehrere verschiedene kryptografische Schlüssel gibt, die jeweils unterschiedliche Dateisystemdatenobjekte verschlüsseln können, wie in 3 gezeigt. Das bedeutet, dass die DSD 202 die Pro-Datei-Verschlüsselung unterstützt. Eine solche Pro-Datei-Verschlüsselung wäre der Dateiverschlüsselung durch den Prozessor 204 des Host-Systems 201 ähnlich, jedoch mit dem Vorteil der Hardware-Beschleunigung aufgrund der Hardware-Implementierung des in der DSD 202 integrierten Verschlüsselungs- und Entschlüsselungsalgorithmus. Daher kann das Host-Rechnersystem 201 eine Liste von Schlüsseln mit einem Schlüssel pro Datei pflegen.
  • Verschlüsselte Daten senden
  • 5 veranschaulicht ein weiteres Beispiel, wobei die Steuerung 206 gemäß einer Ausführungsform Daten (die auf dem Speicherungsmedium 207 gespeichert wurden) in verschlüsselter Form sendet, wenn die Daten auf dem Speicherungsmedium 207 gespeichert werden. Insbesondere empfängt und führt die Steuerung 206 Befehle von einem Befehlssatz aus, der, wie oben beschrieben, einen Befehl zum Deaktivieren der Entschlüsselung der auf dem Speicherungsmedium gespeicherten Daten (SICHERHEITSENTSCHLÜSSELUNG AUS) 501 aufweist. Dieser Befehl bewirkt, dass die Steuerung 206 als Reaktion auf die Leseanforderung 502 die Dateisystemdatenobjekte in verschlüsselter Form, wie auf dem Speicherungsmedium 207 gespeichert, an das Host-Rechnersystem 201 sendet 503. Vorteilhafterweise kann ein Angreifer keine unverschlüsselten Daten durch Abfangen der Kommunikation zwischen der DSD 202 und dem Host-Rechnersystem 201 stehlen. Das Host-Rechnersystem 201 kann die verschlüsselten Daten über einen unsicheren Kanal, wie E-Mail oder Cloud-Speicher, senden, und ein Empfangssystem kann die Daten entschlüsseln, indem sie die Daten auf einem anderen Speicherungsmedium speichern und die Entschlüsselung aktivieren. In dem in 5 veranschaulichten Beispiel kann die Steuerung 206 weiterhin eine Hardware-beschleunigte Verschlüsselung bereitstellen.
  • Es wird darauf hingewiesen, dass eine ganze Festplatte von einer Festplatte zu einer anderen in verschlüsselter Form gesendet werden kann. Dies wäre nützlich für das Klonen der Festplatte und das Übertragen des gesamten Inhalts über ein Netzwerk an einen anderen Computer.
  • Verschlüsselte Daten empfangen
  • Das Empfangssystem kann eine ähnliche DSD sein, wie in 2 gezeigt, sodass für die folgende Beschreibung angenommen wird, dass die DSD 202 das verschlüsselte Dateisystemdatenobjekt von einer anderen DSD empfängt (mit den jeweiligen Host-Rechnersystemen dazwischen). Infolgedessen zeigt 6 die DSD 202 als empfangende DSD und die Steuerung 206 ist gemäß einer Ausführungsform wiederum eingerichtet, um Befehle von einem Befehlssatz zu empfangen und auszuführen. Nun weist der Befehlssatz jedoch einen Befehl zum Aktivieren der Entschlüsselung der auf dem Speicherungsmedium gespeicherten Daten auf. Die empfangende DSD 202 empfängt 601 ein verschlüsseltes Dateisystemdatenobjekt, das extern von der empfangenden DSD verschlüsselt wurde, wie durch eine sendende DSD. Man beachte, dass das Dateisystemdatenobjekt nicht durch ein Host-Rechnersystem oder ein anderes Drittanbieter-Rechnersystem verschlüsselt ist. Stattdessen wurde das Dateisystemdatenobjekt durch eine andere DSD verschlüsselt, d. h. durch eine Hardware-Schaltung 210, die mit der sendenden DSD integriert ist. Dadurch wird sichergestellt, dass die Daten immer verschlüsselt und nicht unverschlüsselt übertragen werden.
  • Die Steuerung 206 speichert 602 das verschlüsselte Dateisystemdatenobjekt auf dem Speicherungsmedium 207 in verschlüsselter Form. In dieser Phase sind die Daten identisch mit dem Fall, in dem die Steuerung 206 die Daten an der ersten Stelle verschlüsselt (unter der Annahme, dass derselbe Schlüssel verwendet wird). Die Steuerung 206 empfängt 603 diesen Schlüssel von einem Host-Rechnersystem. Zum Beispiel hat die Partei, welche die verschlüsselten Daten gesendet hat, auch den entsprechenden Schlüssel über einen separaten Kanal an das Host-Rechnersystem 201 bereitgestellt, das den Schlüssel zur DSD 201 weiterleitet.
  • Die Steuerung 206 empfängt auch den Befehl 604, um die Entschlüsselung der auf dem Speicherungsmedium gespeicherten Daten zu aktivieren. Dies bewirkt, dass die Steuerung 206 als Reaktion auf eine Datenanforderung 605 durch die Hardware-Schaltung 210 der Vorrichtungssteuerung, die in die DSD integriert ist, das Dateisystemdatenobjekt auf dem Speicherungsmedium entschlüsselt. Für diese Entschlüsselung verwendet die Steuerung 206 den vom Host-Rechnersystem in Schritt 603 empfangenen kryptografischen Schlüssel. Schließlich sendet die Steuerung 206 606 das Dateisystemdatenobjekt in entschlüsselter Form an das Host-Rechnersystem.
  • Leseanforderung mit oder ohne Blockbereich
  • Es gibt verschiedene Optionen in Bezug auf das Abbilden der Dateisystemdatenobjekte auf Blockbereiche. In den meisten Fällen speichert die DSD 202 eine Zuordnung zwischen den Dateisystemdatenobjekten, wie Dateien, und den Blockbereichen. Beispiele schließen Dateizuordnungstabelle und Blockgraphenstrukturen ein. Diese Zuordnung kann vom Host-Rechnersystem 201 oder der Steuerung 206 verwendet werden. In einem Beispiel führt das Host-Rechnersystem 201 die Abbildung durch, was bedeutet, dass die Leseanforderung vom Host-Rechnersystem 201 bereits eine Angabe eines Bereichs von Blöcken gemäß dem Standard-ATA-Befehlssatz aufweist. Die Steuerung 206 empfängt diese Leseanforderung in der Regel nach dem Empfangen des Befehls, um die Entschlüsselung der auf dem Datenspeicherungsmedium gespeicherten Daten zu deaktivieren. Als Reaktion darauf entschlüsselt die Steuerung 206 die Daten nicht, sendet jedoch das eine der mehreren Dateisystemdatenobjekte, die im Bereich von Blöcken gespeichert sind, in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert.
  • In einem anderen Beispiel führt die Steuerung 206 die Abbildung durch, wobei die Mittelsteuerung 206 eine Anforderung für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem empfängt. Diese Anforderung identifiziert das Dateisystemdatenobjekt, wie durch Bereitstellen eines vollständigen Pfads der Datei, aber nicht des Blockbereichs. Daher identifiziert die Steuerung 206 einen der Bereiche von Blöcken, in denen das angeforderte verschlüsselte Dateisystemdatenobjekt auf dem Speicherungsmedium gespeichert ist. Die Steuerung 206 erreicht dies durch Abfragen der gespeicherten Zuordnungen in der FAT, um den ersten Block und die Anzahl von Blöcken zu finden. Die Steuerung 206 sendet dann das Dateisystemdatenobjekt (das in dem identifizierten Satz von Blöcken gespeichert wurde) wie auf dem Speicherungsmedium gespeichert in verschlüsselter Form an das Host-Rechnersystem.
  • Schlüsselerzeugung
  • In einem Beispiel erzeugt die Steuerung 206 ein asymmetrisches Schlüsselpaar, das einen öffentlichen Schlüssel und einen privaten Schlüssel aufweist. Die Steuerung 206 kann Schaltungen oder Software einschließen, um neue Schlüssel zu erzeugen, die symmetrisch oder asymmetrisch sein können. Die Steuerung 206 sendet dann den öffentlichen Schlüssel an das Host-Rechnersystem 201 über die Datenverbindung 203, wo er auf dem flüchtigen Speicher 205 gespeichert wird. Dieser öffentliche Schlüssel soll einem entsprechenden privaten Schlüssel zugeordnet sein, der auf der DSD 202 gespeichert ist. Der öffentliche Schlüssel wird von der Steuerung 206 erzeugt, indem ein Primitiv-ECC-Pub ({privaten Schlüssel}) mit einer Kryptografie mit elliptischen Kurven (ECC) ausgeführt wird. (Es wird daran erinnert, dass, obwohl hierin aus Gründen der Recheneffizienz und -sicherheit Kryptografie mit elliptischen Kurven beispielhaft verwendet wird, angemerkt wird, andere kryptografische Techniken ebenfalls verwendet werden könnten.) Der entsprechende private Schlüssel wird im Datenspeicher 210 der DSD 202 gespeichert und der öffentliche Schlüssel wird an das Host-Rechnersystem 201 gesendet und im Speicher 205 gespeichert. Das Host-Rechnersystem 201 ist eingerichtet, um den öffentlichen Schlüssel, auch als Kennung bezeichnet, zu verwenden oder einen weiteren öffentlichen Schlüssel zu erzeugen und zu speichern, um eine Aufforderung für die DSD 202 zu erzeugen. An dieser Stelle sei angemerkt, dass die Aufforderung eindeutig ist in dem Sinn, dass jede Aufforderung unterschiedlich ist, sodass sich eine nachfolgende Aufforderung von allen vorherigen Aufforderungen unterscheidet. Dies wird, wie nachfolgend beschrieben, durch Multiplizieren der gespeicherten Daten mit einem zufallsbasierten Blendungsfaktor erreicht. Dann sendet das Host-Rechnersystem 201 die Aufforderung an die DSD 202 über einen Kommunikationskanal, der sich von der Datenverbindung 203 unterscheiden kann. Zum Beispiel kann die Datenverbindung 203 eine drahtgebundene USB-Verbindung einschließen, während der Schlüsselkommunikationskanal zwischen dem Host-Rechnersystem 201 und der DSD 202 eine drahtlose Verbindung (z. B. Bluetooth) ist.
  • Die Steuerung 206 kann eine Antwort auf die Aufforderung berechnen, die von einer anderen Vorrichtung nicht berechnet werden kann. Genauer gesagt kann die korrekte Antwort nicht von einer Vorrichtung berechnet werden, die keinen Zugriff auf Daten hat, die der Kennung entsprechen, die im Speicher 205 gespeichert ist. Zum Beispiel verwendet die Steuerung 206 den gespeicherten privaten Schlüssel (der dem entsprechenden öffentlichen Schlüssel zugeordnet ist, der im Speicher 205 gespeichert ist), um die Antwort auf die Abfrage zu berechnen. Die richtige Antwort kann dann verwendet werden, um einen Verschlüsselungsschlüssel zu berechnen, um Daten, die auf dem Speicherungsmedium 207 gespeichert sind, zu verschlüsseln und zu entschlüsseln. In einem Beispiel, in dem die Steuerung 206 die verschlüsselten Daten nicht entschlüsselt, kann die Steuerung 206 nur einen öffentlichen Schlüssel speichern und diesen öffentlichen Schlüssel zur Verschlüsselung verwenden. Auf Anforderung sendet die Steuerung 206 dann die verschlüsselten Daten an eine Vorrichtung, die den privaten Schlüssel aufweist, der für die Entschlüsselung erforderlich ist. Zum Beispiel kann es zwei DSDs geben, wobei die erste DSD das private/öffentliche Schlüsselpaar erzeugt und nur den öffentlichen Schlüssel an die zweite DSD sendet (wie eine Kameraspeicherkarte). Die zweite DSD steuert die integrierte Hardware-Schaltung, um Daten unter Verwendung des öffentlichen Schlüssels und auf Anforderung zu verschlüsseln, sendet die verschlüsselten Daten an die erste DSD (möglicherweise über ein Host-Rechnersystem, einschließlich eines Speicherkartenlesers). Die erste DSD kann dann den privaten Schlüssel verwenden, um die Daten zu entschlüsseln.
  • In noch einem weiteren Beispiel erzeugt das Host-Rechnersystem 201 das private/öffentliche Schlüsselpaar und speichert den privaten Schlüssel sicher auf dem nichtflüchtigen Speicher. Die Steuerung 206 registriert dann das Host-Rechnersystem 201 durch Speichern des öffentlichen Schlüssels, der dem auf dem Host-Rechnersystem 201 gespeicherten privaten Schlüssel zugeordnet ist. Die Steuerung 206 kann dann eine Aufforderung an das Host-Rechnersystem 201 senden und nur das Host-Rechnersystem 201 kann die korrekte Antwort basierend auf dem gespeicherten privaten Schlüssel berechnen. Die Steuerung 206 empfängt die Antwort auf die Aufforderung vom Host-Rechnersystem 201 über den Kommunikationskanal. Dabei sei angemerkt, dass, wenn die Steuerung 206 die Antwort auf die Aufforderung einfach validiert und bei Erfolg den kryptografischen Schlüssel aus dem Speicher 210 ausliest, der kryptografische Schlüssel dann im Klartext gespeichert würde, was nicht wünschenswert ist, da dies einem Angreifer ermöglichen würde, die DSD 202 zu demontieren und den Schlüssel aus dem Speicher 210 zu lesen, um auf die in dem Speicherungsmedium 207 gespeicherten Benutzerinhaltsdaten zuzugreifen.
  • Schlüssel berechnen
  • Stattdessen berechnet die Steuerung 206 den kryptografischen Schlüssel mindestens teilweise basierend auf der Antwort vom Host-Rechnersystem 201. Dies bedeutet, dass der kryptografische Schlüssel nicht eine reine Funktion der Antwort ist, sondern auch andere Werte einbezieht. Der kryptografische Schlüssel wird verschlüsselt im Speicher 210 gespeichert und die Antwort, die auf dem im Host-Rechnersystem 201 gespeicherten privaten Schlüssel basiert, ermöglicht die Berechnung des Geheimnisses, das den kryptografische Schlüssel entschlüsselt.
  • In einem Beispiel basiert die durch die Steuerung 206 generierte und an das Host-Rechnersystem 201 gesendete Aufforderung auf Kryptografie mit elliptischen Kurven. Dies bietet die Vorteile kürzerer Schlüssel, was zu einer effizienteren Kommunikation und Speicherung führt. Weiterhin können Host-Rechnersysteme eine dedizierte Funktionalität der Kryptografie mit elliptischen Kurven innerhalb eines sicheren Hardwaremoduls bereitstellen. Das sichere Hardwaremodul speichert die privaten Schlüssel sicher und führt kryptografische Stammfunktionen innerhalb des sicheren Hardwaremoduls durch, ohne dass der Schlüssel das sichere Hardwaremodul verlässt und an einen Universal-Prozessorkern, z. B. Prozessor 204, gesendet wird, wo der Schlüssel einem Angriff wegen unbefugten Abrufs ausgesetzt sein kann. In einer Ausführungsform schließt das sichere Hardwaremodul einen separaten Prozessor ein, der seinen eigenen Mikrokernel ausführt, auf den das Betriebssystem oder Programme, die auf dem Universal-Prozessorkern, nicht direkt zugreifen können. Das sichere Hardwaremodul kann auch eine nichtflüchtige Speicherung einschließen, die verwendet wird, um private 256-Bit-Schlüssel mit elliptischer Kurve zu speichern. In einer Ausführungsform ist das sichere Hardwaremodul ein Secure Enclave-Coprozessor, der auf einigen Apple-Vorrichtungen verfügbar ist. Das sichere Hardwaremodul kann sich im Host-Rechnersystem 201 oder in der DSD 202 befinden, um den privaten Schlüssel zu erzeugen und zu speichern. Der obige Prozess kann dann für jeden der verschiedenen kryptografischen Schlüssel für verschiedene Bereiche von Blöcken wiederholt werden. Das Host-Rechnersystem 201 und die DSD 202 können auch einen Diffie-Hellman-Schlüsselaustausch (DH-Schlüsselaustausch) durchführen, der auf Kryptografie mit elliptischen Kurven (ECC-DH) basieren kann.
  • Weitere Informationen über die Schlüsselerzeugung finden sich in der USamerikanischen Patentanmeldung 16/706.780 , eingereicht am 8. Dezember 2019, mit dem Titel: Unlocking a data storage device (Entsperren einer Datenspeicherungsvorrichtung), die hierin vollständig durch Bezugnahme aufgenommen ist.
  • Es ist auch möglich, dass ein oder mehrere Schlüssel vorübergehend in einem in der DSD 202 enthaltenen flüchtigen Speicher gespeichert werden. Dieser „Schlüssel-Cache“ würde das Senden von Schlüsseln über die Datenverbindung 203 minimieren, um die Geschwindigkeitseffizienz zu ermöglichen und die Sicherheit zu verbessern. Das Host-Rechnersystem 201 kann sich auf jeden Schlüssel als Tabelleneintrag, PASSWORTEINSTELLUNG 1, PASSWORTEINSTELLUNG 2, SICHERHEITSENTSCHLÜSSELUNG EIN 1, SICHERHEITSENTSCHLÜSSELUNG AUS 2 usw. beziehen. Wenn die Leistung von der DSD 202 entfernt wird oder die DSD 202 geöffnet wird und eine physische Manipulationserfassungsschaltung ausgelöst wird, dann werden die Schlüssel nicht mehr zugänglich, um die Sicherheit der DSD 202 zu schützen. Wenn sich die DSD 202 in einem Status befindet, in dem der Schlüssel nicht verfügbar ist, kann sie automatisch zum Senden von verschlüsselten Daten zurückkehren, ohne dass Schlüssel empfangen werden. In diesem Sinne kann jedes Host-Rechnersystem die DSD 202 einschalten und verschlüsselte Daten lesen. Aber nur das Host-Rechnersystem mit dem Schlüssel (oder Zugriff auf eine DSD mit dem Schlüssel) kann die Daten entschlüsseln.
  • Schlüsselauswahl
  • Es gibt verschiedene Optionen, wie die entsprechenden Schlüssel für die Verschlüsselung und Entschlüsselung ausgewählt werden können. In einem ersten Beispiel pflegt das Host-Rechnersystem 201 die FAT und die Steuerung 206 empfängt eine Angabe eines Bereichs von Blöcken, wie eine Startblockadresse und eine Anzahl von Blöcken. Die Steuerung 206 wählt dann einen der verschiedenen kryptografischen Schlüssel basierend auf dem angegebenen Bereich von Blöcken aus. Zu diesem Zweck kann die Steuerung 206 eine Tabelle pflegen, die für jede Startblockadresse den entsprechenden Schlüssel speichert. Das heißt, die Tabelle hat eine Zeile für jedes Dateisystemdatenobjekt und jede Zeile schließt eine Startblockadresse und einen Schlüssel ein. Die Steuerung 206 fragt dann die Tabelle für die empfangene Startblockadresse ab und verwendet den aus der Tabelle ausgewählten kryptografischen Schlüssel zum Verschlüsseln von Daten und Entschlüsseln von Daten.
  • In anderen Beispielen führt die Steuerung 206 die Abbildung zwischen dem Dateisystemdatenobjekt und dem Bereich von Blöcken durch, wie vorstehend beschrieben. Das heißt, die Steuerung 206 empfängt eine Anforderung für ein Dateisystemdatenobjekt und bestimmt einen Bereich von Blöcken basierend auf der gespeicherten FAT. Die Steuerung 206 wählt dann einen der mehreren kryptografischen Schlüssel basierend auf dem bestimmten Bereich von Blöcken aus. Dies könnte wiederum die Verwendung einer Schlüsseltabelle beinhalten, welche die Startblockadresse oder den vollständigen Pfad des Dateisystemdatenobjekts oder beide in einer Zeile mit dem entsprechenden Schlüssel speichern kann. Daher kann die Steuerung 206 auch den Schlüssel auswählen, indem er den vollständigen Pfad in der Schlüsseltabelle anstelle der Startblockadresse nachschlägt. Die Steuerung 206 verwendet dann den ausgewählten kryptografischen Schlüssel zum Entschlüsseln des Dateisystemdatenobjekts, das im bestimmten Bereich von Blöcken gespeichert ist, und sendet das entschlüsselte Dateisystemdatenobjekt.
  • Wie vorstehend beschrieben, kann die Steuerung 206 weiterhin eingerichtet sein, um die verschiedenen Schlüssel vom Host-Rechnersystem 201 zu empfangen. Die Steuerung 206 speichert dann die Schlüssel innerhalb der DSD 202, die einen flüchtigen Speicher aufweisen kann, um den einen oder die mehreren der verschiedenen kryptografischen Schlüssel zu speichern, sodass die Schlüssel nicht in der DSD 202 verbleiben, wenn die DSD 202 heruntergefahren wird. Die Steuerung 206 kann die verschiedenen kryptografischen Schlüssel vom Host-Rechnersystem 201 mit einem Befehl empfangen, wie SICHERHEIT KENNWORT EINSTELLEN. Die Steuerung 206 verwendet dann diesen Schlüssel zum Verschlüsseln und Entschlüsseln von Daten, bis eine Angabe eines anderen Schlüssels durch denselben Befehl empfangen wird.
  • In weiteren Beispielen werden die verschiedenen Schlüssel über einen Kommunikationskanal gesendet, der sich vom Kommunikationskanal unterscheidet, der verwendet wird, um die verschlüsselten Daten zu senden, wie einen drahtlosen Kanal (z. B. Bluetooth). Weiterhin können die Schlüssel zu unterschiedlichen Zeiten relativ zu den verschlüsselten Daten gesendet werden, wie zeitverschoben, um die Schlüssel von den verschlüsselten Daten zu trennen.
  • Datenflussbeispiel
  • 7 veranschaulicht ein weiteres Beispiel, das den vollständigen Datenfluss gemäß einer Ausführungsform zeigt. Das erste Host-Rechnersystem 201 stellt den Pro-Datei-Verschlüsselungsschlüssel durch Ausgeben eines Befehls SICHERHEIT KENNWORT EINSTELLEN (Datei_Schlüssel) ein 701. Dadurch wird das Hardware-Verschlüsselungsmodul mit dem Dateischlüssel aktiviert. Dann gibt das Host-Rechnersystem 201 einen Befehl SEKTOREN SCHREIBEN aus 702, um die Dateidaten in unverschlüsselter Form an die DSD 202 zu senden. Da das Host-Rechnersystem 201 in dieser Phase die FAT pflegt, kann das Host-Rechnersystem 201 auch die Zuweisung der Dateidaten durchführen, um diese Blöcke oder mindestens die Startblockadresse in dem Schreibbefehl zu blockieren und zu spezifizieren. Die Steuerung 206 verschlüsselt dann 703 die empfangenen Daten mit dem Dateischlüssel und speichert 704 die verschlüsselten Daten auf dem Speicherungsmedium 207. Die Daten werden nun gespeichert und die DSD 202 kann für nicht zugehörige Aufgaben verwendet oder heruntergefahren werden. In einer späteren Phase deaktiviert das Host-Rechnersystem 201 die Entschlüsselung 705, wenn die Daten gelesen werden müssen, durch Ausgeben eines Befehls SICHERHEITSENTSCHLÜSSELUNG AUS. Alternativ kann die Entschlüsselung standardmäßig deaktiviert werden, sodass das Senden des Befehls nicht erforderlich ist. Das Host-Rechnersystem 201 liest 706 dann die FAT-Tabelle, indem ein Befehl SEKTOREN LESEN für die vordefinierten Sektoren ausgegeben wird, in denen die FAT gespeichert ist. Als Reaktion darauf gibt die Steuerung 206 die verschlüsselte FAT an das Host-Rechnersystem 201 zurück 707. Das Host-Rechnersystem 201 entschlüsselt 708 dann die FAT unter Verwendung des Volumenschlüssels (der sich vom Dateischlüssel unterscheidet). Alternativ kann das Host-Rechnersystem 201 die Entschlüsselung aktivieren und die FAT in entschlüsselter Form lesen.
  • Von der entschlüsselten FAT kann das Host-Rechnersystem 201 nun die erforderlichen Blöcke 709 für eine bestimmte Datei finden und diese Blöcke 710 lesen, indem sie einen Befehl SEKTOREN LESEN für diese Blöcke ausgibt. Die Steuerung 206 antwortet durch Senden 711 der verschlüsselten Dateidaten zurück an das Host-Rechnersystem 201. Diese verschlüsselten Dateidaten können nun an anderer Stelle gespeichert oder über einen unsicheren Kommunikationskanal gesendet werden. Da der Dateischlüssel verfügbar ist (mit beschränktem Zugriff), können die verschlüsselten Dateidaten durch autorisierte Entitäten entschlüsselt werden, die den Schlüssel aufweisen.
  • Verfahren
  • 8 veranschaulicht ein Verfahren 800 zum Speichern von Daten in einer DSD 202 gemäß einer Ausführungsform. Verfahren 800 kann von der Steuerung 206 in dem Sinne durchgeführt werden, dass das Verfahren 800 in Programmcode implementiert ist, der in Programmspeicher 209 gespeichert ist, wobei der Programmcode die Hardware-Schaltung 210 steuert, um einzelne Befehle auszuführen. Das heißt, der Programmspeicher 209 ist ein nicht-transitorisches computerlesbares Medium, das mit einer DSD integriert ist, und mit einer darauf gespeicherten Firmware, die, wenn sie von einer Steuerung der DSD ausgeführt wird, die Steuerung veranlasst, die Schritte des Verfahrens 800 durchzuführen.
  • Insbesondere weist das Verfahren das Speichern 801 mehrerer Dateisystemdatenobjekte unter Verwendung von Blockadressierung auf. Die mehreren Dateisystemdatenobjekte sind durch jeweilige Bereiche von Blöcken adressierbar, wie in 3 gezeigt. Die Steuerung 206 verwendet 802 einen von verschiedenen kryptografischen Schlüsseln durch Steuern der Hardware-Schaltung 210, die mit der DSD integriert ist, um Daten zu verschlüsseln, die auf dem Speicherungsmedium gespeichert werden sollen, und Daten zu entschlüsseln, die auf dem Speicherungsmedium gespeichert sind. Der eine der verschiedenen kryptografischen Schlüssel wird für einen jeweiligen der Bereiche von Blöcken verwendet, die ein jeweiliges der mehreren Dateisystemdatenobjekte adressieren.
  • Datenspeicherungsvorrichtung
  • 9 veranschaulicht eine DSD 900 gemäß einer Ausführungsform, die Mittel 901 zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung aufweist. Die mehreren Dateisystemdatenobjekte sind durch jeweilige Bereiche von Blöcken adressierbar, wie in 3 gezeigt. Das Mittel 901 zum Speichern kann ein rotierendes Medium (wie eine magnetische Festplatte), ein Festkörperspeichermedium (wie in einem Festkörperlaufwerk (SSD)) oder ein anderes geeignetes Speicherungsmedium aufweisen. Die DSD 900 weist weiterhin Mittel 902 auf zum Verwenden eines von unterschiedlichen kryptografischen Schlüsseln zum Verschlüsseln von Daten, die auf dem Mittel 901 zum Speichern gespeichert werden sollen, und zum Entschlüsseln von Daten, die auf dem Mittel 901 zum Speichern gespeichert sind, durch Hardwareschaltungen 210, die mit der DSD 900 integriert sind. Die verschiedenen kryptografischen Schlüssel werden für jeweilige Bereiche von Blöcken verwendet, die eines der mehreren Dateisystemdatenobjekte adressieren. Das Mittel 902 zum Verwenden der verschiedenen Schlüssel kann eine Datenspeichervorrichtungssteuerung sein, die einen Mikroprozessor einschließt, der mit einer Hardware-Schaltung, die einen Verschlüsselungs- und Entschlüsselungsalgorithmus in Hardware implementiert, integriert oder mit dieser verbunden ist.
  • Für Fachleute ist erkennbar, dass zahlreiche Variationen und/oder Modifikationen an den vorstehend beschriebenen Ausführungsformen vorgenommen werden können, ohne vom weitgefassten allgemeinen Schutzumfang der vorliegenden Offenbarung abzuweichen. Die vorliegenden Ausführungsformen sind daher in jeder Hinsicht nur als veranschaulichend und nicht als einschränkend zu betrachten.
  • 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/706780 [0061]

Claims (20)

  1. Datenspeicherungsvorrichtung, aufweisend: ein nichtflüchtiges Speicherungsmedium zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und eine Vorrichtungssteuerung, die in die Datenspeicherungsvorrichtung integriert ist und eine Hardware-Schaltung aufweist, die eingerichtet ist zum: Verschlüsseln von Daten, die auf dem Speicherungsmedium gespeichert werden sollen, basierend auf verschiedenen kryptografischen Schlüsseln, und Verwenden jedes Schlüssels der verschiedenen kryptografischen Schlüssel für einen der Bereiche von Blöcken, die ein jeweiliges Dateisystemdatenobjekt adressieren.
  2. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung für ein entschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem; Identifizieren eines der Bereiche von Blöcken, in denen das Dateisystemdatenobjekt gespeichert ist; Erhalten eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem einen der Bereiche von Blöcken; Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das auf dem Speicherungsmedium gespeichert ist, unter Verwendung des erhaltenen kryptografischen Schlüssels zu entschlüsseln; und Senden des entschlüsselten Dateisystemdatenobjekts an das Host-Rechnersystem.
  3. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Steuern der Hardware-Schaltung, um Daten, die auf dem Speicherungsmedium gespeichert sind, zu entschlüsseln, und Empfangen und Ausführen von Befehlen von einem Befehlssatz, und wobei der Befehlssatz einen Befehl zum Deaktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist, um zu bewirken, dass die Vorrichtungssteuerung eines der mehreren Dateisystemdatenobjekte in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, an das Host-Rechnersystem sendet.
  4. Datenspeicherungsvorrichtung nach Anspruch 3, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung, nach dem Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu deaktivieren, für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem, wobei die Anforderung eine Angabe eines Bereichs von Blöcken aufweist; und Senden des einen der mehreren Dateisystemdatenobjekte, die im Bereich von Blöcken in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, gespeichert sind.
  5. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem; Identifizieren eines der Bereiche von Blöcken, in denen das angeforderte verschlüsselte Dateisystemdatenobjekt auf dem Speicherungsmedium gespeichert ist; und Senden des Dateisystemdatenobjekts, das im identifizierten Bereich von Blöcken gespeichert ist, in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, auf das Host-Rechnersystem.
  6. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Dateisystemdatenobjekte eines oder mehrere sind von: einer Datei; einer Gruppe von Dateien; und einem Verzeichnis.
  7. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Angabe eines Bereichs von Blöcken von einem Host-Dateisystem, das eine Dateistruktur mit Zuordnungen zu den Bereichen von Blöcken pflegt; Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem angegebenen Bereich von Blöcken; und Steuern der Hardware-Schaltung, um Daten unter Verwendung des ausgewählten kryptografischen Schlüssels zu verschlüsseln.
  8. Datenspeicherungsvorrichtung nach Anspruch 1, weiterhin aufweisend eine Datenspeicherung, um eine Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken zu speichern, wobei: die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken mit einem ersten Schlüssel der verschiedenen kryptografischen Schlüssel verschlüsselt ist, und die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung für die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken, Senden der Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken an ein Host-Rechnersystem, um es dem Host-Rechnersystem zu ermöglichen, einen Bereich von Blöcken basierend auf der gespeicherten Zuordnung zu bestimmen; Empfangen eines zweiten Schlüssels der verschiedenen kryptografischen Schlüssel vom Host-Rechnersystem; Empfangen einer Angabe eines Bereichs von Blöcken von einem Host-Dateisystem, das eine Dateistruktur mit Zuordnungen zu den Bereichen von Blöcken pflegt; Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im Bereich von Blöcken gespeichert ist, unter Verwendung des zweiten Schlüssels der verschiedenen kryptografischen Schlüssel zu entschlüsseln; und Senden des entschlüsselten Dateisystemdatenobjekts an das Host-Rechnersystem.
  9. Datenspeicherungsvorrichtung nach Anspruch 8, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen des ersten Schlüssels der verschiedenen kryptografischen Schlüssel; Steuern der Hardware-Schaltung, um die Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken unter Verwendung des ersten Schlüssels der verschiedenen kryptografischen Schlüssel zu entschlüsseln; und Senden der Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken in entschlüsselter Form an das Host-Rechnersystem.
  10. Datenspeicherungsvorrichtung nach Anspruch 1, weiterhin aufweisend eine Datenspeicherung, um eine Zuordnung zwischen den Dateisystemdatenobjekten und den jeweiligen Bereichen von Blöcken zu speichern, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung für ein Dateisystemdatenobjekt; Bestimmen eines Bereichs von Blöcken basierend auf der gespeicherten Zuordnung; Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem bestimmten Bereich von Blöcken; Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im bestimmten Bereich von Blöcken gespeichert ist, unter Verwendung des ausgewählten kryptografischen Schlüssels zu entschlüsseln; und Senden des entschlüsselten Dateisystemdatenobjekts.
  11. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Anforderung für ein Dateisystemdatenobjekt; Auswählen eines Schlüssels der verschiedenen kryptografischen Schlüssel basierend auf dem Dateisystemdatenobjekt der Anforderung; Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt, das im bestimmten Bereich von Blöcken gespeichert ist, unter Verwendung des ausgewählten kryptografischen Schlüssels zu entschlüsseln; und Senden des entschlüsselten Dateisystemdatenobjekts.
  12. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist, um einen oder mehrere Schlüssel der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem zu empfangen und in der Datenspeicherungsvorrichtung zu speichern.
  13. Datenspeicherungsvorrichtung nach Anspruch 12, wobei die Datenspeicherungsvorrichtung einen flüchtigen Speicher zum Speichern des einen oder der mehreren Schlüssel der verschiedenen kryptografischen Schlüssel aufweist.
  14. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen einer Angabe eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem; und Steuern der Hardware-Schaltung, um Daten unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel zu verschlüsseln, bis eine Angabe eines anderen der verschiedenen kryptografischen Schlüssel empfangen wird.
  15. Datenspeicherungsvorrichtung nach Anspruch 1, wobei die Vorrichtungssteuerung weiterhin eingerichtet ist zum: Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Aktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist; Empfangen eines verschlüsselten Dateisystemdatenobjekts, das außerhalb der Datenspeicherungsvorrichtung verschlüsselt wurde; Speichern des verschlüsselten Dateisystemdatenobjekts auf dem Speicherungsmedium in verschlüsselter Form; Empfangen eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem; Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu aktivieren; Steuern der Hardware-Schaltung, um das Dateisystemdatenobjekt auf dem Speicherungsmedium unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel, die vom Host-Rechnersystem empfangen werden, zu entschlüsseln; und Senden des Dateisystemdatenobjekts in entschlüsselter Form an das Host-Rechnersystem.
  16. Verfahren zum Speichern von Daten in einer Datenspeicherungsvorrichtung, wobei das Verfahren aufweist: Speichern mehrerer Dateisystemdatenobjekte auf einem Speicherungsmedium unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und Verwenden eines Schlüssels von verschiedenen kryptographischen Schlüsseln durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, um Daten zu verschlüsseln, die auf dem Speicherungsmedium gespeichert werden sollen, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die eines der mehreren Dateisystemdatenobjekte adressieren, verwendet wird.
  17. Verfahren nach Anspruch 16, weiterhin aufweisend: Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Aktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist; Empfangen eines verschlüsselten Dateisystemdatenobjekts, das außerhalb der Datenspeicherungsvorrichtung verschlüsselt wurde; Speichern des verschlüsselten Dateisystemdatenobjekts auf dem Speicherungsmedium in verschlüsselter Form; Empfangen eines Schlüssels der verschiedenen kryptografischen Schlüssel von einem Host-Rechnersystem; Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu aktivieren; Entschlüsseln des Dateisystemdatenobjekts auf dem Speicherungsmedium durch die Hardware-Schaltung der Vorrichtungssteuerung, die mit der Datenspeicherungsvorrichtung integriert ist, unter Verwendung des einen Schlüssels der verschiedenen kryptografischen Schlüssel, die vom Host-Rechnersystem empfangen werden; und Senden des Dateisystemdatenobjekts in entschlüsselter Form an das Host-Rechnersystem.
  18. Verfahren nach Anspruch 17, weiterhin aufweisend: Empfangen und Ausführen von Befehlen von einem Befehlssatz, wobei der Befehlssatz einen Befehl zum Deaktivieren der Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, aufweist; Empfangen einer Anforderung, nach dem Empfangen des Befehls, um die Entschlüsselung der Daten, die auf dem Speicherungsmedium gespeichert sind, zu deaktivieren, für ein verschlüsseltes Dateisystemdatenobjekt von einem Host-Rechnersystem, wobei die Anforderung eine Angabe eines Bereichs von Blöcken aufweist; und Senden des einen der mehreren Dateisystemdatenobjekte, die im Bereich von Blöcken in verschlüsselter Form, wie auf dem Speicherungsmedium gespeichert, gespeichert sind.
  19. Nicht-transitorisches computerlesbares Speicherungsmedium, das in eine Datenspeicherungsvorrichtung integriert ist, und mit einer darauf gespeicherten Firmware, die, wenn sie von einer Steuerung der Datenspeicherungsvorrichtung ausgeführt wird, die Steuerung veranlasst, die folgenden Schritte durchzuführen: Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und Verwenden, durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, eines Schlüssels von verschiedenen kryptographischen Schlüsseln, um Daten, die auf dem Speicherungsmedium gespeichert werden sollen, zu verschlüsseln, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die ein jeweiliges Dateisystemdatenobjekt adressieren, verwendet wird.
  20. Datenspeicherungsvorrichtung, aufweisend: Mittel zum Speichern mehrerer Dateisystemdatenobjekte unter Verwendung einer Blockadressierung, wobei die mehreren Dateisystemdatenobjekte durch jeweilige Bereiche von Blöcken adressierbar sind; und Mittel zum Verwenden eines Schlüssels von verschiedenen kryptographischen Schlüsseln durch eine Hardware-Schaltung, die mit der Datenspeicherungsvorrichtung integriert ist, um Daten, die auf dem Mittel gespeichert werden sollen, zu verschlüsseln, wobei der eine Schlüssel der verschiedenen kryptografischen Schlüssel für einen jeweiligen der Bereiche von Blöcken, die eines der mehreren Dateisystemdatenobjekte adressieren, verwendet wird.
DE112021000149.3T 2020-10-19 2021-06-21 Verschlüsselung einer datenspeicherungsvorrichtung Pending DE112021000149T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063093721P 2020-10-19 2020-10-19
US63/093,721 2020-10-19
US17/218,179 2021-03-31
US17/218,179 US20220123932A1 (en) 2020-10-19 2021-03-31 Data storage device encryption
PCT/US2021/038167 WO2022086602A1 (en) 2020-10-19 2021-06-21 Data storage device encryption

Publications (1)

Publication Number Publication Date
DE112021000149T5 true DE112021000149T5 (de) 2022-07-28

Family

ID=81185287

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000149.3T Pending DE112021000149T5 (de) 2020-10-19 2021-06-21 Verschlüsselung einer datenspeicherungsvorrichtung

Country Status (4)

Country Link
US (1) US20220123932A1 (de)
CN (1) CN114747177A (de)
DE (1) DE112021000149T5 (de)
WO (1) WO2022086602A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11641398B2 (en) * 2021-07-14 2023-05-02 Secturion Systems, Inc. Secure data transfer over wireless networks using data storage encryptors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032689B2 (en) * 2007-12-18 2011-10-04 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for data storage device virtualization
US20090172393A1 (en) * 2007-12-31 2009-07-02 Haluk Kent Tanik Method And System For Transferring Data And Instructions Through A Host File System
GB2460275B (en) * 2008-05-23 2012-12-19 Exacttrak Ltd A Communications and Security Device
US9665501B1 (en) * 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
US20150242640A1 (en) * 2014-02-24 2015-08-27 Western Digital Technologies, Inc. Encryption key selection
US20190042781A1 (en) * 2017-08-04 2019-02-07 Bitdefender IPR Management Ltd. Secure Storage Device
US10387066B1 (en) * 2018-04-18 2019-08-20 EMC IP Holding Company LLC Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
CN114747177A (zh) 2022-07-12
WO2022086602A1 (en) 2022-04-28
US20220123932A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112008003855B4 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
DE102013203126B4 (de) System, Verfahren und Programmprodukt zum transparenten Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
DE102013105248A1 (de) Vorrichtung zum Erzeugen eines Sicherheitsschlüssels unter Verwendung einer Vorrichtungs-ID und von Benutzer-Authentifizierungsinformation
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
DE102012110692A1 (de) Datenspeichervorrichtung, die eine unterteilte Datei in verschiedenen Speichermedien speichert, sowie Datenverwaltungsverfahren
DE102013108394A1 (de) Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE112011105678T5 (de) Entsperren eines Speichergeräts
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE102013111339A1 (de) Sicherheitsverwaltungseinheit, Hostcontrollerschnittstelle mit derselben, Verfahren zum Betreiben einer Hostcontrollerschnittstelle und Vorrichtungen mit einer Hostcontrollerschnittstelle
DE112020005459T5 (de) Delegation eines kryptografischen schlüssels an ein speichersubsystem
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE202014011089U1 (de) System zum Kopieren von Dateien zwischen verschlüsselten und unverschlüsselten Datenspeichereinrichtungen
DE112020000238T5 (de) Wiederherstellungsschlüssel zum entriegeln einer datenspeicherungsvorrichtung
DE112021005968T5 (de) Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE112020000236T5 (de) Mehrrollenentsperrung einer datenspeicherungsvorrichtung
DE112020000180T5 (de) Mehrvorrichtungsentsperrung einer datenspeichervorrichtung
DE112020000181T5 (de) Selbstformatierende datenspeichervorrichtung
DE102010038179B4 (de) Individuelle Aktualisierung von Computerprogrammen
DE112006004173T5 (de) Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MEWBURN ELLIS LLP, DE

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE