DE112021005968T5 - Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion - Google Patents

Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion Download PDF

Info

Publication number
DE112021005968T5
DE112021005968T5 DE112021005968.8T DE112021005968T DE112021005968T5 DE 112021005968 T5 DE112021005968 T5 DE 112021005968T5 DE 112021005968 T DE112021005968 T DE 112021005968T DE 112021005968 T5 DE112021005968 T5 DE 112021005968T5
Authority
DE
Germany
Prior art keywords
key
data
unit
external
kint
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
DE112021005968.8T
Other languages
English (en)
Inventor
Glen Alan Jaquette
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021005968T5 publication Critical patent/DE112021005968T5/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

Mittels einer Einheit realisierte Methodik zum Ermöglichen und/oder Durchführen von Krypto-Löschen über eine interne Aktion und/oder eine externe Aktion in einem „Key per IO“-fähigen System. Bei verschiedenen Ansätzen wird Krypto-Löschung von Daten, die in einem ,Key per IO"-Schema gespeichert sind, indem ein interner Schlüssel realisiert wird, der mit dem externen Schlüssel kombiniert wird, um einen Medienverschlüsselungsschlüssel zu erzeugen, der wiederum zum Verschlüsseln/Entschlüsseln von Daten verwendet wird. Durch Einschränken des Zugriffs auf den internen Schlüssel, Zerstörung des internen Schlüssels und aller Medienverschlüsselungsschlüssel, die unter Verwendung des internen Schlüssels erzeugt wurden, führt dazu, dass Daten krypto-gelöscht und somit nicht wieder herstellbar werden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft Krypto-Löschung (crypto-erasure), und konkreter betrifft diese Erfindung Techniken und Systeme zum Ermöglichen von Krypto-Löschung über eine interne Aktion in ,Key per IO"-fähigen Einheiten.
  • Der Begriff „Krypto-Löschen“ bezieht sich allgemein auf eine bestimmte Weise, in der der Zugriff auf den Verschlüsselungsschlüssel deaktiviert wird, der zum Entschlüsseln von Daten benötigt wird. Dies kann vorgenommen werden durch z.B. Löschen aller Kopien des Verschlüsselungsschlüssels, Entfernen eines Abschnitts des Verschlüsselungsschlüssels, Deaktivieren des Zugriffs auf einen zugehörigen Schlüssel, der zum Erzeugen das Verschlüsselungsschlüssels oder zum Aufheben von dessen Umhüllung (wrapping) erforderlich ist, usw. Durch dauerhaftes Deaktivieren des Verschlüsselungsschlüssels können die mit diesem Verschlüsselungsschlüssel verschlüsselten Daten nicht entschlüsselt werden; die verschlüsselten Daten werden wirksam in einen nicht entschlüsselungsfähigen Zustand versetzt.
  • Es wurde festgestellt, dass bei heutigen Datenzentren ein Hauptproblem darin besteht, dass sie nicht in der Lage sind, bei allen ausgefallenen oder außer Betrieb genommenen verschlüsselungsfähigen Datenträgern (Encryption-Capable Drives, ECDs) ein definitives Krypto-Löschen durchzuführen. ECDs sind unabhängig davon, ob es sich um einen selbstverschlüsselnden Datenträger (self-encrypting drive, SED) handelt, und unabhängig von der Speicherungstechnologie verschlüsselungsfähig, z.B. SSDs, HDDs, hybride Datenträger, die sowohl aus Halbleiter- und Festplattentechnologie bestehen, oder Datenträger mit alternativen Technologien. Zum Beispiel ist es möglich, dass ein ECD in einer Weise ausfällt, dass er nicht mehr Daten mit dem System austauschen kann, in dem er sich befindet. In einem derartigen Ausfallzustand kann der ECD keinen Befehl zum Krypto-Löschen empfangen oder auf einen derartigen Befehl mit einem Status reagieren, der anzeigt, dass der Befehl zum Krypto-Löschen erfolgreich ausgeführt wurde. Bei einem Datenzentrum, das nicht zu dem Risiko bereit ist, dass Daten auf eine forensische Weise aus dem Halbleiterdatenträger (SSD-Speicher, SSD = solid state drive) oder dem Festplattenlaufwerk (HDD-Speicher, HDD = hard disk drive) des ausgefallenen ECD wiederhergestellt werden müssen, die nicht endgültig krypto-gelöscht werden konnten, ist dies ein Problem. Heutzutage verlassen sich diese Datenzentren bei dem Bemühen, eine forensische Wiederherstellung zu vermeiden, normalerweise auf ein physisches Zerstören dieser Datenträger. Guten Gewissens kann der Benutzer diese Datenträger nicht zum Hersteller zurückbringen oder sie erneut verwenden, ohne zu befürchten, dass Daten offenbart werden.
  • Zu beachten ist, dass der zum Verschlüsseln und Entschlüsseln von Daten auf einem ECD verwendete Medienverschlüsselungsschlüssel (Media Encryption Key, MEK) auf modernen SED-Datenträgern nicht im Klartext gespeichert ist. Der MEK ist stattdessen kryptografisch umhüllt, z.B. selbstverschlüsselt oder anderweitig verschleiert. Es gibt Überlegungen, dass dies auf sehr lange Sicht nicht stark genug sein könnte, dass die Schlüsselumhüllungstechnik in absehbarer Zukunft (z.B. über Quantendatenverarbeitung) durchbrochen werden könnte.
  • Unabhängig von der Tragweite des Problems oder davon, ob stichhaltige Bedenken vorliegen, dass der umhüllte Schlüssel entschlüsselt oder entziffert werden könnte, kann es sehr wohl sein, dass es Entitäten gibt, die sich darauf nicht verlassen oder vollständig darauf vertrauen wollen, dass der Datenträger die nichtflüchtige Speicherung und die Krypto-Löschung des MEK abwickelt. Ein derartiger Benutzer könnte es sehr bevorzugen, anstelle des Speicherns des MEK auf dem ECD dem Datenträger den MEK nach jedem Einschalten bereitzustellen, um sicherzustellen, dass der MEK zerstört und der gesamte damit erstellte Chiffriertext extern krypto-gelöscht werden kann. Dies verlagert die Kontrolle über den MEK zu der externen Entität außerhalb des ECD, und die externe Entität muss nicht sicherstellen, dass etwas Außergewöhnliches für den Fall getan werden muss, dass ein ECD in einer Weise ausfällt, dass das Krypto-Löschen nicht durch den Datenträger durchgeführt werden kann. Da der MEK lediglich nichtflüchtig außerhalb des Datenträgers gespeichert ist, besteht für den Benutzer die Möglichkeit, ihn unabhängig davon zu löschen, wie der ECD ausgefallen ist. Ein Einbruch in den Schlüsselspeicher des Benutzers, in dem der MEK aufbewahrt wird, oder ein Lauschangriff auf die Datenübertragung (und ein Durchbrechen beliebiger Sicherheit um die Datenübertragung herum) dieses MEK zu dem ECD macht den MEK gegenüber einem Abfangen oder Abrufen anfällig.
  • Eine Möglichkeit zum Aktivieren der Fähigkeit zum externen Krypto-Löschen eines ECD besteht in der Verwendung des direkten Schlüsselbereitstellungsmodells, das bei LTO-4 (die erste Generation verschlüsselungsfähiger LTO-Bandlaufwerke) verwendet wird. Zu beachten ist, dass die Art, in der Schlüssel außerhalb der verschlüsselungsfähigen Einheit behandelt werden, bestimmt, ob sie krypto-löschbar sind oder nicht. Wenn die Schlüsselverwaltung einer Entität ordnungsgemäß außerhalb des ECD erfolgt, sollte es allerdings möglich sein, alle Kopien des MEK per Krypto-Löschen endgültig zu entfernen, die in Zusammenhang mit einem ausgefallenen ECD-Datenträger stehen. Jedoch werden Kopien des Schlüssels normalerweise an verteilten Orten erstellt und gespeichert, um zu gewährleisten, dass der Schlüssel zum Entschlüsseln von Daten verfügbar bleibt, da, wenn keine Kopie verbleibt, die mit diesem Schlüssel verschlüsselten Daten, d.h. der Chiffriertext, nicht entschlüsselt werden können und somit wirksam unzugänglich gemacht oder „krypto-gelöscht“ werden. Somit wird das Sichern der Schlüsselverwaltung erheblich schwieriger, da aus Gründen der Robustheit immer mehr Kopien des Schlüssels außerhalb des ECD erstellt werden.
  • Im Anschluss an die Zeit von LTO-4 hat sich die Technologie selbstverschlüsselnder Datenträger (SED-Technologie) zum Standard im Umfeld der Konformität mit den Spezifikationen der Trusted Computing Group (TCG) wie z.B. ihren TCG Storage's Security Subsystem Classes (SSC) einschließlich Enterprise und (in jüngster Zeit) Opal entwickelt. Beide dieser SSCs unterstützen Krypto-Löschfähigkeit innerhalb der SED-Datenträger (bei denen es sich um eine Form von ECD handelt) auf mehrere unterschiedliche Arten. Zum Beispiel gibt es mindestens vier unterschiedliche Arten, im Falle einer Opal-SSC der TCG ein internes Krypto-Löschen aufzurufen. Aber keine dieser beiden TCG-SSCc unterstützt Krypto-Löschen durch eine externe Entität unabhängig von dem SED selbst, d.h., wenn der SED ein durch die SSC angegebenes Verfahren (Befehl) nicht abarbeiten kann. Der MEK ist stets in dem SED gespeichert, normalerweise in kryptografisch umhüllter Funktion. Wenn jemand in einer bestimmten Weise herausfinden kann, wie der umhüllte MEK aufgebrochen werden kann, kann diese Person den gesamten zugehörigen Chiffriertext wiederherstellen, der auf einem ausgefallenen SED gespeichert ist, der entweder mit der Enterprise- oder der Opal-SSC kompatibel ist.
  • Eine gegenwärtig in der Entwicklung befindliche SSC wird als „Key per IO“ bezeichnet. Das grundlegende Konzept von SSC unterscheidet sich sowohl von Opal- als auch von Enterprise-SSCs. Es wird damit gerechnet, dass „Key per IO" stattdessen eine externe Schlüsselverwaltung erfordert. Sie ermöglicht die Verwendung einer großen Anzahl von MEKs innerhalb eines einzigen Namensraums, z.B. eines NVMe-Namensraums (NVMe = Non-Volatile Memory Express), der einem Bereich logischer Blockadressen (LBA-Bereich) eines Datenträgers entspricht (oder einer Teilmenge dieses Datenträgers wie z.B. eine Datenbank). Alle den ECDs bereitgestellten MEKs, die mit der vorgeschlagenen „Key per IO"-SSC kompatibel sind, würden nur auf diesem ECD in flüchtiger Form gespeichert werden und daher normalerweise von diesem ECD verschwinden, sobald die Einheit ausgeschaltet oder zurückgesetzt wird. Ein Problem bei dem „Key per IO"-Schema besteht darin, dass es kein internes Krypto-Löschen ermöglicht. Wenn einer der extern verwalteten MEKs z.B. durch einen Angreifer erhalten wird, wird dadurch der Chiffriertext (verschlüsselte Daten) zugänglich, der mit diesem MEK verschlüsselt ist.
  • Bei ECDs, die auf herkömmlichen Speichersystemen beruhen, besteht die erste Maßnahme, wenn ein ECD als unwesentlich angesehen wird, z.B. defekt ist oder wahrscheinlich demnächst ausfällt, normalerweise darin, den Prozess zum Herausnehmen dieses weniger wichtigen ECD aus dem Speichersystem zu starten. Vor dem Zurücksenden an seinen Hersteller würde normalerweise ein Versuch unternommen werden, eine bestimmte Art von sicherem Löschen aller Daten auf dem ECD durchzuführen. Eine Möglichkeit hierfür besteht darin, den gesamten Chiffriertext zu löschen, vorzugsweise über eine überprüfte Löschung aller Daten auf diesem ECD. Bei einem ECD in Form eines Halbleiterdatenträgers (SSD) wird dies oftmals durchgeführt, indem versucht wird, alle Seiten in den Flash-Speicherchips in dem Flash-Datenträger seitenweise zu löschen. Dies kann erfolgreich sein, aber auch nicht. Zum Beispiel ist es möglich, dass eine Seite nicht vollständig gelöscht wird, wodurch einige der Bits auf der Seite ungelöscht hinterlassen werden würden, z.B. einige übrig gebliebene Bits des Chiffriertexts. Im ungünstigsten Fall (wenn z.B. die Löschleitung der Seite unterbrochen ist), wird vollständig lesbarer Chiffriertext hinterlassen. Zum Schutz vor diesem ungünstigsten Fall fordern Standards wie etwa National Institute of Standards and Technology (NIST) SP 800-88r1 on Media Sanitization, dass Datenträger jede Seitenlöschung überprüfen, indem die Seiten gelesen werden, die gelöscht wurden, um sicherzustellen, dass alle Bits (oder mindestens ein ausreichendes Muster dieser Bits) tatsächlich bereinigt wurden (abzüglich einer akzeptablen Hintergrundfehlerrate). Es ist allgemein bekannt, dass leider Versuche zum Durchführen einer Seitenlöschung auf allen Seiten möglicherweise nicht erfolgreich sind. Im Fall von SP 800-88r1 muss der Datenträger, wenn nicht alle Daten (z.B. Chiffriertext) sicher gelöscht werden können, physisch zerstört werden, z.B. zerkleinert und verbrannt. Derartige Datenträger können weder wiederverwendet werden, noch sollten sie an den Hersteller zurückgeschickt werden.
  • Eine der Änderungen bei der Version r1 von SP 800-88 im Vergleich zur vorhergehenden Version besteht darin, dass bei bestimmten Arten von Daten, die auf ECD-Datenträgern des Typs SSD gespeichert sind, das NIST festgelegt hat, dass Krypto-Löschen eine akzeptable Möglichkeit zum sicheren Löschen oder Bereinigen der SSDs ist (d.h., es wäre dann ausreichend, diese SSDs zur Wiederverwendung oder zur Rücksendung an den Hersteller zuzulassen). Dementsprechend besteht bei bestimmten Arten von Speichermedien wie z.B. ECD des Typs SSD eine Alternative zur Löschung des gesamten Chiffriertexts darin, ein Krypto-Löschen vorzunehmen. Das Problem besteht darin, dass wie gegenwärtig vorgeschlagen kein ,Key per IO"-fähiger Datenträger zum unabhängigen Durchführen eines Krypto-Löschens in der Lage wäre und somit die einzige Option, die das Speichersystem realistischerweise mit dem standardmäßigen ,Key per IO" hat, darin besteht, die Daten transparent (für den Host) auf einem unwesentlichen Datenträger zu löschen, der aus einem System entfernt wurde, indem versucht wird, den gesamten darauf befindlichen Chiffriertext zu löschen, was fehlschlagen kann, wie im vorhergehenden Absatz erörtert.
  • KURZDARSTELLUNG
  • Mit dem nun möglichen Krypto-Löschen kann Krypto-Löschen anstelle einer Löschung des gesamten Chiffriertexts durchgeführt werden. Alternativ kann das Krypto-Löschen zusätzlich zur Löschung des gesamten Chiffriertexts vorgenommen werden. In einem derartigen Fall können diese beiden Operationen in einer beliebigen Reihenfolge durchgeführt werden.
  • Ein mittels einer Einheit realisiertes Verfahren umfasst gemäß einem Aspekt der vorliegenden Erfindung bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, ein Empfangen eines oder mehrerer eindeutiger externer Schlüssel, wobei der eine oder die mehreren externen Schlüssel der Einheit aus einer oder mehreren externen Quellen für eine ,Key per IO"-Operation bereitgestellt werden. Auf einen innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen. Ein eindeutiger MEK wird für jeden von mindestens einigen des einen oder der mehreren externen Schlüssel unter Verwendung des internen Schlüssels und des zugehörigen des einen oder der mehreren externen Schlüssel erzeugt, wobei jeder MEK dem externen Schlüssel zugehörig ist, zu dessen Erzeugung er verwendet wird. Als Reaktion auf ein Empfangen einer Anforderung zum Durchführen einer Datenoperation bei Daten, die einem des einen oder der mehreren externen Schlüssel zugehörig sind, wird der diesem externen Schlüssel zugehörige MEK zum Verschlüsseln und/oder Entschlüsseln der Daten verwendet.
  • Das vorstehende Verfahren ermöglicht eine interne Krypto-Löschung von Daten, die in einem ,Key per IO"-Schema gespeichert sind, indem der interne Schlüssel realisiert wird, der mit dem externen Schlüssel kombiniert wird, um den MEK zu erzeugen, der wiederum zum Verschlüsseln/Entschlüsseln der Daten des Nutzers verwendet wird. Da kein Nutzer und idealerweise niemand und nichts außerhalb des ECD Zugriff auf den internen Schlüssel hat, führt eine Zerstörung des internen Schlüssels dazu, dass die Daten krypto-gelöscht und somit nicht wiederherstellbar werden.
  • Bei bevorzugten Ansätzen ist die Einheit so konfiguriert, dass sie eine Übertragung des internen Schlüssels nach außerhalb der Einheit unterbindet. Da der interne Schlüssel die Einheit nicht verlassen kann, führt dementsprechend eine Zerstörung des innerhalb der Einheit gespeicherten Schlüssels und der diesem zugeordneten MEKs dazu, dass alle unter Verwendung der MEKs geschriebenen Daten wirksam krypto-gelöscht werden, und stellt sicher, dass die MEKs nicht unter Verwendung des internen Schlüssels regeneriert werden können.
  • Bei einigen Ansätzen sind mehrere der externen Schlüssel einzeln eindeutigen Daten zugehörig, die an unterschiedlichen Orten in einem gleichen Bereich von logischen Blockadressen gespeichert sind. Derartige Ansätze ermöglichen vorteilhafterweise Nutzern, einen gleichen Namensraum auf einem ECD gemeinsam zu nutzen. Da der interne Schlüssel mit einem für einen ersten Nutzer spezifischen externen Schlüssel kombiniert wird, um den MEK zu erstellen, der anschließend zum Schreiben und Lesen von Daten für diesen Nutzer verwendet wird, kann kein anderer Nutzer Daten des ersten Nutzers ohne den externen Schlüssel des ersten Nutzers entschlüsseln, selbst wenn mehrere Nutzer einen Adressraum gemeinsam nutzen.
  • Ein durch eine Einheit realisiertes Verfahren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, ein Empfangen einer Anforderung zum Schreiben von ersten Daten auf das Speichermedium in verschlüsselter Form unter Verwendung eines ersten externen Schlüssels, der den ersten Daten zugehörig ist. Auf einen innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen. Ein erster MEK wird unter Verwendung des internen Schlüssels und des ersten externen Schlüssels erzeugt. Die ersten Daten werden unter Verwendung des ersten MEK verschlüsselt. Die verschlüsselten ersten Daten werden in einem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben. Eine zweite Anforderung wird empfangen, wobei die zweite Anforderung darin besteht, Daten in verschlüsselter Form auf das Speichermedium unter Verwendung eines zweiten externen Schlüssels zu schreiben, der den zweiten Daten zugehörig ist. Auf den innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen, und ein zweiter MEK wird unter Verwendung des internen Schlüssels und des zweiten externen Schlüssels erzeugt. Die zweiten Daten werden unter Verwendung des zweiten MEK verschlüsselt. Die verschlüsselten zweiten Daten werden in dem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben.
  • Das vorstehende Verfahren ermöglicht eine interne Krypto-Löschung der in einem ,Key per IO"-Schema gespeicherten Daten. Darüber hinaus ermöglicht dieser Aspekt, dass der ,Key per IO" von zwei oder mehr Nutzern beibehalten wird, die in der Lage sind, einen gleichen Namensraum auf einem ECD gemeinsam zu nutzen, ohne zuzulassen, dass ein Nutzer auf Daten eines weiteren Nutzers innerhalb dieses gemeinsam genutzten Namensraums zugreift.
  • Ein mittels einer Einheit realisiertes Verfahren zum Krypto-Löschen gemäß noch einem weiteren Aspekt der vorliegenden Erfindung umfasst bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium unter Verwendung einer ,Key per IO"-Operation durchführt, ein Empfangen einer Anforderung, um eine Krypto-Löschung aller Daten in mindestens einem Bereich von logischen Blockadressen des Speichermediums zu bewirken. Einzelne Abschnitte der Daten in dem mindestens einen Bereich von logischen Blockadressen sind jeweils einem eindeutigen externen Schlüssel zugehörig, wobei die einzelnen Abschnitte der Daten jeweils unter Verwendung eines eindeutigen MEK verschlüsselt sind, der unter Verwendung eines internen Schlüssels und des eindeutigen externen Schlüssels erstellt wurde, der dem Abschnitt der Daten zugehörig ist. Internes Krypto-Löschen dieses Bereichs von logischen Blöcken kann erreicht werden, indem der gemeinsame interne Schlüssel, der diesem Bereich von logischen Blöcken zugehörig ist, und alle Medienverschlüsselungsschlüssel zerstört werden, die dem internen Schlüssel zugehörig sind.
  • Das vorstehende Verfahren ermöglicht eine interne Krypto-Löschung der Daten, die in verschlüsselter Form in einem ,Key per IO"-Schema gespeichert sind.
  • Bei bevorzugten Ansätzen ist die Einheit so konfiguriert, dass sie eine Übertragung des internen Schlüssels nach außerhalb der Einheit unterbindet. Da der interne Schlüssel die Einheit nicht verlassen kann, führt dementsprechend eine Zerstörung des innerhalb der Einheit gespeicherten Schlüssels und aller daraus erzeugte MEKs dazu, dass alle unter Verwendung dieser MEKs geschriebenen Daten wirksam krypto-gelöscht werden, und stellt sicher, dass die MEKs nicht unter Verwendung dieses, nunmehr zerstörten, internen Schlüssels regeneriert werden können.
  • Bei einigen Ansätzen sind mehrere der externen Schlüssel einzeln eindeutigen Daten zugehörig, die an unterschiedlichen Orten in einem gleichen Bereich von logischen Blockadressen gespeichert sind. Derartige Ansätze ermöglichen vorteilhafterweise Nutzern, einen gleichen Namensraum auf einem ECD gemeinsam zu nutzen. Da der interne Schlüssel mit einem für einen Nutzer spezifischen externen Schlüssel kombiniert wird, um den MEK zu erstellen, der anschließend zum Schreiben und Lesen von Daten für diesen Nutzer verwendet wird, kann kein anderer Nutzer Daten des ersten Nutzers ohne den externen Schlüssel des ersten Nutzers entschlüsseln, selbst wenn Nutzer einen Adressraum gemeinsam nutzen.
  • Ein Computerprogrammprodukt zum Ermöglichen von Krypto-Löschen umfasst ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei die Programmanweisungen durch eine Einheit ausführbar sind, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, um zu bewirken, dass die Einheit eine beliebige hierin vorgestellte Methodik durchführt.
  • Systeme gemäß verschiedenen Aspekten der vorliegenden Erfindung umfassen eine Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt. Eine derartige Einheit enthält einen Prozessor und in den Prozessor integrierte Logik, die durch den Prozessor ausführbar ist, oder in den Prozessor und durch diesen ausführbare Logik, wobei die Logik so konfiguriert ist, dass sie bewirkt, dass die Einheit eine beliebige hierin vorgestellte Methodik durchführt.
  • Verschiedene hierin beschriebene Ansätze sind auf viele Arten von Speichermedien anwendbar, unter anderem auf nichtflüchtigen Speicher und Magnetaufzeichnungsband.
  • Andere Aspekte und Ansätze der vorliegenden Erfindung werden anhand der folgenden ausführlichen Beschreibung deutlich, die in Verbindung mit den Zeichnungen die Grundgedanken der Erfindung beispielhaft veranschaulicht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist eine Darstellung einer Netzwerkarchitektur gemäß einem Aspekt der vorliegenden Erfindung.
    • 2 ist eine Darstellung einer repräsentativen Hardwareumgebung gemäß einem Aspekt der vorliegenden Erfindung, die in Zusammenhang mit den Servern und/oder Clients von 1 stehen kann.
    • 3 ist eine Darstellung eines abgestuften Datenspeichersystems gemäß einem Aspekt der vorliegenden Erfindung.
    • 4 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 5 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 6 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 7 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 8 ist eine Tabelle mit einer Gegenüberstellung zwischen dem aktuellen Stand der Technik zum Außerbetriebsetzen und Sichern von ,Key per IO"-fähigen Speicherprodukten und Abläufen, die durch Aspekte der vorliegenden Erfindung ermöglicht werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung und ist nicht als Einschränkung der hierin beanspruchten erfinderischen Konzepte gedacht. Ferner können hierin beschriebene bestimmte Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Vertauschungen verwendet werden.
  • Sofern hierin nicht anderweitig ausdrücklich definiert, sind alle Begriffe im breitestmöglichen Sinne zu interpretieren, einschließlich der in der Beschreibung stillschweigend eingeschlossenen Bedeutungen sowie in einer Bedeutung, die für Fachleute verständlich und/oder in Wörterbüchern, Abhandlungen usw. festgelegt ist.
  • Anzumerken ist außerdem, dass die in der Beschreibung und den beigefügten Ansprüchen verwendeten Einzahlformen „ein/eine“ und „der/die/das“ auch die Pluralformen einschließen, sofern nicht anderweitig angegeben. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ bzw. „aufweisen/aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die Beschreibung hierin offenbart mehrere bevorzugte Ansätze von Systemen, Verfahren und Computerprogrammprodukten, um zu ermöglichen, dass lokal verschlüsselte Daten durch eine interne Aktion in ,Key per IO"-fähigen Einheiten krypto-gelöscht werden. Bei verschiedenen Ansätzen wird der extern bereitgestellte „Verschlüsselungs“-Schlüssel Kext nicht direkt verwendet, sondern stattdessen wird ein interner Schlüssel Kint mit dem Kext kombiniert. Die Kombination aus diesen beiden Schlüsseln wird als tatsächlicher Medienverschlüsselungsschlüssel (MEK) verwendet.
  • Bei einem allgemeinen Ansatz umfasst ein mittels einer Einheit realisiertes Verfahren bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, ein Empfangen eines oder mehrerer eindeutiger externer Schlüssel, wobei der eine oder die mehreren externen Schlüssel der Einheit aus einer oder mehreren externen Quellen für eine ,Key per IO"-Operation bereitgestellt werden. Auf einen innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen. Ein eindeutiger MEK wird für jeden von mindestens einigen des einen oder der mehreren externen Schlüssel unter Verwendung des internen Schlüssels und des zugehörigen des einen oder der mehreren externen Schlüssel erzeugt, wobei jeder MEK dem externen Schlüssel zugehörig ist, zu dessen Erzeugung er verwendet wird. Als Reaktion auf das Empfangen einer Anforderung zum Durchführen einer Datenoperation bei Daten, die einem des/der externen Schlüssels/Schlüssel zugehörig sind, wird der diesem externen Schlüssel zugehörige MEK zum Verschlüsseln und/oder Entschlüsseln der Daten verwendet.
  • Bei einem weiteren allgemeinen Ansatz umfasst ein mittels einer Einheit realisiertes Verfahren bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, ein Empfangen einer Anforderung zum Schreiben von ersten Daten auf das Speichermedium in verschlüsselter Form unter Verwendung eines ersten externen Schlüssels, der den ersten Daten zugehörig ist. Auf einen innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen. Ein erster MEK wird unter Verwendung des internen Schlüssels und des ersten externen Schlüssels erzeugt. Die ersten Daten werden unter Verwendung des ersten MEK verschlüsselt. Die verschlüsselten ersten Daten werden an einer bestimmten ersten logischen Blockadresse in einem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben. Eine zweite Anforderung wird empfangen, wobei die zweite Anforderung darin besteht, Daten in verschlüsselter Form auf das Speichermedium unter Verwendung eines zweiten externen Schlüssels zu schreiben, der den zweiten Daten zugehörig ist. Auf den innerhalb der Einheit gespeicherten internen Schlüssel wird zugegriffen, und ein zweiter MEK wird unter Verwendung des internen Schlüssels und des zweiten externen Schlüssels erzeugt. Die zweiten Daten werden unter Verwendung des zweiten MEK verschlüsselt. Die verschlüsselten zweiten Daten werden an einer bestimmten zweiten logischen Blockadresse in dem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben.
  • Bei noch einem weiteren allgemeinen Ansatz umfasst ein mittels einer Einheit realisiertes Verfahren zum Krypto-Löschen bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium unter Verwendung einer ,Key per IO"-Operation durchführt, ein Empfangen einer Anforderung, um eine Krypto-Löschung aller Daten in mindestens einem Bereich von logischen Blockadressen des Speichermediums zu bewirken. Einzelne Abschnitte der Daten in dem mindestens einen Bereich von logischen Blockadressen sind jeweils einem eindeutigen externen Schlüssel zugehörig, wobei die einzelnen Abschnitte der Daten jeweils unter Verwendung eines eindeutigen MEK verschlüsselt sind, der unter Verwendung eines internen Schlüssels und des eindeutigen externen Schlüssels erstellt wurde, der dem Abschnitt der Daten zugehörig ist. Krypto-Löschung wird erreicht, indem der interne Schlüssel und ein beliebiger MEK oder beliebige MEKs zerstört wird/werden, der/die aus diesem internen Schlüssel erzeugt wurde/n.
  • Veranschaulichende Datenverarbeitungsumgebung
  • 1 veranschaulicht eine Architektur 100 gemäß einem Ansatz. Wie in 1 gezeigt, wird eine Mehrzahl entfernt angeordneter Netzwerke 102 bereitgestellt, zu denen ein erstes entfernt angeordnetes Netzwerk 104 und ein zweites entfernt angeordnetes Netzwerk 106 gehören. Ein Gateway 101 kann zwischen die entfernt angeordneten Netzwerke 102 und ein benachbartes Netzwerk 108 geschaltet sein. Im Kontext der vorliegenden Netzwerkarchitektur 100 können die Netzwerke 104, 106 jeweils eine beliebige Form annehmen, darunter und ohne auf diese beschränkt zu sein, die eines lokalen Netzwerks (Local Area Network LAN), eines Weitverkehrsnetzwerk (Wide Area Network, WAN) wie z.B. des Internets, des öffentlichen Telefonnetzes (Public Switched Telephone Network, PSTN), eines internen Telefonnetzes usw.
  • Während des Gebrauchs dient das Gateway 101 als Eintrittspunkt aus den entfernt angeordneten Netzwerken 102 in das benachbarte Netzwerk 108. Im Grunde genommen kann das Gateway 101 als Router fungieren, der ein bestimmtes Datenpaket weiterleiten kann, das an dem Gateway 101 eintrifft, und als Switch, der für ein bestimmtes Paket den tatsächlichen Pfad in das und aus dem Gateway 101 bereitstellt.
  • Ferner ist mindestens ein Datenserver 114 enthalten, der mit dem benachbarten Netzwerk 108 verbunden und aus den entfernt angeordneten Netzwerken 102 über das Gateway 101 zugänglich ist. Es sollte beachtet werden, dass zu dem Datenserver bzw. zu den Datenservern 114 beliebige Arten von Datenverarbeitungseinheiten/Datenverarbeitungs-Groupware gehören können. Mit jedem der Datenserver 114 ist eine Mehrzahl von Benutzereinheiten 116 verbunden. Benutzereinheiten 116 können außerdem über eines der Netzwerke 104, 106, 108 direkt verbunden sein. Zu derartigen Benutzereinheiten 116 können ein Desktop-Computer, ein Notebook-Computer, ein Handheld-Computer, ein Drucker oder eine beliebige andere Art von Logik gehören. Es sollte beachtet werden, dass eine Benutzereinheit 111 bei einem Ansatz auch direkt mit einem beliebigen der Netzwerke verbunden sein kann.
  • Eine Peripherieeinheit 120 oder eine Reihe von Peripherieeinheiten 120, z.B. Telefax-Geräte, Drucker, vernetzte und/oder lokale Speichereinheiten oder-systeme usw., können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden sein. Es sollte beachtet werden, dass Datenbanken und/oder weitere Komponenten in Verbindung mit beliebigen Arten von Netzwerkelementen genutzt werden oder in diese integriert sein können, die mit den Netzwerken 104, 106, 108 verbunden sind. Im Kontext der vorliegenden Beschreibung kann es sich bei einem Netzwerkelement um eine beliebige Komponente eines Netzwerks handeln.
  • Gemäß einigen Ansätzen können hierin beschriebene Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen realisiert sein, die ein oder mehrere andere Systeme emulieren, wie z.B. ein UNIX®-System, das eine IBM® z/OS®-Umgebung emuliert, ein UNIX®-System, das eine Microsoft® Windows®-Umgebung virtuell hostet, ein Microsoft® Windows®-System, das eine IBM® z/OS®-Umgebung emuliert usw. Diese Virtualisierung und/oder Emulation kann bei einigen Ansätzen durch die Verwendung der Software Vmware® erweitert sein.
  • Bei weiteren Ansätzen können ein oder mehrere Netzwerke 104, 106, 108 eine Gruppe (cluster) von Systemen bilden, die üblicherweise als „Cloud“ bezeichnet wird. Beim Cloud-Computing werden einem beliebigen System in der Cloud gemeinsam genutzte Ressourcen wie zum Beispiel Verarbeitungsleistung, Peripherieeinheiten, Software, Daten, Server usw. auf der Grundlage einer Bei-Bedarf-Beziehung bereitgestellt, wodurch der Zugriff und die Verteilung von Diensten über viele Datenverarbeitungssysteme hinweg möglich ist. Cloud-Computing bedingt normalerweise eine Internetverbindung zwischen den in der Cloud betriebenen Systemen, aber können auch andere Techniken zum Verbinden von Systemen verwendet werden.
  • 2 zeigt eine repräsentative Hardwareumgebung, die gemäß einem Ansatz zu einer Benutzereinheit 116 und/oder dem Server 114 von 1 gehören kann. Diese Figur veranschaulicht eine typische Hardwarekonfiguration einer Workstation, die eine Zentraleinheit 210 wie z.B. einen Mikroprozessor und eine Anzahl anderer Einheiten enthält, die untereinander über einen Systembus 212 verbunden sind.
  • Die in 2 gezeigte Workstation umfasst einen Direktzugriffsspeicher (Random Access Memory, RAM) 214, einen Nur-Lese-Speicher (Read Only Memory, ROM) 216, einen E/A-Adapter 218 zum Verbinden von Peripherieeinheiten wie z.B. Plattenspeichereinheiten 220 mit dem Bus 212, einen Benutzerschnittstellenadapter 222 zum Anschließen einer Tastatur 224, einer Maus 226, eines Lautsprechers 228, eines Mikrofons 232 und/oder anderer Benutzerschnittstelleneinheiten wie z.B. eines Touchscreens, einer Digitalkamera (nicht gezeigt) usw. an den Bus 212, einen Datenaustauschadapter 234 zum Anschließen der Workstation an ein Datenaustauschnetzwerk 235 (z.B. ein Datenverarbeitungsnetzwerk) und einen Anzeigeadapter 236 zum Anschließen des Busses 212 an eine Anzeigeeinheit 238.
  • Die Workstation kann ein residentes Betriebssystem wie z.B. das Betriebssystem (BS) Microsoft Windows®, ein macOS®, ein BS UNIX® usw. enthalten. Es wird klar sein, dass ein bevorzugter Ansatz auch auf anderen als den erwähnten Plattformen und Betriebssystemen realisiert sein kann. Ein bevorzugter Ansatz kann unter Verwendung der Sprachen eXtensible Markup Language (XML), C und/oder C++ oder anderer Programmiersprachen in Verbindung mit einer objektorientierten Programmiermethodik geschrieben sein. Objektorientierte Programmierung (Object Orientied Programming, OOP), die in zunehmendem Maße zur Entwicklung komplexer Anwendungen eingesetzt wird, kann verwendet werden.
  • Nunmehr unter Bezugnahme auf 3 ist dort ein Speichersystem 300 gemäß einem Ansatz gezeigt. Zu beachten ist, dass einige der in 3 gezeigten Elemente gemäß verschiedenen Aspekten als Hardware und/oder Software realisiert sein können. Das Speichersystem 300 kann einen Speichersystemmanager 312 zum Austauschen von Daten mit einer Mehrzahl von Medien und/oder Datenträgern auf mindestens einer höheren Speicherebene 302 und mindestens einer niedrigeren Speicherebene 306 umfassen. Die höhere/n Speicherebene/n 302 kann/können eine oder mehrere Medien mit wahlfreiem Zugriff und/oder Direktzugriffsmedien 304 wie z.B. Festplatten in Festplattenlaufwerken (HDDs), nichtflüchtigen Speicher (non-volatile memory, NVM), Halbleiterspeicher in Halbleiterdatenträgern (SSDs), Flash-Speicher, SSD-Anordnungen, Flash-Speicher-Anordnungen usw. und/oder andere umfassen, die hierin aufgeführt oder in der Technik bekannt sind. Die niedrigere/n Speicherebene/n 306 kann/können vorzugsweise ein oder mehrere Speichermedien 308 mit geringerer Leistungsfähigkeit umfassen, unter anderem Medien mit sequenziellem Zugriff wie z.B. Magnetband in Magnetbandlaufwerken und/oder optische Medien, HDDs mit langsamerem Zugriff, SSDs mit langsamerem Zugriff usw. und/oder andere, die hierin aufgeführt oder in der Technik bekannt sind. Eine oder mehrere zusätzliche Speicherebenen 316 können eine beliebige Kombination aus Speichermedien umfassen, die durch einen Entwickler des Systems 300 gewünscht ist. Außerdem können beliebige der höheren Speicherebenen 302 und/oder der niedrigeren Speicherebenen 306 eine bestimmte Kombination aus Speichereinheiten und/oder Speichermedien umfassen.
  • Der Speichersystemmanager 312 kann mit den Datenträgern und/oder Speichermedien 304, 308 auf der/den höheren Speicherebene/n 302 und der/den niedrigere/n Speicherebene/n 306 über ein Netzwerk 310 wie z.B. ein Speichernetzwerk (storage area network, SAN), wie in 3 gezeigt, oder eine beliebige andere geeignete Netzwerkart Daten austauschen. Der Speichersystemmanager 312 kann außerdem Daten mit einem oder mehreren Host-Systemen (nicht gezeigt) über eine Host-Schnittstelle 314 Daten austauschen, die Teil des Speichersystemmanagers 312 sein kann oder auch nicht. Der Speichersystemmanager 312 und/oder eine beliebige andere Komponente des Speichersystems 300 können in Hardware und/oder Software realisiert sein und können einen Prozessor (nicht gezeigt) nutzen, um Befehle einer in der Technik bekannten Art auszuführen, wie z.B. eine Zentraleinheit (central processing unit, CPU), eine vor Ort programmierbare Gatteranordnung (field programmable gate array, FPGA), eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC) usw. Selbstverständlich kann eine beliebige Anordnung eines Speichersystems verwendet werden, wie für Fachleute nach dem Lesen der vorliegenden Beschreibung ersichtlich sein wird.
  • Bei mehreren Ansätzen kann das Speichersystem 300 eine beliebige Anzahl von Datenspeicherebenen umfassen und kann innerhalb jeder Speicherebene dieselben oder andere Speichermedien umfassen. Zum Beispiel kann jede Datenspeicherebene dieselbe Art von Speichermedien wie z.B. HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platte in optischen Plattenlaufwerken usw.), Direktzugriffsmedien (CD-ROM, DVD-ROM usw.) oder eine beliebige Kombination von Medienspeicherarten umfassen. Bei einer derartigen Konfiguration kann eine höhere Speicherebene 302 eine Mehrheit von SSD-Speichermedien zum Speichern von Daten in einer Speicherumgebung mit höherer Leistungsfähigkeit umfassen, und übrige Speichermedien, unter anderem die niedrigere Speicherebene 306 und zusätzliche Speicherebenen 316 können eine beliebige Kombination aus SSDs, HDDs, Bandlaufwerken usw. zum Speichern von Daten in einer Speicherumgebung mit geringerer Leistungsfähigkeit umfassen. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit einer höheren Priorität, Daten, auf die schneller zugegriffen werden muss, usw. auf der höheren Speicherebene 302 gespeichert sein, während Daten, die keines dieser Attribute haben, auf den zusätzlichen Speicherebenen 316 gespeichert sein können, unter anderem auf der niedrigeren Speicherebene 306. Selbstverständlich können Fachleute nach dem Lesen der vorliegenden Beschreibungen gemäß den hierin vorgestellten Ansätzen und Aspekten andere Kombinationen von Speichermedienarten konzipieren, um unterschiedliche Speicherstrategien zu realisieren.
  • Gemäß einigen Ansätzen kann das Speichersystem (wie z.B. 300) Logik enthalten, die so konfiguriert ist, dass sie eine Anforderung zum Öffnen eines Datensatzes empfängt, Logik, die so konfiguriert ist, dass sie ermittelt, ob der angeforderte Datensatz auf einer niedrigeren Speicherebene 306 eines abgestuften Datenspeichersystems 300 in mehreren zugehörigen Abschnitten gespeichert ist, Logik, die so konfiguriert ist, dass sie jeden zugehörigen Abschnitt des angeforderten Datensatzes auf eine höhere Speicherebene 302 des abgestuften Datenspeichersystems 300 verschiebt, und Logik, die so konfiguriert ist, dass sie den angeforderten Datensatz auf der höheren Speicherebene 302 des abgestuften Datenspeichersystems 300 aus den zugehörigen Abschnitten zusammensetzt.
  • Selbstverständlich kann diese Logik gemäß verschiedenen Ansätzen als Verfahren auf einer beliebigen Einheit und/oder einem beliebigen System oder als Computerprogrammprodukt realisiert sein.
  • ,Key per IO"-Grundlagen
  • In einigen Fällen ist es wünschenswert, unterschiedlichen Entitäten zu erlauben, denselben Adressraum in einer Speichereinheit zu verwenden. Eine vereinfachende Realisierungsform hiervon verschafft einer ersten Entität jedoch keine Gewissheit hinsichtlich des Datenschutzes gegenüber einer zweiten Entität, die einfach lesen könnte, was die erste Entität geschrieben hat. Eine Lösung hierfür besteht darin, dass jede Entität (oder jeder Nutzer) einen eindeutigen Schlüssel verwenden muss, den sie außerhalb der Einheit verwalten kann, wobei die Einheit ihre Schreibdaten verschlüsseln und ihren verschlüsselten Chiffriertext entschlüsseln muss. Dieser Schlüssel wird hierin als externer Schlüssel, externer MEK und Kext bezeichnet. Insbesondere hat jeder Nutzer einen eindeutigen Kext, mit dem er die Daten des jeweiligen Nutzers verschlüsselt, und dieser Kext unterscheidet sich von den Kexts der anderen Nutzer. Dieses Schema wird allgemein als ,Key per IO"-Schema bezeichnet.
  • Wenn eine ,Key per IO"-fähige Einheit (z.B. ECD, Computer usw.) eingeschaltet wird, enthält sie keine Kexts zum Durchführen von Verschlüsselung und Entschlüsselung. Vielmehr werden ihr Kexts in einer beliebigen gewünschten Weise, z.B. nach Bedarf, in Verbindung mit einer Anforderung bezüglich einer Lese- oder Schreiboperation usw. bereitgestellt. Zum Beispiel sendet ein Nutzer möglicherweise einen Kext zusammen mit einem Schlüsselkennzeichen (key tag) (z.B. T), anhand dessen in Zukunft darauf Bezug genommen wird, den die Einheit im flüchtigen Speicher speichert. Anschließend, wenn die Einheit einen Befehl empfängt (z.B. NVMe-Befehl), der das Schlüsselkennzeichen T als Teil der Kopfdaten des Befehls enthält, ruft sie den zugehörigen Kext aus dem Speicher ab und verwendet ihn zum Verschlüsseln von Klartextdaten, die durch den Host geschrieben werden, bevor der Chiffriertext im nichtflüchtigen Speicher gespeichert wird, oder zum Entschlüsseln von Chiffriertextdaten, die aus dem nichtflüchtigen Speicher gelesen werden, bevor der entsprechende Klartext an den Host gesendet wird. Diese Einheit kann mehrere Kexts ansammeln, die unterschiedlichen Schlüsselkennzeichen zugehörig sind. Bei einigen Ansätzen gehen bei einem Stromausfall die Kexts verloren, die nur im flüchtigen Speicher gespeichert wurden, und müssen daher der Einheit nach Wiederherstellung der Stromversorgung erneut bereitgestellt werden, bevor sie erneut verwendet werden können.
  • Ein Ziel vieler ,Key per IO"-Schemata besteht darin, unterschiedlichen Nutzern (Benutzer, Anwendungen, Computer usw.) zu erlauben, gemeinsam denselben Adressraum zu nutzen. Vor den hierin vorgestellten erfindungsgemäßen Merkmalen wurde der Kext eines Nutzers direkt als MEK verwendet, um die Daten des Nutzers zu verschlüsseln und zu entschlüsseln. In der Theorie sind die verschlüsselten Daten eines ersten Nutzers gegenüber einem Klartextzugriff durch einen zweiten Nutzer sicher, solange ihre jeweiligen Kexts untereinander eindeutig sind, und bleiben gegenüber der Verwendung durch den anderen Nutzer sicher. Wenn ein erster Nutzer oder eine Steuerungsinfrastruktur, die für Daten des ersten Nutzers zuständig ist, Daten des ersten Nutzers auf der Einheit löschen möchte, zerstört der erste Nutzer den Kext des ersten Nutzers außerhalb der Einheit, z.B. durch Löschen des Kext, Überschreiben des Kext oder anderweitiges Zerstören des Kext, unter anderem beliebiger restlicher Kopien des Kext nicht nur außerhalb der Einheit, sondern einer beliebigen Kopie oder beliebiger Kopien, die im flüchtigen Speicher innerhalb der Einheit gespeichert sind. Wenn eine Möglichkeit besteht, dass der Kext des ersten Nutzers der Einheit seit dem letzten Aus- und Einschalten oder Kaltstart bereitgestellt wurde, muss der erste Nutzer die erste Einheit anweisen, den Kext zu löschen, der als MEK innerhalb der Einheit verwendet wird. Durch Zerstören aller Instanzen des Kext außerhalb und innerhalb der Einheit werden die mit diesem MEK verschlüsselten Daten wirksam krypto-gelöscht, die noch auf diese Einheit gespeichert sind und von dieser entfernt werden können. Wenn jedoch jemand oder etwas in der Lage ist, unbemerkt für die Einheit, die Kext-Instanzen löscht, den Kext dieses Nutzers aufzuzeichnen (z.B. durch unbefugte Zugriffsversuche (hacking) auf den Speicher des externen Schlüssels oder durch einen Lauschangriff auf den Schlüssel, während er zu der Einheit übertragen wird, usw.) und eine Kopie davon aufzubewahren, kann diese Person möglicherweise nach wie vor auf die Daten des Nutzers zugreifen, indem ihr Chiffriertext entschlüsselt wird, wenn sich die Person mit der Einheit vernetzen kann. Somit kann weder zugesichert werden, dass die Daten sicher sind, noch dass ein definitives Krypto-Löschen erreicht wurde.
  • Darüber hinaus werden wie vorstehend erwähnt alle Kexts extern verwaltet, und wenn die Speichereinheit abgeschaltet wird, sollten alle innerhalb der Einheit vorhandenen MEKs (d.h. als MEKs verwendete Kexts) verloren gehen, da sie nur im flüchtigen Speicher gespeichert sind. Ein mögliches Problem entsteht jedoch, wenn die Einheit oder eine andere Datenspeichereinheit ausfällt oder als unwesentlich betrachtet wird und außer Betrieb genommen werden soll. Wegen der Möglichkeit, dass nicht alle Kopien eines Kext online sind oder dieser Schlüssel eventuell heimlich kopiert worden ist, kann es bei Kexts, die extern verwaltet werden, schwierig, wenn nicht unmöglich sein sicherzustellen, dass alle Kexts wirklich extern gelöscht wurden, die in Zusammenhang mit dem Verschlüsseln von Daten standen, die auf diese Einheit geschrieben wurden. Somit kann nicht sichergestellt werden, dass alle mit einem bestimmten MEK verschlüsselten Daten auf der Einheit nicht wiederherstellbar sind.
  • Die vorliegende Erfindung stellt eine Möglichkeit zum internen Krypto-Löschen der in einem ,Key per IO"-Schema gespeicherten Daten bereit, indem ein interner Schlüssel (Kint) realisiert wird, der mit einem Kext eines Nutzers kombiniert wird, um einen MEK zu erzeugen, der wiederum zum Verschlüsseln/Entschlüsseln der Daten des Nutzers verwendet wird. Da kein Nutzer und idealerweise niemand Zugriff auf den Kint hat, führt eine Zerstörung des Kint dazu, dass die Daten krypto-gelöscht werden.
  • Das Verhältnis von internen Kints zu externen Kexts kann von Realisierungsform zu Realisierungsform variieren. Bei einigen Ansätzen kann ein gemeinsamer Kint für alle Namensräume (z.B. für den gesamten Datenträger) vorliegen. Dementsprechend kann eine enorme Anzahl von externen Kexts vorliegen, aber nur ein Kint. In diesem Fall kann die gesamte Einheit krypto-gelöscht werden, indem einfach der eine gemeinsame Kint gelöscht wird.
  • Bei anderen Ansätzen kann ein eindeutiger Kint für jeden Namensraum und/oder für eine Teilmenge eines Namensraums bereitgestellt sein. Dementsprechend können einige Einheiten mehrere Kints verwenden.
  • Erfindungsgemäße Verfahren zum Ermöglichen von Krypto-Löschen in ,Key per IO" fähigen Einheiten
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ansätze von Systemen, Verfahren und Computerprogrammprodukten, um zu ermöglichen, dass lokal verschlüsselte Daten durch eine interne Aktion in ,Key per IO"-fähigen Einheiten wie z.B. ECDs krypto-gelöscht werden. Im Allgemeinen werden Daten unter Verwendung eines MEK verschlüsselt und/oder entschlüsselt, der aus einem externen Kext und einem innerhalb der Speichereinheit, z.B. ECD, SED, Bandkassette, transportable Speicher usw., gespeicherten Kint erstellt wurde. Nach einer Zerstörung des Kint und aller MEKs, die aus diesem erstellt wurden, werden alle Daten, die nur mit diesem MEK verschlüsselt gespeichert wurden, krypto-gelöscht und somit nicht wiederherstellbar. Ebenso werden durch eine Zerstörung aller Kopien eines Kext die Daten krypto-gelöscht, die diesem Kext entsprechen.
  • Da der Kint mit einem für einen Nutzer spezifischen Kext kombiniert wird, um den MEK zu erstellen, der anschließend zum Schreiben und Lesen von Daten für diesen Nutzer verwendet wird, kann darüber hinaus kein anderer Nutzer Daten des ersten Nutzers ohne den externen Kext ersten Nutzers entschlüsseln, selbst wenn Nutzer einen Adressraum gemeinsam nutzen. Dementsprechend können mehrere Kexts einzeln eindeutigen Daten zugehörig sein, die an unterschiedlichen Orten in einem gleichen Bereich von logischen Blockadressen gespeichert sind, wobei der zulässige Bereich von logischen Blockadressen (z.B. in dem NVMe-Namensraum) des Speichermediums Millionen Sektoren lang sein kann. Dies darf nicht mit dem Bereich eines einzelnen Schreibbefehls verwechselt werden, die bei ,Key per IO" mit einem einzigen Kext geschrieben würden, der durch das Schlüsselkennzeichen angegeben wird, das in den Kopfdaten dieses Schreibbefehls angekommen ist.
  • Krypto-Löschen in ECD und SED
  • Zwar wird ein Großteil der folgenden Beschreibung in Zusammenhang mit einer beispielhaften Realisierungsform mit einem SED oder ECD einer beliebigen Art vorgestellt, dies erfolgt jedoch nur beispielhaft und ausschließlich zu dem Zweck, dem Leser als Hilfestellung einen Kontext bereitzustellen. Dementsprechend sind die im Folgenden vorgestellten Konzepte und Lehren gleichermaßen auf Realisierungsformen mit Speichermedien wie z.B. Magnetaufzeichnungsbändern, Speicherkarten, optischen Medien und verwandten Einheiten anwendbar.
  • Nunmehr unter Bezugnahme auf 4 ist dort ein Verfahren 400 gemäß einem Ansatz gezeigt. Das Verfahren 400 kann unter anderem bei verschiedenen Ansätzen gemäß der vorliegenden Erfindung in beliebigen der in den anderen FIGUREN bildlich dargestellten Umgebungen durchgeführt werden, die hierin beschrieben sind. Selbstverständlich kann das Verfahren 400 mehr oder weniger als die in 4 konkret beschriebenen Operationen umfassen, wie Fachleuten nach dem Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 400 kann durch beliebige geeignete Komponenten der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 400 bei verschiedenen Ansätzen teilweise oder vollständig durch eine Einheit wie z.B. einen Computer, einen Datenträger oder eine bestimmte andere Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software realisiert sind und vorzugsweise mindestens eine Hardwarekomponente enthalten, können in einer beliebigen Einheit genutzt werden, um einen oder mehrere Schritte des Verfahrens 400 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatteranordnung (FPGA) usw., Kombinationen davon und eine beliebige andere geeignete Datenverarbeitungseinheit, die in der Technik bekannt ist.
  • Wie in 4 gezeigt, kann das Verfahren 400 mit Operation 402 starten, bei der eine Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium wie z.B. Lesen und/oder Schreiben von Daten von dem/auf das Speichermedium durchführt, eine oder mehrere eindeutige externe Verschlüsselungsschlüssel (Kexts) empfängt. Der eine oder die mehreren Kexts werden der Einheit aus einer oder mehreren externen Quellen zur Verwendung bei ,Key per IO"-Operationen bereitgestellt. Bei einer externen Quelle kann es sich um eine beliebige externe Quelle handeln. Zum Beispiel kann es sich bei der externen Quelle um eine auf einer virtuellen Maschine, in einem Container oder nativ auf einem Host-Server laufende Anwendung handeln, die Daten schreibt oder liest, oder um eine Steuerungsinfrastruktur, die das gesamte Bereitstellen von Schlüsseln transparent für diese Anwendungen, virtuellen Maschinen, Container oder Host-Server abwickelt. Bei der externen Quelle könnte es sich auch um einen Schlüsselspeicher, einen Schlüsselserver, eine Schlüsseleingabe durch einen Benutzer (z.B. über eine Tastatur, durch Anschließen eines Flash-Datenträgers usw.) handeln.
  • Der/die Kext(s) sind vorzugsweise in der Einheit nur im flüchtigen Speicher gespeichert, sodass sie nach dem Abschalten oder Neustarten der Einheit zerstört werden. Der/die Kext(s) können in einer beliebigen Weise empfangen werden, z.B. nach Bedarf, alle auf einmal, als Reaktion auf eine Anforderung bezüglich eines Kext (z.B. von der Einheit) usw. Zum Beispiel kann ein Kext in Verbindung mit einer Anforderung zum Lesen oder Schreiben von Daten empfangen werden, die in verschlüsselter Form auf dem Speichermedium gespeichert sind oder auf diesem gespeichert werden sollen.
  • Bei dem Speichermedium kann es sich um eine beliebige hierin offenbarte Art handeln, z.B. Magnetband, Magnetplatte, NVRAM usw. Dementsprechend kann es sich bei der Einheit um eine beliebige Art von Datenspeichereinheit handeln, z.B. Bandlaufwerk, SSD, HDD, verschlüsselungsfähige USB-Datenträger, NVRAM-Module usw. Darüber hinaus kann es sich bei der Einheit um einen verschlüsselungsfähigen Datenträger (ECD) in der Art eines wechselbaren Datenspeichers, z.B. um einen verschlüsselungsfähigen USB-Datenträger, ein verschlüsselungsfähiges Bandlaufwerk, einen selbstverschlüsselnden Datenträger (SED) usw., handeln.
  • In Operation 404 wird auf einen innerhalb der Einheit gespeicherten Kint zugegriffen, z.B. aus einem nichtflüchtigen Speicher der Einheit. Bei dem nichtflüchtigen Speicher könnte es sich um einen zweckgebundenen IC wie z.B. einen NAND-Flash handeln, oder er könnte in einen größeren IC wie z.B. in eine FPGA, ASIC, CPU eingebettet sein. Bei einigen Ansätzen ist der Kint in der Einheit in roher (unverschlüsselter) Form gespeichert. Bei anderen Ansätzen ist der Kint in der Einheit in umhüllter Form (z.B. verschlüsselter Form, kennwortgeschützter Form, verschleierter Form usw.) gespeichert. In dem Fall, bei dem der Kint in umhüllter Form gespeichert ist, können Informationen wie z.B. ein weiterer Schlüssel, ein Kennwort usw. zum Aufheben der Eilmeldung des Kint abgerufen und/oder empfangen und zum Aufheben der Umhüllung des Kint verwendet werden. Zum Beispiel könnte eine Sperr-/Entsperr-PIN oder ein Sperr-/Entsperr-Kennwort, die bzw. das zum Entsperren der Einheit erforderlich ist, als Umhüllungsschlüssel verwendet werden der zum Umhüllen des internen Schlüssels verwendet wird. Alternativ könnte ein Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) als Umhüllungsschlüssel zum Umhüllen des internen Schlüssels verwendet werden. Vorzugsweise würde nur der nichtflüchtige Speicher des internen Schlüssels normalerweise in umhüllter Form vorliegen.
  • Bei bevorzugten Aspekten ist die Einheit so konfiguriert, dass sie eine Übertragung des Kint in beliebiger Form nach außerhalb der Einheit unterbindet. Ein interner Mikroprozessor oder eine interne Steuereinheit der Einheit können jedoch auf den Kint innerhalb der Einheit zugreifen.
  • In Operation 406 wird für jeden von mindestens einigen der Kexts ein eindeutiger MEK unter Verwendung des Kint und des zugehörigen des einen oder der mehreren Kexts erzeugt. Mit anderen Worten, der MEK, der einem bestimmten Kext zugehörig ist, der zu dessen Erstellung verwendet wird, unterscheidet sich von einem beliebigen anderen MEK. Eine beliebige bekannte Technik kann verwendet werden, um den MEK aus dem Kext und dem Kint zu erstellen, z.B. durch XOR-Verknüpfen des Kext und des Kint, durch Anwenden eines weiteren bekannten Hash-Algorithmus, durch Zusammenfügen der beiden Schlüssel, um einen größeren MEK zu erstellen, usw.
  • Der MEK für einen bestimmten Datensatz kann zu einem beliebigen gewünschten Zeitpunkt erstellt werden. Bei einem Ansatz wird der MEK als Reaktion auf das Empfangen des Kext erzeugt. Bei einem weiteren Ansatz wird der MEK als Reaktion auf das Empfangen einer Anforderung zum Durchführen einer Datenoperation für Daten erstellt, die dem Kext zugehörig sind.
  • Unabhängig davon, wann der MEK erstellt wird, kann er flüchtig innerhalb der Einheit zur Verwendung und/oder Wiederverwendung gespeichert werden, kann für eine Datenoperation verwendet und verworfen werden usw. Vorzugsweise wird der MEK innerhalb der Einheit nur im flüchtigen Speicher gespeichert, sodass er verloren geht, wenn die Einheit abgeschaltet oder zurückgesetzt wird. Dies trägt dazu bei sicherzustellen, dass weder von außerhalb auf den MEK zugegriffen werden kann, noch die Einheit deaktiviert wird.
  • In Operation 408 wird als Reaktion auf das Empfangen einer Anforderung zum Durchführen einer Datenoperation bei Daten, die einem der Kexts zugehörig sind, der diesem Kext zugehörige MEK zum Verschlüsseln und/oder Entschlüsseln der Daten verwendet, z.B. unter Verwendung anderer herkömmlicher Verschlüsselungs-/ Entschlüsselungstechniken. Zum Beispiel wird als Reaktion auf das Empfangen einer Leseanforderung der Chiffriertext der angeforderten Daten unter Verwendung des entsprechenden MEK in Operation 408 entschlüsselt, sodass sich die unverschlüsselte Form (d.h. Klartextform) der angeforderten Daten ergibt, die dann an den Anforderer ausgegeben werden kann. Der Chiffriertext der angeforderten Daten kann in einen Puffer kopiert und dann entschlüsselt werden, kann während des Lesevorgangs entschlüsselt werden usw. Die entschlüsselten Daten werden ausgegeben, z.B. an einen Anforderer der Daten über eine Host-Schnittstelle usw.
  • Bei einigen Ansätzen wird der MEK nach Ausführung der zugehörigen Anforderung gelöscht. Bei anderen Ansätzen kann der MEK in einer bestimmten Form des flüchtigen Speichers oder Registers zur Wiederverwendung aufbewahrt werden. In beiden Fällen kann die Speichereinheit die Kexts und zugehörigen MEKs aufbewahren, bis sie durch einen ausdrücklichen Befehl oder einen Reset aufgefordert wird, sie zu vergessen, oder ein Abschalten bewirkt, dass sie vergessen werden.
  • Aspekte der verschiedenen Operationen von 4 werden im Folgenden bereitgestellt. Derartige Aspekte werden lediglich beispielhaft bereitgestellt und sind nicht als Einschränkung gedacht. Wie vorstehend angemerkt, bezieht sich ein Großteil der vorliegenden Erörterung auf einen ECD; dies erfolgt lediglich beispielhaft. Darüber hinaus können derartige Aspekte in einer beliebigen Weise gemäß der Fülle möglicher Aspekte und Ansätze kombiniert werden, um die vorliegende Erfindung in die Praxis umzusetzen.
  • Ein MEK kann aus zwei getrennten Schlüsseln unter Verwendung einer beliebigen Methode erstellt werden, die der Technik bekannt ist und/oder für Fachleute nach dem Lesen der vorliegenden Beschreibung deutlich wird. Zum Beispiel besteht eine Möglichkeit zum Erstellen eines MEK, die die Verwendung sowohl des Kint als auch des Kext zum Berechnen erfordert, darin, dass Kint und Kext zwei unabhängig voneinander erzeugte Zufallszahlen sein müssen, und anschließend eine Berechnung durchgeführt wird, die sowohl Kint als auch Kext wie z.B. ein bitweise erfolgendes XOR-Verknüpfen der beiden oder eine Verkettung dieser beiden Werte erfordert, um den MEK zu berechnen.
  • Kint kann aus einer beliebigen denkbaren Quelle stammen. Kint wird vorzugsweise intern in dem ECD erstellt, wobei dies der sicherste Ansatz ist, da Kopien von Kint keinesfalls außerhalb des ECD vorhanden sein müssen, sofern sie nicht absichtlich aus diesem kopiert wurden. Zum Beispiel wird Kint in einer bekannten Weise unter Verwendung eine Ausgabe aus einem Zufallszahlengenerator innerhalb des ECD erzeugt.
  • Bei anderen Ansätzen kann Kint außerhalb des ECD erzeugt und im ECD bereitgestellt werden. Zum Beispiel kann Kint während des Herstellens des Build in die Einheit programmiert werden, kann durch einen Administrator in die Einheit programmiert werden, kann während der Konfiguration oder des Formatierens der Einheit eingefügt werden usw.
  • Bei einem Aspekt kann Kint spezifisch für einen bestimmten Satz von Daten sein, und somit kann die Einheit mehrere eindeutige Kints speichern, die jeweils einem eindeutigen Datensatz zugehörig sind.
  • Vorzugsweise ist der ECD so programmiert, dass er eine Sichtbarkeit des Kint von außen oder eine Übertragung oder ein Kopieren von Kint aus dem ECD nicht zulässt.
  • Bei einem veranschaulichenden Ansatz ist Kint der erste bei der Erstellung des MEK erforderliche Wert, z.B. eine erste Zufallszahl mit derselben Länge (in Bits) wie der MEK. Kext ist der zweite bei der Erstellung des MEK erforderliche Wert, z.B. eine zweite Zufallszahl mit derselben Länge wie der MEK. Kint wird mit Kext in einer vordefinierten Weise verarbeitet, um den sich ergebenden MEK zu erzeugen. Zum Beispiel kann Kint mit Kext XOR-verknüpft (oder dergleichen) werden, um den MEK zu erzeugen. Alternativ können Standard-Schlüsselableitungstechniken (unter Verwendung von Hash-Verarbeitung oder Verschlüsselung) anstelle der XOR-Operation (oder dergleichen) verwendet werden, um den MEK zu berechnen. Eine beliebige Form von Schlüsselableitung, die das Verarbeiten von sowohl Kint als auch Kext zur Berechnung des MEK erfordert, ist potenziell akzeptabel.
  • Allen, die mit der Komplexität eines ECD vertraut sind, der zum Unterstützen der ,Key per IO"-SSC in der Lage ist, wird klar sein, dass sehr, sehr viele Möglichkeiten zum Realisieren dieses Konzepts bestehen, und dem entsprechend ist die Erfindung nicht auf die hierin vorgestellte beispielhafte Beschreibung beschränkt.
  • Bei einem Einsatz wird ein eindeutiger Kint zum Kombinieren mit jedem der Kexts erstellt. Alternativ könnten weniger Kints als Kexts bis hin zu dem vorstehend erwähnten einzigen Kint vorhanden sein, der mit allen Kexts kombinierbar ist. Dementsprechend könnten potenziell Tausende von Kexts vorhanden sein, die mit mehreren oder lediglich einem Kint kombinierbar sind, d.h., es besteht eine Viele-zu-vielen-, eine Viele-zu-weniger- oder eine Viele-zu-einem-Beziehung.
  • Bei einem weiteren Ansatz wird der MEK unter Verwendung von mehr als nur einem Kint und dem Kext erstellt. Zum Beispiel könnten zwei unterschiedliche Kints mit einem Kext kombiniert werden, sodass das Nettoergebnis in der Kombination aus drei unterschiedlichen Schlüsseln besteht. Eine Löschung eines beliebigen der drei Schlüssel krypto-löscht beliebige Daten, die mit dem kombinierten Schlüssel verschlüsselt sind. Dementsprechend werden bei einigen Ansätzen mehr als zwei Schlüssel kombiniert, um den MEK zu erstellen. Wenn zum Beispiel einer der Kints für den gesamten NVMe-Namensraum gemeinsam ist und der andere Kint für jeden Kext eindeutig ist, besteht somit die Fähigkeit zum Krypto-Löschen aller Daten in dem NVMe-Namensraum auf einmal (durch Überschreiben oder Löschen des ersten Kint, der für alle Kexts gemeinsam ist) oder aber durch einen Nutzer (durch Überschreiben oder Löschung des zweiten Kint, der feinkörniger ist und im Endeffekt pro sich ergebendem kombinierten Verschlüsselungsschlüssel eindeutig sein kann).
  • Zu beachten ist, dass andere Formen des Erstellens einer Abhängigkeit von einem oder mehreren Kints in einem ,Key per IO"-Schema bestehen, die einen bestimmten zusätzlichen Nutzen bieten können. Zum Beispiel könnten Daten eines ersten Nutzers zunächst unter Verwendung nur des Kext des Nutzers verschlüsselt werden. Der sich ergebende Chiffriertext kann unter Verwendung von Kint ein zweites Mal verschlüsselt werden. Wenn ein schlüsselloses Kopieren durchgeführt werden soll, kann in diesem Fall die Abhängigkeit von Kint rückgängig gemacht (entfernt) werden, indem eine einzige Verschlüsselung durchgeführt wird, die ohne die ,Key per IO"-Kexts des Nutzers durchgeführt werden kann. Dies ermöglicht, den Chiffriertext auf eine Ersatzeinheit zu kopieren, ohne dass ein beliebiger Schlüssel (wie z.B. der MEK oder der Kint) sicher von einer Einheit zu einer weiteren übertragen werden muss. Vielmehr können die beiden Einheiten (z.B. eine unwesentliche Einheit, die herausgenommen wird, und eine Ersatzeinheit, die ihren Platz einnimmt) vollständig unabhängige Kints haben.
  • Es bestehen andere Möglichkeiten, um eine ähnliche Fähigkeit wie die im vorherigen Absatz erörterte zu erreichen, ohne dass eine volle zweite Verschlüsselung aller Daten erforderlich ist, wie für Fachleute nach dem Lesen der vorliegenden Offenbarung deutlich wird. Dementsprechend besteht keine absolute Anforderung hinsichtlich einer sicheren Übertragung eines MEK, der einem schlüssellosen Kopieren zugehörig ist. Es gibt Lösungen wie z.B. die im vorhergehenden Absatz erörterte, die jedwede Notwendigkeit zum Durchführen einer sicheren Übertragung eines beliebigen Schlüssels beseitigen, der dem Chiffriertext zugehörig ist, der aus einer unwesentlichen Einheit ausgelesen wird.
  • Bei einem veranschaulichenden Ansatz wird nur eine umhüllte Form des Kint im nichtflüchtigen Speicher in dem ECD gespeichert. Der Kext wird nur außerhalb des ECD in nichtflüchtiger Form gespeichert und muss somit mindestens einmal nach einem Aus- und Einschaltzyklus und/oder nach einem Kaltstart dem ECD bereitgestellt werden (oder der EDC muss darauf zugreifen), um den MEK berechnen zu können. Der MEK kann nur berechnet werden, wenn der ECD sowohl Kint als auch Kext hat. Somit muss Kext dem ECD in einer bestimmten Form bereitgestellt werden (oder der EDC muss darauf zugreifen). Gemäß verschiedenen Aspekten bestehen viele Möglichkeiten, in denen dies erfolgen kann. Eine Möglichkeit besteht darin, den mit einem Verschlüsselungsschlüssel (KEK) umhüllten Kext in den ECD einzuleiten. Wenn der ECD einen KMIP-Client (KMIP = Key Management Interoperability Protocol) unterstützt, kann er alternativ den Kext über einen sicheren Kanal (der z.B. durch TLS oder IPsec geschützt ist) von einem externen Schlüsselmanager einer in der Technik bekannten Art abrufen und empfangen. Alternativ kann der Kext dem ECD in einer Weise ähnlich wie bei persönlichen Identifikationsnummern (PINs), z.B. in Klartextform, über einen sicheren Tunnel bereitgestellt werden, der für „Security Protocol In and Security Protocol Out“-Befehle eingerichtet ist, usw.
  • Kint wird vorzugsweise in dem ECD in umhüllter Form gespeichert, wobei dessen Umhüllung aufgehoben werden kann, bis der Umhüllungsschlüssel bereitgestellt wird (bei dem es sich um einen KEK handeln kann oder der stattdessen von einem oder mehreren Kennwörtern oder einer oder mehreren PIN(s) abhängen kann, die dem ECD zum Prüfen der Berechtigung einer oder mehrerer unterschiedlicher Rollen bereitgestellt werden, die der ECD unterstützt (z.B. Admin1)). Dementsprechend werden beliebige Teile des Schlüssels der Umhüllungsfunktion dem ECD von außerhalb des ECD bereitgestellt, um das Aufheben der Umhüllung des Kint zu ermöglichen. Sobald dem ECD alle erforderlichen Informationen (unter anderem Kext) bereitgestellt wurden oder er auf diese zugegriffen hat, die zum Berechnen des MEK notwendig sind, berechnet der ECD den MEK und ist anschließend in der Lage, bestehenden Chiffriertext zu entschlüsseln, um den sich ergebenden Klartext zu erzeugen (um z.B. auf einen Host-Lesevorgang zu reagieren), oder neu empfangene Kundendaten in Klartextform in Chiffriertext zu verschlüsseln (um z.B. einen Host-Schreibvorgang zu bedienen).
  • Bei einem Ansatz wird der Kint intern erzeugt und entweder mit einem KEK oder mit der PIN umhüllt, der bzw. die einer bestimmten Administrationsdienstleisterrolle (Administrative Security Provider role) (im Folgenden AdminSP-Rolle), z.B. Admin1, zugehörig ist. Auf den Kint kann somit zugegriffen werden, sobald der KEK in den ECD eingeleitet wurde oder die Berechtigung der Entität wie z.B. Admin1 anhand ihres Kennworts oder ihrer PIN geprüft wurde.
  • Möglicherweise ist es zulässig, dass der KEK oder die PIN, der/die den Kint umhüllt, sich als Teil einer Neuverschlüsselungsoperation (des Umhüllungsschlüssels) ändert. Der Kint selbst kann ebenfalls neu verschlüsselt werden, dies würde jedoch zu einer Krypto-Löschung von Daten führen, die durch die MEKs verschlüsselt sind, die aus dem in Gebrauch befindlichen Kint erzeugt worden, bevor der Kint neu verschlüsselt wurde.
  • Eine Realisierungsform umfasst, dass der ECD in einigen oder allen Fällen die Quelle der Erzeugung der Kints unter Verwendung derselben Art der internen Zufallszahlenerzeugungsfähigkeit ist, die zum Beispiel durch den Zufallsbefehl aufgerufen wird.
  • Nunmehr unter Bezugnahme auf 5 ist dort ein Flussdiagramm eines beispielhaften Verfahrens 500 zum Schreiben von krypto-löschbaren Daten in einem ,Key per IO"-Schema gemäß einem Ansatz gezeigt. Das Verfahren 500 kann unter anderem bei verschiedenen Ansätzen gemäß der vorliegenden Erfindung in beliebigen der in den anderen FIGUREN, insbesondere 4, bildlich dargestellten Umgebungen durchgeführt werden, die hierin beschrieben sind. Selbstverständlich kann das Verfahren 500 mehr oder weniger als die in 5 konkret beschriebenen Operationen umfassen, wie Fachleuten nach dem Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 500 kann durch beliebige geeignete Komponenten der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 500 bei verschiedenen Ansätzen teilweise oder vollständig durch eine Einheit wie z.B. einen Computer, einen Datenträger oder eine bestimmte andere Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software realisiert sind und vorzugsweise mindestens eine Hardwarekomponente enthalten, können in einer beliebigen Einheit genutzt werden, um einen oder mehrere Schritte des Verfahrens 500 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatteranordnung (FPGA) usw., Kombinationen davon und eine beliebige andere geeignete Datenverarbeitungseinheit, die in der Technik bekannt ist.
  • In Operation 502 wird eine Anforderung bei einer Einheit empfangen, die so konfiguriert ist, dass sie ,Key per IO"-Datenoperationen auf einem Speichermedium durchführt. Die Anforderung dient zum Schreiben erster Daten auf das Speichermedium in verschlüsselter Form unter Verwendung eines ersten Kint, der den ersten Daten zugehörig ist.
  • In Operation 504 wird auf einen innerhalb der Einheit gespeicherten Kint zugegriffen.
  • In Operation 506 wird ein erster MEK unter Verwendung des internen Schlüssels und des ersten externen Schlüssels erzeugt.
  • In Operation 508 werden die ersten Daten unter Verwendung des ersten MEK verschlüsselt.
  • In Operation 510 werden die verschlüsselten ersten Daten in einem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben. Bei dem ersten Bereich von logischen Blockadressen handelt es sich vorzugsweise um einen zulässigen Bereich von logischen Blöcken (z.B. in dem NVMe-Namensbereich) des Speichermediums, der Millionen von Sektoren lang sein kann. Dies darf nicht mit dem eingeschränkten Bereich des spezifischen Schreibbefehls verwechselt werden, der insgesamt einem einzigen Kext zugehörig ist.
  • In Operation 512 wird eine zweite Anforderungen bei der Einheit empfangen. Bei der zweiten Anforderung handelt es sich um eine Anforderung zum Schreiben von zweiten Daten auf das Speichermedium in verschlüsselter Form unter Verwendung eines zweiten externen Schlüssels, der den zweiten Daten zugehörig ist, wobei sich der zweite externe Schlüssel von dem ersten externen Schlüssel unterscheidet.
  • In Operation 514 wird auf den innerhalb der Einheit gespeicherten internen Schlüssel zugegriffen.
  • In Operation 516 wird ein zweiter MEK unter Verwendung des internen Schlüssels und des zweiten externen Schlüssels erzeugt.
  • In Operation 518 werden die zweiten Daten unter Verwendung des zweiten MEK verschlüsselt.
  • In Operation 520 werden die verschlüsselten zweiten Daten in dem ersten Bereich von logischen Blockadressen des Speichermediums auf das Speichermedium geschrieben. Der zweite Schreibvorgang könnte in einen beliebigen Bereich von logischen Blockadressen in dem zulässigen Bereich von logischen Blockadressen (z.B. in dem NVMe-Namensraum) erfolgen, der sich mit dem Bereich von logischen Blockadressen überlappen kann oder nicht überlappen kann, in den durch den ersten Schreibbefehl geschrieben wurde.
  • Zusätzliche Operationen können bei diesem Verfahren 500 durchgeführt werden, und beliebige der hierin beschriebenen Merkmale können in dem Verfahren 500 realisiert sein.
  • Nunmehr unter Bezugnahme auf 6 ist dort ein Flussdiagramm eines beispielhaften Verfahrens 600 zum Durchführen von Krypto-Löschen an Daten in einem ,Key per IO"-Schema gemäß einem Ansatz gezeigt. Das Verfahren 600 kann unter anderem bei verschiedenen Ansätzen gemäß der vorliegenden Erfindung in beliebigen der in den anderen FIGUREN, insbesondere den 4 bis 5, bildlich dargestellten Umgebungen durchgeführt werden, die hierin beschrieben sind. Selbstverständlich kann das Verfahren 600 mehr oder weniger als die in 6 konkret beschriebenen Operationen umfassen, wie Fachleuten nach dem Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 600 kann durch beliebige geeignete Komponenten der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 600 bei verschiedenen Ansätzen teilweise oder vollständig durch eine Einheit wie z.B. einen Computer, einen Datenträger oder eine bestimmte andere Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software realisiert sind und vorzugsweise mindestens eine Hardwarekomponente enthalten, können in einer beliebigen Einheit genutzt werden, um einen oder mehrere Schritte des Verfahrens 600 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatteranordnung (FPGA) usw., Kombinationen davon und eine beliebige andere geeignete Datenverarbeitungseinheit, die in der Technik bekannt ist.
  • In Operation 602 wird bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium unter Verwendung einer ,Key per IO"-Operation durchführt, eine Anforderung empfangen, um eine Krypto-Löschung aller Daten in mindestens einem Bereich von logischen Blockadressen eines Speichermediums zu bewirken. Einzelne Abschnitte der Daten in dem mindestens einen Bereich von logischen Blockadressen sind jeweils einem eindeutigen Kext zugehörig, der z.B. eindeutigen Nutzern entspricht. Die einzelnen Abschnitte der Daten werden jeweils unter Verwendung eines eindeutigen MEK verschlüsselt, der unter Verwendung eines Kint und des eindeutigen Kext erstellt wurde, der dem Abschnitt der Daten zugehörig ist.
  • In Operation 604 wird das Krypto-Löschen erreicht, indem sowohl der Kint zerstört wird (z.B. durch Löschen des Kint, Überschreiben des Kint und/oder physisches Zerstören eines Speichers, der den Kint speichert) als auch beliebige MEK(s) in der Einheit zerstört werden, die aus diesem Kint erstellt wurden.
  • Kryptografie
  • Kint und Kext können XOR-verknüpft oder anderweitig kombiniert werden, um den MEK zu erstellen.
  • Eine Möglichkeit zum Überprüfen, dass der sich ergebende MEK korrekt ist (z.B. im Vergleich zu einer Verschiebung um ein Bit, was auftreten würde, wenn der Kext um ein Bit verschoben war), besteht in der Verwendung eines Schlüsselsignaturkonzepts. Das Schlüsselsignaturkonzept umfasst das Verwenden des MEK zum Verschlüsseln eines bekannten Werts, und der sich ergebende Chiffriertext wird anschließend als Signatur dieses MEK gespeichert.
  • Zu beachten ist, dass bei einigen der vorstehenden Ansätze sowohl Kext, Kint als auch beliebige Schlüssel, die zum Umhüllen von Kext verwendet werden (z.B. sind der Schlüsselverschlüsselungsschlüssel (KEK) und Kint zu dem geworden, was als kryptografisch sensible Parameter (Cryptographically Sensitive Parameters, CSPs) bezeichnet wird. Sofern eine Wahrscheinlichkeit besteht, dass die zwischen dem ECD und dem Host übertragenen Daten aufgezeichnet werden könnten, sollte der Kanal zwischen diesen mit einer bestimmten Form von Verschlüsselung geschützt werden. Eine Option, auf die ,Key per IO" eingeht, besteht in der Verwendung eines KEK, der dem Host und dem ECD bekannt ist, wobei der Host den Kext mit dem KEK umhüllt, bevor der umhüllte KEK an den ECD gesendet wird, und der ECD diesen umhüllten Kext empfängt und die Umhüllung mit demselben KEK aufhebt. Eine weitere Option besteht in der Verwendung von Daten auf dem Übertragungsweg (data in flight, EDiF) wie z.B. Internet Protocol Security (IPsec), Fibre Channel-Security Protocol (FC-SP) oder Transport Layer Security (TLS). In einigen Datenzentren bestehen keinerlei Bedenken hinsichtlich des Übertragens von Daten zu und von einem ECD in ihrer internen Umgebung; die Bedenken beziehen sich lediglich darauf, was mit diesem ECD geschieht, nachdem er diese geschützte Umgebung verlassen hat, weswegen eine absolute Gewissheit über eine Krypto-Löschung wünschenswert ist.
  • Zu beachten ist, dass im Fall des XTS-Verschlüsselungsmoduls (z.B. XTS-AES-256) zwei verschlüsselungsbezogene Schlüssel vorhanden sind, ein Verschlüsselungsschlüssel und ein separater Feinabstimmungsschlüssel (tweak key). Bei einigen Ansätzen können diese beiden Schlüssel aus einem einzigen Stammschlüssel erzeugt werden (über Schlüsselableitung). Dementsprechend kann ein 256-bit-MEK bereitgestellt und verwendet werden, um die beiden 256-bit-Schlüssel zu erzeugen (Schlüsselableitung), die für XTS-AES-256 erforderlich sind.
  • Zu Krypto-Löschoptionen bei ECDs, bei denen verschiedene Aspekte der vorliegenden Erfindung realisiert sind, gehören nicht nur die erforderliche Zerstörung (z.B. durch Überschreiben oder Löschung) beliebiger MEKs innerhalb des ECD, sondern auch eine oder mehrere der folgenden:
    1. 1. Wenn ein Benutzer alle Daten auf einem funktionsfähigen ECD krypto-löschen möchte, aktiviert der Benutzer hierzu einfach eine oder mehrere der hierin vorgeschlagenen Möglichkeiten. Zum Beispiel werden die umhüllten Schlüsselstrukturen überschrieben, die den Kint enthalten, sodass der Kint nun nicht mehr wiederherstellbar ist. Bei diesem Szenario besteht keine Notwendigkeit, auch jeden Kext zu löschen, die MEKs sind nicht wiederherstellbar und können nicht regeneriert werden, da der Kint nicht mehr vorhanden ist.
    2. 2. Wenn ein Benutzer einen ECD krypto-löschen möchte (da es sich möglicherweise um einen nicht funktionsfähigen ECD, der nicht auf Befehle reagiert, oder um einen fehlenden ECD handelt), aber aus irgendeinem Grund den Punkt „1“ nicht durchführen kann, hat der Benutzer nun eine weitere Option, anstatt jeden Nutzer anzuweisen, seinen Kext unabhängig von dem ECD zu löschen. Bei diesem Szenario besteht keine Notwendigkeit, alle umhüllten Versionen des Kint zu löschen; der MEK ist nicht wiederherstellbar, da der Kint nicht mehr vorhanden ist. Wenn bei diesem Szenario jemand zu einem Zeitpunkt in der Zukunft die umhüllten Schlüsselstrukturen eines ausgefallenen ECD aufbricht und auf diese Weise Zugang zu dem Kint erhalten würde, wäre sein gesamtes Bemühen vergeblich, da der MEK nicht erreichbar bleibt. Deswegen benötigt er den Kext, der zerstört wurde. Dementsprechend befindet er sich nach wie vor in dem Szenario, bei dem der einzig gangbare Weg zum Zugreifen auf Kundendaten darin besteht, den Verschlüsselungsalgorithmus (z.B. XTS-AES-256) aufzubrechen, der den Chiffriertext der Benutzerdaten selbst schützt.
    3. 3. Wenn ein Benutzer besonders besorgt hinsichtlich der Sicherheit des Krypto-Löschens ist, kann sich der Benutzer zum Löschen sowohl von Kint als auch Kext entscheiden. Dieses Szenario ist möglicherweise das wahrscheinlichste, wenn Bedenken bestehen, dass der Kext aufgezeichnet worden sein könnte (z.B. während der Übertragung zu dem ECD, selbst wenn er durch eine bestimmte Umhüllung oder einen sicheren Kanal geschützt ist, dessen Sicherheit aufgebrochen wurde (oder vielleicht anschließend aufgebrochen werden könnte)). Ansonsten sollte jedoch kein Grund bestehen, aus dem sowohl Kint als auch Kext gelöscht werden müssen, da die Kryptografie beteiligt ist. Ein allgemeiner Ansatz, der ziemlich widerstandsfähig ist (z.B. in Bezug darauf, dass der ECD funktionsunfähig wird), besteht darin, stets zu versuchen, sowohl den Kint als auch den Kext zu löschen, aber sich damit zu begnügen, solange eine Bestätigung dafür vorliegt, dass eine der beiden Löschungen erfolgreich war.
    4. 4. Wenn ein Nutzer die Daten des Nutzers krypto-löschen möchte, kann der Nutzer den Kext des Benutzers zerstören. Eine beliebige Kopie des Kext des Nutzers auf dem ECD (und ein beliebiger zugehöriger MEK) sollten ebenfalls gelöscht werden, z.B. durch Ein- und Ausschalten der Einheit oder durch Aufruf des Befehls „Einzigen MEK löschen“ oder „Alle MEKs löschen“.
  • Krypto-Löschen bei Magnetaufzeichnungsband und anderem transportablen Speicher
  • Wie vorstehend angemerkt, sind bei einigen Ansätzen verschlüsselte Daten auf einem nichtflüchtigen Speichermedium wie z.B. einem magnetischen Aufzeichnungsmedium (z.B. Band, Platte) oder einem Halbleiterspeicher (z.B. NAND-Flash, NVRAM usw.) gespeichert. Um noch einmal darauf hinzuweisen, beliebige der vorstehend dargelegten Operationen, Konzepte usw. können bei den vorliegenden Ansätzen verwendet werden. Zum Beispiel werden die Operationen der Verfahren 400, 500 der 4 bis 5 mit nachstehend aufgeführten geringfügigen Modifikationen durchgeführt.
  • Bei einigen Ansätzen kann Kint in einer bestimmten Einheit, z.B. Datenträger, Computer usw., gespeichert werden, die mit dem Medium zusammenarbeitet.
  • Bei anderen Ansätzen, insbesondere denen, bei denen wechselbare Medien realisiert sind, wird Kint auf und/oder bei dem Speichermedium gespeichert. Dementsprechend würde ein Verfahren, das den Verfahren 400, 500 der 4 bis 5 ähnelt, stattdessen den Kint von dem Medium, auf dem die Daten gespeichert sind, aus einem Speicher wie z.B. einem Kassettenspeicher, der physisch mit dem Medium verbunden ist, und dergleichen abrufen. In Fällen, in denen der Kint zerstört werden soll werden die Strukturen, die den Kint auf dem wechselbaren Medium speichern, idealerweise zerstört.
  • Nunmehr unter Bezugnahme auf 7 ist dort ein Verfahren 700 gemäß einem Ansatz gezeigt. Das Verfahren 700 kann unter anderem bei verschiedenen Ansätzen gemäß der vorliegenden Erfindung in beliebigen der in den anderen FIGUREN bildlich dargestellten Umgebungen durchgeführt werden, die hierin beschrieben sind. Selbstverständlich kann das Verfahren 700 mehr oder weniger als die in 7 konkret beschriebenen Operationen umfassen, wie Fachleuten nach dem Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 700 kann durch beliebige geeignete Komponenten der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 700 bei verschiedenen Ansätzen teilweise oder vollständig durch eine Einheit wie z.B. einen Computer, einen Datenträger oder eine bestimmte andere Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software realisiert sind und vorzugsweise mindestens eine Hardwarekomponente enthalten, können in einer beliebigen Einheit genutzt werden, um einen oder mehrere Schritte des Verfahrens 700 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatteranordnung (FPGA) usw., Kombinationen davon und eine beliebige andere geeignete Datenverarbeitungseinheit, die in der Technik bekannt ist.
  • Wie in 7 gezeigt, kann das Verfahren 700 mit Operation 702 starten, bei der eine Einheit, die so konfiguriert ist, dass sie ",Key per IO"-Operation"-Datenoperationen auf einem Speichermedium wie z.B. Lesen und/oder Schreiben von Daten von dem/auf das Speichermedium durchführt, eine Anforderung zum Durchführen einer Datenoperation auf dem Speichermedium in verschlüsselter Form empfängt. Bei der empfangenen Anforderung kann es sich einfach um eine Anforderung zum Schreiben von Daten, eine Anforderung zum Lesen von Daten oder um beides handeln. Darüber hinaus kann die Anforderung zusätzliche Informationen wie z.B. den Kext enthalten. Wie vorstehend aufgeführt, sind die bei dem Verfahren 700 verwendeten Kexts in der Einheit vorzugsweise nur im flüchtigen Speicher gespeichert.
  • In Operation 704 wird ein auf und/oder bei dem Speichermedium gespeicherter Kint abgerufen. Dieser Ablauf kann das Abrufen des Kint von dem Medium, auf den die Daten gespeichert sind, aus einem Speicher wie z.B. einem Kassettenspeicher, der physisch mit dem Medium verbunden ist, und dergleichen umfassen.
  • Bei dem Speichermedium kann es sich um eine beliebige hierin offenbarte Art handeln, z.B. Magnetband, Magnetplatte, NVRAM usw. Dementsprechend kann es sich bei der Einheit um eine beliebige Art von Datenspeichereinheit handeln, z.B. Bandlaufwerk, SSD, HDD usw.
  • Wie vorstehend angemerkt, ist der Kint bei einigen Ansätzen auf und/oder bei dem Speichermedium in roher (unverschlüsselter) Form gespeichert. Bei anderen Ansätzen ist der Kint auf und/oder bei dem Speichermedium in umhüllter Form (z.B. verschleierter Form, verschlüsselter Form, kennwortgeschützter Form usw.) gespeichert. Informationen wie z.B. ein weiterer Schlüssel, ein KEK, eine PIN oder ein Kennwort zum Aufheben der Umhüllung des Kint können empfangen und verwendet werden, um die Umhüllung des Kint aufzuheben.
  • Bei bevorzugten Aspekten ist die Einheit so konfiguriert, dass sie eine Übertragung des Kint in beliebiger Form nach außerhalb der Einheit unterbindet. Ein interner Mikroprozessor oder eine interne Steuereinheit der Einheit können jedoch auf den Kint von dem Speichermedium oder aus einer anderen Quelle zugreifen, die mit dem Speichermedium verbunden ist.
  • In Operation 706 wird ein Kext, der den Daten zugehörig ist, aus einer externen Quelle empfangen. Bei der externen Quelle kann es sich um eine beliebige externe Quelle handeln. Zum Beispiel kann es sich bei der externen Quelle um einen Anforderer der Daten, einen Schlüsselspeicher, einen Schlüsselserver, eine Schlüsseleingabe durch einen Benutzer (z.B. über eine Tastatur usw.) handeln.
  • In Operation 708 wird ein MEK unter Verwendung von Kint und Kext erzeugt. Eine beliebige bekannte sichere Technik kann zum Erstellen eines MEK aus Kint und Kext verwendet werden.
  • In Operation 710 wird die angeforderte Datenoperation durchgeführt, z.B. unter Verwendung des MEK und sonstiger herkömmlicher Techniken.
  • In Operation 712 wird als Reaktion auf das Empfangen einer Anforderung zum Krypto-Löschen von Daten auf dem Medium Kint zusammen mit beliebigen MEKs zerstört, die unter Verwendung dieses Kint erstellt wurden.
  • Wenn zweite Daten durch die Einheit auf dem Speichermedium gespeichert werden sollen, werden die zweiten Daten empfangen. Ein weiterer externer Schlüssel (Kext2) kann aus einer zweiten externen Quelle empfangen werden. Wenn dies der Fall ist, wird ein zweiter MEK unter Verwendung von Kint und Kext2 erzeugt. Die Datenoperation wird unter Verwendung des zweiten MEK durchgeführt. Zu beachten ist, dass es sich bei der zweiten externen Quelle um dieselbe wie die vorstehend erwähnte externe Quelle oder um eine Quelle handeln kann, die sich davon unterscheidet. Kext2 unterscheidet sich jedoch von Kext.
  • Aspekte der verschiedenen Operationen von 7 werden im Folgenden bereitgestellt. Derartige Aspekte werden lediglich beispielhaft bereitgestellt und sind nicht als Einschränkung gedacht. Darüber hinaus können derartige Aspekte in einer beliebigen Weise gemäß der Fülle möglicher Ansätze der vorliegenden Erfindung kombiniert werden. Zum Beispiel kann das Verfahren 700 ähnliche Merkmale wie die vorstehend in Bezug auf die 4 bis 6 dargelegten enthalten oder einbeziehen, z.B. Schlüsselerzeugung usw.
  • Kint wird bei dem Speichermedium gespeichert, z.B. auf dem Medium selbst und/oder bei dem Speichermedium, z.B. in einem separaten Speicher. Kint wird vorzugsweise in umhüllter Form gespeichert. Zum Beispiel kann Kint auf einem Abschnitt eines Magnetaufzeichnungsbands, in einem Bandkassettenspeicher oder in beidem gespeichert werden. Auf diese Weise ist Kint mi dem Magnetaufzeichnungsband transportabel. Ebenso kann bei einer NVRAM-Einheit wie z.B. einem Speicherstick, einer Speicherkarte usw. Kint in dem NVRAM der Einheit, in einem separaten Speicher der Einheit usw. gespeichert werden.
  • Kint wird vorzugsweise intern in der Einheit (z.B. Datenträger, Computer usw.) erstellt, die mit dem Speichermedium arbeitet. Vorzugsweise ist die Einheit so konfiguriert, dass sie keine Sichtbarkeit des Kint von außen oder ein Kopieren des Kint nach außerhalb der Einheit zulässt, mit Ausnahme des Speichermediums/oder des Speichers, die mit der Einheit verbunden sind. Vorzugsweise überträgt die Einheit den Kint zu dem Speichermedium und/oder dem Speicher, die mit der Einheit verbunden sind, und löscht den Kint von anderen Stellen in der Einheit. Somit befindet sich der Kint bei einigen Ansätzen wie z.B. denen, die in Zusammenhang mit wechselbaren Medieneinheiten stehen, bei dem Speichermedium.
  • In dem Fall einer Einheit, bei der das Speichermedium in die Einheit selbst integriert ist (z.B. ein selbstverschlüsselnder Datenträger (SED) eines HDD oder SSD oder ein verschlüsselungsfähiger Datenträger (ECD)) kann Kint innerhalb der Einheit gespeichert werden. Zum Beispiel könnte Kint in einem (möglicherweise hermetisch) geschlossenen Gehäuse an beliebiger Stelle innerhalb dieser normalerweise rechteckigen Umgrenzung aufbewahrt werden. In dem Fall eines SSD handelt es sich bei dem Hauptteil des nichtflüchtigen Speichers (in dem Benutzerdaten gespeichert werden) oftmals um NAND-Flash. Kint (möglicherweise in umhüllter Form) kann dort ebenfalls gespeichert werden. Bei anderen Ansätzen kann Kint stattdessen in einem (von Benutzerdaten) getrennten nichtflüchtigen Speicher innerhalb des Gehäuses aufbewahrt werden, zum Beispiel: in einem anderen NAND-Flash oder NOR-Flash-Chip; in einem magnetischem Direktzugriffsspeicher (MRAM); in einem Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM); in einem ferroelektrischen Direktzugriffsspeicher (FeRAM); in einem Phasenänderungsspeicher (phase-change memory, PCM); in einem Widerstands-Direktzugriffsspeicher (resistive random-access memory, RRAM); in anderen Formen von NVRAM (der weniger technologiespezifisch als die vorhergehenden Begriffe ist); usw. Zu beachten ist, dass Kint auch in einer Form von ROM wie z.B. EEPROM gespeichert werden kann, der gelöscht werden kann. Somit kann Kint bei verschiedenen Ansätzen in einer anderen Form von Speicher als der Speicher gespeichert werden, der die Benutzerdaten speichert.
  • Bei anderen Ansätzen kann Kint außerhalb der Einheit erstellt und der Einheit bereitgestellt und in dieser gespeichert werden.
  • Kext kann innerhalb der Einheit oder außerhalb der Einheit oder durch gemeinsame Beiträge von innerhalb und außerhalb der Einheit erstellt werden.
  • Bei verschiedenen Ansätzen wird Kext dem flüchtigen Speicher (z.B. SRAM) in dem Bandlaufwerk, in dem Computer usw. bereitgestellt und/oder darin gespeichert, um dem Datenträger, dem Computer usw. zu ermöglichen, den MEK zu berechnen. Bei einem Ansatz kann Kext in das Bandlaufwerk, in den Computer usw. jedes Mal eingegeben werden, wenn er benötigt wird. Bei einem weiteren Ansatz kann Kext, sobald er der Einheit bereitgestellt wurde, intern in der Einheit im flüchtigen Speicher auf dem Bandlaufwerk, in dem Computer usw. aufbewahrt werden, wobei Kext in diesem Fall vorzugsweise umhüllt ist.
  • Es sollte klar sein, das verschiedene hierin aufgeführte Ansätze mit einer großen Auswahl von Speichermedien realisiert werden können, unter anderem zum Beispiel mit NVRAM-Technologien wie z.B. NAND-Flash-Speicher, NOR-Flash-Speicher, Phasenänderungsspeicher (PCM), magnetorestriktiver RAM (MRAM) und Widerstands-RAM (RRAM). Um einen Kontext bereitzustellen, der ausschließlich der Erleichterung für den Leser dient, können verschiedene Ansätze unter Bezugnahme auf eine Art von nichtflüchtigem Speicher beschrieben sein. Dies geschieht lediglich beispielhaft und sollte nicht als die Erfindung einschränkend angesehen werden, die in den Ansprüchen definiert ist.
  • Bei einem veranschaulichenden Ansatz wird Kint in nichtflüchtiger Form nur bei dem Speichermedium in umhüllter Form gespeichert. Und Kext, obwohl er zeitweilig im flüchtigen Speicher gespeichert werden kann, wird nur in nichtflüchtiger Form außerhalb des Speichermediums gespeichert.
  • Der Datenträger, der Computer usw., der mit dem Speichermedium arbeitet, ruft Kint von dem Speichermedium ab und empfängt oder erhält Kext, sodass der MEK berechnet werden kann.
  • Kext, der vorzugsweise nicht lokal auf dem Datenträger, Computer usw. gespeichert wird, kann dem Datenträger, Computer usw. in bestimmter Form bereitgestellt werden. Gemäß verschiedenen Aspekten, unter anderem gemäß einem beliebigen der im vorhergehenden Abschnitt aufgeführten Ansätze, bestehen viele Möglichkeiten, in denen dies erfolgen kann. Zum Beispiel besteht eine Möglichkeit darin, dass der Host den Kext mit einem KEK umhüllt, bevor er ihn zu dem ECD überträgt. Eine weitere Möglichkeit besteht darin, dass der Datenträger, der Computer usw. einen KMIP-Client unterstützt und den Kext über einen sicheren Kanal von einem externen KMIP-Server (Schlüsselmanager) einer in der Technik bekannten Art empfängt.
  • Vorzugsweise kann Kext nur in flüchtiger Form innerhalb des ECD gespeichert werden. Ein Schlüssel zum Aufheben der Umhüllung von Kint (z.B. der KEK) kann von dem Host, einem externen Sicherheitsorchestrator, einem Benutzer, von einem Schlüsselmanager usw. empfangen werden.
  • Kint wird vorzugsweise bei dem Speichermedium in umhüllter Form gespeichert, und dessen Umhüllung kann aufgehoben werden, nachdem dem Datenträger, dem Computer usw. der Schlüssel der Umhüllungsfunktion bereitgestellt wurde (bei dem es sich um den KEK oder die PINs handeln kann oder der von diesen abhängig sein kann, die dem Datenträger, dem Computer usw. bereitgestellt wurden, um die Berechtigung unterschiedlicher Benutzer in Bezug auf unterschiedliche Rollen zu prüfen, die der Datenträger, der Computer usw. unterstützt). Dementsprechend werden beliebige Teile des Schlüssels der Umhüllungsfunktion von außerhalb das Datenträgers, des Computers usw. dem Datenträger, dem Computer usw. bereitgestellt, um das Aufheben der Umhüllung des Kint zu ermöglichen. Sobald der Datenträger, der Computer usw. alle erforderlichen Informationen (unter anderem Kext) gesammelt hat, die zum Berechnen des MEK notwendig sind, berechnet der Datenträger, der Computer usw. den MEK und ist anschließend in der Lage, bestehenden Chiffriertext zu entschlüsseln, um den sich ergebenden Klartext zu erzeugen (um z.B. auf einen Host-Lesevorgang zu reagieren), oder um neue Kundendaten in Klartextform in Chiffriertext zu verschlüsseln (um z.B. einen Host-Schreibvorgang zu bedienen).
  • Bei ,Key per IO" erfolgt die Erzeugung von Kext außerhalb des ECD durch einen Host oder durch einen Schlüsselmanager, mit dem der Host zusammenwirkt.
  • Bei mittels Bandlaufwerken realisierten Ansätzen ist es bevorzugt, dass der Kint von den Bandmedien kommt und der Kext von einer bestimmten Schnittstelle kommt und dass die Berechnung des MEK intern in dem verschlüsselungsfähigen Bandlaufwerk erfolgt und das Bandlaufwerk keinesfalls verlässt.
  • Zu Systemen gemäß verschiedenen Ansätzen gehört eine Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, wobei die Einheit einen Prozessor und Logik, die in den Prozessor integriert ist, die durch den Prozessor ausführbar ist, oder in den Prozessor integrierte und durch diesen ausführbare Logik enthält, wobei die Logik so konfiguriert ist, dass sie bewirkt, dass die Einheit einige oder alle der vorstehend aufgeführten Operationen durchführt, z.B. die Operationen der 4 bis 7.
  • Zu Computerprogrammprodukten zum Ermöglichen und/oder Durchführen von Krypto-Löschen gemäß verschiedenen Ansätzen gehören ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei die Programmanweisungen durch eine Einheit ausführbar sind, die so konfiguriert ist, dass sie einige oder alle der vorstehend aufgeführten Operationen durchführt, z.B. die Operationen der 4 bis 7.
  • Beispielhafte Realisierungsformen
  • Ein veranschaulichender Prozess zum Schützen einer mittels ,Key per IO" verschlüsselungsfähigen Speichereinheit wie z.B. eines verschlüsselungsfähigen Datenträgers (ECD) gemäß einem Ansatz umfasst die folgenden Operationen:
    1. 1. Erzeugen eines Kint und Speichern dieses Kint intern in der Speichereinheit in einer sicheren Weise intern in der Speichereinheit. Normalerweise würde Kint keinesfalls in Klartextform im nichtflüchtigen Speicher gespeichert werden. Stattdessen würde Kint in umhüllter Form gespeichert.
    2. 2. Kext wird außerhalb des ECD erzeugt und gespeichert:
      1. A. Wenn Kext außerhalb der Speichereinheit erstellt wurde, muss dieser Kext bei Bedarf der Speichereinheit bereitgestellt werden.
      2. B. Wenn sich ein Schlüssel, der zum Umhüllen des Kext verwendet wurde (z.B. der KEK oder die PIN), nicht bereits in der Einheit befindet, muss er ebenfalls der Einheit bereitgestellt oder durch diese abgerufen und zum Aufheben der Umhüllung des Kext verwendet werden.
      3. C. Normalerweise werden viele Kexts verwendet, z.B. einer für jeden Nutzer, der Daten auf dem Datenträger speichert.
    3. 3. Die Speichereinheit verwendet Kint und Kext zum Berechnen des MEK.
    4. 4. Der MEK wird direkt oder indirekt verwendet, um Daten zu verschlüsseln, um Chiffriertext zu erstellen, und Chiffriertext zu entschlüsseln, um Klartext zu erstellen.
  • Ein veranschaulichender Prozess nach einem Stromausfall oder einem Kaltstart, um wieder Zugriff auf Daten auf einem mittels ,Key per IO" verschlüsselungsfähigen Speichereinheit wie z.B. auf einem verschlüsselungsfähigen Datenträger (ECD) zu erhalten, umfasst gemäß einem Ansatz die folgenden Operationen:
    1. 1. Veranlassen, dass Kext der Speichereinheit bereitgestellt wird.
    2. 2. Zugreifen auf Kint intern in der Speichereinheit, was ein kryptografisches Aufheben der Umhüllung von Kint einschließen kann, was eine oder mehrere Umhüllungs- oder Zugriffsschlüssel (z.B. KEK(s) oder PIN(s)) erfordern kann.
    3. 3. Die Speichereinheit verwendet Kint und Kext zum Berechnen des MEK.
    4. 4. Der MEK wird direkt oder indirekt verwendet, um Daten zu verschlüsseln, um Chiffriertext zu erstellen, und Chiffriertext zu entschlüsseln, um Klartext zu erstellen.
  • Prozess zum Außerbetriebsetzen einer Einheit oder zum Sichern einer gestohlenen Einheit
  • Ein veranschaulichender Prozess, der durchgeführt werden kann, wenn eine Speichereinheit außer Betrieb gesetzt werden soll, z.B., da ihre Hintergrundfehlerrate zu groß geworden ist (was z.B. wegen zu vieler Schreibzyklen geschehen kann, oder da sie möglicherweise „ausgefallen“ ist und eine bestimmte Operation nicht erfolgreich beendet hat), umfasst gemäß einem Ansatz die folgenden Operationen:
    1. 1. Senden eines Befehls an die Speichereinheit, der sie anweist, ihren Kint und alle MEKs zu zerstören, die sich gegenwärtig innerhalb der Einheit befinden, die durch Verwendung dieses Kint erzeugt wurden.
    2. 2. Wurde das Zerstören von Kint und der MEKs erfolgreich beendet? Wenn:
      • • ja, wurden die unter diesem/diesen MEK/s verschlüsselten Daten erfolgreich krypto-gelöscht.
        • • In diesem Fall kann, obwohl keine Notwendigkeit zum Zerstören von Kext besteht, dies ebenfalls vorgenommen werden.
      • • nein, in diesem Fall, indem nicht darauf vertraut werden kann, dass ein beliebiges Krypto-Löschen stattgefunden hat:
        • • Zerstören von Kext außerhalb der Speichereinheit und somit Krypto-Löschen der Daten, die diesem Kext entsprechen, auf der Speichereinheit durch externe Mittel.
        • • Abschalten oder Kaltstarten der Speichereinheit, um sich zu vergewissern, dass die Speichereinheit kein flüchtiges Abbild eines Schlüssels aufbewahrt.
  • Zu beachten ist, dass eine Schlüssellöschung auch in umgekehrter Reihenfolge vorgenommen werden kann, wobei Kext zuerst zerstört wird, vorzugsweise mit einem anschließenden Versuch zum Löschen von Kint. Ein veranschaulichender Prozess gemäß einem Ansatz umfasst die folgenden Operationen:
    1. 1. Zerstören von Kext außerhalb der Speichereinheit und somit Krypto-Löschen der Daten auf der Speichereinheit, die diesem Kext entsprechen, durch externe Mittel, oder Zerstören aller Kexts zum Krypto-Löschen aller Daten auf der Speichereinheit.
    2. 2. Senden eines Befehls an die Speichereinheit, der sie zum Krypto-Löschen ihres/ihrer Kint(s) anweist, die dem/den Kext(s) zugehörig sind, der/die den Daten entspricht/entsprechen, die krypto-gelöscht werden sollen.
    3. 3. Wurde das Krypto-Löschen von Kint erfolgreich beendet? Wenn:
      • • ja, wurden die unter diesem/diesen MEK/s verschlüsselten Daten durch Zerstörung von Kint und Kext erfolgreich krypto-gelöscht.
        • • Kaltstarten der Speichereinheit durch Verwendung des Einschalten-Ausschalten-Rücksetzbefehls oder Durchführen eines tatsächlichen Ein- und Ausschaltens (d.h. Trennen der Stromversorgung während eines Zeitraums und anschließendes Wiederherstellen der Stromversorgung), um sicherzustellen, dass die Speichereinheit kein flüchtiges Abbild eines beliebigen Kext oder MEK aufbewahrt.
      • • nein, aber der Kext außerhalb der Speichereinheit wurde zerstört, und somit wird ein Krypto-Löschen der Speichereinheit durch externe Mittel herbeigeführt.
  • Zu beachten ist außerdem, dass die Zerstörung oder Löschung aller Kexts und MEKs erreicht werden kann, indem die Einheit ausgeschaltet wird und/oder ein Kaltstart durchgeführt wird (der z.B. durch Aufrufen eines Zurücksetzens mittels Ein- und Ausschalten aufgerufen wird). Diese MEKs können zuletzt zerstört werden. Aber diese Zerstörung muss durchgeführt werden, bevor die mit diesen MEKs verschlüsselten Daten wirklich krypto-gelöscht werden. Kurz gesagt, um das Krypto-Löschen von Daten zu erreichen, die mit einem oder mehreren MEKs verschlüsselt sind, müssen entweder die MEKs und der zugehörige Kint zerstört werden, oder die MEKs und die zugehörigen Kexts müssen zerstört werden.
  • Zu beachten ist außerdem, dass, wenn eine Speichereinheit gestohlen wird oder nicht krypto-gelöscht wurde, bevor sie aus dem Speichersystem entfernt wurde, und dann verloren geht, z.B. bei der Überführung zu einem anderen Ort, da ein Krypto-Löschen von Daten durch Zerstörung von Kint nicht mehr möglich ist, da kein physischer Zugriff auf die Speichereinheit besteht, stattdessen Kext gelöscht werden muss, was selbst ohne physischen Zugriff auf die Speichereinheit möglich ist, solange Kext nicht (z.B. heimlich) aufgezeichnet wurde.
  • 8 stellt Abläufe bildlich dar, die an einer unwesentlichen Einheit ohne Aspekte der vorliegenden Erfindung durchgeführt werden können, die Abläufen gegenübergestellt sind, die an einer unwesentlichen Einheit mit einem oder mehreren Aspekten der vorliegenden Erfindung durchgeführt werden können. Die Tabelle in 8 ist selbsterklärend und lediglich beispielhaft dargelegt. Es sollte beachtet werden, dass die Ausführung von Krypto-Löschen gemäß der letzten Zeile der Tabelle in 8, d.h. durch bestätigte Zerstörung des Kint nur in einer ,Key per IO"-Umgebung möglich wird, wenn Aspekte der vorliegenden Erfindung realisiert sind. Zu beachten ist außerdem, dass, wenn eine bestätigte Zerstörung von Kint und beliebigen MEKs erreicht wird, die gegenwärtig in der Einheit durch Verwendung von Kint erzeugt werden, das Krypto-Löschen der Daten viel schneller erreichbar ist (z.B. in weniger als einer Sekunde), als dies durch bestätigtes „Gesamten Chiffriertext löschen“ möglich ist, wie zwei Zeilen oberhalb davon bildlich dargestellt, zu dessen Erreichen viele Stunden nötig sein könnten (allein die uneingeschränkte Bestätigung durch Lesevorgänge, dass alle Seiten gründlich gelöscht wurden, möglicherweise durch Seitenlöschung, kann Stunden in Anspruch nehmen). Dementsprechend können Aspekte der vorliegenden Erfindung die Bereinigung eines ECD um mehrere Zehnerpotenzen beschleunigen.
  • Bei einem weiteren Fall, der weder auf die Verwendung von Aspekten der vorliegenden Erfindung zurückgreift, noch durch diese unterbunden wird, handelt es sich um das selektive Krypto-Löschen von Daten eines einzelnen Nutzers durch Zerstörung aller Kexts und aller MEKs, die durch Verwendung der Kexts erstellt wurden, die in Verbindung mit der Verschlüsselung von Daten dieses Nutzers verwendet wurden. Zu beachten ist, dass, wenn sich der mit diesen Kexts verwendete Kint auf mehrere Nutzer erstreckt, unter anderem auf diejenigen mit verschlüsselten Daten, die nicht aufbewahrt (d.h. nicht krypto-gelöscht) werden sollen, dieser Kint intern in der Einheit aufbewahrt wird.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums umfasst Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie z.B. Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in der Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Bei dem letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internetdienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, vor Ort programmierbare Gatteranordnungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare Logik-Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese Computerprogrammanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und Logik umfassen, die in den Prozessor integriert oder durch diesen ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin aufgeführten Prozessschritte durchführt. Der Prozessor kann wie hierin beschrieben von beliebiger Konfiguration sein, z.B. ein diskreter Prozessor oder eine Verarbeitungsschaltung, die viele Komponenten wie z.B. Verarbeitungshardware, Speicher, E/A-Schnittstellen usw. enthält. Mit „integriert in“ ist gemeint, dass der Prozessor Logik enthält, die als Hardwarelogik darin eingebettet ist, wie z.B. eine anwendungsspezifische integrierte Schaltung (ASIC), eine FPGA usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardwarelogik; Softwarelogik wie z.B. Firmware, um einen Teil eines Betriebssystems, einen Teil eines Anwendungsprogramms; usw. oder um eine Kombination aus Hardware- und Softwarelogik handelt, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass der Professor veranlasst wird, bei Ausführung durch den Prozessor eine bestimmte Funktionalität durchführt. Softwarelogik kann auf lokalem und/oder entfernt angeordnetem Speicher einer beliebigen Speicherart gespeichert sein, die in der Technik bekannt ist. Ein in der Technik bekannter beliebiger Prozessor wie z.B. ein Softwareprozessormodul und/oder ein Hardwareprozessor wie z.B. eine ASIC, eine FPGA, eine Zentraleinheit (central processing unit, CPU), eine integrierte Schaltung (integrated circuit, IC), eine Grafikverarbeitungseinheit (graphics processing unit, GPU) usw. können verwendet werden.
  • Es wird klar sein, dass verschiedene Merkmale der vorstehend genannten Systeme und/oder Methodiken in einer beliebigen Weise kombiniert werden können, wodurch eine Mehrzahl von Kombinationen aus den vorstehend dargelegten Beschreibungen geschaffen wird.
  • Es wird ferner klar sein, dass Aspekte der vorliegenden Erfindung in Form eines Dienstes bereitgestellt werden können, der im Namen eines Kunden bereitgestellt wird, um einen Dienst nach Bedarf zu bieten.
  • Die Beschreibungen der verschiedenen Aspekte der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die offenbarten Ansätze beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzumfang der beschriebenen Aspekte darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der verschiedene Ansätze, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ansätze zu ermöglichen.

Claims (20)

  1. Mittels einer Einheit realisiertes Verfahren, das aufweist: Empfangen, bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, eines oder mehrerer eindeutiger externer Schlüssel, wobei der eine oder die mehreren externen Schlüssel der Einheit aus einer oder mehreren externen Quellen für eine ,Key per IO"-Operation bereitgestellt werden; Zugreifen auf einen innerhalb der Einheit gespeicherten internen Schlüssel; Erzeugen eines eindeutigen Medienverschlüsselungsschlüssels für jeden von mindestens einigen des einen oder der mehreren externen Schlüssel unter Verwendung des internen Schlüssels und des zugehörigen des einen oder der mehreren externen Schlüssel erzeugt, wobei jeder Medienverschlüsselungsschlüssel dem externen Schlüssel zugehörig ist, zu dessen Erzeugung er verwendet wird; und als Reaktion auf das Empfangen einer Anforderung zum Durchführen einer Datenoperation bei Daten, die einem des einen oder der mehreren externen Schlüssel zugehörig sind, Verwenden des Medienverschlüsselungsschlüssels, der diesem externen Schlüssel zugehörig ist, zum Verschlüsseln und/oder Entschlüsseln der Daten.
  2. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei der interne Schlüssel intern in der Einheit erzeugt wird.
  3. Mittels einer Einheit realisiertes Verfahren nach Anspruch 2, wobei der interne Schlüssel im nichtflüchtigen Speicher der Einheit in umhüllter Form gespeichert wird.
  4. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei ein oder mehrere externe Schlüssel und die Medienverschlüsselungsschlüssel nur in der Einheit im flüchtigen Speicher gespeichert werden.
  5. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei die Einheit so konfiguriert ist, dass sie eine Übertragung des internen Schlüssels in beliebiger Form nach außerhalb der Einheit unterbindet.
  6. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei mehrere der externen Schlüssel einzeln eindeutigen Daten zugehörig sind, die an unterschiedlichen Orten in einem gleichen Bereich von logischen Blockadressen gespeichert sind.
  7. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei mindestens einer der Medienverschlüsselungsschlüssel unter Verwendung von mehr als einem internen Schlüssel erzeugt wird.
  8. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, das ein Durchführen von Krypto-Löschen von Daten, die unter Verwendung des einen oder der mehreren Medienverschlüsselungsschlüssel geschrieben wurden, die unter Verwendung des internen Schlüssels erstellt wurden, durch Zerstören des internen Schlüssels und aller zugehörigen Medienverschlüsselungsschlüssel in der Einheit durchführt, die unter Verwendung dieses internen Schlüssels erstellt wurden.
  9. Computerprogrammprodukt zum Ermöglichen von Krypto-Löschen, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen durch eine Einheit ausführbar sind, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, um zu bewirken, dass die Einheit das Verfahren nach Anspruch 1 durchführt.
  10. System, das aufweist: die Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, wobei die Einheit einen Prozessor und Logik, die in den Prozessor integriert ist, die durch den Prozessor ausführbar ist, oder in den Prozessor integrierte und durch diesen ausführbare Logik enthält, wobei die Logik so konfiguriert ist, dass sie bewirkt, dass die Einheit das Verfahren nach Anspruch 1 durchführt.
  11. Mittels einer Einheit realisiertes Verfahren, das aufweist: Empfangen, bei einer Einheit, einer Anforderung zum Schreiben von ersten Daten auf das Speichermedium in verschlüsselter Form unter Verwendung eines ersten externen Schlüssels, der den ersten Daten zugehörig ist; Zugreifen auf einen innerhalb der Einheit gespeicherten internen Schlüssel; Erzeugen eines ersten Medienverschlüsselungsschlüssels unter Verwendung des internen Schlüssels und des ersten externen Schlüssels; Verschlüsseln der ersten Daten unter Verwendung des ersten Medienverschlüsselungsschlüssels; Schreiben der verschlüsselten ersten Daten auf das Speichermedium in einem ersten Bereich von logischen Blockadressen des Speichermediums; Empfangen, bei der Einheit, einer zweiten Anforderung zum Schreiben zweiter Daten in verschlüsselter Form auf das Speichermedium unter Verwendung eines zweiten externen Schlüssels, der den zweiten Daten zugehörig ist; Zugreifen auf den innerhalb der Einheit gespeicherten internen Schlüssel; Erzeugen eines zweiten Medienverschlüsselungsschlüssels unter Verwendung des internen Schlüssels und des zweiten externen Schlüssels; Verschlüsseln der zweiten Daten unter Verwendung des zweiten Medienverschlüsselungsschlüssels; und Schreiben der verschlüsselten zweiten Daten auf das Speichermedium in dem ersten Bereich von logischen Blockadressen des Speichermediums.
  12. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, wobei der interne Schlüssel intern in der Einheit erzeugt wird.
  13. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, das das Empfangen der externen Schlüssel aus einer oder mehreren externen Quellen aufweist.
  14. Mittels einer Einheit realisiertes Verfahren nach Anspruch 13, wobei die externen Schlüssel und die Medienverschlüsselungsschlüssel nur in der Einheit im flüchtigen Speicher gespeichert werden.
  15. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, wobei die Einheit so konfiguriert ist, dass sie eine Übertragung des internen Schlüssels in beliebiger Form nach außerhalb der Einheit unterbindet.
  16. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, wobei die Einheit als ,Key per IO"-Einheit konfiguriert ist.
  17. Mittels einer Einheit realisiertes Verfahren zum Krypto-Löschen, wobei das Verfahren aufweist: Empfangen, bei einer Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium unter Verwendung einer ,Key per IO"-Operation durchführt, einer Anforderung, um eine Krypto-Löschung aller Daten in mindestens einem Bereich von logischen Blockadressen des Speichermediums zu bewirken, einzelne Abschnitte der Daten in dem mindestens einen Bereich von logischen Blockadressen, die jeweils einem eindeutigen externen Schlüssel zugehörig sind, wobei die einzelnen Abschnitte der Daten jeweils unter Verwendung eines eindeutigen Medienverschlüsselungsschlüssels verschlüsselt sind, der unter Verwendung eines internen Schlüssels und des eindeutigen externen Schlüssels erstellt wurde, der dem Abschnitt der Daten zugehörig ist; und Erreichen der Krypto-Löschung durch Zerstören des internen Schlüssels und aller Medienverschlüsselungsschlüssel, die diesem in der Einheit zugehörig sind.
  18. Mittels einer Einheit realisiertes Verfahren nach Anspruch 17, wobei die externen Schlüssel und die Medienverschlüsselungsschlüssel nur in der Einheit im flüchtigen Speicher gespeichert werden.
  19. Mittels einer Einheit realisiertes Verfahren nach Anspruch 17, wobei die Einheit so konfiguriert ist, dass sie eine Übertragung des internen Schlüssels in beliebiger Form nach außerhalb der Einheit unterbindet.
  20. System, das aufweist: die Einheit, die so konfiguriert ist, dass sie Datenoperationen auf einem Speichermedium durchführt, wobei die Einheit einen Prozessor und Logik, die in den Prozessor integriert ist, die durch den Prozessor ausführbar ist, oder in den Prozessor integrierte und durch diesen ausführbare Logik enthält, wobei die Logik so konfiguriert ist, dass sie bewirkt, dass die Einheit das Verfahren nach Anspruch 17 durchführt.
DE112021005968.8T 2020-12-15 2021-11-15 Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion Pending DE112021005968T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/122,956 US20220191019A1 (en) 2020-12-15 2020-12-15 Crypto-erasure of data stored in a key per io-enabled device via internal action
US17/122,956 2020-12-15
PCT/CN2021/130623 WO2022127464A1 (en) 2020-12-15 2021-11-15 Crypto-erasure of data stored in key per io-enabled device via internal action

Publications (1)

Publication Number Publication Date
DE112021005968T5 true DE112021005968T5 (de) 2023-09-14

Family

ID=81942014

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005968.8T Pending DE112021005968T5 (de) 2020-12-15 2021-11-15 Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion

Country Status (6)

Country Link
US (1) US20220191019A1 (de)
JP (1) JP2024500732A (de)
CN (1) CN116601915A (de)
DE (1) DE112021005968T5 (de)
GB (1) GB2617041A (de)
WO (1) WO2022127464A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579783B1 (en) * 2022-03-09 2023-02-14 Vim Inc. Multi-tenant storage
CN117272350B (zh) * 2023-11-16 2024-02-13 苏州元脑智能科技有限公司 数据加密密钥管理方法、装置、存储控制卡及存储介质
CN117407927B (zh) * 2023-12-15 2024-03-22 山东万里红信息技术有限公司 一种硬盘数据销毁方法、计算机设备和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245227A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 情報記憶装置
US9594698B2 (en) * 2013-08-13 2017-03-14 Dell Products, Lp Local keying for self-encrypting drives (SED)
US10263770B2 (en) * 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9455963B1 (en) * 2014-12-18 2016-09-27 Amazon Technologies, Inc. Long term encrypted storage and key management
US10205594B1 (en) * 2016-03-30 2019-02-12 EMC IP Holding Company LLC Crypto-erasure resilient to network outage
US10491576B1 (en) * 2017-06-16 2019-11-26 Intuit Inc. System and method for security breach response using hierarchical cryptographic key management
JP7077873B2 (ja) * 2018-08-29 2022-05-31 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
US11468201B2 (en) * 2019-07-31 2022-10-11 Dell Products L.P. System and method for slice virtual disk encryption
US20210083858A1 (en) * 2019-09-13 2021-03-18 International Business Machines Corporation Crypto-erasure via internal and/or external action

Also Published As

Publication number Publication date
CN116601915A (zh) 2023-08-15
WO2022127464A1 (en) 2022-06-23
US20220191019A1 (en) 2022-06-16
JP2024500732A (ja) 2024-01-10
GB202310288D0 (en) 2023-08-16
GB2617041A (en) 2023-09-27

Similar Documents

Publication Publication Date Title
DE112021005968T5 (de) Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
DE112008003855B4 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE112011105678T5 (de) Entsperren eines Speichergeräts
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
DE102018129976A1 (de) System und Verfahren zur Überprüfung einer sicheren Löschoperation an einer Speichervorrichtung
US9910791B1 (en) Managing system-wide encryption keys for data storage systems
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
CN101484927A (zh) 共享加密文件的加密、解密处理方法
US10110383B1 (en) Managing embedded and remote encryption keys on data storage systems
CN107590395B (zh) 适用于云环境的多层数据加密方法、装置、设备及系统
DE112018002947T5 (de) Computersystem-software/firmware und prozessoreinheit mit einem sicherheitsmodul
DE102015010906A1 (de) Verfahren und Einrichtung zum Erzeugen von Inhaltsleere über Mülldaten, wenn Verschlüsselungsparameter geändert werden
DE112020005474T5 (de) Passwortgenerierung zur einmaligen verwendung
DE112020003666T5 (de) Krypto-löschung durch interne und/oder externe massnahmen
KR101467227B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
EP4174701A1 (de) Verfahren und systeme zur sicheren datenspeicherung
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung
KR101648262B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
Tiwari et al. Secure Wipe Out in BYOD Environment
DE112020000268T5 (de) Sichere protokollierung von ereignissen der datenspeicherungsvorrichtungen
TWI745784B (zh) 磁碟資安系統
CN112784321B (zh) 磁盘资安系统
US10437655B2 (en) Hardware-locked encrypted backup

Legal Events

Date Code Title Description
R012 Request for examination validly filed