DE112021005968T5 - CRYPTO DELETION OF DATA STORED IN A “KEY PER IO” ENABLED DEVICE VIA AN INTERNAL ACTION - Google Patents

CRYPTO DELETION OF DATA STORED IN A “KEY PER IO” ENABLED DEVICE VIA AN INTERNAL ACTION 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
German (de)
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/en
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.Entity-implemented methodology for enabling and/or performing crypto-erase via an internal action and/or an external action in a Key per IO enabled system. In various approaches, crypto-erasure of data stored in a "Key per IO" scheme is realized by implementing an internal key that is combined with the external key to produce a media encryption key, which in turn is used to encrypt/decrypt of data. By restricting access to the internal key, destroying the internal key and any media encryption keys generated using the internal key will result in data being crypto-erased and therefore unrecoverable.

Description

HINTERGRUNDBACKGROUND

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.The present invention relates to crypto-erasure, and more specifically, this invention relates to techniques and systems for enabling crypto-erasure via an internal action in "Key per IO" enabled devices.

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.The term “crypto-wipe” generally refers to a specific manner in which access to the encryption key needed to decrypt data is disabled. This can be done by, for example, deleting all copies of the encryption key, removing a portion of the encryption key, disabling access to an associated key required to generate or unwrap the encryption key, etc. By permanently disabling the encryption key the data encrypted with this encryption key cannot be decrypted; the encrypted data is effectively placed in a non-decryptable state.

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.It has been discovered that a major problem with today's data centers is their inability to perform a definitive crypto wipe on all failed or decommissioned encryption-capable drives (ECDs). ECDs are capable of encryption regardless of whether it is a self-encrypting drive (SED) and regardless of the storage technology, e.g. SSDs, HDDs, hybrid data carriers consisting of both semiconductor and hard drive technology, or data carriers with alternatives Technologies. For example, it is possible for an ECD to fail in such a way that it can no longer exchange data with the system in which it resides. In such a failure condition, the ECD cannot receive a crypto-erase command or respond to such a command with a status indicating that the crypto-erase command was successfully executed. For a data center that is not willing to take the risk of having data recovered in a forensic manner from the solid state drive (SSD) or hard disk drive (HDD) of the failed ECD have to be deleted that could not be permanently crypto-deleted, this is a problem. Today, these data centers typically rely on physically destroying these disks in an effort to avoid forensic recovery. In good conscience, the user cannot return these disks to the manufacturer or use them again without fear of data disclosure.

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.It is important to note that the Media Encryption Key (MEK) used to encrypt and decrypt data on an ECD is not stored in plain text on modern SED disks. The MEK is instead cryptographically wrapped, e.g. self-encrypted or otherwise obfuscated. There are considerations that this may not be strong enough in the very long term, that key wrapping technology could be broken in the foreseeable future (e.g. via quantum computing).

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.Regardless of the scope of the problem or whether there is a valid concern that the wrapped key could be decrypted or decrypted, there may well be entities that do not want to rely on or fully trust that the disk will non-volatile storage and crypto deletion of the MEK. Such a user might very much prefer, rather than storing the MEK on the ECD, to provide the MEK to the disk each time it is turned on, to ensure that the MEK can be destroyed and all ciphertext created with it can be crypto-eraseed externally. This shifts control of the MEK to the external entity outside of the ECD, and the external entity does not have to ensure that anything extraordinary needs to be done in the event that an ECD fails in such a way that the crypto erase cannot be carried out by the disk can be carried out. Since the MEK is only stored in a non-volatile manner outside of the disk, the user has the option of deleting it regardless of how the ECD failed. A breach of the user's key store in which the MEK is stored or an eavesdropping on the data transmission (and breach of any security surrounding the data transmission) of that MEK to the ECD renders the MEK vulnerable to interception or retrieval.

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.One way to enable the external crypto-erase capability of an ECD is to use the direct key delivery model used in LTO-4 (the first generation of encryption-capable LTO tape drives). It should be noted that the manner in which keys are handled outside of the encryption-capable device determines whether they are crypto-erasable or not. However, if an entity's key management is properly performed outside of the ECD, it should be possible to permanently remove all copies of the MEK associated with a failed ECD volume via crypto-erase. However, copies of the key are usually created and stored in distributed locations to ensure that the key remains available for decrypting data, since if no copy remains, the data encrypted with that key, i.e. the ciphertext, cannot be decrypted and can therefore be effectively made inaccessible or “crypto-deleted”. This makes securing key management significantly more difficult as more and more copies of the key are created outside the ECD for robustness.

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.Following the era of LTO-4, self-encrypting disk technology (SED technology) has become the standard in the field of compliance with Trusted Computing Group (TCG) specifications such as its TCG Storage's Security Subsystem Classes (SSC) including Enterprise and (more recently) opal developed. Both of these SSCs support crypto-erase capability within the SED volumes (which is a form of ECD) in several different ways. For example, there are at least four different ways to invoke an internal crypto wipe in the case of a TCG Opal SSC. But neither of these two TCG-SSCc supports crypto-erase by an external entity independent of the SED itself, i.e. if the SED cannot process a procedure (command) specified by the SSC. The MEK is always stored in the SED, usually in a cryptographically wrapped function. If someone can somehow figure out how to break the wrapped MEK, that person can recover all of the associated ciphertext stored on a failed SED compatible with either the Enterprise or Opal SSC.

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.An SSC currently under development is called a “Key per IO”. The basic concept of SSC is different from both Opal and Enterprise SSCs. Key per IO is expected to require external key management instead. It allows the use of a large number of MEKs within a single namespace, such as a Non-Volatile Memory Express (NVMe) namespace, which is a logical range Block addresses (LBA range) of a disk (or a subset of that disk, such as a database). Any MEKs provided to the ECDs that are compatible with the proposed "Key per IO" SSC would only be stored on that ECD in volatile form and therefore normally disappear from this ECD as soon as the unit is switched off or reset. A problem with the "Key per IO" scheme is that it does not allow for internal crypto-wiping. For example, if one of the externally managed MEKs is obtained by an attacker, this will make the ciphertext (encrypted data) associated with that MEK accessible is encrypted.

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.For ECDs based on traditional storage systems, when an ECD is deemed non-essential, e.g., defective or likely to fail soon, the first action is usually to begin the process of removing that less important ECD from the storage system. Before returning it to its manufacturer, an attempt would normally be made to perform some type of secure erasure of all data on the ECD. One way to do this is to delete the entire ciphertext, preferably via a verified wipe of all data on that ECD. For an ECD in the form of a solid-state disk (SSD), this is often done by attempting to erase all of the pages in the flash memory chips in the flash disk on a page-by-page basis. This may or may not be successful. For example, it is possible that a page is not completely erased, which would leave some of the bits on the page unerased, e.g. some leftover bits of ciphertext. In the worst case (e.g. if the page delete line is interrupted), completely readable ciphertext is left behind. To protect against this worst-case scenario, standards such as National Institute of Standards and Technology (NIST) SP 800-88r1 on Media Sanitization require that media verify each page deletion by reading the pages that were deleted to ensure that all bits ( or at least a sufficient sample of these bits) have actually been cleaned (minus an acceptable background error rate). Unfortunately, it is common knowledge that attempts to perform a page delete on all pages may not be successful. In the case of SP 800-88r1, if not all data (e.g. cipher text) can be safely deleted, the data carrier must be physically destroyed, e.g. shredded and burned. Such data carriers cannot be reused nor should they be returned to the manufacturer.

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.One of the changes in version r1 of SP 800-88 compared to the previous version is that for certain types of data stored on SSD-type ECD disks, NIST has determined that crypto-erase is an acceptable option to securely erase or wipe the SSDs (i.e. it would then be sufficient to allow these SSDs to be reused or returned to the manufacturer). Accordingly, with certain types of storage media such as SSD type ECD an alternative to deleting the entire ciphertext is to perform a crypto wipe. The problem is that, as currently proposed, no Key per IO capable disk would be capable of independently performing a crypto erase, making the only option the storage system realistically has with the standard Key per IO is to transparently (to the host) erase the data on a non-essential disk that has been removed from a system by attempting to erase all of the ciphertext on it, which may fail, as discussed in the previous paragraph.

KURZDARSTELLUNGSHORT PRESENTATION

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.With crypto-wiping now possible, crypto-wiping can be performed instead of deleting the entire ciphertext. Alternatively, crypto-wiping can be done in addition to deleting the entire ciphertext. In such a case, these two operations can be performed in any order.

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.A method implemented by a device, according to an aspect of the present invention, includes receiving one or more unique external keys at a device configured to perform data operations on a storage medium, the one or more external keys of the device one or more external sources for a "Key per IO" operation. An internal key stored within the device is accessed. A unique MEK is created for each of at least some of the one or more external keys using the internal key and of the associated one or more external keys, each MEK being associated with the external key it is used to generate, in response to receiving a request to perform a data operation on data corresponding to one of the one or more external keys are associated, the MEK associated with this external key is used to encrypt and/or decrypt the data.

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.The above method enables internal crypto-erase of data stored in a "Key per IO" scheme by realizing the internal key, which is combined with the external key to generate the MEK, which in turn is used for encryption /Decryption of the user's data. Since no user and ideally no one and nothing outside the ECD has access to the internal key, destruction of the internal key results in the data being crypto-deleted and therefore unrecoverable.

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.In preferred approaches, the device is configured to prevent transmission of the internal key outside the device. Accordingly, since the internal key cannot leave the device, destruction of the key stored within the device and the MEKs associated with it will effectively crypto-erase all data written using the MEKs and ensure that the MEKs are not lost can be regenerated using the internal key.

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.In some approaches, several of the external keys are associated with individually unique data stored in different locations in a same range of logical block addresses. Such approaches advantageously allow users to share the same namespace on an ECD. Since the internal key is combined with an external key specific to a first user to create the MEK, which is subsequently used to write and read data for that user, no other user can read the first user's data without the first user's external key User's decryption, even if multiple users share an address space.

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.A device-implemented method according to a further aspect of the present invention includes, at a device configured to perform data operations on a storage medium, receiving a request to write first data to the storage medium in encrypted form using a first external key that is associated with the first data. An internal key stored within the unit is accessed. A first MEK is generated using the internal key and the first external key. The first data is encrypted using the first MEK. The encrypted first data is written to the storage medium in a first range of logical block addresses of the storage medium. A second request is received, the second request being to write data in encrypted form to the storage medium using a second external key associated with the second data. The internal key stored within the device is accessed and a second MEK is generated using the internal key and the second external key. The second data is encrypted using the second MEK. The encrypted second data is in the first range of logical block addresses of the storage medium is written to the storage medium.

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.The above method enables internal crypto-erasure of the data stored in a "Key per IO" scheme. Furthermore, this aspect allows the "Key per IO" to be maintained by two or more users who are capable of one share the same namespace on an ECD without allowing a user to access another user's data within this shared namespace.

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.A device-implemented crypto-erase method according to yet another aspect of the present invention includes receiving a request at a device configured to perform data operations on a storage medium using a "key per IO" operation to effect a crypto-erasure of all data in at least one range of logical block addresses of the storage medium. Individual sections of the data in the at least one range of logical block addresses are each associated with a unique external key, with the individual sections of the data each using a unique MEK created using an internal key and the unique external key associated with the section of data. Internal crypto-erase of this range of logical blocks can be achieved by using the common internal key associated with this range of logical blocks, and all media encryption keys associated with the internal key are destroyed.

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.The above method enables internal crypto-erasure of the data stored in encrypted form in a "Key per IO" scheme.

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.In preferred approaches, the device is configured to prevent transmission of the internal key outside the device. Accordingly, since the internal key cannot leave the device, destruction of the key stored within the device and any MEKs generated therefrom will effectively crypto-erase all data written using those MEKs and ensures that the MEKs are not lost Using this now destroyed internal key can be regenerated.

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.In some approaches, several of the external keys are associated with individually unique data stored in different locations in a same range of logical block addresses. Such approaches advantageously allow users to share the same namespace on an ECD. Because the internal key is combined with an external key specific to a user to create the MEK, which is subsequently used to write and read data for that user, no other user can read the first user's data without the first user's external key decrypt even if users share an address space.

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.A computer program product for enabling crypto-erasing includes a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a device configured to perform data operations on a storage medium to cause the device to: performs any methodology presented herein.

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.Systems according to various aspects of the present invention include a device configured to perform data operations on a storage medium. Such a device includes a processor and logic integrated into the processor and executable by the processor, or logic integrated into the processor and executable by the processor, the logic being configured to cause the device to perform any of the methodology presented herein .

Verschiedene hierin beschriebene Ansätze sind auf viele Arten von Speichermedien anwendbar, unter anderem auf nichtflüchtigen Speicher und Magnetaufzeichnungsband.Various approaches described herein are applicable to many types of storage media, including non-volatile memory and magnetic recording tape.

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.Other aspects and approaches of the present invention will become apparent from the following detailed description, which, when taken in conjunction with the drawings, illustrates the principles of the invention by way of example.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF DRAWINGS

  • 1 ist eine Darstellung einer Netzwerkarchitektur gemäß einem Aspekt der vorliegenden Erfindung. 1 is a representation of a network architecture according to an aspect of the present invention.
  • 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. 2 is a representation of a representative hardware environment in accordance with an aspect of the present invention associated with the servers and/or clients of 1 can stand.
  • 3 ist eine Darstellung eines abgestuften Datenspeichersystems gemäß einem Aspekt der vorliegenden Erfindung. 3 is an illustration of a tiered data storage system in accordance with one aspect of the present invention.
  • 4 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung. 4 is a flowchart of a method according to an aspect of the present invention.
  • 5 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung. 5 is a flowchart of a method according to an aspect of the present invention.
  • 6 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung. 6 is a flowchart of a method according to an aspect of the present invention.
  • 7 ist ein Flussdiagramm eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung. 7 is a flowchart of a method according to an aspect of the present invention.
  • 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. 8th is a table comparing the current state of the art for decommissioning and securing "Key per IO" enabled storage products and operations enabled by aspects of the present invention.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

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.The following description is intended to illustrate the general principles of the present invention and is not intended to limit the inventive concepts claimed herein. Further, certain features described herein may be used in combination with other features described in any of various possible combinations and substitutions.

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.Unless otherwise expressly defined herein, all terms are to be interpreted in the broadest possible sense, including meanings implied in the description, as well as meanings understandable to those skilled in the art and/or as set forth in dictionaries, treatises, etc.

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.It should also be noted that the singular forms “a” and “the” used in the description and the appended claims also include the plural forms unless otherwise stated. It is further understood that the terms "comprises" and "comprising/comprising" when used in this specification mean the presence of specified features, integers, steps, operations, elements and/or components, but the presence or addition of one or one or more other features, integers, steps, operations, elements, components and/or groups thereof.

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.The description herein discloses several preferred approaches to systems, methods, and computer program products for enabling locally encrypted data to be crypto-erased by an internal action in "Key per IO" enabled devices. In various approaches, the externally provided "encryption" -Key Kext is not used directly, but instead an internal key Kint is combined with the Kext. The combination of these two keys is used as the actual media encryption key (MEK).

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.In a general approach, a device implemented method includes, at a device configured to perform data operations on a storage medium, receiving one or more unique external keys, the one or more external keys of the device being one or more multiple external sources for a "key per IO" operation. An internal key stored within the device is accessed. A unique MEK is created for each of at least some of the one or more external keys using the internal key and the associated of the one or more external keys, each MEK associated with the external key it is used to generate, in response to receiving a request to perform a data operation on data associated with one of the external key(s). , the MEK associated with this external key is used to encrypt and/or decrypt the data.

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.In another general approach, a device implemented method includes, at a device configured to perform data operations on a storage medium, receiving a request to write first data to the storage medium in encrypted form using a first external key , which is associated with the first data. An internal key stored within the unit is accessed. A first MEK is generated using the internal key and the first external key. The first data is encrypted using the first MEK. The encrypted first data is written to the storage medium at a specific first logical block address in a first range of logical block addresses of the storage medium. A second request is received, the second request being to write data in encrypted form to the storage medium using a second external key associated with the second data. The internal key stored within the device is accessed and a second MEK is generated using the internal key and the second external key. The second data who which is encrypted using the second MEK. The encrypted second data is written to the storage medium at a specific second logical block address in the first range of logical block addresses of the storage medium.

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.In yet another general approach, a device-implemented crypto-erase method includes receiving a request to perform data operations on a storage medium using a key per IO operation at a device configured to perform data operations on a storage medium to effect a crypto-erasure of all data in at least one area of logical block addresses of the storage medium. Individual sections of the data in the at least one area of logical block addresses are each associated with a unique external key, the individual sections of the data each using a unique MEK encrypted using an internal key and the unique external key associated with the section of data. Crypto-erasure is achieved by destroying the internal key and any MEK or MEKs that was generated from this internal key.

Veranschaulichende DatenverarbeitungsumgebungIllustrative data processing environment

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. 1 illustrates an architecture 100 according to one approach. As in 1 As shown, a plurality of remote networks 102 are provided, including a first remote network 104 and a second remote network 106. A gateway 101 may be connected between the remote networks 102 and an adjacent network 108. In the context of the present network architecture 100, the networks 104, 106 may each take any form, including, but not limited to, a local area network (LAN), a wide area network (WAN), such as the Internet, the public switched telephone network (PSTN), an internal telephone network, etc.

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.During use, the gateway 101 serves as an entry point from the remote networks 102 into the neighboring network 108. Essentially, the gateway 101 can act as a router that can forward a specific data packet arriving at the gateway 101, and as a switch, which provides the actual path into and out of the gateway 101 for a particular packet.

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.Furthermore, at least one data server 114 is included, which is connected to the neighboring network 108 and is accessible from the remote networks 102 via the gateway 101. It should be noted that the data server(s) 114 may include any type of computing device/groupware. A plurality of user devices 116 are connected to each of the data servers 114. User units 116 may also be directly connected via one of the networks 104, 106, 108. Such user devices 116 may include a desktop computer, a notebook computer, a handheld computer, a printer, or any other type of logic. It should be noted that in one approach, a user device 111 may also be directly connected to any of the networks.

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.A peripheral device 120 or a series of peripheral devices 120, e.g., facsimile machines, printers, networked and/or local storage devices or systems, etc., may be connected to one or more of the networks 104, 106, 108. It should be noted that databases and/or other components may be used in conjunction with or integrated into any types of network elements that are connected to the networks 104, 106, 108. In the context of this description, a network element can be any component of a network.

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.In some approaches, methods and systems described herein may be implemented with and/or on virtual systems and/or systems that emulate one or more other systems, such as a UNIX® system that emulates an IBM® z/ OS® environment , a UNIX ® system that virtually hosts a Microsoft ® Windows ® environment, a Microsoft ® Windows ® system that emulates an IBM ® z/OS ® environment, etc. This virtualization and/or emulation can be accomplished in some approaches the use of the Vmware ® software can be extended.

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.In other approaches, one or more networks 104, 106, 108 may form a cluster of systems, commonly referred to as a “cloud”. In cloud computing, shared resources such as processing power, peripherals, software, data, servers, etc. are provided to any system in the cloud on an as-needed basis, allowing access and distribution of services across many computing systems is possible. Cloud computing usually requires an Internet connection between the systems operated in the cloud, but other techniques can also be used to connect systems.

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. 2 shows a representative hardware environment associated with one approach to a user device 116 and/or the server 114 of 1 can belong. This figure illustrates a typical hardware configuration of a workstation that includes a central processing unit 210, such as a microprocessor, and a number of other units interconnected via a system bus 212.

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.In the 2 The workstation shown includes a random access memory (RAM) 214, a read only memory (ROM) 216, an I/O adapter 218 for connecting peripheral devices such as disk storage devices 220 to the bus 212, a User interface adapter 222 for connecting a keyboard 224, a mouse 226, a speaker 228, a microphone 232 and/or other user interface devices such as a touch screen, a digital camera (not shown), etc. to the bus 212, a data exchange adapter 234 for connecting the workstation a data exchange network 235 (eg a data processing network) and a display adapter 236 for connecting the bus 212 to a display unit 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.The workstation may contain a resident operating system such as the Microsoft Windows® operating system (OS ) , a macOS® , an OS UNIX®, etc. It will be clear that a preferred approach can also be implemented on platforms and operating systems other than those mentioned. A preferred approach may be written using the eXtensible Markup Language (XML), C and/or C++ or other programming languages in conjunction with an object-oriented programming methodology. Object Oriented Programming (OOP), which is increasingly used to develop complex applications, can be used.

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.Now with reference to 3 a storage system 300 is shown there according to one approach. It should be noted that some of the in 3 Elements shown can be implemented as hardware and/or software according to various aspects. The storage system 300 may include a storage system manager 312 for exchanging data with a plurality of media and/or volumes at at least one higher storage level 302 and at least one lower storage level 306. The higher storage tier(s) 302 may include one or more random access media and/or random access media 304 such as hard drives in hard disk drives (HDDs), non-volatile memory (NVM), semiconductor memory in solid state disks (SSDs), Flash memory, SSD devices, flash memory devices, etc. and/or others listed herein or known in the art. The lower storage tier(s) 306 may preferably include one or more lower performance storage media 308, including, but not limited to, sequential access media such as magnetic tape in magnetic tape drives and/or optical media, slower access HDDs, slower access SSDs, etc. and/or others listed herein or known in the art. One or more additional storage tiers 316 may include any combination of storage media desired by a designer of the system 300. Additionally, any of the higher storage levels 302 and/or the lower storage levels 306 may include a particular combination of storage devices and/or storage media.

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.The storage system manager 312 may communicate with the volumes and/or storage media 304, 308 at the higher storage tier(s) 302 and the lower storage tier(s) 306 via a network 310 such as a storage area network (SAN), as in 3 shown, or any other suitable network type to exchange data. The storage system manager 312 may also communicate with one or more host systems (not shown) via a host interface 314, which may or may not be part of the storage system manager 312. The storage system manager 312 and/or any other component of the storage system 300 may be implemented in hardware and/or software and may utilize a processor (not shown) to execute instructions of a type known in the art, such as a central processing unit , CPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc. Of course, any arrangement of a memory system can be used, as will be apparent to those skilled in the art after reading this Description will be apparent.

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.In several approaches, storage system 300 may include any number of data storage tiers and may include the same or different storage media within each storage tier. For example, each data storage tier may have the same type of storage media such as HDDs, SSDs, sequential access media (tape in tape drives, optical disk in optical disk drives, etc.), random access media (CD-ROM, DVD-ROM, etc.) or any combination of media storage types. In such a configuration, a higher storage tier 302 may include a majority of SSD storage media for storing data in a higher performance storage environment, and remaining storage media, including, but not limited to, the lower storage tier 306 and additional storage tiers 316 may include any combination of SSDs, HDDs, Tape drives, etc. for storing data in a lower performance storage environment. In this way, data that is accessed more frequently, data with a higher priority, data that needs to be accessed more quickly, etc. can be stored on the higher storage level 302, while data that has none of these attributes can be stored on the additional storage levels 316 may be stored, including at the lower storage level 306. Of course, after reading the present descriptions, those skilled in the art may devise other combinations of storage media types to implement different storage strategies in accordance with the approaches and aspects presented herein.

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.According to some approaches, the storage system (such as 300) may include logic configured to receive a request to open a record, logic configured to determine whether the requested record is at a lower storage level 306 one tiered data storage system 300 is stored in multiple associated sections, logic configured to move each associated section of the requested data set to a higher storage level 302 of the tiered data storage system 300, and logic configured to move the requested data set to the higher storage level 302 of the tiered data storage system 300 is composed of the associated sections.

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.Of course, this logic can be implemented according to various approaches as a method on any unit and/or system or as a computer program product.

,Key per IO"-Grundlagen"Key per IO" basics

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.In some cases, it is desirable to allow different entities to use the same address space in a storage unit. However, a simplistic implementation of this does not provide a first entity with any privacy assurance over a second entity that could simply read what the first entity wrote. One solution to this is to require each entity (or user) to use a unique key that it can maintain outside of the entity, where the entity must encrypt its write data and decrypt its encrypted ciphertext. This key is referred to herein as external key, external MEK and Kext. In particular, each user has a unique kext with which to encrypt that user's data, and this kext is different from the other users' kexts. This scheme is commonly referred to as the "Key per IO" scheme.

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.When a "Key per IO" enabled device (e.g. ECD, computer, etc.) is powered on, it does not contain kexts to perform encryption and decryption. Rather, it is provided with kexts in any desired manner, e.g. on demand, in conjunction with a Request provided for a read or write operation, etc. For example, a user may send a kext along with a key tag (e.g. T) for future reference, which the device stores in volatile memory When the device receives a command (e.g. NVMe command) that contains the key tag T as part of the command header, it retrieves the associated kext from memory and uses it to encrypt plaintext data written by the host, before the ciphertext is stored in non-volatile memory, or to decrypt ciphertext data read from non-volatile memory before the corresponding plaintext is sent to the host. This unit can accumulate multiple kexts associated with different key tags. In some approaches, in the event of a power outage, the kexts that were only stored in volatile memory are lost and therefore must be redeployed to the device after power is restored before they can be used again.

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.A goal of many "Key per IO" schemes is to allow different users (users, applications, computers, etc.) to share the same address space. Prior to the inventive features presented herein, a user's kext was used directly as a MEK to encrypt and decrypt the user's data. In theory, the encrypted data of a first user is safe from plaintext access by a second user as long as their respective kexts are unique to each other, and remains safe from use by the other user. If a first user or a control infrastructure that is responsible for first user data wants to delete first user data on the unit, Zer the first user interferes with the first user's kext outside the unit, for example, by deleting the kext, overwriting the kext, or otherwise destroying the kext, including, without limitation, any remaining copies of the kext not only outside the unit, but any copy or copies that stored in volatile memory within the unit. If there is a possibility that the first user's kext has been deployed to the device since the last power cycle or cold boot, the first user must instruct the first device to delete the kext used as the MEK within the device. Destroying all instances of the kext outside and inside the device will effectively crypto-delete the data encrypted with that MEK that is still stored on and can be removed from that device. However, if someone or something is able to record that user's kext unbeknownst to the entity deleting kext instances (e.g., by attempting to access (hack) the external key's storage or by eavesdropping on the key while it is to the device, etc.) and retain a copy of it, that person may still be able to access the user's data by decrypting their ciphertext if the person can connect to the device. Therefore, there can be no assurance that the data is secure nor that definitive crypto deletion has been achieved.

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.Furthermore, as mentioned above, all kexts are managed externally, and when the storage device is powered down, all MEKs present within the device (i.e., kexts used as MEKs) should be lost since they are only stored in volatile memory. However, a potential problem arises if the device or another data storage device fails or is deemed non-essential and should be taken out of service. Because of the possibility that not all copies of a kext are online or that this key may have been secretly copied, for kexts that are managed externally, it may be difficult, if not impossible, to ensure that all kexts that are in connection with it have actually been deleted externally involved in encrypting data written to this device. Therefore, there is no guarantee that all data encrypted with a particular MEK on the device will be unrecoverable.

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.The present invention provides a way to internally crypto-erase the data stored in a "Key per IO" scheme by implementing an internal key (Kint) that is combined with a user's kext to generate a MEK, which in turn is used to encrypt/decrypt the user's data. Since no user, and ideally no one, has access to the Kint, destroying the Kint will result in the data being crypto-deleted.

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.The ratio of internal kints to external kexts can vary from implementation form to implementation form. In some approaches, there may be a common kint for all namespaces (e.g. for the entire disk). Accordingly, there can be an enormous number of external kexts, but only one kint. In this case, the entire entity can be crypto-deleted by simply deleting the one common kint.

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.In other approaches, a unique kint may be provided for each namespace and/or for a subset of a namespace. Accordingly, some units may use multiple kints.

Erfindungsgemäße Verfahren zum Ermöglichen von Krypto-Löschen in ,Key per IO" fähigen EinheitenMethod according to the invention for enabling crypto deletion in "Key per IO" capable units

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.The following description discloses several preferred approaches of systems, methods and computer program products to enable locally encrypted data to be crypto-erased by an internal action in "Key per IO" enabled devices such as ECDs. In general, data is crypto-erased using a MEK encrypted and/or decrypted created from an external kext and a kint stored within the storage device, e.g. ECD, SED, tape cartridge, portable storage, etc. Upon destruction of the kint and all MEKs created from it, All data that was stored encrypted only with this MEK will be crypto-deleted and therefore unrecoverable. Likewise, destroying all copies of a kext will crypto-delete the data that corresponds to this kext.

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.Furthermore, since the Kint is combined with a kext specific to a user to create the MEK, which is then used to write and read data for that user, no other user can decrypt data of the first user without the external kext of the first user , even if users share an address space. Accordingly, multiple kexts may be associated with individually unique data stored in different locations in a same range of logical block addresses, where the permitted range of logical block addresses (e.g. in the NVMe namespace) of the storage medium may be millions of sectors long. This should not be confused with the area of a single write command, which would be written with a single kext in "Key per IO", which is indicated by the key identifier that arrived in the header data of this write command.

Krypto-Löschen in ECD und SEDCrypto deletion in ECD and 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.While much of the following description is presented in the context of an exemplary implementation with an SED or ECD of any type, this is provided by way of example only and solely for the purpose of providing context to assist the reader. Accordingly, the concepts and teachings presented below are equally applicable to implementations with storage media such as magnetic recording tapes, memory cards, optical media and related devices.

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.Now with reference to 4 a method 400 is shown there according to one approach. The method 400 may be performed in various approaches according to the present invention in any of the environments depicted in the other FIGURES described herein, among other things. Of course, the method 400 can be more or less than that in 4 include the operations specifically described, as will be clear to those skilled in the art after reading the present descriptions.

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.Each of the steps of method 400 may be performed by any suitable components of the operating environment. For example, in various approaches, method 400 may be performed in part or entirely by a device such as a computer, a disk, or some other device that includes one or more processors. The processor, e.g. processing circuit(s), chip(s) and/or module(s), which are implemented in hardware and/or software and preferably contain at least one hardware component, can be used in any unit to carry out one or more steps to carry out procedure 400. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, and any other suitable data processing unit known in the art is known.

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.As in 4 As shown, method 400 may start with operation 402, in which a device configured to perform data operations on a storage medium, such as reading and/or writing data from/to the storage medium, provides one or more unique external encryption keys (Kexts) receives. The one or more kexts are provided to the device from one or more external sources for use in "Key per IO" operations. An external source can be any external source. For example, the external source can be an application running on a virtual machine, in a container, or natively on a host server that writes or reads data, or a control infrastructure that handles all provisioning of keys transparently to those applications, virtual machines, containers, or host servers. The external source could also be a key store, a key server, key entry by a user (e.g. via a keyboard, by connecting a flash drive, etc.).

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.The kext(s) are preferably stored in the device only in volatile memory so that they are destroyed after the device is turned off or restarted. The kext(s) may be received in any manner, e.g. on demand, all at once, in response to a request for a kext (e.g. from the device), etc. For example, a kext may be received in conjunction with a request for Reading or writing data is received that is stored in encrypted form on the storage medium or is to be stored on it.

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.The storage medium may be any type disclosed herein, e.g., magnetic tape, magnetic disk, NVRAM, etc. Accordingly, the device may be any type of data storage device, e.g., tape drive, SSD, HDD, encryptable USB disk, NVRAM modules, etc. In addition, the device may be an encryption-capable data carrier (ECD) in the form of a removable data storage device, e.g. an encryption-capable USB disk, an encryption-capable tape drive, a self-encrypting disk (SED), etc.

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.In operation 404, a Kint stored within the device is accessed, for example from non-volatile memory on the device. The non-volatile memory could be a dedicated IC such as a NAND flash, or it could be embedded in a larger IC such as an FPGA, ASIC, CPU. In some approaches, the kint is stored in the device in raw (unencrypted) form. In other approaches, the Kint is stored on the device in a wrapped form (e.g., encrypted form, password-protected form, obfuscated form, etc.). In the case where the Kint is stored in wrapped form, information such as another Key, password, etc. to unwrap the Kint can be accessed and/or received and used to unwrap the Kint. For example, a lock/unlock PIN or lock/unlock password required to unlock the device could be used as the overwrap key used to overwrap the internal key. Alternatively, a Key Encryption Key (KEK) could be used as a wrapping key to wrap the internal key. Preferably, only the non-volatile memory of the internal key would normally be in wrapped form.

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 preferred aspects, the unit is configured to prevent transmission of the Kint in any form outside of the unit. However, an internal microprocessor or control unit of the unit can access the kint within the unit.

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.In operation 406, for each of at least some of the kexts, a unique MEK is generated using the kint and the associated one or more kexts. In other words, the MEK associated with a particular kext used to create it is different from any other MEK. Any known technique can be used to create the MEK from the kext and the kint, for example, by XORing the kext and the kint, by applying another known hashing algorithm, by joining the two keys together to create a larger MEK to create, etc.

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.The MEK for a specific data set can be created at any desired time. In one approach, the MEK is generated in response to receiving the kext. In another approach, the MEK is created in response to receiving a request to perform a data operation on data associated with the kext.

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.Regardless of when the MEK is created, it can be stored volatile within the device for use and/or reuse, can be used for a data operation and discarded, etc. Preferably, the MEK is stored only in volatile memory within the device, so that it is lost goes when the unit is powered off or reset. This helps ensure that the MEK cannot be accessed from outside nor is the unit disabled.

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.In operation 408, in response to receiving a request to perform a data operation on data associated with one of the kexts, the MEK associated with that kext is used to encrypt and/or decrypt the data, for example, using other conventional encryption/decryption techniques. For example, in response to receiving a read request, the ciphertext of the requested data is decrypted using the appropriate MEK in operation 408, resulting in the unencrypted form (i.e., plaintext form) of the requested data, which can then be output to the requester. The ciphertext of the requested data may be copied into a buffer and then decrypted, may be decrypted during the read operation, etc. The decrypted data is output, e.g. to a requestor of the data via a host interface, etc.

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.In some approaches, the MEK is deleted after the associated request is executed. In other approaches, the MEK may be retained in some form of volatile memory or register for reuse. In either case, the storage unit may retain the kexts and associated MEKs until an explicit command or reset tells it to forget them, or a power down causes them to be forgotten.

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.Aspects of the various operations of 4 are provided below. Such aspects are provided by way of example only and are not intended to be limiting. As noted above, much of the present discussion relates to an ECD; this is merely an example. Furthermore, such aspects may be combined in any manner according to the plethora of possible aspects and approaches to practice the present invention.

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.A MEK may be created from two separate keys using any method known in the art and/or apparent to those skilled in the art upon reading this specification. For example, one way to create a MEK that requires using both the Kint and Kext to calculate is to require Kint and Kext to be two independently generated random numbers, and then perform a calculation using both Kint and Kext Kext such as requires a bitwise XOR of the two or a concatenation of these two values to calculate the MEK.

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.Kint can come from any conceivable source. Kint is preferably created internally in the ECD, which is the safest approach is because copies of Kint do not have to exist outside the ECD unless they were intentionally copied from it. For example, Kint is generated in a known manner using output from a random number generator within the ECD.

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.In other approaches, Kint can be created outside the ECD and deployed in the ECD. For example, Kint can be programmed into the device during build, can be programmed into the device by an administrator, can be inserted during device configuration or formatting, etc.

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.In one aspect, Kint may be specific to a particular set of data, and thus the entity may store multiple unique Kints, each associated with a unique data set.

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.Preferably, the ECD is programmed so that it does not allow visibility of the Kint from outside or transfer or copying of Kint from the ECD.

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.In an illustrative approach, Kint is the first value required when creating the MEK, for example a first random number with the same length (in bits) as the MEK. Kext is the second value required when creating the MEK, e.g. a second random number with the same length as the MEK. Kint is processed with Kext in a predefined manner to produce the resulting MEK. For example, Kint can be XORed (or similar) with Kext to produce the MEK. Alternatively, standard key derivation techniques (using hashing or encryption) can be used instead of the XOR operation (or the like) to calculate the MEK. Any form of key derivation that requires processing both Kint and Kext to calculate the MEK is potentially acceptable.

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.Anyone familiar with the complexity of an ECD capable of supporting the "Key per IO" SSC will realize that there are many, many ways to realize this concept, and this invention does not limited to the exemplary description presented herein.

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.A deployment creates a unique kint to combine with each of the kexts. Alternatively, there could be fewer Kints than Kexts, down to the single Kint mentioned above that can be combined with all Kexts. Accordingly, there could potentially be thousands of kexts that can be combined with several or just one kext, i.e. there is a many-to-many, many-to-fewer, or many-to-one relationship.

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).In another approach, the MEK is created using more than just a kint and the kext. For example, two different kints could be combined with a kext so that the net result is the combination of three different keys. Deleting any of the three keys crypto-erases any data encrypted with the combined key. Accordingly, some approaches combine more than two keys to create the MEK. For example, if one of the kints is common to the entire NVMe namespace and the other kint is unique to each kext, there is thus the ability to crypto-erase all data in the NVMe namespace at once (by overwriting or deleting the first kint, which is common to all kexts) or by a user (by overwriting or deleting the second kext, which is more fine-grained and may ultimately be unique per resulting combined encryption key).

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.Note that there are other forms of creating a dependency on one or more kints in a "Key per IO" scheme that may provide certain additional benefits. For example, data from a first user could initially be created using only the user's kext The resulting ciphertext can be encrypted a second time using Kint. If keyless copying is to be performed, in this case the dependency on Kint can be reversed (removed) by performing a single encryption without the user's "Key per IO" kexts can be carried out. This allows the ciphertext to be copied to a replacement device without having to securely transfer an arbitrary key (such as the MEK or Kint) from one device to another. Rather, the two units (e.g. a non-essential unit being taken out and a replacement unit taking its place) can have completely independent kints.

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.Other ways exist to achieve a similar capability to that discussed in the previous paragraph without requiring full secondary encryption of all data, as will become apparent to those skilled in the art after reading the present disclosure. Accordingly, there is no absolute requirement for secure transmission of a MEK associated with keyless copying. There are solutions, such as the one discussed in the previous paragraph, that... eliminate the need to perform a secure transmission of any key associated with the ciphertext read from a non-essential device.

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.In an illustrative approach, only a wrapped form of the Kint is stored in non-volatile memory in the ECD. The kext is only stored outside the ECD in non-volatile form and thus must be provided to the ECD (or the EDC must access it) at least once after a power cycle and/or after a cold start in order to be able to calculate the MEK. The MEK can only be calculated if the ECD has both Kint and Kext. Thus, Kext must be provided to the ECD in a specific form (or the EDC must access it). According to various aspects, there are many ways in which this can be done. One option is to inject the kext wrapped with an encryption key (KEK) into the ECD. Alternatively, if the ECD supports a Key Management Interoperability Protocol (KMIP) client, it may retrieve and receive the kext over a secure channel (e.g. protected by TLS or IPsec) from an external key manager of a type known in the art. Alternatively, the kext may be provided to the ECD in a manner similar to personal identification numbers (PINs), e.g. in plain text form, over a secure tunnel set up for "Security Protocol In and Security Protocol Out" commands, etc.

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).Kint is preferably stored in the ECD in wrapped form, which may be unwrapped until the wrapping key is provided (which may be a KEK or may instead depend on one or more passwords or one or more PIN(s). which can be provided to the ECD to check the authorization of one or more different roles that the ECD supports (e.g. Admin1)). Accordingly, any portion of the wrapping function key is provided to the ECD from outside the ECD to enable unwrapping of the kint. Once the ECD has been provided or accessed all the necessary information (including kext) necessary to calculate the MEK, the ECD calculates the MEK and is then able to decrypt existing ciphertext to the resulting plaintext (e.g. to respond to a host read operation), or to encrypt newly received customer data in plaintext form into ciphertext (e.g. to serve a host write operation).

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.In one approach, the Kint is generated internally and wrapped with either a KEK or the PIN associated with a specific Administrative Security Provider role (hereinafter AdminSP role), e.g. Admin1. The Kint can therefore be accessed once the KEK has been initiated into the ECD or the authorization of the entity such as Admin1 has been checked using its password or PIN.

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.It may be permissible for the KEK or PIN that wraps the Kint to change as part of a re-encryption operation (the wrapping key). The Kint itself can also be re-encrypted, but this would result in crypto-erasure of data encrypted by the MEKs generated from the Kint in use before the Kint was re-encrypted.

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.One form of implementation includes the ECD being, in some or all cases, the source of generating the kints using the same type of internal random number generation capability that is invoked, for example, by the random command.

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.Now with reference to 5 There is shown a flowchart of an exemplary method 500 for writing crypto-erasable data in a "Key per IO" scheme according to one approach. The method 500 can be used, among other things, in various approaches according to the present invention in any of those shown in the other FIGURES, in particular 4 , illustrated environments described herein. Of course, the method 500 can be more or less than that in 5 include the operations specifically described, as will be clear to those skilled in the art after reading the present descriptions.

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.Each of the steps of method 500 may be performed by any suitable components of the operating environment. For example, in various approaches, method 500 may be performed in part or entirely by a device such as a computer, a disk, or some other device that includes one or more processors. The processor, eg processing circuit(s), chip(s) and/or module(s), which are implemented in hardware and/or software and preferably contain at least one hardware component, can be used in any unit to carry out one or more steps to carry out procedure 500. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, and any other suitable data processing unit known in the art.

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 502, a request is received at a device configured to perform key per IO data operations on a storage medium. The request is to write first data to the storage medium in encrypted form using a first Kint, the belongs to the first data.

In Operation 504 wird auf einen innerhalb der Einheit gespeicherten Kint zugegriffen.In operation 504, a Kint stored within the device is accessed.

In Operation 506 wird ein erster MEK unter Verwendung des internen Schlüssels und des ersten externen Schlüssels erzeugt.In operation 506, a first MEK is generated using the internal key and the first external key.

In Operation 508 werden die ersten Daten unter Verwendung des ersten MEK verschlüsselt.In operation 508, the first data is encrypted using the first MEK.

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 510, the encrypted first data is written to the storage medium in a first range of logical block addresses of the storage medium. The first range of logical block addresses is preferably an allowable range of logical blocks (e.g. in the NVMe namespace) of the storage medium, which may be millions of sectors long. This should not be confused with the restricted scope of the specific write command, which is all associated with a single kext.

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 512, a second request is received at the device. The second request is a request to write second data to the storage medium in encrypted form using a second external key associated with the second data, the second external key being different from the first external key.

In Operation 514 wird auf den innerhalb der Einheit gespeicherten internen Schlüssel zugegriffen.In operation 514, the internal key stored within the device is accessed.

In Operation 516 wird ein zweiter MEK unter Verwendung des internen Schlüssels und des zweiten externen Schlüssels erzeugt.In operation 516, a second MEK is generated using the internal key and the second external key.

In Operation 518 werden die zweiten Daten unter Verwendung des zweiten MEK verschlüsselt.In operation 518, the second data is encrypted using the second MEK.

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.In operation 520, the encrypted second data in the first range of logical block addresses of the storage medium is written to the storage medium. The second write operation could be to any range of logical block addresses in the permitted range of logical block addresses (e.g. in the NVMe namespace), which may or may not overlap with the range of logical block addresses written to by the first write command became.

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.Additional operations may be performed in this method 500, and any of the features described herein may be implemented in the method 500.

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.Now with reference to 6 There is shown a flowchart of an exemplary method 600 for performing crypto-erase on data in a "Key per IO" scheme according to one approach. The method 600 can be used, among other things, in various approaches according to the present invention in any of those shown in the other FIGURES , especially that 4 until 5 , illustrated environments described herein. Of course, the method 600 can be more or less than that in 6 include the operations specifically described, as will be clear to those skilled in the art after reading the present descriptions.

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.Each of the steps of method 600 may be performed by any suitable components of the operating environment. For example, in various approaches, method 600 may be performed in part or entirely by a device such as a computer, a disk, or some other device that includes one or more processors. The processor, e.g. processing circuit(s), chip(s) and/or module(s), which are implemented in hardware and/or software and preferably contain at least one hardware component, can be used in any unit to carry out one or more steps to carry out procedure 600. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, and any other suitable data processing unit known in the art is known.

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 602, a device configured to perform data operations on a storage medium using a "key per IO" operation is received a request to perform a crypto-erase of all data in at least a range of logical block addresses storage medium Sections of the data in the at least one range of logical block addresses are each associated with a unique kext, which corresponds, for example, to unique users. Each section of data is encrypted using a unique MEK created using a Kint and the unique Kext associated with the section of data.

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.In operation 604, crypto-erase is accomplished by both destroying the Kint (e.g., by deleting the Kint, overwriting the Kint, and/or physically destroying a memory that stores the Kint) and destroying any MEK(s) in the device created from this kint.

KryptografieCryptography

Kint und Kext können XOR-verknüpft oder anderweitig kombiniert werden, um den MEK zu erstellen.Kint and Kext can be XORed or otherwise combined to create the MEK.

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.One way to verify that the resulting MEK is correct (e.g., compared to a one-bit shift, which would occur if the kext was one-bit shifted) is to use a key signature concept. The key signature concept involves using the MEK to encrypt a known value, and the resulting ciphertext is then stored as the signature of that MEK.

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.Note that in some of the above approaches, both Kext, Kint, and any keys used to wrap Kext (e.g., the Key Encryption Key (KEK) and Kint have become what are known as Cryptographically Sensitive Parameters, CSPs). If there is a likelihood that the data transmitted between the ECD and the host could be recorded, the channel between them should be protected with some form of encryption. An option addressed by "Key per IO" consists of using a KEK that is known to the host and the ECD, where the host wraps the kext with the KEK before sending the wrapped KEX to the ECD, and the ECD receives this wrapped kext and unwraps it with the same KEK Another option is to use data in flight (EDiF) such as Internet Protocol Security (IPsec), Fiber Channel Security Protocol (FC-SP) or Transport Layer Security (TLS). Some data centers have no concerns about transferring data to and from an ECD in their internal environment; the concerns relate only to what happens to that ECD after it leaves this protected environment, which is why absolute certainty about crypto deletion is desirable.

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.Note that in the case of the XTS encryption module (e.g. XTS-AES-256), there are two encryption-related keys, an encryption key and a separate tweak key. In some approaches, these two keys can be generated from a single root key (via key derivation). Accordingly, a 256-bit MEK can be provided and used to generate the two 256-bit keys (key derivation) required for XTS-AES-256.

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“.
Crypto-erase options for ECDs implementing various aspects of the present invention include not only the required destruction (e.g., by overwriting or erasing) of any MEKs within the ECD, but also one or more of the following:
  1. 1. If a user wishes to crypto-erase all data on a functional ECD, the user can do so by simply enabling one or more of the options suggested herein. For example, the wrapped key structures containing the kint are overwritten, making the kint unrecoverable. In this scenario there is no need to delete every kext as well, the MEKs are unrecoverable and cannot be regenerated since the kint is no longer present.
  2. 2. If a user wants to crypto-erase an ECD (as it may be a non-functional ECD that does not respond to commands or a missing ECD) but for some reason cannot perform point "1". the user now has another option instead of instructing each user to delete their kext independently of the ECD. In this scenario, there is no need to delete all wrapped versions of the kint; the MEK is not recoverable because the kint is no longer present. In this scenario, if at some point in the future someone were to break open the encased key structures of a failed ECD and thus gain access to the Kint, their entire effort would be in vain as the MEK would remain inaccessible. That's why he needs the kext that was destroyed. Accordingly, it is still in the scenario where the only viable way to access customer data is through the encryption algo rithm (e.g. XTS-AES-256) that protects the ciphertext of the user data itself.
  3. 3. If a user is particularly concerned about the security of crypto deletion, the user can choose to delete both Kint and Kext. This scenario is perhaps the most likely if there is concern that the kext may have been recorded (e.g. during transmission to the ECD, even if protected by a specific enclosure or secure channel, whose security was breached (or perhaps subsequently breached). could be)). Otherwise, however, there should be no reason for both Kint and Kext to need to be deleted since cryptography is involved. A general approach that is fairly resilient (e.g. in terms of the ECD becoming inoperable) is to always try to delete both the kint and the kext, but be content with doing so as long as there is confirmation of this, that one of the two deletions was successful.
  4. 4. If a user wants to crypto-delete the user's data, the user can destroy the user's kext. Any copy of the user's kext on the ECD (and any associated MEK) should also be deleted, for example by power cycling the unit or by invoking the Delete Single MEK or Delete All MEKs command.

Krypto-Löschen bei Magnetaufzeichnungsband und anderem transportablen SpeicherCrypto-erasing magnetic recording tape and other portable storage

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.As noted above, in some approaches, encrypted data is stored on a non-volatile storage medium such as a magnetic recording medium (e.g., tape, disk) or semiconductor memory (e.g., NAND flash, NVRAM, etc.). To reiterate, any of the operations, concepts, etc. set forth above may be used in the present approaches. For example, the operations of methods 400, 500 of 4 until 5 carried out with minor modifications listed below.

Bei einigen Ansätzen kann Kint in einer bestimmten Einheit, z.B. Datenträger, Computer usw., gespeichert werden, die mit dem Medium zusammenarbeitet.In some approaches, Kint can be stored in a specific device, e.g. disk, computer, etc., that works with the medium.

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.In other approaches, particularly those in which removable media are implemented, Kint is stored on and/or at the storage medium. Accordingly, a method similar to method 400, 500 of the 4 until 5 instead retrieve the kint from the medium on which the data is stored, from a storage such as a cartridge memory that is physically connected to the medium, and the like. In cases where the Kint is to be destroyed, the structures that store the Kint on the removable media are ideally destroyed.

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.Now with reference to 7 a method 700 is shown there according to one approach. The method 700 may be performed in various approaches according to the present invention in any of the environments depicted in the other FIGURES described herein, among other things. Of course, the method 700 can be more or less than that in 7 include the operations specifically described, as will be clear to those skilled in the art after reading the present descriptions.

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.Each of the steps of method 700 may be performed by any suitable components of the operating environment. For example, in various approaches, the method 700 may be performed in part or entirely by a device such as a computer, a disk, or some other device that includes one or more processors. The processor, e.g. processing circuit(s), chip(s) and/or module(s), which are implemented in hardware and/or software and preferably contain at least one hardware component, can be used in any unit to carry out one or more steps to carry out procedure 700. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, and any other suitable data processing unit known in the art is known.

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.As in 7 As shown, method 700 may start with operation 702, in which a device configured to perform "key per IO operation" data operations on a storage medium, such as reading and/or writing data from/to the performs the storage medium, receives a request to perform a data operation on the storage medium in encrypted form. The received request may simply be a request to write data, a request to read data, or both. Furthermore, the request may be contain additional information such as the kext. As listed above, the kexts used in method 700 are in the Unit preferably stored only in volatile memory.

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.In operation 704, a Kint stored on and/or at the storage medium is retrieved. This process may include retrieving the Kint from the medium on which the data is stored, from a storage such as a cartridge memory that is physically connected to the medium, and the like.

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.The storage medium may be any type disclosed herein, e.g., magnetic tape, magnetic disk, NVRAM, etc. Accordingly, the device may be any type of data storage device, e.g., tape drive, SSD, HDD, etc.

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.As noted above, in some approaches the Kint is stored on and/or at the storage medium in raw (unencrypted) form. In other approaches, the kint is stored on and/or at the storage medium in wrapped form (e.g., obfuscated form, encrypted form, password-protected form, etc.). Information such as another key, KEK, PIN, or password to unwrap the kint can be received and used to unwrap the kint.

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 preferred aspects, the unit is configured to prevent transmission of the Kint in any form outside of the unit. However, an internal microprocessor or controller of the device may access the Kint from the storage medium or from another source connected to the storage medium.

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 706, a kext associated with the data is received from an external source. The external source can be any external source. For example, the external source may be a requestor of the data, a key store, a key server, a key input by a user (e.g. via a keyboard, etc.).

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 708, a MEK is created using Kint and Kext. Any known secure technique can be used to create a MEK from Kint and Kext.

In Operation 710 wird die angeforderte Datenoperation durchgeführt, z.B. unter Verwendung des MEK und sonstiger herkömmlicher Techniken.In operation 710, the requested data operation is performed, for example, using the MEK and other conventional techniques.

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.In operation 712, in response to receiving a request to crypto-erase data on the medium, Kint is destroyed along with any MEKs created using that Kint.

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.When second data is to be stored on the storage medium by the device, the second data is received. Another external key (Kext2) can be received from a second external source. If this is the case, a second MEK is generated using Kint and Kext2. The data operation is performed using the second MEK. Note that the second external source may be the same as the above-mentioned external source or a different source. However, Kext2 is different from 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.Aspects of the various operations of 7 are provided below. Such aspects are provided by way of example only and are not intended to be limiting. Furthermore, such aspects may be combined in any manner according to the plethora of possible approaches to the present invention. For example, the method 700 may have similar features to those above in relation to 4 until 6 contain or include those set out, e.g. key generation, etc.

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 is stored on the storage medium, e.g. on the medium itself and/or on the storage medium, e.g. in a separate memory. Kint is preferably stored in encased form. For example, Kint may be stored on a section of magnetic recording tape, in a tape cartridge memory, or both. In this way, Kint is transportable with the magnetic recording tape. Likewise, for an NVRAM device such as a memory stick, memory card, etc., Kint can be stored in the device's NVRAM, in a separate device memory, etc.

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.Kint is preferably created internally in the device (e.g. disk, computer, etc.) that works with the storage medium. Preferably, the device is configured to not allow visibility of the Kint from outside or copying of the Kint outside the device, except for the storage medium/or memory connected to the device. Preferably, the device transfers the Kint to the storage medium and/or memory associated with the device and deletes the Kint from other locations in the device. Thus, in some approaches, such as those associated with removable media units, the kint is located with the storage medium.

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.In the case of a device where the storage medium is integrated into the device itself (e.g. a self-encrypting disk (SED) of an HDD or SSD or an encryption-enabled disk (ECD)), Kint may be stored within the device. For example, Kint could be stored in a (possibly hermetically) sealed enclosure anywhere within this normally rectangular enclosure. In the case of an SSD, the bulk of the non-volatile memory (where user data is stored) is often NAND flash. Kint (possibly in enveloped form) can also be stored there. In other approaches, Kint may instead be stored in non-volatile memory separate (from user data) within the package, for example: in another NAND flash or NOR flash chip; in a magnetic random access memory (MRAM); in a spin transfer torque random access memory (STT-RAM); in a ferroelectric random access memory (FeRAM); in a phase-change memory (PCM); in a resistive random-access memory (RRAM); in other forms of NVRAM (which is less technology-specific than the previous terms); etc. It should be noted that Kint can also be stored in a form of ROM such as EEPROM, which can be erased. Thus, in different approaches, Kint can be stored in a different form of memory than the memory that stores the user data.

Bei anderen Ansätzen kann Kint außerhalb der Einheit erstellt und der Einheit bereitgestellt und in dieser gespeichert werden.In other approaches, Kint can be created outside of the device and deployed to and stored in the device.

Kext kann innerhalb der Einheit oder außerhalb der Einheit oder durch gemeinsame Beiträge von innerhalb und außerhalb der Einheit erstellt werden.Kext can be created within the unit or outside the unit, or through shared contributions from inside and outside the unit.

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.In various approaches, Kext is provided and/or stored in the volatile memory (e.g. SRAM) in the tape drive, computer, etc. to enable the disk, computer, etc. to calculate the MEK. In one approach, Kext can be entered into the tape drive, computer, etc. every time it is needed. In another approach, Kext, once provided to the device, may be stored internally within the device in volatile storage on the tape drive, computer, etc., in which case Kext is preferably wrapped.

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.It should be understood that various approaches listed herein can be implemented with a wide range of storage media, including, for example, NVRAM technologies such as NAND flash memory, NOR flash memory, phase change memory (PCM), magneto-restrictive RAM ( MRAM) and resistive RAM (RRAM). In order to provide context solely for the convenience of the reader, various approaches may be described with reference to some type of non-volatile memory. This is by way of example only and should not be construed as limiting the invention, which is defined in the claims.

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.In an illustrative approach, Kint is stored in non-volatile form only on the storage medium in wrapped form. And Kext, although it can be temporarily stored in volatile memory, is only stored in non-volatile form outside the storage medium.

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.The disk, computer, etc. that works with the storage medium retrieves Kint from the storage medium and receives or receives Kext so that the MEK can be calculated.

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.Kext, which is preferably not stored locally on the disk, computer, etc., can be delivered to the disk, computer, etc. in a specific form. There are many ways in which this can be done, according to various aspects, including any of the approaches listed in the previous section. For example, one possibility is for the host to wrap the kext with a KEK before transmitting it to the ECD. Another possibility is that the disk, computer, etc. supports a KMIP client and receives the kext over a secure channel from an external KMIP server (key manager) of a type known in the art.

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.Preferably, Kext can only be stored in volatile form within the ECD. A Kint unwrap key (e.g. the KEK) can be received from the host, an external security orchestrator, a user, a key manager, etc.

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).Kint is preferably stored with the storage medium in wrapped form and can be unwrapped after the key of the wrapping function (which may be or depends on the KEK or PINs) is provided to the disk, computer, etc provided to the disk, computer, etc. to check the authorization of different users to different roles that the disk, computer, etc. supports). Accordingly, any parts of the key of the wrapping function of provided outside the disk, computer, etc. to the disk, computer, etc. to enable unwrapping of the Kint. Once the disk, computer, etc. has collected all the necessary information (including kext) necessary to calculate the MEK, the disk, computer, etc. calculates the MEK and is then able to decrypt existing ciphertext to to generate the resulting plaintext (e.g. to respond to a host read operation), or to encrypt new customer data in plaintext form into ciphertext (e.g. to serve a host write operation).

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.With "Key per IO" the generation of Kext takes place outside the ECD by a host or by a key manager with which the host interacts.

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.In approaches implemented using tape drives, it is preferred that the Kint comes from the tape media and the Kext comes from a specific interface and that the calculation of the MEK occurs internally in the encryption-capable tape drive and never leaves the tape drive.

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.Systems according to various approaches include a device configured to perform data operations on a storage medium, the device having a processor and logic integrated into the processor, executable by the processor, or integrated into the processor and contains logic executable by it, the logic being configured to cause the unit to perform some or all of the operations listed above, for example the operations of 4 until 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.Computer program products for enabling and/or performing crypto-erase in accordance with various approaches include a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a device configured to perform some or all of the operations listed above carries out, for example, the operations of the 4 until 7 .

Beispielhafte RealisierungsformenExemplary forms of implementation

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.
An illustrative process for protecting a key-per-IO encryptable storage device, such as an encryptable data carrier (ECD), according to one approach includes the following operations:
  1. 1. Create a Kint and store this Kint internally in the storage device in a secure manner internally in the storage device. Normally Kint would not be stored in plain text form in non-volatile memory under any circumstances. Instead, Kint would be stored in sheathed form.
  2. 2. Kext is created and stored outside the ECD:
    1. A. If kext was created outside the storage device, then this kext must be provided to the storage device when needed.
    2. B. If a key used to wrap the kext (e.g., the KEK or PIN) is not already in the device, it must also be provided to or retrieved by the device and used to unwrap the kext.
    3. C. Typically many kexts are used, for example one for each user storing data on the disk.
  3. 3. The storage unit uses Kint and Kext to calculate the MEK.
  4. 4. The MEK is used directly or indirectly to encrypt data to create ciphertext and to decrypt ciphertext to create plaintext.

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.
An illustrative process after a power outage or cold boot to regain access to data on a "Key per IO" encryptable storage device, such as an encryption-capable data carrier (ECD), includes the following operations, according to one approach:
  1. 1. Cause Kext to be provided to the storage device.
  2. 2. Access Kint internally in the storage device, which may include cryptographically unwrapping Kint, which may require one or more wrapping or access keys (e.g., KEK(s) or PIN(s)).
  3. 3. The storage unit uses Kint and Kext to calculate the MEK.
  4. 4. The MEK is used directly or indirectly to encrypt data to create ciphertext and to decrypt ciphertext to create plaintext.

Prozess zum Außerbetriebsetzen einer Einheit oder zum Sichern einer gestohlenen EinheitProcess for decommissioning a unit or securing a stolen unit

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.
An illustrative process that can be performed when a storage device is about to be decommissioned, for example because its background error rate has become too high (which, for example, one approach includes the following operations:
  1. 1. Send a command to the storage unit instructing it to destroy its Kint and any MEKs currently within the unit that were created using that Kint.
  2. 2. Was the destruction of Kint and the MEKs successfully completed? If:
    • • Yes, the data encrypted under this MEK/s has been successfully crypto-deleted.
      • • In this case, although there is no need to destroy kext, this can also be done.
    • • no, in this case, by not being able to trust that any crypto deletion has taken place:
      • • Destroying kext outside the storage device and thus crypto-deleting the data corresponding to that kext on the storage device by external means.
      • • Shut down or cold boot the storage device to ensure that the storage device does not retain a volatile image of a key.

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.
Note that a key deletion can also be done in reverse order, destroying Kext first, preferably with a subsequent attempt to delete Kint. An illustrative process according to one approach includes the following operations:
  1. 1. Destroying kext outside the storage unit and thus crypto-wiping the data on the storage unit corresponding to that kext by external means, or destroying all kexts to crypto-erase all data on the storage unit.
  2. 2. Sending a command to the storage device instructing it to crypto-erase its kint(s) associated with the kext(s) corresponding to the data to be crypto-erase .
  3. 3. Was the Kint crypto wipe completed successfully? If:
    • • yes, the data encrypted under this MEK/s has been successfully crypto-deleted by destroying Kint and Kext.
      • • Cold booting the storage device by using the power-on-power-off reset command or performing an actual power cycle (i.e., removing power for a period of time and then restoring power) to ensure that the storage device does not retain a volatile image of any Kext or MEK .
    • • no, but the kext outside the storage unit has been destroyed, and thus a crypto-erase of the storage unit is caused by external means.

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.It should also be noted that destruction or deletion of all Kexts and MEKs can be accomplished by powering off the unit and/or performing a cold boot (e.g., invoked by invoking a power cycle reset). These MEKs can be destroyed last. But this destruction must be carried out before the data encrypted with these MEKs is truly crypto-deleted. In short, to achieve crypto-wiping of data encrypted with one or more MEKs, either the MEKs and the associated kint must be destroyed, or the MEKs and the associated kexts must be destroyed.

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.It should also be noted that if a storage unit is stolen or has not been crypto-erased before being removed from the storage system and is then lost, for example when being moved to another location, this is a crypto-erase of data through destruction of Kint is no longer possible because there is no physical access to the storage unit, instead Kext must be deleted, which is possible even without physical access to the storage unit as long as Kext has not been recorded (e.g. secretly).

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. 8th depicts operations that can be performed on a non-essential device without aspects of the present invention contrasted with operations that can be performed on a non-essential device with one or more aspects of the present invention. The table in 8th is self-explanatory and only presented as an example. It should be noted that the execution of crypto delete according to the last row of the table in 8th , that is, by confirmed destruction of the Kint, is only possible in a "Key per IO" environment when aspects of the present invention are implemented. It should also be noted that if confirmed destruction of Kint and any MEKs is achieved, which are currently in of the unit generated by using Kint, the crypto-erase of the data is achievable much faster (e.g. in less than a second) than is possible by confirming "erase all ciphertext", such as two lines above it, which could take many hours to achieve (just fully confirming through reads that all pages have been thoroughly deleted, possibly through page deletion, can take hours). Accordingly, aspects of the present invention can speed up the cleanup of an ECD by several orders of magnitude.

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.Another case that neither relies on nor is prevented from using aspects of the present invention is the selective crypto-wiping of an individual user's data by destroying all kexts and all MEKs created by using the kexts were created that were used in connection with the encryption of that user's data. Note that if the kint used with these kexts extends to multiple users, including those with encrypted data that is not intended to be retained (i.e. not crypto-deleted), that kint will be kept internal to the unit.

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.The present invention may be a system, a method and/or a computer program product with any possible level of integration of technical details. The computer program product may include a computer-readable storage medium (or media) on which computer-readable program instructions are stored to cause a processor to carry out aspects of the present invention.

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.The computer-readable storage medium may be a tangible device on which instructions may be retained and stored for use by an instruction-executing device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable read-only memory in the form of a compact disc (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically coded unit such as punch cards or raised structures in a groove with instructions recorded thereon, or any suitable combination of the foregoing. A computer-readable storage medium as used herein shall not be construed as being transient signals per se, such as radio waves or freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media ( e.g. light pulses passing through an optical fiber cable) or electrical signals that are transmitted via a cable.

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.Computer-readable program instructions described herein may be transmitted via a network, for example the Internet, a local network, a wide area network and/or a wireless network, from a computer-readable storage medium to relevant data processing/processing units or to an external computer or an external storage unit can be downloaded. The network may include copper transmission cables, fiber optic transmission conductors, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or a network interface in the data processing/processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective data processing/processing unit.

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.Computer-readable program instructions for performing operations of the present invention may be assembler instructions, instruction-set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including, but not limited to, object-oriented programming languages such as Smalltalk, C++ or the like, as well as procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the Compu The user's device may be connected over any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLA), that execute computer-readable program instructions by reading state information from those read by a computer Readable program instructions can be used to personalize the electronic circuit to carry out aspects of the present invention.

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.Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, devices (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowcharts and/or the block diagrams and combinations of blocks in the flowcharts and/or block diagrams may be implemented using computer-readable program instructions.

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.These computer program instructions may be provided to a processor of a computer or other programmable data processing device to create a machine, such that the instructions executed via the processor of the computer or other programmable data processing device provide a means for the processing in a block or blocks to implement the functions/actions specified in the flow diagram or flow diagrams and/or the block diagram or block diagrams. These computer-readable program instructions may also be stored in a computer-readable medium that can instruct a computer, other programmable data processing device, or other device to function in a particular manner, such that the computer-readable medium has instructions stored thereon Product that contains instructions that implement the function/action specified in a block or blocks of the flowcharts and / or the block diagrams.

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.The computer readable program instructions may also be loaded into a computer, other programmable data processing devices, or other devices to cause the computer, other programmable devices, or other devices to perform a series of operations to perform a computer realized process so that the instructions executed on the computer, on other programmable devices or units, implement the functions/actions specified in a block or blocks of the flowcharts and / or the block diagrams.

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.The flowcharts and block diagrams in the figures illustrate the architecture, functionality and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this context, each block in the flowcharts or block diagrams may represent a module, segment, or section of instructions that includes one or more executable instructions for implementing the specified logic function or functions. In some alternative implementations, the functions specified in the block may be performed in a different order than that specified in the figures. For example, two blocks shown one after the other may actually be executed as one step, executed simultaneously, substantially simultaneously, in a partially or completely overlapping time manner, or the blocks may sometimes be executed in reverse order depending on the functionality associated with the blocks. In addition, it should be noted that each block of the block diagrams and/or flowchart representations, as well as combinations of blocks in the block diagrams and/or flowchart representations, are implemented using dedicated hardware-based systems for carrying out the specified functions or actions, or using combinations of dedicated hardware and dedicated computer instructions can or can be.

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.Additionally, according to various embodiments, a system may include a processor and logic integrated into or executable by the processor, the logic configured to perform one or more of the process steps listed herein. The processor may be of any configuration as described herein, such as a discrete processor or a processing circuit that includes many components such as processing hardware, memory, I/O interfaces, etc. By "integrated in" it is meant that the processor contains logic that is embedded within it as hardware logic, such as an application-specific integrated circuit (ASIC), an FPGA, etc. By “executable by the processor” it is meant that the logic is hardware logic; Software logic such as firmware, part of an operating system, part of an application program; etc. or a combination of hardware and software logic accessible to the processor and configured to cause the professor to perform a specific functionality when executed by the processor. Software logic may be stored on local and/or remote memory of any type of memory known in the art. Any processor known in the art, such as a software processor module and/or a hardware processor such as an ASIC, an FPGA, a central processing unit (CPU), an integrated circuit (IC), a graphics processing unit , GPU) etc. can be used.

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.It will be appreciated that various features of the aforementioned systems and/or methodologies may be combined in any manner, thereby creating a variety of combinations from the descriptions set forth above.

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.It will be further understood that aspects of the present invention may be provided in the form of a service provided on behalf of a customer to provide an on-demand service.

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.The descriptions of the various aspects of the present invention are intended to be illustrative, but are not intended to be exhaustive or limited to the approaches disclosed. Many modifications and variations are conceivable for those skilled in the art without these representing a deviation from the scope of the aspects described. The terminology used herein was chosen to explain the basic ideas of the various approaches, the practical application and/or the technical improvement over the technologies found on the market, or to enable others with appropriate expertise to understand the approaches disclosed herein.

Claims (20)

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.Method implemented by means of a unit, which has: Receive, for a device configured to perform data operations on a storage medium, one or more unique external keys, the one or more external keys of the device from one or more external sources for a "Key per IO" surgery will be provided; accessing an internal key stored within the device; Generating a unique media encryption key for each of at least some of the one or more external keys using the internal key and the associated one or more external keys, each media encryption key being associated with the external key it is used to generate; and in response to receiving a request to perform a data operation on data associated with one of the one or more external keys, using the media encryption key associated with that external key to encrypt and/or decrypt the data. Mittels einer Einheit realisiertes Verfahren nach Anspruch 1, wobei der interne Schlüssel intern in der Einheit erzeugt wird.Method implemented using a unit Claim 1 , where the internal key is generated internally in the unit. 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.Method implemented using a unit Claim 2 , where the internal key is stored in the device's non-volatile memory in wrapped form. 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.Method implemented using a unit Claim 1 , where one or more external keys and the media encryption keys are stored in volatile memory only on the device. 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.Method implemented using a unit Claim 1 , where the unit is configured to prevent transmission of the internal key in any form outside the unit. 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.Method implemented using a unit Claim 1 , where several of the external keys are associated with individually unique data stored in different locations in a same range of logical block addresses. 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.Method implemented using a unit Claim 1 , wherein at least one of the media encryption keys is generated using more than one internal key. 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.Method implemented using a unit Claim 1 which involves performing crypto-erase of data written using the one or more media encryption keys created using the internal key, by destroying the internal key and any associated media encryption keys in the device that were created using that internal key. 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.A computer program product for enabling crypto-erasing, the computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a device configured to perform data operations on a storage medium to cause the unit follows the procedure Claim 1 carries out. 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.System comprising: the device configured to perform data operations on a storage medium, the device having a processor and logic integrated into the processor, executable by the processor, or integrated into the processor and through contains executable logic, the logic being configured to cause the unit to carry out the method Claim 1 carries out. 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.Method implemented by means of a unit, which has: Receiving, at a device, a request to write first data to the storage medium in encrypted form using a first external key associated with the first data; accessing an internal key stored within the device; generating a first media encryption key using the internal key and the first external key; encrypting the first data using the first media encryption key; writing the encrypted first data to the storage medium in a first range of logical block addresses of the storage medium; receiving, at the unit, a second request to write second data in encrypted form to the storage medium using a second external key associated with the second data; accessing the internal key stored within the device; generating a second media encryption key using the internal key and the second external key; encrypting the second data using the second media encryption key; and Writing the encrypted second data to the storage medium in the first range of logical block addresses of the storage medium. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, wobei der interne Schlüssel intern in der Einheit erzeugt wird.Method implemented using a unit Claim 11 , where the internal key is generated internally in the unit. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, das das Empfangen der externen Schlüssel aus einer oder mehreren externen Quellen aufweist.Method implemented using a unit Claim 11 , which includes receiving the external keys from one or more external sources. 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.Method implemented using a unit Claim 13 , where the external keys and the media encryption keys are stored in volatile memory only within the device. 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.Method implemented using a unit Claim 11 , where the unit is configured to prevent transmission of the internal key in any form outside the unit. Mittels einer Einheit realisiertes Verfahren nach Anspruch 11, wobei die Einheit als ,Key per IO"-Einheit konfiguriert ist.Method implemented using a unit Claim 11 , where the unit is configured as a "Key per IO" unit. 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.Method for crypto deletion implemented by means of a unit, the method comprising: Receive, at a device configured to perform data operations on a storage medium using a "Key per IO" operation, a request to effect a crypto-erase of all data in at least a range of logical block addresses of the storage medium , individual portions of the data in the at least one range of logical block addresses, each associated with a unique external key, the individual portions of the data each being encrypted using a unique media encryption key created using an internal key and the unique external key , which is associated with the section of data; and Achieving crypto-erase by destroying the internal key and any media encryption keys associated with it in the device. 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.Method implemented using a unit Claim 17 , where the external keys and the media encryption keys are stored in volatile memory only within the device. 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.Method implemented using a unit Claim 17 , where the unit is configured to prevent transmission of the internal key in any form outside the unit. 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.System comprising: the device configured to perform data operations on a storage medium, the device having a processor and logic integrated into the processor, executable by the processor, or integrated into the processor and through contains executable logic, the logic being configured to cause the unit to carry out the method Claim 17 carries out.
DE112021005968.8T 2020-12-15 2021-11-15 CRYPTO DELETION OF DATA STORED IN A “KEY PER IO” ENABLED DEVICE VIA AN INTERNAL ACTION Pending DE112021005968T5 (en)

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 (en) 2023-09-14

Family

ID=81942014

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005968.8T Pending DE112021005968T5 (en) 2020-12-15 2021-11-15 CRYPTO DELETION OF DATA STORED IN A “KEY PER IO” ENABLED DEVICE VIA AN INTERNAL ACTION

Country Status (6)

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

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 (en) * 2023-11-16 2024-02-13 苏州元脑智能科技有限公司 Data encryption key management method, device, storage control card and storage medium
CN117407927B (en) * 2023-12-15 2024-03-22 山东万里红信息技术有限公司 Hard disk data destruction method, computer equipment and storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245227A (en) * 2008-03-31 2009-10-22 Fujitsu Ltd Information storage device
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 (en) * 2018-08-29 2022-05-31 日本電気株式会社 Information processing equipment, information processing methods, and programs
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
US20220191019A1 (en) 2022-06-16
WO2022127464A1 (en) 2022-06-23
CN116601915A (en) 2023-08-15
JP2024500732A (en) 2024-01-10
GB2617041A (en) 2023-09-27
GB202310288D0 (en) 2023-08-16

Similar Documents

Publication Publication Date Title
DE112021005968T5 (en) CRYPTO DELETION OF DATA STORED IN A “KEY PER IO” ENABLED DEVICE VIA AN INTERNAL ACTION
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
DE112008003855B4 (en) System and method for providing secure access to system memory
EP3259698B1 (en) Autonomously booting system with a security module
DE102013108394A1 (en) A method of managing a secure data store key and apparatus therefor
DE112011105678T5 (en) Unlock a storage device
DE112009004491T5 (en) System and method for securely storing data in an electronic device
DE102018129976A1 (en) System and method for checking a secure erase operation on a storage device
US9910791B1 (en) Managing system-wide encryption keys for data storage systems
DE112014000584T5 (en) Achieving storage efficiency with end-to-end encryption using downstream (downstream) decryptors
US10110383B1 (en) Managing embedded and remote encryption keys on data storage systems
DE102015010906A1 (en) A method and apparatus for generating content vacancy over garbage data when changing encryption parameters
CN111539042B (en) Safe operation method based on trusted storage of core data files
DE112020005474T5 (en) ONE-TIME USE PASSWORD GENERATION
DE112020003666T5 (en) CRYPTO DELETION BY INTERNAL AND/OR EXTERNAL MEASURES
EP4174701A1 (en) Methods and systems for secure data storage
DE112021000149T5 (en) ENCRYPTION OF A DATA STORAGE DEVICE
KR101648262B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
Tiwari et al. Secure Wipe Out in BYOD Environment
DE112020000268T5 (en) SECURE LOGGING OF EVENTS FROM DATA STORAGE DEVICES
TWI745784B (en) Disc security system
CN112784321B (en) Disk resource security system
US10437655B2 (en) Hardware-locked encrypted backup
DE112021000150T5 (en) DATA STORAGE DEVICE ENCRYPTION
CN117592068A (en) Method, device, equipment and storage medium for converting encrypted data

Legal Events

Date Code Title Description
R012 Request for examination validly filed