DE102020111199A1 - Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte - Google Patents

Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte Download PDF

Info

Publication number
DE102020111199A1
DE102020111199A1 DE102020111199.1A DE102020111199A DE102020111199A1 DE 102020111199 A1 DE102020111199 A1 DE 102020111199A1 DE 102020111199 A DE102020111199 A DE 102020111199A DE 102020111199 A1 DE102020111199 A1 DE 102020111199A1
Authority
DE
Germany
Prior art keywords
file system
backup
data objects
dek
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102020111199.1A
Other languages
English (en)
Other versions
DE102020111199B4 (de
Inventor
Gareth David Richards
Glenn S. WATKINS
John Michael Czerkowicz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102020111199A1 publication Critical patent/DE102020111199A1/de
Application granted granted Critical
Publication of DE102020111199B4 publication Critical patent/DE102020111199B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Beispielimplementierungen beziehen sich auf die Verschlüsselung von Datenobjekten. In einem Beispiel werden Datenobjekte einer Dateisysteminstanz, die in einer Sicherheitsdomäne enthalten sind, mit einem Datenverschlüsselungsschlüssel verschlüsselt, der für die Sicherheitsdomäne spezifisch ist und von einem Schlüsselverschlüsselungsschlüssel umhüllt wird, der ausschließlich innerhalb eines Clusters verwendet wird. Ein Backup der Dateisysteminstanz wird auf einem Backup-Knoten erstellt. Das Backup enthält zumindest einige der verschlüsselten Datenobjekte. Der DEK wird an den Backup-Knoten gesendet. Der Backup-Knoten kann das Backup nicht entschlüsseln, es sei denn, der Backup-Knoten ist Mitglied des Clusters und hat Zugriff auf den KEK zum Auspacken des DEK.

Description

  • HINTERGRUND
  • Computersysteme können Daten speichern. Einige Beispiels-Computersysteme können Datenvirtualisierungsplattformen betreiben, die steuern, wie Daten gespeichert werden. Die Daten können aus Datenschutz- und Sicherheitsgründen verschlüsselt werden. Computersysteme können Backups von Daten erstellen, um sie vor Verlust zu schützen.
  • Figurenliste
  • Im Folgenden werden verschiedene Beispiele anhand der folgenden Abbildungen beschrieben.
    • BILD 1 stellt eine Beispielumgebung dar, in der ein Knoten Sicherungen von Dateisystem-Instanzen mit verschlüsselten Datenobjekten erstellen kann.
    • BILD 2 zeigt eine Beispiel-Dateisysteminstanz, in der Datenobjekte mit einem Datenverschlüsselungsschlüssel verschlüsselt werden.
    • BILD 3 zeigt ein Beispielsystem mit einem maschinenlesbaren Medium, das Anweisungen zur Verschlüsselung von Datenobjekten mit einem Datenverschlüsselungsschlüssel und zur Erstellung eines Backups einer Dateisysteminstanz mit verschlüsselten Datenobjekten enthält.
    • BILD 4 zeigt ein Beispielsystem mit einem maschinenlesbaren Medium, das Anweisungen zum Löschen eines Datenverschlüsselungsschlüssels zum kryptografischen Löschen von Dateisystem-Instanzen und Sicherungen enthält.
    • BILD 5 zeigt eine Beispielmethode, bei der eine Sicherung einer Dateisysteminstanz mit verschlüsselten Datenobjekten erstellt wird.
    • BILD 6 zeigt eine Beispielmethode, die das Löschen eines Datenverschlüsselungsschlüssels zum kryptografischen Löschen einer Dateisysteminstanz und von Backups beinhaltet.
    • BILD 7 zeigt eine Beispielumgebung, in der ein Knoten Sicherungen von Dateisystem-Instanzen mit verschlüsselten Datenobjekten erstellen kann.
    • BILD 8 zeigt ein Beispielsystem mit einem maschinenlesbaren Medium, das Anweisungen zur Verschlüsselung eines Wurzelobjekts der Dateisysteminstanz mit einem Metadaten-Verschlüsselungsschlüssel und zur Erstellung eines Backups der Dateisysteminstanz enthält.
    • BILD 9 zeigt ein Beispielsystem mit einem maschinenlesbaren Medium, das Anweisungen zur Überprüfung eines unverschlüsselten rekonstruierten Wurzelobjekts und Anweisungen zum Löschen eines Metadaten-Verschlüsselungsschlüssels zum kryptographischen Löschen einer ausgewählten Sicherung enthält.
    • BILD 10 zeigt eine Beispielmethode, die die Verschlüsselung eines Stammobjekts mit einem Metadaten-Verschlüsselungsschlüssel beinhaltet.
    • BILD 11 zeigt eine Beispielmethode, bei der ein rekonstruiertes Wurzelobjekt verifiziert wird.
    • BILD 12 zeigt eine Beispielmethode, die das Löschen eines Metadaten-Verschlüsselungsschlüssels zum kryptographischen Löschen einer ausgewählten Dateisysteminstanz und einer Sicherung beinhaltet.
  • Überall in den Zeichnungen können identische Referenznummern ähnliche, aber nicht unbedingt identische Elemente bezeichnen. Überall in den Zeichnungen kann eine mit Bindestrich geschriebene Indexnummer „N“, die an einige der Referenznummern angehängt ist, so verstanden werden, dass sie lediglich Pluralität bezeichnet und durch eine ganze Zahl ersetzt werden kann, um ein bestimmtes Beispiel zu geben. Darüber hinaus kann die Verwendung einer Referenzzahl ohne Indexnummer mit Bindestrich, auf die an anderer Stelle mit einer Indexnummer mit Bindestrich verwiesen wird, hier als allgemeiner Verweis auf die entsprechenden pluralen Elemente, kollektiv oder einzeln, verstanden werden.
  • DETAILLIERTE BESCHREIBUNG
  • Daten können auf Computersystemen wie Servern, Computergeräten, Workstations, Speichersystemen oder Speicher-Arrays, konvergierten oder hyperkonvergierten Systemen oder ähnlichem gespeichert werden. Durch ein Netzwerk verbundene Computersysteme können auch als Knoten bezeichnet werden und umgekehrt. Zur Speicherung von Daten können einige Computersysteme eine Datenvirtualisierungsplattform verwenden, die Aspekte der physischen Speicherhardware, auf der die Daten physisch gespeichert sind (z.B. Aspekte wie Adressierung, Konfigurationen usw.), abstrahiert und einer Benutzerumgebung (z.B. einem Betriebssystem, Anwendungen, Prozessen usw.) virtualisierte oder logische Speicherung präsentiert. Der virtualisierte Speicher kann von mehreren Speicherhardware (z.B. Festplattenlaufwerken, Solid-State-Laufwerken usw.) in einem Datenspeicher zusammengefasst werden, aus dem der virtualisierte oder logische Speicher bereitgestellt werden kann. Die Datenvirtualisierungsplattform kann auch Datendienste wie Deduplizierung, Komprimierung, Replikation und dergleichen bereitstellen.
  • In einigen Implementierungen kann die Datenvirtualisierungsplattform zumindest teilweise durch eine virtuelle Steuerung instanziiert, gewartet und verwaltet werden. Eine virtuelle Steuerung kann eine virtuelle Maschine (VM) sein, die auf Hardwareressourcen wie Prozessor und Speicher ausgeführt wird, mit speziellen prozessorausführbaren Anweisungen zum Einrichten und Verwalten von virtualisiertem Speicher nach verschiedenen hier beschriebenen Beispielen. In solchen Fällen kann die virtuelle Steuerung neben virtuellen Gastmaschinen (auch als virtuelle Client- oder Benutzer-Maschinen bezeichnet) und auf demselben Hypervisor oder Virtual Machine Manager wie z.B. die virtuellen Gastmaschinen betrieben werden.
  • In einigen Fällen kann die Datenvirtualisierungsplattform objektbasiert sein. Eine objektbasierte Datenvirtualisierungsplattform kann sich von einer Speicherung auf Blockebene (z. B. implementiert in Speicherbereichsnetzwerken und dargestellt über ein Speicherprotokoll wie iSCSI oder Fibre Channel) und einer Speicherung auf Dateiebene (z. B. ein virtuelles Dateisystem, das Daten in einer Dateihierarchie verwaltet und über ein Dateiprotokoll wie NFS oder SMB/CIFS dargestellt wird) unterscheiden, obwohl eine objektbasierte Datenvirtualisierungsplattform in einigen Implementierungen Block- oder Dateispeicherprotokollen zugrunde liegen kann.
  • Zu den Komponenten einer beispielhaften objektbasierten Datenvirtualisierungsplattform können unter anderem ein Flat Object Store und eine oder mehrere Dateisystem-Instanzen gehören. Daten können als Objekte im Objektspeicher gespeichert werden. Beispielsweise können benutzerzugängliche Dateien und Verzeichnisse aus mehreren Datenobjekten bestehen. Der Objektspeicher kann auch Metadatenobjekte speichern, die sich auf den Betrieb der Datenvirtualisierungsplattform beziehen, wie im Folgenden beschrieben wird. In einem Beispiel können Objekte im Objektspeicher eine vorgegebene feste Größe haben (z. B. 4 kib oder 8 kib für Datenobjekte und 1 kib für Metadatenobjekte). Jedes Objekt kann durch eine Signatur (auch als Objekt-Fingerabdruck bezeichnet) identifiziert werden, die in einigen Implementierungen einen kryptographischen Hash-Digest des Inhalts dieses Objekts enthalten kann. Ein Objektindex kann die Signatur eines Objekts im Objektspeicher mit einer physischen Adresse des Inhalts des Objekts korrelieren (d.h. mit einer physischen Adresse auf einer Speicherhardware wie z.B. einem Datenträger).
  • Eine Dateisysteminstanz kann sich auf eine Organisation von Metadatenobjekten und Datenobjekten beziehen, die die Datenobjekte hierarchisch zu einem Wurzelobjekt in Beziehung setzen. Eine Dateisysteminstanz kann also durch ihr Wurzelobjekt identifiziert werden. Die Dateisysteminstanz kann z.B. ein Merkle-Baum oder eine andere hierarchische Anordnung (z.B. gerichtete azyklische Graphen usw.) sein. Im Falle eines hierarchischen Merkle-Baums können sich Datenobjekte auf der untersten Baumebene eines jeden Zweiges befinden (d.h. am weitesten vom Wurzelobjekt entfernt) und können auch als Blattdatenobjekte bezeichnet werden. Ein übergeordnetes Objekt enthält als Inhalt die Signaturen von untergeordneten Objekten. Beispielsweise ist ein übergeordnetes Objekt von Blattdatenobjekten ein Metadatenobjekt, das als seinen Inhalt die Signaturen seiner untergeordneten Blattdatenobjekte speichert. Das Wurzelobjekt und andere interne Objekte eines Baums können ebenfalls Metadatenobjekte sein, die als Inhalt die Signaturen der jeweiligen untergeordneten Objekte speichern. Ein Metadatenobjekt kann unter Umständen eine Anzahl von Signaturen speichern, die mindestens einem Verzweigungsfaktor des hierarchischen Baums entspricht, so dass es die Signaturen aller seiner untergeordneten Objekte enthalten kann.
  • In Beispielimplementierungen können die Daten einer oder mehrerer virtueller Gastmaschinen von einer oder mehreren Dateisysteminstanzen gespeichert werden (z. B. eine Gast-VM, die Speicher von mehreren Dateisysteminstanzen verwendet, viele Gast-VMs, die Speicher von einer Dateisysteminstanz verwenden, oder jede beliebige Variation dazwischen). In einem bestimmten Beispiel kann jede virtuelle Gast-VM einer entsprechenden Dateisysteminstanz auf einer Eins-zu-Eins-Basis zugeordnet werden. Die Datenvirtualisierungsplattform kann einen Dateiprotokoll-Mountpunkt (z. B. einen NFS- oder SMB-Mountpunkt) exportieren, über den eine virtuelle Gastmaschine über den Namensraum des Dateiprotokolls auf den von einer Dateisysteminstanz bereitgestellten Speicher zugreifen kann. In einigen Implementierungen können Objekte in einem Objektspeicher mehr als einmal in einer einzelnen Dateisysteminstanz oder mehrfach in Dateisysteminstanzen referenziert werden. Das mehrfach referenzierte Objekt kann also einmal gespeichert, aber mehrmals referenziert werden, um eine Deduplizierung zu ermöglichen.
  • Dateisysteminstanzen und deren Datenobjekte können von einem Computersystem auf ein anderes Computersystem repliziert werden, um den Datenschutz zu gewährleisten. Der Prozess der Replikation von Daten kann auch als Datensicherung bezeichnet werden. Beispielsweise können Daten zwischen zwei oder mehr Knoten in einem Cluster repliziert werden, und eine solche Replikation kann als lokale Sicherung angesehen werden. In einem anderen Beispiel können Daten von einem Quellknoten auf einen Remote-Knoten repliziert werden, und eine solche Replikation kann als Remote-Backup angesehen werden. Bei dem Remote-Knoten kann es sich um einen Knoten bei einem Backup-Dienst eines Drittanbieters, einen Knoten in der öffentlichen Cloud oder einen geografisch getrennten Knoten handeln, der derselben Einheit gehört, der auch der Quellknoten gehört. Eine Reihe von Snapshots kann eine Dateisysteminstanz zu verschiedenen Zeitpunkten erfassen, und diese Snapshots können als eine Reihe von Backups gesichert werden.
  • Gespeicherte Daten können verschlüsselt werden, um Sicherheit, Vertraulichkeit und Datenschutz zu gewährleisten. Daten können mit einem Verschlüsselungsalgorithmus und einem Verschlüsselungsschlüssel verschlüsselt werden. In einigen Fällen, einschließlich der Einhaltung von Regierungsstandards oder Unternehmensrichtlinien, muss die Löschung verschlüsselter Daten sicherstellen, dass die Daten nicht wiederhergestellt werden können.
  • Daher kann es sinnvoll sein, für sichere Backups verschlüsselter Daten zu sorgen und gleichzeitig durch Deduplizierung und Komprimierung eine höhere Dateneffizienz zu erzielen. Die hier beschriebenen Beispiele können sich auf hierarchische Dateisystem-Instanzen beziehen, die in einer Sicherheitsdomäne enthalten und isoliert sind. Diese Dateisystem-Instanzen können durch die Verschlüsselung von konstituierenden Datenobjekten mit einem Datenverschlüsselungsschlüssel (DEK), der für die Sicherheitsdomäne spezifisch ist, gesichert werden. Der DEK wird durch einen Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) umhüllt (d.h. durch symmetrische Verschlüsselung gekapselt), der ausschließlich von den Knoten in einem bestimmten Cluster verwendet wird, wodurch die vertrauenswürdigen Knoten beim Zugriff auf die sicheren Daten eingeschränkt werden. In einigen Implementierungen kann die Verschlüsselung der Datenobjekte auch mit Hilfe von Tweak-Werten des Verschlüsselungsalgorithmus erfolgen, die beispielsweise auf den jeweiligen Positionen der Datenobjekte in der Dateisysteminstanz basieren (z.B. Positionen, die auf den hierarchischen Beziehungen in der Dateisysteminstanz basieren), so dass die Baumstruktur der Dateisysteminstanz bekannt sein muss, um verschlüsselte Datenobjekte entschlüsseln zu können.
  • Eine sichere Sicherung der Dateisysteminstanz kann auf einem lokalen oder entfernten Sicherungsknoten erstellt werden, indem verschlüsselte Datenobjekte auf den Sicherungsknoten repliziert werden. Der Backup-Knoten kann das Backup nicht entschlüsseln, es sei denn, der Backup-Knoten ist Mitglied des Clusters und hat Zugriff auf den KEK zum Auspacken des DEK. Da ein Datenverschlüsselungsschlüssel für eine Sicherheitsdomäne spezifisch ist und ein Schlüsselverschlüsselungsschlüssel ausschließlich von einem Cluster und dessen Knoten verwendet wird, kann die Deduplizierung verschlüsselter Daten über Backup-Dateisystem-Instanzen, die einer gleichen Sicherheitsdomäne zugeordnet sind, aber nicht über Backup-Dateisystem-Instanzen, die verschiedenen Sicherheitsdomänen zugeordnet sind, durchgeführt werden, wodurch eine Vermischung von Daten außerhalb einer Sicherheitsdomäne verhindert wird. Darüber hinaus kann ein DEK gelöscht werden, um eine sichere, verschlüsselte Dateisysteminstanz und alle zugehörigen sicheren, verschlüsselten Backups auf effiziente Weise und ohne Störung unverschlüsselter Daten oder von Dateisysteminstanzen und Backups in anderen Sicherheitsdomänen kryptographisch zu löschen. Auf diese Weise kann sowohl Sicherheit als auch Deduplizierung für eine Reihe von Backups erreicht werden, z.B. in einer Reihe von Snapshots eines Dateisystems.
  • Einige Beispiele beziehen sich auf die Verschlüsselung von Stammobjekten verschiedener Dateisysteminstanzen mit unterschiedlichen Metadaten-Verschlüsselungsschlüsseln (MEK). Durch das Löschen einer ausgewählten Instanz können eine bestimmte Dateisysteminstanz und alle zugehörigen Sicherungen kryptografisch gelöscht werden, ohne andere mit der Sicherheitsdomäne verbundene Dateisysteminstanzen zu stören. MEKs können beispielsweise nützlich sein, um einen bestimmten Snapshot in einer Reihe von Snapshots kryptographisch zu löschen. Weitere Vorteile werden im Hinblick auf die folgenden Beschreibungen deutlich.
  • Unter Bezugnahme auf die Abbildungen veranschaulicht BILD 1 eine Beispiel-Rechenumgebung, die einen Knoten-1 110 mit einer Verarbeitungsressource 112 und einem maschinenlesbaren Medium 114 umfasst. Der Knoten-1 110 kann auch über eine Netzwerkschnittstelle mit einem drahtgebundenen und/oder drahtlosen Netzwerk kommunizieren. BILD 1 veranschaulicht auch einen Knoten-2 140 und einen Knoten-3 160, von denen jeder eine Struktur und Funktionalität aufweisen kann, die dem hier beschriebenen Knoten-1 110 in vielerlei Hinsicht ähnlich ist, und die miteinander und mit dem Knoten-1 110 über ein Netzwerk kommunizieren können. Jeder der Knoten-1 110, Knoten-2 140 und Knoten-3 160 kann auch als ein Computersystem bezeichnet werden, und jeder kann ein Server, eine Computeranwendung, eine Arbeitsstation, ein Speichersystem, ein Speicherarray, ein konvergiertes System, ein hyperkonvergiertes System oder ähnliches sein.
  • Die Verarbeitungsressource 112 kann einen Mikrocontroller, einen Mikroprozessor, einen oder mehrere Kerne einer Zentraleinheit, eine anwendungsspezifische integrierte Schaltung (ASIC), ein FPGA (Field Programmable Gate Array) usw. umfassen. Das maschinenlesbare Medium 114 kann nicht-transitorisch sein (d.h. es umfasst keine transitorischen Ausbreitungssignale) und kann einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Flash-Speicher, ein Festplattenlaufwerk, eine Solid State Disk usw. umfassen. Die Verarbeitungsressource 112 kann Anweisungen (d.h. Programmier- oder Softwarecode) ausführen, die auf dem maschinenlesbaren Medium 114 gespeichert sind. Zusätzlich oder alternativ kann die Verarbeitungsressource 112 elektronische Schaltungen zur Ausführung der hier beschriebenen Befehle und Funktionen enthalten.
  • Eine Datenvirtualisierungsplattform 116 kann auf dem Knoten-1 110 betrieben werden. In einigen Implementierungen kann eine Datenvirtualisierungsplattform 116 durch eine virtuelle Steuerung (z.B. eine virtuelle Maschine) instanziiert werden, die ihrerseits z.B. als Anweisungen implementiert werden kann, die auf dem maschinenlesbaren Medium 114 kodiert sind und von der Verarbeitungsressource 112 ausgeführt werden. Die Datenvirtualisierungsplattform kann, wie oben beschrieben, objektbasiert sein, die Dateisystem-Instanzen unterhalten kann, die durch einen Objektspeicher 120 gesichert sind. Eine Dateisystem-Instanz kann einem Client, wie einer Gast-VM, einem Betriebssystem oder ähnlichem, Speicherplatz zur Verfügung stellen, der auf dem Knoten-1 110 oder auf einem anderen Computersystem in Kommunikation mit der Datenvirtualisierungsplattform 116 des Knotens-1 110 über ein Netzwerk ausgeführt wird. In einigen Implementierungen können Daten einer Gast-VM, wie z.B. Dateien und Direktoren, im Objektspeicher 120 als Datenobjekte gespeichert werden, die durch inhaltsbasierte Hash-Signaturen identifizierbar sind und in der Dateisysteminstanz der Gast-VM in einer hierarchischen Anordnung (z.B. einem Merkle-Baum) mit einem Wurzelobjekt in Beziehung stehen. Obwohl sich die hier beschriebenen Beispiele auf Daten der Gast-VM beziehen können, sollte man sich darüber im Klaren sein, dass die hier beschriebenen Techniken auch andere Client-Umgebungen, einschließlich nicht-virtualisierter Umgebungen, unterstützen können.
  • Der Knoten-1 110 kann zusammen mit einem oder mehreren anderen Knoten zu einem Cluster gruppiert werden. Beispielsweise teilen sich Knoten-1 110 und Knoten-2 140 eine gemeinsame Mitgliedschaft in Cluster 150. Der Cluster 150 kann über einen Schlüsselverschlüsselungsschlüssel (KEK) 152 verfügen, der von allen Knoten in diesem Cluster 150 gemeinsam genutzt wird, einschließlich Knoten-1 110 und Knoten-2 140. In einer Umgebung, in der mehrere Cluster koexistieren, kann jedem Cluster ein anderer KEK zugeordnet werden. Mit anderen Worten, ein bestimmter KEK ist exklusiv für einen zugeordneten Cluster und die Knoten dieses Clusters. In einigen Implementierungen kann ein Knoten im Cluster 150 den KEK 152 von einem Schlüsselverwaltungssystem (nicht abgebildet) abrufen, das Schlüsselverschlüsselungsschlüssel generieren kann. In einigen Implementierungen kann ein KEK ein 256-Bit-AES-256-Schlüssel sein.
  • Der Cluster 150 kann eine oder mehrere Sicherheitsdomänen enthalten. Eine Sicherheitsdomäne ist ein Container für sichere Dateisysteminstanzen. Anders ausgedrückt, eine oder mehrere sichere Dateisysteminstanzen können zu einer Sicherheitsdomäne gehören. In einigen Beispielen kann eine Sicherheitsdomäne als eine Eigenschaft einer Dateisysteminstanz oder einer mit der Dateisysteminstanz verbundenen VM betrachtet werden. Jede Sicherheitsdomäne ist mit einem anderen Datenverschlüsselungsschlüssel (DEK) verbunden. Ein DEK wird verwendet, um Datenobjekte der Dateisysteminstanzen der zugehörigen Sicherheitsdomäne zu verschlüsseln. Ein DEK kann für eine Sicherheitsdomäne durch die Datenvirtualisierungsplattform 116 (z. B. eine Steuerungsebene der Datenvirtualisierungsplattform) bei der Erstellung dieser Sicherheitsdomäne erstellt werden. In einigen Implementierungen kann ein DEK ein 512-Bit-XTS-AES-256-Schlüssel sein. Der DEK kann unter dem KEK des Clusters, der die Sicherheitsdomäne enthält, eingehüllt sein. Die Schlüsselumhüllung, wie z.B. die Umhüllung des DEK durch den KEK, kann z.B. durch einen symmetrischen Schlüsselkapselungsalgorithmus durchgeführt werden.
  • Die Dateisystem-Instanzen in einer Sicherheitsdomäne können z.B. Snapshots der Daten einer Gast-VM zu verschiedenen Zeitpunkten sein. In einigen Implementierungen ist jeder Snapshot selbst eine Dateisysteminstanz. In einem anderen Beispiel kann eine Sicherheitsdomäne Dateisystem-Instanzen verschiedener Gast-VMs enthalten, die in weiteren Beispielen auch Snapshots für eine oder mehrere dieser verschiedenen Gast-VMs enthalten können. Eine Sicherheitsdomäne kann durch einen Benutzer oder durch Richtlinien konfiguriert werden. Man kann davon ausgehen, dass eine Sicherheitsdomäne eine Sammlung von Dateisystem-Instanzen ist, die mit demselben DEK verschlüsselt werden sollen.
  • Im Beispiel von BILD 1 umfasst Cluster 150 eine Sicherheitsdomäne 124, die die Dateisysteminstanzen 122-1 bis 122-N (auch allgemein oder kollektiv als Dateisysteminstanz(en) 122 bezeichnet) enthält. Andere Sicherheitsdomänen können auf dem Knoten-1 110 wirksam sein, wie durch einen Stack unter der Sicherheitsdomäne 124 dargestellt, und der Knoten-1 110 kann verschiedene DEKs für jede dieser zusätzlichen Sicherheitsdomänen enthalten. Die Dateisysteminstanzen 122 sind gemäß den hier beschriebenen Techniken sicher, und die Datenobjekte 126, aus denen die sicheren Dateisysteminstanzen 122 bestehen, sind mit DEK 130 verschlüsselt. Zeilen, die einige Datenobjekte 126 mit einigen Dateisysteminstanzen 122 verbinden, veranschaulichen beispielhaft, dass bestimmte Dateisysteminstanzen bestimmte Datenobjekte enthalten. In einigen Implementierungen werden die Datenobjekte 126 unter Verwendung des DEK und entsprechender Tweak-Werte verschlüsselt, die auf einer Position der Datenobjekte innerhalb der Dateisysteminstanzen 122 basieren (z.B. Position basierend auf einer Inode-Nummer, Inode-Baumnummer, Offset usw.), wie weiter unten beschrieben wird.
  • Jede Dateisysteminstanz 122-1 bis 122-N kann durch ein entsprechendes Root-Objekt 128-1 bis 128-N (auch allgemein oder kollektiv als Root-Objekt(e) 128 bezeichnet) identifiziert werden, wie z. B. durch eine Zeile, die die Dateisysteminstanz 122-1 und das Root-Objekt 128-1 verbindet, und eine Zeile, die die Dateisysteminstanz 122-N und das Root-Objekt 128-N verbindet, veranschaulicht wird. In einer Beispielimplementierung können die Stammobjekte 128 in einer sicheren Dateisysteminstanz unverschlüsselt bleiben, während die Stammobjekte 128 in anderen unten beschriebenen Implementierungen verschlüsselt werden können. Ein Wurzelobjekt 128 einer Dateisysteminstanz 122 kann hierarchisch mit den verschlüsselten Datenobjekten 126 durch interne Metadatenobjekte 127 verbunden werden, wodurch z.B. ein Merkle-Baum mit Verzweigungsfaktor N gebildet wird. Obwohl einige interne Metadatenobjekte 127 Teil einer Dateisysteminstanz 122 sind, werden in BILD 1 aus Gründen der Übersichtlichkeit keine Linien gezeichnet. In einigen Implementierungen können die internen Metadatenobjekte 127 unverschlüsselt bleiben.
  • In einem Beispiel können die Dateisysteminstanzen 122 auf Knoten-1 110 jeweils Snapshots der Daten einer bestimmten Gast-VM sein. In einem anderen Beispiel können einige der Dateisystem-Instanzen 122 verschiedenen Gast-VMs entsprechen.
  • Der Knoten-1 110 kann an der Erstellung eines sicheren, verschlüsselten Backups einer Dateisysteminstanz 122 auf einen anderen Knoten (hier auch als Backup-Dateisysteminstanz bezeichnet) teilnehmen. Beispielsweise kann ein lokales Backup 142 auf Knoten-2 140 im Cluster 150 (d. h. einem lokalen Knoten) oder ein entferntes Backup 162 auf Knoten-3 160 (d. h. einem entfernten Knoten) erstellt werden. Da sich Knoten-2 140 im Cluster 150 befindet, kann Knoten-2 140 die Sicherheitsdomäne 124 enthalten, um die sichere Sicherung der Dateisysteminstanz 122 zu enthalten, und somit kann Knoten-2 140 möglicherweise zusätzliche Operationen ausführen, die Zugriff auf mindestens KEK und DEK beinhalten, wie z. B. eine Sicherungswiederherstellung, die ein entfernter Knoten, wie z. B. Knoten-3 160, der nicht Teil des Clusters 150 ist und nicht die Sicherheitsdomäne 124 enthält, möglicherweise nicht ausführen kann. Die Backups können Deduplizierung und Komprimierung beibehalten, da sie aus derselben Sicherheitsdomäne stammen, wie im Folgenden beschrieben wird. Ein Backup, das aus der Sicherheitsdomäne 124 stammt, bezieht sich im Allgemeinen auf ein Backup, das von einer Dateisysteminstanz 122 erstellt wurde, die in der Sicherheitsdomäne 124 enthalten ist. Eine aus der Sicherheitsdomäne 124 stammende Sicherung kann auch in der Sicherheitsdomäne 124 enthalten sein, wenn die Sicherung auf einem lokalen Knoten wie z.B. Knoten-2 140 liegt, und kann nicht in der Sicherheitsdomäne 124 enthalten sein, wenn die Sicherung auf einem entfernten Knoten wie z.B. Knoten-3 160 liegt. Node-2 140 und Node-3 160 können jeweils eine Datenvirtualisierungsplattform ähnlich der Datenvirtualisierungsplattform 116 betreiben, um ein oder mehrere Backups zu speichern.
  • Beispielsweise sind Backup-1 144-1 bis Backup-N 144-N (auch allgemein oder zusammenfassend als Backup(s) 144 bezeichnet) Sicherungen bzw. Replikate der Dateisysteminstanz-1 122-1 bis Dateisysteminstanz-N 122-N und können auf Knoten-2 140, Knoten-3 160 oder sowohl Knoten-2 140 als auch Knoten-3 160 oder anderen nicht dargestellten Knoten gespeichert werden. Der Begriff Backup, Backup der Dateisysteminstanz oder Backup der Dateisysteminstanz kann hier austauschbar verwendet werden. In einigen Implementierungen ist eine Sicherung 144 eine Replik (z.B. eine identische Kopie) einer Quell-Dateisystem-Instanz 122, und daher kann jede der Sicherungen 144 auch hierarchische Dateisystem-Instanzen sein, die von einem Objektspeicher gesichert werden. In einigen Implementierungen kann der Sicherungsprozess das Senden von 170 zumindest einiger der verschlüsselten Datenobjekte 126 und des DEK 130 an einen Sicherungsknoten umfassen. Sichere Dateisystem-Instanzen 122 und Sicherungen 144 können kryptographisch gelöscht werden, indem der zugehörige DEK 130 gelöscht wird. Kryptographisches Löschen bedeutet, dass die Daten nicht mehr in eine brauchbare Form entschlüsselt werden können, in der Regel durch Zerstörung des zugehörigen Schlüssels. Die Daten einer kryptographisch gelöschten Dateisysteminstanz oder eines Backups können dem Garbage-Collection-Prozess der Datenvirtualisierungsplattform 116 unterliegen.
  • BILD 2 zeigt eine Beispieldateisysteminstanz 200. Die Dateisysteminstanz 200 kann eine Beispielimplementierung einer Dateisysteminstanz 122 aus BILD 1 sein. In BILD 2 kann die Dateisysteminstanz 200 kreisförmige Objekte enthalten, die Metadatenobjekte repräsentieren, und rechteckige Objekte, die Datenobjekte repräsentieren. Die Metadaten- und Datenobjekte der Dateisysteminstanz 200 können in einem Objektspeicher, wie z.B. dem Objektspeicher 120, verwaltet werden.
  • Die Dateisysteminstanz 200 wird durch ein Wurzelobjekt 202 identifiziert, das ein Beispiel für die Wurzelobjekte 128 von sein kann. Die Dateisystem-Instanz 200 enthält Datenobjekte 204, die ein Beispiel für die Datenobjekte 126 von sein können. Die Dateisysteminstanz 200 hat die Form eines Merkle-Baums (auch als Hash-Baum bezeichnet) mit einem Verzweigungsfaktor N, wobei sich die Datenobjekte 204 auf einer Blattebene befinden und hierarchisch mit dem Wurzelobjekt 202 verbunden sind. Insbesondere werden die inhaltsbasierten Signaturen der Datenobjekte 204 berechnet und als Inhalt in einem zugehörigen übergeordneten Metadatenobjekt 206 gespeichert, eine inhaltsbasierte Signatur dieses übergeordneten Metadatenobjekts 206 wird berechnet und in seinem übergeordneten Metadatenobjekt gespeichert, und so weiter, bis das Wurzelobjekt 202 erreicht ist. Die Metadatenobjekte zwischen den Blattdatenobjekten 204 und dem Wurzelobjekt 202, wie z.B. die Objekte 206, 208 (unten beschrieben), können als interne Metadatenobjekte bezeichnet werden, die Beispiele für interne Metadatenobjekte 127 von BILD 1 sein können.
  • Eine Baumebene 220 ist ein dimensionaler Aspekt des Baums der Dateisysteminstanz 200, der angibt, wie viele Ebenen vom Wurzelobjekt 202 entfernt ein bestimmtes Objekt ist (z.B. in aufsteigenden ganzzahligen Werten, wobei die Wurzel null ist). Ein Versatz 230 in die Dateisysteminstanz 200 ist ein dimensionaler Aspekt, der eine Position eines Objekts auf einer gegebenen Baumebene darstellt (z.B. in aufsteigenden ganzzahligen Werten von links nach rechts), und kann ferner entweder als ein Versatz in den gesamten Baum der Dateisysteminstanz 200 auf einer gegebenen Baumebene oder als ein Versatz in einen Teilbaum 212 der Dateisysteminstanz 200 auf einer gegebenen Baumebene angegeben werden.
  • Die Dateisysteminstanz 200 enthält auch ein Inode-Mapping 207, das eine spezialisierte Ebene von Metadatenobjekten ist, von denen jedes einen Inode auf einem Speicherprotokoll auf Benutzerebene oberhalb der Dateisysteminstanz 200 abbildet oder einem Inode entspricht (z.B. ein Inode in einer Gast-VM). Ein Inode auf dem Speicherprotokoll auf Benutzerebene repräsentiert eine Datei oder ein Verzeichnis in z.B. einem Gast-VM-Datensatz. So kann z.B. Objekt 208-1 auf einen Inode 0, Objekt 208-K auf einen Inode K und Objekt 208-N auf einen Inode N abgebildet werden. Somit ist eine Inode-Nummer (z.B. 0 bis N) implizit in der Position (d.h. in der Dimension Offset 230) eines Objekts im Baum auf der Ebene der Inode-Abbildung 207 enthalten.
  • In einigen Implementierungen kann jedes der Inode-Metadatenobjekte 208-1 bis 208-N (auch allgemein oder kollektiv als Inode-Metadatenobjekt(e) 208 bezeichnet) auf Datenobjekte verweisen, die Attribut- und/oder erweiterte Attributdaten für diesen Inode speichern. Zusätzlich kann jedes der Inode-Metadatenobjekte auf einen Datenteilbaum verweisen, der sich hierarchisch nach unten auf die Datenobjekte bezieht, die die Daten der Datei oder des Verzeichnisses enthalten, auf die der Benutzer zugreifen kann und die bzw. das der Inode-Nummer entspricht. Die Größe eines Datenteilbaums kann für verschiedene Implementierungen variieren. Eine Inode-Baumnummer kann nützlich sein, um die Art des untergeordneten Verweises aus einem Inode-Metadatenobjekt zu identifizieren, einschließlich eines Datenteilbaums (z.B. Inode-Baumnummer 0), eines Attributobjekts (z.B. Inode-Baumnummer 1) oder eines erweiterten Attributobjekts (z.B. Inode-Baumnummer 2). Zur Veranschaulichung zeigt BILD 2 das Inode-Metadatenobjekt 208-K für Inode K, das sich auf das Inode-Attributdatenobjekt 210 (Inode-Baumnummer 1), das Inode-erweiterte Attributdatenobjekt 211 (Inode-Baumnummer 2) und einen Datenteilbaum 212 (Inode-Baumnummer 0) bezieht, der sich letztlich über das teilweise Metadatenobjekt 206, das den Datenobjekten 408 übergeordnet ist, bis hinunter zu den Datenobjekten 204 erstreckt.
  • Beispielimplementierungen der sicheren Sicherungs- und Löschfunktionalität von Knoten-1 110 werden nun in den beschrieben. In einigen Implementierungen kann die hier beschriebene sichere Sicherungs- und Löschfunktionalität als Anweisungen implementiert werden, die auf dem maschinenlesbaren Medium 114 gespeichert sind und von der Verarbeitungsressource 112 ausgeführt werden, und insbesondere kann es sich um die Funktionalität der Datenvirtualisierungsplattform 116 handeln. Einzelheiten der Beispielimplementierung können unter Bezugnahme auf 1 und 2 beschrieben werden.
  • BILD 3 zeigt ein Beispielsystem 300 mit einem maschinenlesbaren Medium 304, das mit den Anweisungen 306, 308, 310 kodiert ist, die von einer Verarbeitungsressource 302 ausführbar sind. System 300 kann als Knoten-1 110 dienen oder einen Teil davon bilden. Das System 300 kann zu einem Cluster gehören, wie z.B. Cluster 150 von 1. Die Verarbeitungsressource 302 und das maschinenlesbare Medium 304 können in vielerlei Hinsicht mit der Verarbeitungsressource 112 und dem maschinenlesbaren Medium 114 analog sein. Das maschinenlesbare Medium 304 kann nicht vorübergehend sein.
  • Wenn die Anweisung 306 ausgeführt wird, veranlasst sie die Verarbeitungsressource 302, Datenobjekte einer Dateisysteminstanz (z.B. 122-1 oder 200) zu verschlüsseln, um verschlüsselte Datenobjekte (z.B. 126 oder 204) unter Verwendung eines DEK (z.B. 130) zu erzeugen, der spezifisch für die Sicherheitsdomäne (z.B. 124) ist, die die Dateisysteminstanz enthält. Die Arten von Datenobjekten, die mit den Anweisungen 306 verschlüsselt werden, können Datenobjekte (z.B. 204) in einem Inode-Datenteilbaum (z.B. 212), Inode-Attribut-Datenobjekte (z.B. 210) oder Inode-erweiterte Attribut-Datenobjekte (z.B. 211) unter Verwendung des DEK enthalten. Das DEK wird durch ein KEK (z.B. 152) umhüllt, das ausschließlich innerhalb des Clusters (z.B. 150) gemeinsam genutzt wird. Die Anweisung 306 kann XTS-AES-Verschlüsselung unter Verwendung des DEK verwenden, oder alternativ kann die Anweisung 306 andere Verschlüsselungsalgorithmen wie Adiantum verwenden, das auf ChaCha20 und Poly1305 basiert.
  • In einigen Implementierungen kann die Anweisung 306 Datenobjekte mit dem DEK verschlüsseln und auch entsprechende Tweak-Werte verwenden, die auf den Positionen der Datenobjekte in der Dateisysteminstanz basieren. Beispielsweise kann die Position eines Datenobjekts auf einer Inode-Nummer, einer Inode-Baumnummer, einem Offset oder einer Baumebene, wie oben beschrieben, oder auf anderen dimensionalen oder relationalen Aspekten eines Baums oder einer beliebigen Kombination der vorgenannten basieren. In einer Beispielimplementierung kann eine Position eines Datenobjekts eine mathematische Kombination (z.B. eine Summe) aus einer Inode-Nummer (z.B. 0-N), einer Inode-Baumnummer (z.B. 0-2) und einem Offset (z.B. 0 für Attribut- und erweiterte Attributdatenobjekte und eine ganze Zahl in der Dimension Offset 230 für Datenteilbaum-Datenobjekte) sein. Aufgrund der Verschlüsselung von Datenobjekten eines Dateisystems unter Verwendung entsprechender Positionen muss die Struktur der Dateisysteminstanz bekannt sein, um jedes der verschlüsselten Datenobjekte entschlüsseln zu können, wodurch ein weiterer Sicherheitsmechanismus bereitgestellt wird.
  • In einigen Implementierungen kann die Anweisung 306 bei einer Anforderung zur Sicherung bestehender Gast-VM-Daten, die der Dateisysteminstanz entsprechen, bei einer Anforderung zur Erstellung einer neuen sicheren Dateisysteminstanz oder beim Hinzufügen neuer Datenobjekte zu einer bestehenden sicheren Dateisysteminstanz ausgelöst werden.
  • In einigen Implementierungen setzt die Dateisysteminstanz die verschlüsselten Datenobjekte, die sich auf Blattebene befinden, durch Verweise auf Signaturen, die auf der Grundlage der verschlüsselten Datenobjekte berechnet wurden, hierarchisch in Beziehung zu einem Wurzelobjekt, wie oben in Bezug auf BILD 2 beschrieben. In einigen Implementierungen können interne Metadatenobjekte der Dateisysteminstanz zwischen dem Wurzelobjekt und den verschlüsselten Datenobjekten auf der Blattebene unverschlüsselt sein.
  • Die Anweisungen 308 veranlassen die Verarbeitungsressource 302, wenn sie ausgeführt wird, eine Sicherung (z.B. 144-1) der Dateisysteminstanz (z.B. 122-1) zu erstellen, die zumindest einige der verschlüsselten Datenobjekte (z.B. 126) enthält. Insbesondere können die Anweisungen 308 die Sicherung auf einem Sicherungsknoten erstellen, der sich vom System 300 unterscheidet, wie z.B. einem lokalen Knoten (z.B. 140), der zum gleichen Cluster wie das System 300 gehört, oder einem entfernten Knoten (z.B. 160) außerhalb und entfernt vom Cluster.
  • In einigen Implementierungen kann der Backup-Knoten auch eine Datenvirtualisierungsplattform betreiben, die mit der Datenvirtualisierungsplattform des System 300 identisch oder kompatibel ist, und der Backup-Knoten und das System 300 können bei der Durchführung des Backup-Vorgangs zusammenarbeiten. Die Erstellung des Backups kann die Replikation zumindest einiger der verschlüsselten Datenobjekte vom System 300 zum Backup-Knoten umfassen, und insbesondere die Replikation verschlüsselter Datenobjekte, die nicht bereits auf dem Backup-Knoten vorhanden sind, und nicht die Replikation verschlüsselter Datenobjekte zum Backup-Knoten, für die entsprechende Signaturen auf dem Backup-Knoten gefunden werden. Insbesondere kann, wie weiter unten beschrieben wird, die Nicht-Replikation verschlüsselter Datenobjekte Teil eines Deduplizierungsprozesses sein und kann auftreten, wenn andere Backups auf dem Backup-Knoten vorhanden sind, wie z.B. Backups anderer Snapshots für dieselben Gast-VM-Daten. Auf diese Weise kann der Backup-Prozess die Vorteile der Deduplizierungseigenschaften nutzen und WAN-effizient sein. Darüber hinaus werden in einigen Implementierungen verschlüsselte Datenobjekte auf einen Backup-Knoten repliziert, aber interne Metadatenobjekte und Root-Objekte werden nicht repliziert, um den Netzwerkverkehr zu reduzieren und die WAN-Effizienz zu verbessern. Stattdessen können interne Metadatenobjekte und Wurzelobjekte am Backup-Knoten rekonstruiert werden, indem Inhalt und Signatur aus den verschlüsselten Datenobjekten neu berechnet werden, in einer für Merkle-Bäume geeigneten Weise.
  • In einer Beispielimplementierung können die Anweisungen 308 ausgelöst werden, wenn System 300 einen Snapshot der Gast-VM-Daten erstellt, der eine Dateisysteminstanz (z.B. 122-1) als Snapshot ergibt. Die Anweisung 308 kann anschließend ein Backup (z.B. 144-1) dieser Dateisysteminstanz auf dem Backup-Knoten erstellen.
  • Wenn die Anweisung 310 ausgeführt wird, veranlasst sie die Verarbeitungsressource 302, den von der KEK umhüllten DEK an den Sicherungsknoten zu senden. Zum Beispiel kann, wie in BILD 1 dargestellt, eine Kopie von DEK 130 an den Sicherungsknoten-2 140 und/oder Sicherungsknoten-3 160 gesendet und dort verbleiben. Der Sicherungsknoten kann die Sicherung nicht entschlüsseln, es sei denn, der Knoten gehört zum gleichen Cluster wie das System 200 und hat Zugriff auf den KEK, um den DEK auszupacken. Wenn der Sicherungsknoten beispielsweise vom Cluster entfernt ist, hat dieser Knoten keinen Zugriff auf die KEK, da er nicht zum Cluster gehört, kann die DEK ohne die entsprechende KEK nicht auspacken und somit die Sicherung ohne die DEK nicht entschlüsseln. Somit bleibt die Sicherung außerhalb des Clusters sicher.
  • BILD 4 zeigt ein Beispielsystem 400 mit einem maschinenlesbaren Medium 404, das mit den Anweisungen 404, 408, 410, 412 kodiert ist, die von einer Verarbeitungsressource 402 ausgeführt werden können. System 400 kann als Knoten-1 110 dienen oder einen Teil davon bilden. In einigen Beispielen können die Anweisungen von System 400 in Kombination mit den Anweisungen von System 300 implementiert werden. Das System 400 kann zu einem Cluster gehören, wie z.B. Cluster 150 von 1. Die Verarbeitungsressource 402 und das maschinenlesbare Medium 404 können in vielerlei Hinsicht mit der Verarbeitungsressource 112 und dem maschinenlesbaren Medium 114 analog sein. Das maschinenlesbare Medium 404 kann nicht-transitorisch sein.
  • Wenn die Anweisung 406 ausgeführt wird, veranlasst sie die Verarbeitungsressource 402, eine Signatur für ein Objekt der Dateisysteminstanz zu erzeugen, die z. B. auf dem Inhalt des Objekts basiert. Die Anweisung 406 kann verwendet werden, um eine Signatur für ein verschlüsseltes Datenobjekt (z.B. 126 oder 204), ein verschlüsseltes Inode-Attribut oder ein erweitertes AttributDatenobjekt (z.B. 210 oder 211), ein internes Metadatenobjekt (z.B. 127, 206, 208) oder ein Wurzelobjekt (z.B. 128 oder 202) zu berechnen. So kann ein verschlüsseltes Datenobjekt oder ein Metadatenobjekt durch eine entsprechende Signatur identifiziert werden, die durch die Anweisungen 406 erzeugt wird.
  • In einigen Implementierungen kann die Erzeugung einer Signatur eines Objekts z.B. die Berechnung eines kryptographischen Hash-Digests dieses Objekts unter Verwendung einer Hash-Funktion wie SHA-1, SHA-256, MD5 usw. umfassen. Beispielsweise kann ein unverschlüsseltes Datenobjekt (unkomprimiert oder komprimiert) einer bestimmten Dateisysteminstanz durch die Anweisungen 306 unter Verwendung eines für die Dateisysteminstanz spezifischen DEK wie oben beschrieben (und in einigen Implementierungen auch unter Verwendung einer Position) verschlüsselt werden, und dann kann dieses verschlüsselte Datenobjekt an die Anweisungen 406 zur Berechnung einer entsprechenden Signatur übergeben werden.
  • In einigen Implementierungen kann die Instruktion 406 hashbasierte Nachrichten-Authentifizierungscodes (HMACs) berechnen, die als Signaturen von Objekten dienen. Beispielsweise kann die Berechnung einer HMAC-Signatur für ein Objekt die Verkettung des Objekts mit einem Schlüssel und die Berechnung eines kryptografischen Hashes des Verkettungsergebnisses beinhalten. In einigen Implementierungen kann der Schlüssel auf der Position des Objekts in der Dateisysteminstanz basieren, wie auf angegeben. Insbesondere kann die Position eines verschlüsselten Datenobjekts z.B. analog zu der Position sein, die in den oben beschriebenen Implementierungen als Verschlüsselungsoptimierungswert verwendet wird, und kann auf einer Inode-Nummer, einer Inode-Baumnummer und/oder einem Offset basieren. Die Position der Baumwurzel kann z.B. Null sein. Die Position von Metadatenobjekten kann z. B. auf einer Baumebene und einem Offset basieren. Aufgrund der Verwendung einer Objektposition zur Berechnung der Objektsignatur und weil Dateisysteminstanzen keine Backpointer-Signaturen speichern, kann eine Dateisysteminstanz nicht mehr rekonstruiert werden, wenn das Wurzelobjekt gelöscht oder kryptographisch gelöscht wurde; ein Beispiel dafür wird hier weiter unten z.B. unter Bezugnahme auf beschrieben.
  • Wenn die Anweisung 408 ausgeführt wird, veranlasst sie die Verarbeitungsressource 402, eine Sicherung einer Dateisysteminstanz auf einem Sicherungsknoten zu erstellen. Bestimmte Merkmale der Instruktionen 408 können in vielerlei Hinsicht den Instruktionen 308 ähnlich sein. Beispielsweise kann in einigen Implementierungen die Anweisung 408 durch einen Schnappschuss auf dem System 400 oder durch eine Sicherungsanforderung ausgelöst werden. Die Instruktion 408 kann das Backup auf einem lokalen Backup-Knoten oder einem entfernten Backup-Knoten erstellen, indem zumindest einige der verschlüsselten Objekte der Dateisysteminstanz repliziert werden.
  • In einigen Fällen kann die Anweisung 408 ausgeführt werden, um eine zusätzliche oder nachfolgende Sicherung von Daten in der Sicherheitsdomäne zu erstellen, wenn bereits frühere Sicherungen oder eine Reihe von Sicherungen in der oder aus der Sicherheitsdomäne existieren. Zur Veranschaulichung in Bezug auf BILD 1: Dateisystem-Instanz-1 122-1 kann zuvor als Backup-1 144-1 auf Knoten-2 140 und/oder Knoten-3 160 gesichert worden sein, und Dateisystem-Instanz-1 122-1 und Backup-1 144-1 können z.B. einem ersten Schnappschuss von Gast-VM-Daten entsprechen. Zu einem späteren Zeitpunkt kann ein weiterer Snapshot der Gast-VM-Daten erzeugt werden, was zu einer Dateisysteminstanz-N 122-N führt, für die die Anweisungen 408 ausgeführt werden können, um ein Backup-N 144-N auf Knoten-2 140 und/oder Knoten-3 160 zu erstellen. In einem anderen Beispiel sind die Dateisysteminstanz-1 122-1 und die Dateisysteminstanz-N 122-N möglicherweise keine Snapshots von Daten derselben Gast-VM, sondern Snapshots von Daten verschiedener Gast-VMs.
  • In einigen Implementierungen kann das System 400 Datenänderungen (z.B. von Gast-VM-Daten) laufend auf den Backup-Knoten replizieren, z.B. für Hochverfügbarkeitszwecke. Die laufende Replikation kann das Senden verschlüsselter Datenobjekte an den Backup-Knoten beinhalten, während sie auf dem System 400 geschrieben oder geändert werden. In solchen Fällen kann die Anweisung 408 zur Erstellung eines Backups beinhalten, dass das System 400 eine Snapshot-Dateisysteminstanz (z.B. 122-N) der Daten erstellt und den Backup-Knoten anweist, ein entsprechendes Backup (z.B. 144-N) auf der Grundlage der Datenänderungen zu erstellen, die seit einem letzten Backup (z.B. 144-(N-1)) kontinuierlich repliziert wurden.
  • Wenn die Anweisungen 410 ausgeführt werden, veranlassen sie die Verarbeitungsressource 402, Objekte auf der Grundlage von Signaturen der Objekte zu deduplizieren (z. B. wie durch die Anweisungen 406 erzeugt). Die Deduplizierung kann für Datenobjekte und/oder Metadatenobjekte durchgeführt werden. In einigen Implementierungen kann die Anweisung 410 eine Inline-Deduplizierung durchführen, was z.B. den Vergleich von Signaturen von Objekten, die zum Schreiben in den Objektspeicher bereitgestellt werden, mit Signaturen von Objekten, die bereits im Objektspeicher gespeichert sind, und die Entscheidung, keine Objekte zu schreiben, für die dieselben Signaturen bereits existieren, einschließen kann. Stattdessen kann die deduplizierte Dateisysteminstanz die vorhandenen Objekte unter Verwendung der vorhandenen Signaturen referenzieren. In anderen Implementierungen kann die Anweisung 410 eine Deduplizierung nach dem Prozess durchführen, was das Entfernen von Objekten aus dem Objektspeicher mit derselben Signatur einschließen kann. Die Anweisung 410 kann ausgeführt werden, wenn ein Snapshot auf einem Quellknoten erstellt wird, auf dem die Gast-VM läuft (z.B. Knoten-1 110), oder wenn ein Backup auf einem lokalen Backup-Knoten (z.B. Knoten-2 140) oder auf einem entfernten Backup-Knoten (z.B. Knoten-3 160) erstellt wird.
  • Die Datensicherheit kann aufrechterhalten werden, ohne dass die Fähigkeit zur Deduplizierung von Daten beeinträchtigt wird, da verschiedene DEKs zur Verschlüsselung von Datenobjekten verwendet werden, die zu verschiedenen Sicherheitsdomänen gehören oder aus verschiedenen Sicherheitsdomänen stammen. In einem Beispiel werden Datenobjekte mit identischem unverschlüsselten Inhalt, die aber zu verschiedenen Dateisysteminstanzen derselben Sicherheitsdomäne gehören, mit demselben DEK verschlüsselt, was zu identischen verschlüsselten Datenobjekten führen kann, und diese verschlüsselten Datenobjekte können gehasht werden, um identische Signaturen zu erzeugen.
  • Andererseits werden Datenobjekte mit identischem unverschlüsseltem Inhalt, die zu verschiedenen Dateisysteminstanzen aus verschiedenen Sicherheitsdomänen gehören, von verschiedenen DEKs verschlüsselt, was zu verschlüsselten Datenobjekten mit unterschiedlichem verschlüsselten Inhalt führt, was wiederum zu unterschiedlichen Signaturen führen würde, die von den Anweisungen 406 erzeugt werden. Die unterschiedlichen Signaturen würden dazu führen, dass die Datenobjekte aus verschiedenen Sicherheitsdomänen gemäß den Anweisungen 410 nicht über diese verschiedenen Sicherheitsdomänen hinweg dedupliziert werden, obwohl sie identische unverschlüsselte Inhalte haben.
  • Wenn die Objektposition zum Verschlüsseln von Objekten und/oder zum Berechnen von Objektsignaturen verwendet wird, wie zuvor unter Bezugnahme auf die Anweisungen 306 beschrieben, dann müssten Objekte mit identischem unverschlüsselten Inhalt innerhalb der jeweiligen Dateisystem-Instanzen (wie z.B. Snapshots) an der gleichen Position sein, um in einer Sicherheitsdomäne dedupliziert werden zu können. Mit anderen Worten, wenn die Objektposition für die Verschlüsselung und Signaturberechnung verwendet wird, dürfen Objekte mit identischem unverschlüsselten Inhalt nicht innerhalb derselben Dateisysteminstanz und auch nicht zwischen Dateisysteminstanzen aus verschiedenen Sicherheitsdomänen dedupliziert werden. Deduplizierung kann jedoch für Objekte mit identischem unverschlüsselten Inhalt an derselben Position zwischen Dateisysteminstanzen aus derselben Sicherheitsdomäne auftreten.
  • Ein Beispiel, bei dem Deduplizierung auftreten kann, insbesondere wenn die Objektposition zum Verschlüsseln von Objekten und Berechnen von Signaturen verwendet wird, ist unter den Sicherungen von Snapshots sicherer Daten derselben Gast-VM. In einem solchen Fall ist die Deduplizierung von Vorteil, da Momentaufnahmen in der Zeit große Mengen gemeinsamer Daten gemeinsam genutzt werden können. Beispielsweise kann die Anweisung 408 mehrmals ausgeführt werden, um mehrere Backup-Dateisystem-Instanzen zu erstellen (z.B. 144-1 bis 144-N), und die Anweisung 410 kann Objekte gegen diese Backup-Dateisystem-Instanzen deduplizieren. Die Deduplizierung durch die Anweisungen 410 kann in Verbindung mit den Anweisungen 408 inline erfolgen, um doppelte Objekte (z.B. insbesondere verschlüsselte Datenobjekte) während des Sicherungsprozesses zu identifizieren und zu entfernen, bevor sie auf den Sicherungsknoten repliziert werden, so dass die Replikation im Allgemeinen auf zusätzliche verschlüsselte Datenobjekte beschränkt ist, die nicht bereits auf dem Sicherungsknoten vorhanden sind. Dadurch kann die Menge der zum Backup-Knoten übertragenen Daten reduziert werden, was den Backup-Prozess WANeffizienter macht. In anderen Implementierungen kann die Anweisung 410 eine Postprozess-Deduplizierung auf dem Backup-Knoten durchführen.
  • Anweisungen 412, wenn ausgeführt, veranlassen die Verarbeitungsressource 402, einen DEK (z.B. 130) zu löschen, um kryptographisch jede Dateisysteminstanz (z.B. 122), jede Sicherung (z.B. 144) und jede Serie von Sicherungen (z.B. 144) zu löschen, die in der mit dem DEK verbundenen Sicherheitsdomäne (z.B. 124) enthalten sind und zu dieser gehören. In einigen Implementierungen kann die Anweisung 412 durch eine Benutzeranforderung zum Löschen der Sicherheitsdomäne ausgelöst werden. In einigen Implementierungen weist die Ausführung der Instruktionen 412 andere Knoten im Cluster an, ihre jeweiligen Kopien des DEK zu löschen und eine Bestätigung zu liefern. Durch die Löschung eines DEKs können die durch den DEK verschlüsselten Datenobjekte nicht mehr entschlüsselt werden, wodurch die sensiblen Daten einer Sicherheitsdomäne kryptographisch gelöscht werden können.
  • In einigen Implementierungen kann das maschinenlesbare Medium 404 mit anderen Anweisungen kodiert sein, z.B. Anweisungen zum Löschen einer KEK. Da ein KEK exklusiv für einen bestimmten Cluster ist, würde das Löschen des KEK die kryptographische Löschung jeder mit diesem Cluster verbundenen Sicherheitsdomäne sowie jeder Dateisysteminstanz, die in diesen Sicherheitsdomänen enthalten ist oder von diesen Sicherheitsdomänen stammt, verursachen.
  • 5 und 6 sind Flussdiagramme, die verschiedene Beispielmethoden darstellen. In einigen Implementierungen können ein oder mehrere Blöcke der Methoden im Wesentlichen gleichzeitig oder in einer anderen Reihenfolge als gezeigt ausgeführt werden. In einigen Implementierungen kann eine Methode mehr oder weniger Blöcke enthalten, als gezeigt sind. In einigen Implementierungen können einer oder mehrere der Blöcke einer Methode zu bestimmten Zeiten fortlaufend und/oder wiederholt ausgeführt werden. In einigen Implementierungen können Blöcke der Methoden kombiniert werden.
  • Die in 5 und 6 gezeigten Methoden können in Form von ausführbaren Befehlen implementiert werden, die auf einem maschinenlesbaren Medium (z.B., wie maschinenlesbares Medium 114, 304 oder 404) gespeichert sind und von einer Verarbeitungsressource (z.B., wie Verarbeitungsressource 112, 302 oder 402) und/oder in Form von elektronischen Schaltungen ausgeführt werden. Zum Beispiel können Aspekte der Methoden im Folgenden als von einem Knoten in einem Cluster ausgeführt beschrieben werden. In einigen Implementierungen können Aspekte der Methoden insbesondere von der oben beschriebenen Datenvirtualisierungsplattform 116, dem System 300 oder dem System 400 ausgeführt werden.
  • BILD 5 ist ein Flussdiagramm, das eine Beispielmethode 500 darstellt. Methode 500 beginnt bei Block 502 und setzt sich fort bis Block 504, wobei ein Knoten (z.B. ein Computersystem in einem Cluster) Datenobjekte einer Dateisysteminstanz mit einem DEK verschlüsselt, um verschlüsselte Datenobjekte zu erzeugen. Die Dateisysteminstanz gehört zu einer Sicherheitsdomäne innerhalb eines Clusters, zu dem der Knoten gehört. Der DEK ist spezifisch für die Sicherheitsdomäne, und der DEK wird von einem KEK umhüllt, der ausschließlich von den Knoten im Cluster gemeinsam genutzt wird. In einigen Implementierungen kann bei der Verschlüsselung eines Datenobjekts auch ein Tweak-Wert des Verschlüsselungsalgorithmus verwendet werden, der auf einer Position des Datenobjekts innerhalb der Dateisysteminstanz basieren kann (z.B. eine Position, die auf der Inode-Nummer, der Nummer des Inode-Baums und/oder einem Offset basiert). In einigen Implementierungen kann der Block 504 zumindest teilweise durch Ausführen der oben beschriebenen Anweisungen 306 ausgeführt werden.
  • Die Dateisysteminstanz setzt die verschlüsselten Datenobjekte auf der Grundlage von Objektsignaturen hierarchisch in Beziehung zu einem Wurzelobjekt. Beispielsweise kann die Dateisysteminstanz ein Merkle-Baum sein, ähnlich wie die oben beschriebene Dateisysteminstanz 200. In einer Implementierung zur Bildung des Merkle-Baums können Signaturen für die von Block 504 erzeugten verschlüsselten Datenobjekte und für alle internen Metadatenobjekte des Merkle-Baums bis zur Ableitung des Wurzelobjekts auf die oben beschriebene Weise berechnet werden. Signaturen von verschlüsselten Datenobjekten und internen Metadatenobjekten können mit Hilfe einer kryptographischen Hash-Funktion berechnet werden. In einigen Implementierungen kann die Signatur eines Objekts, sei es ein verschlüsseltes Datenobjekt oder ein internes Metadatenobjekt, ein HMAC sein, der auf einem kryptographischen Hash des Inhalts dieses Objekts basiert, wobei die Position dieses Objekts innerhalb der Dateisysteminstanz als Schlüssel verwendet wird. Die Berechnung der Signatur kann zumindest teilweise durch Ausführen der oben beschriebenen Anweisung 406 erfolgen.
  • Bei Block 506 erstellt der Knoten eine Sicherung der Dateisysteminstanz auf einem Sicherungsknoten (z.B. einem entfernten oder lokalen Sicherungsknoten). Die Sicherung kann zumindest einige der verschlüsselten Datenobjekte umfassen, die in Block 504 verschlüsselt sind. In einigen Implementierungen kann Block 506 zumindest teilweise durch Ausführen der oben beschriebenen Anweisungen 308 ausgeführt werden.
  • Bei Block 508 sendet der Knoten den von der KEK umhüllten DEK an den Sicherungsknoten. Der Backup-Knoten kann das Backup nur entschlüsseln, wenn der Backup-Knoten auch Mitglied desselben Clusters ist und Zugriff auf den KEK hat, um den DEK auszupacken. In einigen Implementierungen kann der Block 508 zumindest teilweise durch die Ausführung der oben beschriebenen Anweisungen 310 ausgeführt werden. Bei Block 510 endet die Methode 500.
  • BILD 6 ist ein Flussdiagramm, das eine Beispielmethode 600 darstellt. Methode 600 beginnt bei Block 602 und setzt sich fort bis Block 604, wobei ein Knoten ein Datenobjekt komprimiert, bevor er das Datenobjekt verschlüsselt. In einigen Implementierungen kann ein Knoten beispielsweise Block 604 ausführen, bevor er Block 504 ausführt.
  • In Block 606 dedupliziert der Knoten die verschlüsselten Datenobjekte auf der Grundlage von Signaturen, die aus den verschlüsselten Datenobjekten berechnet wurden. Die Deduplizierung kann eine Inline-Deduplizierung oder eine Deduplizierung nach der Verarbeitung sein. In einigen Implementierungen kann Block 606 zumindest teilweise durch Ausführen der Anweisungen 406 zur Berechnung von Signaturen und 410 zum Deduplizieren von Objekten ausgeführt werden. Block 606 kann auch ausgeführt werden, um verschlüsselte Objekte, die lokal auf dem Quellknoten selbst gespeichert sind, zu deduplizieren (z.B. während eines Momentaufnahmeprozesses).
  • Wie oben mit Bezug auf die Anweisungen 410 beschrieben, werden Datenobjekte mit identischem unverschlüsselten Inhalt, die jedoch zu verschiedenen Dateisysteminstanzen aus verschiedenen Sicherheitsdomänen gehören, durch verschiedene DEKs verschlüsselt und mit verschiedenen Signaturen versehen. Daher darf Block 606 die Datenobjekte mit identischem unverschlüsselten Inhalt aus verschiedenen Sicherheitsdomänen nicht deduplizieren, da diese Signaturen unterschiedlich sind.
  • Andererseits kann Block 606 das Deduplizieren verschlüsselter Datenobjekte über Dateisystem-Instanzen und Backups innerhalb oder von einer Sicherheitsdomäne hinweg umfassen. Insbesondere kann Block 608 ausgeführt werden, wenn ein Backup zu einem Backup-Knoten erstellt wird (z.B. durch Ausführen von Block 506), um das Senden verschlüsselter Datenobjekte an den Backup-Knoten zu verhindern, wenn in einer Reihe von Backups Signaturen auf dem Backup-Knoten gefunden werden.
  • In einem Beispiel kann der Knoten in regelmäßigen Abständen Snapshots einer Dateisysteminstanz erstellen, und jeder dieser Snapshots kann den oben beschriebenen Block 506 veranlassen, Backups dieser Dateisysteminstanz-Snapshots auf dem Backup-Knoten zu erstellen. So kann Block 506 mehrfach ausgeführt werden (z.B. Iterationen der Methode 500), um eine Serie von Backup-Dateisysteminstanzen auf dem Backup-Knoten zu erstellen, wobei jede Backup-Dateisysteminstanz in der Serie (z.B. 144-1 bis 144-N) ein Backup eines entsprechenden Snapshots (z.B. 122-1 bis 122-N) ist. Darüber hinaus gehören die Sicherungsserien zur gleichen Sicherheitsdomäne und stammen aus derselben Sicherheitsdomäne und enthalten daher verschlüsselte Datenobjekte, die mit demselben DEK verschlüsselt sind. Aufgrund der Durchführung der Deduplizierung an Block 608 in Verbindung mit Block 506 kann es bei der Erstellung einiger der Sicherungen erforderlich sein, nur zusätzliche verschlüsselte Datenobjekte zu senden, die nicht bereits auf dem Sicherungsknoten vorhanden sind, einschließlich Datenobjekten, die möglicherweise den gleichen unverschlüsselten Inhalt wie Datenobjekte auf dem Sicherungsknoten haben, sich aber nicht an der gleichen Position innerhalb der Dateisysteminstanzstruktur befinden, wenn die Position für die Verschlüsselung und Signaturerstellung verwendet wird.
  • In Block 610 kann ein DEK gelöscht werden, um eine Dateisysteminstanz und eine Reihe von Backups kryptografisch zu löschen. In einigen Implementierungen kann Block 610 die Anweisung beinhalten, dass alle Knoten, die eine Kopie des DEK besitzen, ihre Kopie des DEK löschen müssen. In einigen Implementierungen kann der Block 610 durch Ausführung der Anweisung 412 ausgeführt werden. Methode 600 kann bei Block 612 enden.
  • zeigt ein Beispiel einer Computerumgebung, die in vielerlei Hinsicht dem in dargestellten Beispiel ähnelt. Zum Beispiel kann ein Knoten-1 110 Datenobjekte von Dateisysteminstanzen verschlüsseln, um diese Dateisysteminstanzen zu sichern, und kann Sicherungen auf lokalen oder entfernten Knoten erstellen. Wie zuvor beschrieben, kann eine sichere Dateisysteminstanz 122 einige der verschlüsselten Datenobjekte 126 umfassen, die hierarchisch bis zu einem Wurzelobjekt 128, beispielsweise in einem Merkle-Baum, verknüpft sind.
  • In einem Beispiel kann jede Dateisysteminstanz 122 einem anderen Snapshot einer Gast-VM oder einer anderen Art von Datensatz entsprechen, und jede Dateisysteminstanz kann durch ein anderes entsprechendes Stammobjekt 128 identifiziert werden. Darüber hinaus kann jedes Root-Objekt 128 mit einem anderen entsprechenden Metadaten-Verschlüsselungsschlüssel (MEK) verschlüsselt werden. Beispielsweise kann ein erstes Wurzelobjekt-1 128-1 mit einem ersten MEK-1 732-1 und ein zweites Wurzelobjekt-2 128-2 (N=2 auf BILD 7) mit einem zweiten MEK-2 732-2 verschlüsselt werden. MEKs sind also spezifisch für ein zugeordnetes Wurzelobjekt. In einigen Implementierungen würden selbst dann, wenn zwei Dateisystem-Instanzen 122 gleich sind, z. B. wenn zwischen zwei Snapshots keine Änderungen an den Daten vorgenommen werden, unterschiedliche MEKs zur Verschlüsselung der Root-Objekte dieser beiden Dateisystem-Instanzen verwendet werden. In einigen Implementierungen können verschlüsselte Wurzelobjekte in einem separaten Speichermedium getrennt von anderen Metadatenobjekten oder Datenobjekten persistiert werden.
  • Ein MEK kann ein 512-Bit-XTS-AES-256-Schlüssel sein und kann in einigen Implementierungen von der Datenvirtualisierungsplattform 116 generiert werden (z. B. auf einer Steuerungsebene die Datenvirtualisierungsplattform 116). Die MEKs 732-1 bis 732-N (im Allgemeinen oder kollektiv MEK(s) 732) werden von dem DEK 130 der Sicherheitsdomäne 124 umhüllt, die die Dateisystem-Instanzen 122 enthält, deren Root-Objekte 128 von den MEKs 732 verschlüsselt werden. Auf diese Weise kann eine Sicherheitsdomäne mit einem einzelnen DEK und mehreren MEKs assoziiert werden.
  • Der Knoten-1 110 kann ein Backup 144 einer Dateisystem-Instanz 122 auf einem Backup-Knoten wie einem lokalen Knoten-2 140 innerhalb desselben Clusters 150 oder auf einem entfernten Knoten-3 160 außerhalb des Clusters 150 erstellen. Der Knoten-1 110 kann 770 den DEK 130 (umhüllt von KEK 152) und den MEK 732 (umhüllt von DEK 130), die der zu sichernden Dateisysteminstanz entsprechen, an den Backup-Knoten senden. Als Teil des Sicherungsprozesses von Dateisysteminstanz-N 122-N kann Knoten-1 110 beispielsweise 770 zumindest einige der verschlüsselten Datenobjekte 126 an den Sicherungsknoten replizieren (z.B. verschlüsselte Datenobjekte, die nicht der Deduplizierung unterliegen) und 770 MEK-N 732-N senden. Wie in BILD 7 dargestellt, können die Sicherungsknoten 140, 160 z.B. DEK 130, MEK-1 732-1 und MEK-N 732-N speichern.
  • In einigen Implementierungen sendet der Backup-Prozess nicht das Root-Objekt N 128-N oder andere interne Metadatenobjekte 127 (z.B. Metadatenobjekte zwischen dem Root-Objekt und verschlüsselten Datenobjekten auf Blattebene), sondern der Backup-Knoten kann stattdessen die Backup-Dateisysteminstanz 144-N bis zu einem rekonstruierten Root-Objekt rekonstruieren, basierend auf verschlüsselten Datenobjekten, die vom Knoten-1 110 empfangen werden oder bereits auf dem Backup-Knoten resident sind (z.B. bei Deduplizierung). Der Backup-Knoten kann das rekonstruierte Wurzelobjekt 772 an den Quellknoten, Knoten-1 110, zur Verifizierung senden, wie weiter unten mit Bezug auf 9 und 11 beschrieben wird.
  • Beispielimplementierungen, die das kryptographische Löschen einer ausgewählten Sicherung unterstützen, werden jetzt in beschrieben. In einigen Implementierungen kann die hier beschriebene Funktionalität als Instruktionen implementiert werden, die auf dem maschinenlesbaren Medium 114 gespeichert sind und von der Verarbeitungsressource 112 ausgeführt werden, und insbesondere kann es sich dabei um die Funktionalität der Datenvirtualisierungsplattform 116 handeln. Einzelheiten der Beispielimplementierung können unter Bezugnahme auf 2 und 7 beschrieben werden.
  • BILD 8 zeigt ein Beispielsystem 800 mit einem maschinenlesbaren Medium 804, das mit den Anweisungen 806, 808, 810, 812 kodiert ist, die von einer Verarbeitungsressource 802 ausgeführt werden können. System 800 kann als Knoten-1 110 dienen oder einen Teil davon bilden. Das System 800 kann zu einem Cluster gehören, wie z.B. Cluster 150 von 1. Die Verarbeitungsressource 802 und das maschinenlesbare Medium 804 können in vielerlei Hinsicht mit der Verarbeitungsressource 112 und dem maschinenlesbaren Medium 114 analog sein. Das maschinenlesbare Medium 804 kann nicht vorübergehend sein.
  • Wenn die Anweisung 806 ausgeführt wird, veranlasst sie die Verarbeitungsressource 802, Datenobjekte einer Dateisysteminstanz zu verschlüsseln, um verschlüsselte Datenobjekte mit einem DEK zu erzeugen, der für eine Sicherheitsdomäne spezifisch ist, die die Dateisysteminstanz enthält. Die Anweisung 806 kann Ähnlichkeiten mit der oben beschriebenen Anweisung 306 aufweisen. Der DEK wird von einem KEK umhüllt, der ausschließlich innerhalb eines Clusters, zu dem das System 800 gehört, gemeinsam genutzt wird. Die Dateisysteminstanz verbindet hierarchisch die verschlüsselten Datenobjekte (z.B. 126), die sich auf einer Blattebene befinden, mit einem Wurzelobjekt (z.B. 128-1) durch Verweise auf Signaturen der verschlüsselten Datenobjekte. Zum Beispiel kann die Dateisysteminstanz der Dateisysteminstanz 200 ähneln, wobei Datenobjekte 204 hierarchisch in einem Merkle-Baum mit dem Wurzelobjekt 202 in Beziehung gesetzt werden. Signaturen können z.B. durch Ausführen der oben beschriebenen Anweisungen 406 erzeugt werden.
  • Wenn die Anweisung 808 ausgeführt wird, veranlasst sie die Verarbeitungsressource 802, das Stammobjekt (z. B. 128-1) mit einem Metadaten-Verschlüsselungsschlüssel (MEK, z. B. 732-1) zu verschlüsseln. Der MEK kann vom DEK umhüllt sein und kann spezifisch für das Wurzelobjekt sein.
  • Wenn die Anweisungen 810 ausgeführt werden, veranlassen sie die Verarbeitungsressource 802, eine Sicherung (z. B. 144-1) der Dateisysteminstanz auf einem anderen Computersystem, z. B. einem Sicherungsknoten (z. B. 140 oder 160), zu erstellen. Die Anweisung 810 kann Ähnlichkeiten mit der oben beschriebenen Anweisung 308 aufweisen. In einigen Implementierungen kann die Anweisung 810 in Verbindung mit der Anweisung 410 ausgeführt werden, um das Backup wie oben beschrieben zu deduplizieren.
  • Die Instruktionen 812 veranlassen die Verarbeitungsressource 802 bei ihrer Ausführung, den DEK (z.B. 130) und den MEK (z.B. 732-1) zusammen mit der Sicherung (z.B. 144-1) an den Sicherungsknoten zu senden. Die Anweisungen 806, 808, 810, 812 können mehrfach ausgeführt werden, z.B. bei jedem Snapshot einer Gast-VM, und so eine Reihe von Backups (z.B. 144) von Dateisystem-Instanzen (z.B. 122) erstellen, die durch entsprechende Wurzelobjekte (z.B. 128) identifiziert und durch entsprechende MEKs (z.B. 732) verschlüsselt werden.
  • In einigen Implementierungen kann das System 800 Datenänderungen (z.B. von Gast-VM-Daten) laufend auf den Backup-Knoten replizieren, z.B. für Hochverfügbarkeitszwecke. Die laufende Replikation kann das Senden verschlüsselter Datenobjekte an den Backup-Knoten beinhalten, während sie auf dem System 800 geschrieben oder geändert werden. In solchen Fällen kann die Anweisung 810 zur Erstellung eines Backups beinhalten, dass das System 800 eine Snapshot-Dateisysteminstanz (z.B. 122-N) der Daten erstellt und den Backup-Knoten anweist, ein Backup der Snapshot-Dateisysteminstanz (z.B. 144-N) auf der Grundlage der Datenänderungen zu erstellen, die seit einem letzten Backup (z.B. 144-(N-1)) kontinuierlich repliziert wurden. Als Teil der Erstellung eines Backups kann der Backup-Knoten ein Wurzelobjekt für das Backup erzeugen, das hierarchisch mit den Signaturen der Datenänderungen und anderen verschlüsselten Datenobjekten im Backup verknüpft ist, und das Wurzelobjekt mit einem MEK verschlüsseln, das für die Backup- und Snapshot-Dateisysteminstanzen spezifisch ist. Das System 800 und der Backup-Knoten können sich z.B. auf der Ebene einer Steuerungsebene koordinieren, um sicherzustellen, dass dasselbe MEK für die Verschlüsselung der Wurzelobjekte der Snapshot-Dateisysteminstanz und des entsprechenden Backups verwendet wird.
  • BILD 9 zeigt ein Beispielsystem 900 mit einem maschinenlesbaren Medium 904, das mit den Anweisungen 905, 906, 908, 910, 912 kodiert ist, die von einer Verarbeitungsressource 902 ausgeführt werden können. System 900 kann als Knoten-1 110 dienen oder einen Teil davon bilden. In einigen Implementierungen können die Anweisungen von System 900 in Kombination mit Anweisungen von System 800 implementiert werden. System 900 kann zu einem Cluster gehören, wie z.B. Cluster 150 von 1. Die Verarbeitungsressource 902 und das maschinenlesbare Medium 904 können in vielerlei Hinsicht mit der Verarbeitungsressource 112 und dem maschinenlesbaren Medium 114 analog sein. Das maschinenlesbare Medium 904 kann nicht vorübergehend sein.
  • Wenn die Anweisung 905 ausgeführt wird, kann die Verarbeitungsressource 902 veranlassen, ein anderes MEK zu erzeugen, um ein Wurzelobjekt jeder zu sichernden unterschiedlichen Dateisysteminstanz zu verschlüsseln. Beispielsweise kann jedes Mal, wenn ein Snapshot von den Daten der Gast-VM erstellt wird, eine neue Dateisysteminstanz (z.B. 122) erzeugt und ein neues MEK (z.B. 732) durch die Anweisungen 905 erzeugt werden, um das Wurzelobjekt (z.B. 128) dieser neuen Dateisysteminstanz zu verschlüsseln. In einigen Implementierungen können die Anweisungen 905 Teil einer Steuerungsebene einer Datenvirtualisierungsplattform sein (z.B. 116).
  • Die Anweisungen 906, 908, 910 können für die Überprüfung der Rekonstruktion einer sicheren Sicherung auf einem Sicherungsknoten und insbesondere für die Rekonstruktion auf einem entfernten Sicherungsknoten nützlich sein. Beispielsweise kann ein Sicherungsprozess nur verschlüsselte Datenobjekte (z.B. 126, 204, 210 oder 211) einer Dateisysteminstanz, nicht aber ein Wurzelobjekt (z.B. 128 oder 202) oder irgendwelche internen Metadatenobjekte (z.B. 127, 206, 208 usw.) an einen Sicherungsknoten (z.B. 140 oder 160) senden, um den Netzwerkverkehr zu optimieren. Der Backup-Knoten kann dann eine hierarchische Dateisystem-Instanz, wie z.B. einen Merkle-Baum, rekonstruieren, indem er Signaturen für Objekte auf jeder Ebene (beginnend auf Blattebene) berechnet, einschließlich der Signaturen in einem übergeordneten Objekt, und den Vorgang wiederholt, bis das Wurzelobjekt (z.B. 202) erreicht ist. Die Berechnung der Signaturen kann durch Ausführen der oben beschriebenen Anweisung 406 durchgeführt werden. Somit hat ein rekonstruiertes Wurzelobjekt in seinem Inhalt die Signaturen seiner untergeordneten Objekte. In einer entfernten Sicherung (z.B. 162) hat jedoch ein entfernter Knoten (z.B. 160) möglicherweise keinen Zugriff auf den KEK (z.B. 152), um den DEK (z.B. 130) auszupacken, und daher kann der MEK (z.B. 732-1) nicht ausgepackt und zur Verschlüsselung des rekonstruierten Wurzelobjekts verwendet werden.
  • Wenn die Anweisung 906 ausgeführt wird, kann die Verarbeitungsressource 902 veranlassen, ein unverschlüsseltes rekonstruiertes Wurzelobjekt zu empfangen, das von einem Sicherungsknoten (z. B. 140 oder 160) gesendet wurde (z. B. 772). Alternativ oder zusätzlich kann die Anweisung 906 eine Signatur des unverschlüsselten rekonstruierten Stammobjekts vom Sicherungsknoten erhalten (z.B. 772).
  • Wenn die Anweisung 908 ausgeführt wird, kann die Verarbeitungsressource 902 veranlasst werden, das unverschlüsselte rekonstruierte Stammobjekt gegen ein entsprechendes Stammobjekt zu verifizieren. Beispielsweise kann das unverschlüsselte rekonstruierte Wurzelobjekt einer bestimmten Sicherung (144-1) zugeordnet werden, die eine Sicherung einer entsprechenden Dateisysteminstanz (z.B. 122-1) auf dem System 900 ist. Das System 900 kann als das Quellsystem, das die Sicherung initiiert hat, ein zugeordnetes Stammobjekt (z.B. 128-1) dieser Dateisysteminstanz (z.B. auf Objektspeicher 120) entschlüsseln und dieses unverschlüsselte Stammobjekt (z.B. 128-1) mit dem empfangenen unverschlüsselten rekonstruierten Stammobjekt vergleichen. Der Vergleich kann den Vergleich hashbasierter Signaturen oder Prüfsummen sowohl des unverschlüsselten rekonstruierten Wurzelobjekts als auch des entschlüsselten Wurzelobjekts oder jede andere Art von Datenvergleich umfassen. Eine Übereinstimmung zwischen dem unverschlüsselten rekonstruierten Wurzelobjekt aus dem Sicherungsknoten und dem entschlüsselten Wurzelobjekt aus dem System 900 (d. h. dem Quellknoten) bedeutet, dass die Verifizierung erfolgreich ist, während eine Nichtübereinstimmung bedeutet, dass die Verifizierung nicht erfolgreich ist.
  • Wenn die Verifizierung nicht erfolgreich ist, gibt das System 900 möglicherweise eine Fehlermeldung aus. Eine erfolglose Verifizierung kann darauf hinweisen, dass die Sicherung fehlgeschlagen ist. Wenn die Verifizierung erfolgreich ist, können die Anweisungen 910 ausgeführt werden, um die Verarbeitungsressource 902 zu veranlassen, das MEK-verschlüsselte Wurzelobjekt zur Speicherung an den Sicherungsknoten zu senden. Beispielsweise kann der Sicherungsknoten das unverschlüsselte Wurzelobjekt durch das verschlüsselte Wurzelobjekt ersetzen, das vom System 900 empfangen wurde, und die Instanz des Sicherungsdateisystems wird anschließend identifiziert und über das verschlüsselte Wurzelobjekt referenziert.
  • Wenn die Anweisung 912 ausgeführt wird, kann die Verarbeitungsressource 902 veranlassen, ein ausgewähltes MEK zu löschen, das einem für die kryptografische Löschung ausgewählten Backup entspricht. In einigen Implementierungen kann die Anweisung 912 die Koordination oder Anweisung an jeden Knoten, der eine Kopie des ausgewählten MEKs speichert, beinhalten, ihre jeweiligen Kopien des ausgewählten MEKs zu löschen und eine Bestätigung zu liefern.
  • Beispielsweise können Benutzereingaben vom System 900 empfangen werden, die auf eine Dateisysteminstanz (z.B. 122-1) hinweisen, und eine entsprechende Sicherung (z.B. 144-1) durch Assoziation soll kryptographisch gelöscht werden. Das System 900 kann das MEK (z.B. 732-1) identifizieren, das mit dem Wurzelobjekt (z.B. 128-1) assoziiert ist, das die ausgewählte Dateisysteminstanz identifiziert. Die ausgewählte Dateisysteminstanz (z.B. 122-1) und die Sicherung (z.B. 144-1) können aus einer Vielzahl von Dateisysteminstanzen (z.B. 122) und Sicherungen (z.B. 144) bestehen, und das ausgewählte MEK (732-1) kann aus einer Vielzahl verschiedener entsprechender MEKs (z.B. 732) bestehen. Wie oben beschrieben, werden die Dateisystem-Instanzen (z.B. 122) und Backups (z.B. 144) von Dateisystem-Instanzen durch entsprechende Root-Objekte (z.B. 128) identifiziert, die mit verschiedenen entsprechenden MEKs (z.B. 732) verschlüsselt sind. Durch das Löschen eines ausgewählten MEKs kann das entsprechende Root-Objekt also nicht entschlüsselt werden und wird kryptographisch unzugänglich gemacht. Auf die entsprechende Dateisysteminstanz und das Backup kann nicht mehr zugegriffen werden, da eine hierarchische, baumbasierte Dateisysteminstanz ausgehend vom Wurzelobjekt durchlaufen wird. Gleichzeitig bleiben andere Dateisystem-Instanzen und Backups, die derselben Sicherheitsdomäne zugeordnet sind, ungestört.
  • Da Backpointer-Signaturen nicht in Metadatenobjekten der Dateisystem-Instanzen und -Backups gespeichert werden, verhindert insbesondere das kryptografische Unzugänglichmachen eines verschlüsselten Wurzelobjekts, dass eine kryptografisch gelöschte Dateisysteminstanz oder ein Backup in Implementierungen rekonstruiert werden kann, in denen die Objektposition zur Berechnung von HMAC-Signaturen für Objekte der Dateisysteminstanz verwendet wird. Wenn dagegen die Position bei der Signaturberechnung nicht verwendet wird, könnte es möglich sein, eine Dateisysteminstanz zu rekonstruieren, indem man Datenobjektsignaturen berechnet und diese Signaturen mit Signaturen abgleicht, die in Metadatenobjekten gespeichert sind. Die Baumstruktur wird jedoch in einigen Implementierungen nicht zur Verfügung gestellt, so dass keine Schlüssel zur Neuberechnung der korrekten HMAC-Signaturen zur Verfügung stehen.
  • 10-12 sind Flussdiagramme, die verschiedene Beispielmethoden darstellen. In einigen Implementierungen können ein oder mehrere Blöcke einer Methode im Wesentlichen gleichzeitig oder in einer anderen Reihenfolge als dargestellt ausgeführt werden. In einigen Implementierungen kann eine Methode mehr oder weniger Blöcke enthalten, als gezeigt sind. In einigen Implementierungen können ein oder mehrere Blöcke einer Methode zu bestimmten Zeiten fortlaufend und/oder wiederholt ausgeführt werden. In einigen Implementierungen können Blöcke der 10-12 kombiniert werden.
  • Die Methoden können in Form von ausführbaren Befehlen implementiert werden, die auf einem maschinenlesbaren Medium (z.B. maschinenlesbares Medium 114, 804 oder 904) gespeichert sind und von einer Verarbeitungsressource (z.B. Verarbeitungsressource 112, 802 oder 902) und/oder in Form von elektronischen Schaltungen ausgeführt werden. Zum Beispiel können Aspekte der Methoden im Folgenden als von einem Knoten in einem Cluster ausgeführt beschrieben werden. In einigen Implementierungen können Aspekte der Methoden insbesondere von der oben beschriebenen Datenvirtualisierungsplattform 116, dem System 800 oder dem System 900 ausgeführt werden.
  • BILD 10 ist ein Flussdiagramm, das eine Beispielmethode 1000 darstellt. Methode 1000 beginnt bei Block 1002 und setzt sich bis Block 1004 fort, wobei ein Knoten (z.B. ein Computersystem in einem Cluster) Datenobjekte einer Dateisysteminstanz verschlüsselt, um verschlüsselte Datenobjekte mit einem DEK zu erzeugen, der für eine Sicherheitsdomäne spezifisch ist, die die Dateisysteminstanz enthält. Der DEK wird von einem KEK umhüllt, der ausschließlich von den Knoten im Cluster gemeinsam genutzt wird. Die Dateisysteminstanz setzt die verschlüsselten Datenobjekte, die sich auf einer Blattebene befinden, durch Verweise auf Signaturen der verschlüsselten Datenobjekte hierarchisch in Beziehung zu einem Wurzelobjekt. Die Dateisysteminstanz kann z.B. ein Merkle-Baum ähnlich der oben beschriebenen Dateisysteminstanz 200 sein. In einigen Implementierungen kann der Block 1004 zumindest teilweise durch Ausführung der oben beschriebenen Anweisungen 806 ausgeführt werden.
  • Bei Block 1006 verschlüsselt der Knoten das Wurzelobjekt mit einem MEK, um ein verschlüsseltes Wurzelobjekt zu erzeugen. Das MEK wird durch das DEK umhüllt und ist spezifisch für das Wurzelobjekt. In einigen Implementierungen kann der Block 1006 zumindest teilweise durch Ausführung der oben beschriebenen Anweisungen 808 ausgeführt werden.
  • Bei Block 1008 erstellt der Knoten eine Sicherung der Dateisysteminstanz auf einem Sicherungsknoten, indem er zumindest einige der verschlüsselten Datenobjekte auf den Sicherungsknoten repliziert. In einigen Implementierungen kann die Sicherung dedupliziert werden. In einigen Implementierungen kann Block 1008 zumindest teilweise durch Ausführen der oben beschriebenen Anweisungen 810 ausgeführt werden.
  • Im Block 1010 sendet der Knoten den DEK, der durch den KEK umhüllt wird, und den MEK, der durch den DEK umhüllt wird, mit der Sicherung an den Sicherungsknoten. In einigen Implementierungen kann der Block 1010 zumindest teilweise durch Ausführung der oben beschriebenen Anweisungen 812 ausgeführt werden. Die Methode 1000 endet bei Block 1012.
  • In einer Abbildung können zumindest einige Blöcke der Methode 1000 mehrfach ausgeführt werden, um eine Reihe von Sicherungsdateisystem-Instanzen auf dem Sicherungsknoten zu erstellen. Zum Beispiel kann eine erste Dateisysteminstanz (z.B. 122-1) gesichert werden, indem deren Datenobjekte mit einem DEK (z.B. 130) verschlüsselt werden, indem Block 1004 ausgeführt wird, und ein erstes Wurzelobjekt (z.B. 128-1) der ersten Dateisysteminstanz kann mit einem ersten MEK (z.B. 732-1) verschlüsselt werden, indem Block 1006 ausgeführt wird. Ein erstes Backup (z.B. 144-1) kann durch Ausführen von Block 1008 erstellt werden, und der DEK und der erste MEK können durch Ausführen von Block 1010 an einen Backup-Knoten (z.B. 140 oder 160) gesendet werden (z.B. 770). Zu einem späteren Zeitpunkt kann eine zweite Dateisysteminstanz (z.B. 122-2) erzeugt werden, z.B. durch einen Snapshot. Die zweite Dateisysteminstanz kann zusätzliche Datenobjekte enthalten, die in der ersten Dateisysteminstanz nicht vorhanden sind, und diese zusätzlichen Datenobjekte können ebenfalls mit demselben DEK (z.B. 130) verschlüsselt werden, indem Block 1004 ausgeführt wird. Ein zweites Wurzelobjekt (z.B. 128-2) kann für die zweite Dateisystem-Instanz erzeugt werden, indem Signaturen durch einen Merkle-Baum hochgerechnet werden, und das zweite Wurzelobjekt kann verschlüsselt werden, indem Block 1006 mit einem zweiten MEK (z.B. 732-2) durchgeführt wird, das sich vom ersten MEK unterscheidet. Eine zweite Sicherung (z.B. 144-2) kann auf dem Sicherungsknoten durch Ausführen von Block 1008 erstellt werden, und der DEK und der zweite MEK können an den Sicherungsknoten durch Ausführen von Block 1010 gesendet werden. Sowohl die erste Sicherung als auch die zweite Sicherung sind in derselben Sicherheitsdomäne enthalten oder stammen aus derselben Sicherheitsdomäne. Eine Signatur des verschlüsselten ersten Wurzelobjekts unterscheidet sich von einer Signatur des verschlüsselten zweiten Wurzelobjekts zumindest dadurch, dass sie durch unterschiedliche MEKs verschlüsselt ist, wenn nicht auch durch unterschiedliche Dateninhalte in den jeweiligen Dateisystem-Instanzen.
  • BILD 11 ist ein Flussdiagramm, das eine Beispielmethode 1100 darstellt. Methode 1100 beginnt bei Block 1102 und setzt sich fort bis Block 1104, wo ein Knoten (z.B. ein Quellknoten, der zuvor eine Sicherung initiiert hat, wie Knoten-1 110) von einem Sicherungsknoten (z.B. 140 oder 160) ein unverschlüsseltes rekonstruiertes Wurzelobjekt oder eine Signatur des unverschlüsselten rekonstruierten Wurzelobjekts (z.B. 772) erhält. Insbesondere ist der Sicherungsknoten kein Mitglied des Clusters, dem der empfangende Knoten angehört, und das unverschlüsselte rekonstruierte Wurzelobjekt wird vom Sicherungsknoten auf der Grundlage verschlüsselter Datenobjekte einer Sicherung erzeugt. Zum Beispiel kann das unverschlüsselte rekonstruierte Wurzelobjekt auf die oben beschriebene Weise erzeugt werden, z.B. in Bezug auf BILD 2. Block 1104 kann z.B. durch Ausführung der Instruktionen 906 ausgeführt werden.
  • In Block 1106 kann der Knoten das unverschlüsselte rekonstruierte Wurzelobjekt gegen ein Wurzelobjekt verifizieren. Die Verifizierung kann beispielsweise die Entschlüsselung des Wurzelobjekts am Quellknoten und den Vergleich des entschlüsselten Wurzelobjekts mit dem empfangenen unverschlüsselten rekonstruierten Wurzelobjekt (z. B. einen Signaturvergleich) umfassen. In einigen Implementierungen kann Block 1106 durch Ausführen der oben beschriebenen Anweisungen 908 ausgeführt werden. Die Verifizierung ist erfolgreich, wenn das entschlüsselte Wurzelobjekt und das unverschlüsselte rekonstruierte Wurzelobjekt übereinstimmen.
  • Wenn die Verifizierung erfolgreich ist („JA“ bei Block 1108), fährt die Methode 1100 mit Block 1110 fort, wo der Quellknoten das verschlüsselte Wurzelobjekt (z.B. 128-1) an den Sicherungsknoten senden kann. Der Backup-Knoten kann das verschlüsselte Wurzelobjekt persistieren, was die Verwendung des verschlüsselten Wurzelobjekts zur Identifizierung der Dateisysteminstanz auf dem Backup-Knoten einschließen kann. In einigen Implementierungen kann der Block 1108 durch Ausführen der Anweisungen 910 ausgeführt werden. Wenn die Verifizierung nicht erfolgreich ist („NEIN“ bei Block 1108), fährt die Methode 1100 mit Block 1112 fort, wo der Quellknoten und/oder der Sicherungsknoten eine Fehlermeldung zurückgeben kann. Methode 1100 kann bei Block 1114 enden.
  • BILD 12 ist ein Flussdiagramm, das eine Beispielmethode 1200 darstellt. Methode 1200 beginnt bei Block 1202 und setzt sich fort bis Block 1204, wo ein Knoten eine Auswahl einer Dateisysteminstanz erhält, die kryptographisch gelöscht werden soll. Bei dem Knoten, der die Auswahl erhält, kann es sich um einen Knoten handeln, der die ausgewählte Dateisysteminstanz oder ein Backup davon entweder speichert oder verwaltet. Der empfangende Knoten kann Anweisungen, die anzeigen, dass die ausgewählte Dateisysteminstanz kryptographisch zu löschen ist, an andere Knoten senden, die die ausgewählte Dateisysteminstanz oder ein Backup davon entweder speichern oder verwalten können. Der empfangende Knoten kann ein ausgewähltes MEK identifizieren, das der ausgewählten Dateisysteminstanz entspricht. Das ausgewählte MEK kann sich unter einer Vielzahl verschiedener MEKs befinden, die entsprechende Wurzelobjekte einer Vielzahl verschiedener Dateisysteminstanzen und deren Backups verschlüsselt haben.
  • Bei Block 1206 kann der Knoten das ausgewählte MEK löschen, um die ausgewählte Dateisysteminstanz und alle zugehörigen Backups der ausgewählten Dateisysteminstanz kryptografisch zu löschen, ohne andere Dateisysteminstanzen oder Backups, die derselben Sicherheitsdomäne zugeordnet sind, zu beeinflussen, zu modifizieren oder anderweitig zu stören. Zur Veranschaulichung mit Bezug auf kann MEK 732-1 gelöscht werden, um die Dateisysteminstanz 122-1 und die Sicherungskopie 144-1 kryptographisch zu löschen. In einigen Implementierungen kann der Block 1206 durch Ausführen der oben beschriebenen Anweisungen 912 ausgeführt werden. Methode 1200 kann bei Block 1208 enden.
  • In einigen Implementierungen können die hier beschriebenen Systeme (z.B. Knoten-1 110, Systeme 300, 400, 800, 900) zusätzliche Funktionalität enthalten, die als Anweisungen implementiert werden können, die auf einem nicht transitorischen maschinenlesbaren Medium kodiert sind, das von einer Verarbeitungsressource ausgeführt wird. Beispielsweise kann das maschinenlesbare Medium Anweisungen zur Entschlüsselung einer Backup-Dateisysteminstanz unter Verwendung eines zugehörigen DEK und MEK enthalten. Die Anweisungen zum Entschlüsseln einer Sicherung können Anweisungen zum Auspacken des DEK unter Verwendung eines KEK, der einem System aufgrund der Cluster-Mitgliedschaft(en) des Systems zur Verfügung steht, und zum Auspacken des MEK unter Verwendung des ausgepackten DEK enthalten. Wenn das System kein Mitglied des mit dem KEK verbundenen Clusters ist, kann der DEK nicht ausgepackt werden und die Entschlüsselung schlägt fehl. Wenn andererseits das Auspacken von DEK und MEK erfolgreich ist, kann die Kontrolle an Anweisungen zur Verwendung des ausgepackten MEK zum Entschlüsseln eines Stammobjekts der Sicherung übergehen. Das unverschlüsselte Wurzelobjekt kann von der Datenvirtualisierungsplattform dazu verwendet werden, die Dateisysteminstanz zu durchqueren, um verschlüsselte Datenobjekte auf der Blattebene zu erreichen. Die Entschlüsselung kann in verschiedenen Lese- oder Wiederherstellungsszenarien nützlich sein. Beispielsweise können bestimmte verschlüsselte Datenobjekte durch eine Leseanforderung adressiert werden (z.B. adressiert durch Inode- und Teilbaum-Offset). Ein weiteres Beispiel ist die Datenvirtualisierungsplattform, die einen Teil oder die gesamte Instanz des Backup-Dateisystems wiederherstellt. Die verschlüsselten Datenobjekte können mit Hilfe des DEK entschlüsselt werden.
  • In einigen Fällen versucht das System möglicherweise, eine Backup-Dateisystem-Instanz in einer anderen Sicherheitsdomäne wiederherzustellen. In einem solchen Fall kann das System Anweisungen zum Entpacken des DEK (und MEK, falls zutreffend) unter Verwendung des KEK ausführen und die Backup-Dateisysteminstanz entschlüsseln. Dann kann die entschlüsselte Backup-Dateisysteminstanz oder eine Kopie davon (d.h. über eine tiefe Kopie) unter Verwendung eines anderen DEK, der mit der anderen Sicherheitsdomäne verbunden ist, wieder verschlüsselt werden.
  • In einigen Fällen versucht das System möglicherweise, eine Backup-Dateisystem-Instanz eines fremden Clusters wiederherzustellen, d. h. eines Clusters, bei dem das System kein Mitglied ist. In diesem Beispiel kann das System als ein entfernter Knoten in Bezug auf den fremden Cluster angesehen werden, der in diesem Fall auch als der Quell-Cluster angesehen werden kann. In solchen Fällen hat das System möglicherweise keinen Zugriff auf den KEK, der mit dem fremden Cluster verbunden ist, um einen DEK auszupacken, der mit dieser Sicherungsdateisysteminstanz verbunden ist. Das System kann Anweisungen ausführen, um den verpackten DEK zurück an den fremden Cluster zu senden und Zugriff auf die Backup-Dateisysteminstanz anzufordern. Der fremde Cluster kann das System authentifizieren und das System autorisieren, auf die Backup-Dateisysteminstanz zuzugreifen. Wenn das System authentifiziert und autorisiert ist, kann der fremde Cluster den DEK unter Verwendung des KEK des fremden Clusters auspacken und den ausgepackten DEK verschlüsselt mit einem öffentlichen Schlüssel des Systems an das System zurückschicken. Das System kann dann Anweisungen zum Entschlüsseln des DEK unter Verwendung eines privaten Schlüssels ausführen und dann Anweisungen zum erneuten Auspacken des entschlüsselten DEK unter Verwendung eines dem System zur Verfügung stehenden KEK (d.h. eines KEK des Clusters, zu dem das System gehört) ausführen. Das System kann nun Zugriff auf die Instanz des Backup-Dateisystems haben. In einigen Implementierungen kann das System Anweisungen ausführen, um eine tiefe Kopie der Backup-Dateisysteminstanz durchzuführen, um eine neue Dateisysteminstanz zu erstellen (d.h. alle entschlüsselten Datenobjekte zu kopieren und die Metadatenobjekte, die auf die entschlüsselten Datenobjekte verweisen, zu kopieren oder neu zu erstellen) und die neue Dateisysteminstanz unter Verwendung eines neuen DEK zu verschlüsseln, der unter dem KEK verpackt ist, der dem System zur Verfügung steht. Auf diese Weise kann das System eine Backup-Dateisysteminstanz eines fremden Clusters in eine neue Sicherheitsdomäne in einem Cluster kopieren, zu dem das System gehört.
  • In der vorstehenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um ein Verständnis des hier offengelegten Gegenstands zu ermöglichen. Die Umsetzung kann jedoch auch ohne einige oder alle dieser Details praktiziert werden. Andere Implementierungen können Modifikationen, Kombinationen und Abweichungen von den oben besprochenen Details beinhalten. Es ist beabsichtigt, dass die folgenden Ansprüche solche Modifikationen und Variationen abdecken.

Claims (20)

  1. Ein System, das zu einem Cluster gehört, wobei das System Folgendes umfasst eine Verarbeitungsressource; und ein maschinenlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von der Verarbeitungsressource ausgeführt werden, die Verarbeitungsressource dazu veranlassen: Datenobjekte einer Dateisysteminstanz verschlüsseln, um verschlüsselte Datenobjekte unter Verwendung eines Datenverschlüsselungsschlüssels (DEK) zu erzeugen, der für eine Sicherheitsdomäne spezifisch ist, die die Dateisysteminstanz enthält, wobei der DEK von einem Schlüsselverschlüsselungsschlüssel (KEK) umhüllt wird, der ausschließlich innerhalb des Clusters gemeinsam genutzt wird, auf einem Sicherungsknoten eine Sicherung der Dateisysteminstanz zu erstellen, die mindestens einige der verschlüsselten Datenobjekte umfasst, und den von der KEK umhüllten DEK mit der Sicherung an den Sicherungsknoten senden, wobei der Sicherungsknoten die Sicherung nicht entschlüsseln kann, es sei denn, der Sicherungsknoten gehört zum Cluster und hat Zugriff auf die KEK zum Auspacken der DEK, und die Dateisysteminstanz die verschlüsselten Datenobjekte, die sich auf einer Blattebene befinden, durch Verweise auf Signaturen, die aus den verschlüsselten Datenobjekten berechnet werden, hierarchisch zu einem Wurzelobjekt in Beziehung setzt.
  2. System nach Anspruch 1, bei dem der Sicherungsknoten vom Cluster entfernt ist und keinen Zugriff auf die KEK zum Auspacken der DEK hat.
  3. System eines der Ansprüche 1 oder 2, wobei interne Objekte der Dateisysteminstanz zwischen dem Wurzelobjekt und den verschlüsselten Datenobjekten auf der Blattebene unverschlüsselt sind.
  4. System eines der Ansprüche 1 bis 3, wobei die Anweisungen, die die Verarbeitungsressource veranlassen, die Sicherung zu erstellen, Anweisungen enthalten, die die Verarbeitungsressource veranlassen, keine verschlüsselten Datenobjekte zu senden, für die entsprechende Signaturen auf dem Sicherungsknoten gefunden werden.
  5. System eines der Ansprüche 1 bis 4, wobei das maschinenlesbare Medium Anweisungen speichert, die die Verarbeitungsressource veranlassen, die verschlüsselten Datenobjekte auf der Grundlage der Signaturen zu deduplizieren, und wobei Datenobjekte, die identischen unverschlüsselten Inhalt haben, aber zu verschiedenen Dateisysteminstanzen aus verschiedenen Sicherheitsdomänen gehören, durch verschiedene DEKs verschlüsselt werden und mit verschiedenen Signaturen verbunden sind, wobei die verschiedenen Signaturen bewirken, dass die Datenobjekte mit identischem unverschlüsselten Inhalt nicht über die verschiedenen Sicherheitsdomänen hinweg dedupliziert werden.
  6. System eines der Ansprüche 1 bis 5, wobei die Sicherung gegen eine Reihe von Sicherungen aus der Sicherheitsdomäne dedupliziert wird, die auf Signaturen von Objekten der Dateisysteminstanz und Signaturen von Objekten der Sicherungsserie basieren.
  7. System eines der Ansprüche 1 bis 6, wobei das maschinenlesbare Medium Anweisungen speichert, die die Verarbeitungsressource veranlassen, den DEK zu löschen, um die Dateisysteminstanz und die Sicherung kryptographisch zu löschen.
  8. Verfahren, umfassend: Verschlüsseln von Datenobjekten einer Dateisysteminstanz durch eine Verarbeitungsressource eines Knotens in einem Cluster, um verschlüsselte Datenobjekte unter Verwendung eines Datenverschlüsselungsschlüssels (DEK) zu erzeugen, wobei die Dateisysteminstanz zu einer Sicherheitsdomäne innerhalb des Clusters gehört, der DEK spezifisch für die Sicherheitsdomäne ist und der DEK von einem Schlüsselverschlüsselungsschlüssel (KEK) umhüllt ist, der ausschließlich von Knoten in dem Cluster gemeinsam genutzt wird; durch die Verarbeitungsressource eine Sicherung der Dateisysteminstanz auf einem Sicherungsknoten zu erstellen, der mindestens einige der verschlüsselten Datenobjekte enthält; und das Senden des von der KEK verpackten DEK durch die Verarbeitungsressource an den Sicherungsknoten, wobei der Sicherungsknoten die Sicherung nicht entschlüsseln kann, es sei denn, der Sicherungsknoten ist ein Mitglied des Clusters und hat Zugriff auf die KEK, um die DEK auszuwickeln.
  9. Verfahren nach Anspruch 8, umfassend das Deduplizieren der verschlüsselten Datenobjekte durch die Verarbeitungsressource auf der Grundlage von Signaturen, die aus den verschlüsselten Datenobjekten berechnet wurden, wobei das Erstellen der Sicherung das Nicht-Versenden von verschlüsselten Datenobjekten einschließt, für die entsprechende Signaturen auf dem Sicherungsknoten gefunden werden.
  10. Verfahren nach einem der Ansprüche 8 oder 9, bei dem Datenobjekte mit identischem unverschlüsselten Inhalt, die aber zu verschiedenen Dateisysteminstanzen aus verschiedenen Sicherheitsdomänen gehören, durch verschiedene DEKs verschlüsselt und mit verschiedenen Signaturen verknüpft werden, wobei die verschiedenen Signaturen bewirken, daß die Datenobjekte mit identischem unverschlüsselten Inhalt nicht über die verschiedenen Sicherheitsdomänen hinweg dedupliziert werden.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei die verschlüsselten Datenobjekte auf der Grundlage von Signaturen identifiziert werden, die aus den verschlüsselten Datenobjekten berechnet werden, und die Dateisysteminstanz die verschlüsselten Datenobjekte hierarchisch mit einem Wurzelobjekt in Beziehung setzt.
  12. Verfahren nach einem der Ansprüche 8 bis 11, bei dem die Datenobjekte vor der Verschlüsselung durch die Verarbeitungsressource komprimiert werden.
  13. Verfahren nach einem der Ansprüche 8 bis 12, umfassend das Erstellen einer Reihe von Sicherungen von Dateisystem-Instanzen auf dem Sicherungsknoten durch die Verarbeitungsressource, wobei die Reihe von Sicherungen aus der Sicherheitsdomäne stammt und mindestens einige der verschlüsselten Datenobjekte enthält; und die Deduplizierung zumindest einiger der verschlüsselten Datenobjekte über die Serie der Sicherungen hinweg.
  14. Verfahren nach Anspruch 13, die das Löschen des DEK umfasst, um die Dateisysteminstanz und die Reihe der Sicherungen kryptografisch zu löschen.
  15. Ein nicht-transitorisches maschinenlesbares Medium, das Anweisungen speichert, die durch eine Verarbeitungsressource eines Computersystems ausführbar sind, wobei das nicht-transitorische maschinenlesbare Medium folgendes umfasst: Anweisungen zum Verschlüsseln von Datenobjekten einer Dateisysteminstanz, um verschlüsselte Datenobjekte unter Verwendung eines Datenverschlüsselungsschlüssels (DEK) zu erzeugen, wobei die Dateisysteminstanz zu einer Sicherheitsdomäne innerhalb eines Clusters gehört, zu dem das Computersystem gehört, der DEK für die Sicherheitsdomäne spezifisch ist und der DEK von einem Schlüsselverschlüsselungsschlüssel (KEK) umhüllt ist, der ausschließlich von Computersystemen in dem Cluster gemeinsam genutzt wird; Anweisungen, auf einem anderen Computersystem eine Sicherung der Dateisysteminstanz zu erstellen, die mindestens einige der verschlüsselten Datenobjekte enthält; und Anweisungen, die vom KEK verpackte DEK mit dem Backup an das andere Computersystem zu senden, wobei das andere Computersystem das Backup nicht entschlüsseln kann, es sei denn, das andere Computersystem gehört zu dem Cluster und hat Zugriff auf den KEK, um den DEK auszuwickeln.
  16. Medium nach Anspruch 15, das Anweisungen zur Erzeugung von Signaturen für die verschlüsselten Datenobjekte auf der Grundlage des Inhalts der verschlüsselten Datenobjekte enthält, wobei die verschlüsselten Datenobjekte auf der Grundlage der Signaturen identifiziert werden, und die Dateisysteminstanz die verschlüsselten Datenobjekte hierarchisch mit einem Wurzelobjekt in Beziehung setzt.
  17. Medium nach Anspruch 16, wobei das Computersystem die verschlüsselten Datenobjekte auf der Grundlage der Signaturen dedupliziert, und die Anweisungen, auf einem anderen Computersystem die Sicherung zu erstellen, umfassen Anweisungen, verschlüsselte Datenobjekte, für die entsprechende Signaturen auf dem anderen Computersystem gefunden werden, nicht auf das andere Computersystem zu replizieren.
  18. Medium nach einem der Ansprüche 15 bis 17, wobei ein Datenobjekt einer anderen Dateisysteminstanz, das denselben unverschlüsselten Inhalt wie ein Datenobjekt der Dateisysteminstanz hat, aber aus einer anderen Sicherheitsdomäne stammt, durch einen anderen DEK verschlüsselt ist und eine andere Signatur hat, wobei die andere Signatur bewirkt, dass das Datenobjekt der anderen Dateisysteminstanz nicht mit dem Datenobjekt der Dateisysteminstanz mit identischem unverschlüsselten Inhalt abgeglichen wird.
  19. Medium eines der Ansprüche 15 bis 18, das ferner Anweisungen zum Löschen des DEK enthält, um die Dateisysteminstanz und die Sicherung kryptografisch zu löschen.
  20. Medium eines der Ansprüche 15 bis 18, das ferner Anweisungen zum Löschen des DEK enthält, um die Dateisysteminstanz kryptographisch zu löschen, sowie eine Reihe von Sicherungen auf dem anderen Computersystem, die mit der Sicherheitsdomäne verbunden sind.
DE102020111199.1A 2019-04-29 2020-04-24 Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte Active DE102020111199B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/398,069 2019-04-29
US16/398,069 US11226867B2 (en) 2019-04-29 2019-04-29 Backups of file system instances of encrypted data objects

Publications (2)

Publication Number Publication Date
DE102020111199A1 true DE102020111199A1 (de) 2020-10-29
DE102020111199B4 DE102020111199B4 (de) 2023-05-11

Family

ID=72839991

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020111199.1A Active DE102020111199B4 (de) 2019-04-29 2020-04-24 Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte

Country Status (2)

Country Link
US (1) US11226867B2 (de)
DE (1) DE102020111199B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220086148A1 (en) * 2020-09-14 2022-03-17 Dell Products L.P. Computing device infrastructure trust domain system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106441B2 (en) * 2018-09-14 2021-08-31 Microsoft Technology Licensing, Llc Secure device-bound edge workload delivery
US11281790B2 (en) * 2019-05-22 2022-03-22 Myota, Inc. Method and system for distributed data storage with enhanced security, resilience, and control
US20220350933A1 (en) * 2021-04-29 2022-11-03 EMC IP Holding Company LLC Methods and systems for securing data in a distributed storage system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622064B2 (ja) * 2000-04-06 2011-02-02 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
US7424514B2 (en) * 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US8397083B1 (en) 2006-08-23 2013-03-12 Netapp, Inc. System and method for efficiently deleting a file from secure storage served by a storage system
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US8588425B1 (en) 2007-12-27 2013-11-19 Emc Corporation Encryption key recovery in the event of storage management failure
US8126847B1 (en) 2008-04-30 2012-02-28 Network Appliance, Inc. Single file restore from image backup by using an independent block list for each file
FI20080534A0 (fi) 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
US8452731B2 (en) 2008-09-25 2013-05-28 Quest Software, Inc. Remote backup and restore
US8468607B2 (en) 2009-10-07 2013-06-18 International Business Machines Corporation Associating multiple security domains to application servers
US8762343B2 (en) * 2009-12-29 2014-06-24 Cleversafe, Inc. Dispersed storage of software
US9749132B1 (en) 2011-11-28 2017-08-29 Amazon Technologies, Inc. System and method for secure deletion of data
TWI546695B (zh) 2011-12-15 2016-08-21 萬國商業機器公司 刪除儲存系統中之內容
US9846784B1 (en) * 2013-02-26 2017-12-19 Rockwell Collins, Inc. Multi-level storage system and method
US9195851B1 (en) 2014-03-12 2015-11-24 Emc Corporation Offloading encryption to the client
US9432192B1 (en) 2014-03-28 2016-08-30 Emc Corporation Content aware hierarchical encryption for secure storage systems
US9336092B1 (en) * 2015-01-01 2016-05-10 Emc Corporation Secure data deduplication
WO2017034642A2 (en) * 2015-06-05 2017-03-02 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US9779269B1 (en) * 2015-08-06 2017-10-03 EMC IP Holding Company LLC Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants
US9858427B2 (en) * 2016-02-26 2018-01-02 International Business Machines Corporation End-to-end encryption and backup in data protection environments
US11106375B2 (en) * 2019-04-04 2021-08-31 Netapp, Inc. Deduplication of encrypted data within a remote data store

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220086148A1 (en) * 2020-09-14 2022-03-17 Dell Products L.P. Computing device infrastructure trust domain system
US11658970B2 (en) * 2020-09-14 2023-05-23 Dell Products L.P. Computing device infrastructure trust domain system

Also Published As

Publication number Publication date
CN111858149A (zh) 2020-10-30
US20200341860A1 (en) 2020-10-29
DE102020111199B4 (de) 2023-05-11
US11226867B2 (en) 2022-01-18

Similar Documents

Publication Publication Date Title
DE102020111199B4 (de) Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte
ES2899933T3 (es) Gestión y seguridad de datos del sistema de almacenamiento distribuido
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE60204049T2 (de) Systeme, verfahren und einrichtungen zur sicheren datenverarbeitung
DE112017000220T5 (de) Effektiver, mit einem Geheimschlüssel verschlüsselter sicherer Datenabschnitt
DE112020005075B4 (de) Effiziente schwellenwertspeicherung von datenobjekten
US11403414B2 (en) Method and system for secure storage of digital data
DE112020005429T5 (de) Zufallsknotenauswahl für zulassungsbeschränkte Blockchain
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
CN111201519A (zh) 用于低时延读取和写入大型数据集的不可变数据存储
DE112019006676T5 (de) Blockchaintechnologie zur Regelung der Datenintegrität und zum Existenzbeweis bei Datenschutzsystemen
DE112020003437T5 (de) Hyper-scale p2p-dedupliziertes speichersystem unter verwendung einesdistributed ledger
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
US11100235B2 (en) Backups of file system instances with root object encrypted by metadata encryption key
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE112017002940T5 (de) Standard- und Nicht-Standard-Datenzugriff auf verstreute Speichernetzwerke
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
DE102022112400A1 (de) Vertrauenswürdige systeme zur dezentralisierten datenspeicherung
Deshmukh et al. Maintaining file storage security in cloud computing
DE112022003983T5 (de) Berechtigte, sichere datenverschiebung
CN111858149B (zh) 属于集群的系统、用于备份的方法和机器可读介质

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE

Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE

R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021600000

Ipc: G06F0021620000

R018 Grant decision by examination section/examining division
R020 Patent grant now final