DE202013012514U1 - Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen - Google Patents

Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen Download PDF

Info

Publication number
DE202013012514U1
DE202013012514U1 DE202013012514.4U DE202013012514U DE202013012514U1 DE 202013012514 U1 DE202013012514 U1 DE 202013012514U1 DE 202013012514 U DE202013012514 U DE 202013012514U DE 202013012514 U1 DE202013012514 U1 DE 202013012514U1
Authority
DE
Germany
Prior art keywords
data
key
encrypted
access control
control list
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.)
Expired - Lifetime
Application number
DE202013012514.4U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202013012514U1 publication Critical patent/DE202013012514U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • H04L63/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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
    • 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/2137Time limited access, e.g. to a computer or data
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

System, das Folgendes umfasst: eine oder mehrere Datenverarbeitungsvorrichtungen, die zur Durchführung von Operationen programmiert sind, die umfassen: das Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um erste Daten auf einem protokollstrukturierten Datenträger zu speichern, und auf der Grundlage der ersten Anforderung: das Erhalten der ersten Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die ersten Daten berechtigt sind; das Erhalten eines ersten Datenschlüssels, der eine erste Datenschlüsselkennung aufweist; das Verschlüsseln der ersten Daten und der Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels, um ein umhülltes BLOB zu erzeugen; das Verschlüsseln der ersten Daten unter Verwendung des ersten Datenschlüssels, um neue verschlüsselte erste Daten zu erzeugen; das Speichern des umhüllten BLOB und der verschlüsselten ersten Daten auf dem protokollstrukturierten Datenträger; und das Bereitstellen der ersten Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste; und das Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der ersten Daten zu erhalten, worin die zweite Anforderung die erste Datenschlüsselkennung und eine Kennung eines Benutzers beinhaltet, der die zweite Anforderung ausgelöst hat, und auf der Grundlage der zweiten Anforderung: das Entschlüsseln, unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, des umhüllten BLOB, wobei der erste Umhüllungsschlüssel verwendet wird, um den ersten Datenschlüssel und die Zugriffssteuerungsliste zu erhalten; das Authentifizieren des Benutzers, der die zweite Anforderung ausgelöst hat, und Berechtigen des Benutzers anhand der Zugriffssteuerungsliste und nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist: das Entschlüsseln der verschlüsselten ersten Daten unter Verwendung des ersten Datenschlüssels, um entschlüsselte erste Daten zu erhalten; und das Bereitstellen einer Momentaufnahme der entschlüsselten ersten Daten für die zweite virtuelle Maschine.

Description

  • VERWEIS
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Diese Beschreibung betrifft die sichere Datenspeicherung und insbesondere die sichere Datenspeicherung bei virtuellen Maschinen.
  • Cloud Computing ist eine Art der Datenverarbeitung auf Netzwerkbasis, bei der typischerweise große Sammlungen von Servern, die in Rechenzentren oder „Serverfarmen” untergebracht sind, entfernten Endbenutzern nach Bedarf Datenverarbeitungsressourcen und Datenspeicherplatz bereitstellen. Einige Cloud-Computing-Dienste ermöglichen es Endbenutzern, vom Benutzer bereitgestellte Server-Softwareanwendungen (z. B. E-Commerce-Serveranwendungen, Web-Server oder Dateiserver) in der Cloud auszuführen. Einige andere Cloud-Computing-Dienste bieten Zugriff auf Softwareanwendungen wie Textverarbeitungsprogramme und andere häufig verwendete Anwendungen für Endbenutzer, die die Anwendungen über Webbrowser oder andere clientseitige Software nutzen. Die elektronischen Dateien der Benutzer werden normalerweise in der Serverfarm und nicht auf den persönlichen Computergeräten der Benutzer gespeichert.
  • KURZDARSTELLUNG
  • Im Allgemeinen kann ein Aspekt des im vorliegenden Dokument beschriebenen Gegenstands in Verfahren verkörpert sein, die durch eine oder mehrere Datenverarbeitungsvorrichtungen realisiert sind, die ein Verfahren zur Datenverschlüsselung beinhalten. Das Verfahren umfasst ein Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um Daten auf einem protokollstrukturierten Datenträger zu speichern. Das Verfahren umfasst ferner auf der Grundlage der ersten Anforderung ein Erhalten der Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die Daten berechtigt sind. Das Verfahren umfasst ferner ein Erhalten eines Datenschlüssels, der eine Datenschlüsselkennung aufweist. Das Verfahren umfasst ferner ein Verschlüsseln, unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, des Datenschlüssels und der Zugriffssteuerungsliste, wobei ein Umhüllungsschlüssel verwendet wird, um ein umhülltes BLOB zu erzeugen. Das Verfahren umfasst ferner ein Verschlüsseln der Daten unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, wobei der Datenschlüssel verwendet wird, um verschlüsselte Daten zu erzeugen. Das Verfahren umfasst ferner ein Speichern des umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger. Das Verfahren umfasst ferner ein Bereitstellen der Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste. Das Verfahren umfasst ferner ein Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der Daten zu erhalten. Das Verfahren umfasst ferner auf der Grundlage der zweiten Anforderung ein Erhalten eines nicht umhüllten BLOB, das den Datenschlüssel und die Zugriffssteuerungsliste enthält. Das Verfahren umfasst ferner ein Erhalten des Datenschlüssels und der Zugriffssteuerungsliste aus dem nicht umhüllten BLOB. Das Verfahren umfasst ferner ein Authentifizieren eines der zweiten Anforderung zugewiesenen Benutzers und ein Erteilen der Berechtigung anhand der Zugriffssteuerungsliste. Das Verfahren umfasst ferner nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist, ein Entschlüsseln unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, wobei die Daten den Datenschlüssel nutzen. Das Verfahren umfasst ferner ein Bereitstellen einer Momentaufnahme der Daten für die zweite virtuelle Maschine.
  • Realisierungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Das Verfahren umfasst ferner ein Feststellen, dass eine Schwellenwertbedingung im Zusammenhang mit der Speicherung der Daten auf dem protokollstrukturierten Datenträger aufgetreten ist. Das Verfahren umfasst ferner ein Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Die Schwellenwertbedingung beinhaltet eine Datenmenge, die durch den Datenschlüssel geschützt ist. Die durch den Datenschlüssel geschützte Datenmenge ist eine kumulative Menge. Die durch den Datenschlüssel geschützte Datenmenge ist eine aktuelle Menge. Die Schwellenwertbedingung beinhaltet eine Zeitdauer, während der der Datenschlüssel in Gebrauch ist. Das Verfahren umfasst ferner einen Prüfzugriff auf die Daten und ein Feststellen, dass durch einen Benutzer auf die Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der Datenschlüssel verletzt wurde. Das Verfahren umfasst ferner ein Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Das Speichern der verschlüsselten Daten beinhaltet ein Komprimieren der verschlüsselten Daten.
  • Bei einem weiteren Aspekt kann das System eine oder mehrere Datenverarbeitungsvorrichtungen umfassen, die zur Durchführung von Operationen programmiert sind. Die Operationen umfassen ein Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um Daten auf einem protokollstrukturierten Datenträger zu speichern. Die Operationen umfassen ferner auf der Grundlage der ersten Anforderung ein Erhalten der Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die Daten berechtigt sind. Die Operationen umfassen ferner ein Erhalten eines Datenschlüssels, der eine Datenschlüsselkennung aufweist. Die Operationen umfassen ferner ein Verschlüsseln des Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels, um ein umhülltes BLOB zu erzeugen. Die Operationen umfassen ferner ein Verschlüsseln der Daten unter Verwendung des Datenschlüssels, um verschlüsselte Daten zu erzeugen. Die Operationen umfassen ferner ein Speichern des umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger. Die Operationen umfassen ferner ein Bereitstellen der Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste. Die Operationen umfassen ferner ein Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der Daten zu erhalten. Die Operationen umfassen ferner auf der Grundlage der zweiten Anforderung ein Erhalten eines nicht umhüllten BLOB, das den Datenschlüssel und die Zugriffssteuerungsliste enthält. Die Operationen umfassen ferner ein Erhalten des Datenschlüssels und der Zugriffssteuerungsliste aus dem nicht umhüllten BLOB. Die Operationen umfassen ferner ein Authentifizieren eines der zweiten Anforderung zugewiesenen Benutzers und ein Erteilen der Berechtigung anhand der Zugriffssteuerungsliste. Die Operationen umfassen ferner nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist, ein Entschlüsseln unter Verwendung des Datenschlüssels. Die Operationen umfassen ferner ein Bereitstellen einer Momentaufnahme der Daten für die zweite virtuelle Maschine.
  • Realisierungsformen können eines oder mehrere der folgenden Merkmale enthalten. Die Operationen umfassen ferner ein Feststellen, dass eine Schwellenwertbedingung im Zusammenhang mit der Speicherung der Daten auf dem protokollstrukturierten Datenträger aufgetreten ist. Die Operationen umfassen ferner: Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Die Schwellenwertbedingung beinhaltet eine Datenmenge, die durch den Datenschlüssel geschützt ist. Die durch den Datenschlüssel geschützte Datenmenge ist eine kumulative Menge. Die durch den Datenschlüssel geschützte Datenmenge ist eine aktuelle Menge. Die Schwellenwertbedingung beinhaltet eine Zeitdauer, während der der Datenschlüssel in Gebrauch ist. Die Operationen umfassen ferner einen Prüfzugriff auf die Daten und ein Feststellen, dass durch einen Benutzer auf die Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der Datenschlüssel verletzt wurde. Die Operationen umfassen ferner ein Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Das Speichern der verschlüsselten Daten beinhaltet ein Komprimieren der verschlüsselten Daten.
  • Bei einem weiteren Aspekt weist ein Speichermedium darauf gespeicherte Anweisungen auf, die bei Ausführung bewirken, dass eine Datenverarbeitungsvorrichtung Operationen durchführt. Die Operationen umfassen ein Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um Daten auf einem protokollstrukturierten Datenträger zu speichern, und auf der Grundlage der ersten Anforderung ein Erhalten der Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die Daten berechtigt sind. Die Operationen umfassen ferner ein Erhalten eines Datenschlüssels, der eine Datenschlüsselkennung aufweist. Die Operationen umfassen ferner ein Verschlüsseln des Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels, um ein umhülltes BLOB zu erzeugen. Die Operationen umfassen ferner ein Verschlüsseln der Daten unter Verwendung des Datenschlüssels, um verschlüsselte Daten zu erzeugen. Die Operationen umfassen ferner ein Speichern des umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger. Die Operationen umfassen ferner ein Bereitstellen der Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste. Die Operationen umfassen ferner ein Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der Daten zu erhalten, und auf der Grundlage der zweiten Anforderung ein Erhalten eines nicht umhüllten BLOB, das den Datenschlüssel und die Zugriffssteuerungsliste enthält. Die Operationen umfassen ferner ein Erhalten des Datenschlüssels und der Zugriffssteuerungsliste aus dem nicht umhüllten BLOB. Die Operationen umfassen ferner ein Authentifizieren eines der zweiten Anforderung zugewiesenen Benutzers und ein Berechtigen des Benutzers anhand der Zugriffssteuerungsliste und nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist, ein Entschlüsseln der Daten unter Verwendung des Datenschlüssels. Die Operationen umfassen ferner ein Bereitstellen einer Momentaufnahme der Daten für die zweite virtuelle Maschine.
  • Realisierungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Die Operationen umfassen ferner ein Feststellen, dass eine Schwellenwertbedingung im Zusammenhang mit der Speicherung der Daten auf dem protokollstrukturierten Datenträger aufgetreten ist. Die Operationen umfassen ferner ein Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Die Schwellenwertbedingung beinhaltet eine Datenmenge, die durch den Datenschlüssel geschützt ist. Die durch den Datenschlüssel geschützte Datenmenge ist eine kumulative Menge. Die durch den Datenschlüssel geschützte Datenmenge ist eine aktuelle Menge. Die Schwellenwertbedingung beinhaltet eine Zeitdauer, während der der Datenschlüssel in Gebrauch ist. Die Operationen umfassen ferner einen Prüfzugriff auf die Daten und ein Feststellen, dass durch einen Benutzer auf die Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der Datenschlüssel verletzt wurde. Die Operationen umfassen ferner ein Erhalten eines neuen Datenschlüssels, der durch eine neue Datenschlüsselkennung gekennzeichnet ist, Entschlüsseln der Daten unter Verwendung des Datenschlüssels, Verschlüsseln des neuen Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen, Verschlüsseln der Daten unter Verwendung des neuen Datenschlüssels, um verschlüsselte Daten zu erzeugen, Speichern des neuen umhüllten BLOB und der verschlüsselten Daten auf dem protokollstrukturierten Datenträger, Bereitstellen der neuen Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste und Verhindern einer anschließenden Verwendung des Datenschlüssels. Das Speichern der verschlüsselten Daten beinhaltet ein Komprimieren der verschlüsselten Daten.
  • Bestimmte Ausführungsformen des im vorliegenden Dokument beschriebenen Gegenstands können so realisiert sein, dass sie einen oder mehrere der folgenden Vorteile verwirklichen. Bei einigen Realisierungsformen können Basisdatenträgerschlüssel verwendet werden, um permanente Daten auf einer Basisdatenträgergrundlage zu speichern. Bei einigen Realisierungsformen kann jede Gruppe der den permanenten Daten zugewiesenen Momentaufnahmen einen der Gruppe zugewiesenen Momentaufnahmegruppenschlüssel aufweisen. Diese Arten von Schlüsseln einschließlich von Basisdatenträgerschlüsseln und Momentaufnahmegruppenschlüsseln (z. B. symmetrische Schlüssel) können als permanente Plattenschlüssel bzw. hierin als permanente Datenschlüssel bezeichnet werden. Bei einigen Realisierungsformen kann sich ein Zugriff auf beliebige Datenschlüssel auf zwei Authentifizierungen gründen: auf die erste Authentifizierung für den Cloud-Clusterzugriff und die zweite Authentifizierung für den Zugriff auf Benutzerebene, z. B. bei einem Benutzer oder Vorgesetzten, die in einer Zugriffssteuerungsliste (Acess Control List, ACL) gefunden wurden, die den Daten und dem Datenschlüssel zugewiesen ist. Bei einigen Realisierungsformen können diese Authentifizierungsmerkmale standardmäßig bei allen Platten wirksam sein, und die Merkmale können nicht deaktiviert werden, z. B. durch einen Benutzer, der unter Umständen versucht, unberechtigt oder ungeprüft auf Daten zuzugreifen.
  • Bei einigen Realisierungsformen können flüchtige Daten (z. B. Daten, bei denen nicht gewährleistet ist, dass sie zwischen Neustarts erhalten bleiben) unter Verwendung eines einzelnen, nach dem Zufallsprinzip erzeugten Schlüssel geschützt werden, der verwendet wird, um Daten auf allen Blockeinheiten eines beliebigen gegebenen VM-Hosts zu schützen. Datenschlüssel können beispielsweise bei flüchtigen Daten benötigt werden, die für den VM-Zustand verwendet werden, der bei Speicherungs- und Wiederherstellungsoperationen gespeichert wird. Die Schlüssel können nur im Arbeitsspeicher vorliegen und unter Umständen nicht auf die Platte geschrieben werden (z. B. bei einem Wechsel). Bei einigen Realisierungsformen können Prozesse auf der Ebene des Kernels den Speicher löschen, der Schlüsselmaterial enthält. Sobald ein Schlüssel nicht mehr in Gebrauch ist oder nicht mehr benötigt wird (z. B. beim Herunterfahren des VM-Prozesses) können Prozesse auf der Ebene des Kernels beispielsweise alle Schlüssel Informationen löschen, die sich zum Zeitpunkt der Beendigung des Prozesses im Prozessspeicher befinden. Bei einigen Realisierungsformen können diese Authentifizierungsmerkmale standardmäßig bei allen Platten wirksam sein und nicht deaktiviert werden.
  • Bei einigen Realisierungsformen kann die Verschlüsselung von Speicherinhalten erfolgen, die während einer Operation zur Speicherung des VM-Zustands geschrieben wurden. Schlüsselmaterial, das zum Schutz verschlüsselter Daten verwendet wird, die auf die Platte geschrieben wurden, kann beispielsweise durch ein Schlüsselverwaltungssystem (z. B. durch eine Schlüsselspeicherungskomponente) umhüllt werden. Das Schlüsselverwaltungssystem kann ferner Operationen zur Umhüllung von Schlüsseln und zur Aufhebung der Umhüllung von Schlüsseln verwalten, wenn Operationen durchgeführt werden, die ein Speichern von VM-Zustandsinformationen beinhalten.
  • Bei einigen Realisierungsformen können für jede Gruppe von Images, die auf dem protokollstrukturierten Datenträger verwaltet werden, eindeutige Gruppen von Datenschlüsseln erzeugt werden. Jeder Schlüssel kann beispielsweise mit einer Zugriffssteuerungsliste (ACL) für jeden Benutzer oder Vorgesetzten umhüllt werden, der Zugriff auf die Daten hat, und die Datenschlüssel können nur durch diese Benutzer freigegeben werden. Bei einigen Realisierungsformen kann jede Momentaufnahme von durch Verschlüsselung geschützten Daten einen Block (z. B. den ersten Block) beinhalten, der Metadaten enthält, die eine Umhüllungskomponente (Wrapper) für umhüllte Datenschlüssel und die zugewiesenen ACLs beinhalten. Einige Realisierungsformen können ferner einen „Masterschlüssel” nutzen, der Berechtigungsdienste außerhalb der Cloud-Cluster verarbeitet, die zum Zugriff auf verschlüsselte Daten verwendet werden.
  • Bei einigen Realisierungsformen kann das Schlüsselverwaltungssystem die gemeinsame Nutzung von Schlüsseln verarbeiten. Ein einzelner Datenschlüssel kann beispielsweise gleichzeitig von den VMs verwendet werden, die mehreren Benutzern zugewiesen sind, die laut ACL Zugriff auf die geschützten Daten haben. Bei einigen Realisierungsformen kann das Schlüsselverwaltungssystem andere Operationen wie beispielsweise Schlüsselrotation, -stilllegung und -annullierung durchführen, Prozesse, die im Folgenden unter Bezugnahme auf die 5A bis 5C beschrieben werden.
  • Die Details einer oder mehrerer Ausführungen des Gegenstands, der in dieser Spezifikation beschrieben wird, sind in den beigelegten Zeichnungen und der Beschreibung unten dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel eines verteilten Systems, das mehrere virtuelle Maschineninstanzen umfasst.
  • 2A veranschaulicht einen exemplarischen Ablauf von Operationen zur Datenverschlüsselung von Daten, die durch virtuelle Maschinen erzeugt wurden und auf die durch virtuelle Maschinen zugegriffen wird.
  • DIE 2B, 2C und 3 sind Darstellungen, die exemplarische Abläufe von Operationen veranschaulichen, die bei Schlüsselverwaltungstechniken während der Verschlüsselung/Entschlüsselung verwendet werden.
  • 4 ist ein Ablaufplan, der ein Beispiel einer Technik zur Aufhebung der Paketkapselung zeigt.
  • 5A ist ein Ablaufplan, der einen exemplarischen Schlüsselrotationsprozess für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden.
  • 5B ist ein Ablaufplan, der einen exemplarischen Schlüsselstilllegungsprozess für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden.
  • 5C ist ein Ablaufplan, der einen exemplarischen Schlüsselannullierungsprozess für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden.
  • 6 ist ein Beispiel einer Vernetzungsarchitektur für ein verteiltes System, das zur Ausführung virtueller Maschinen konfiguriert ist.
  • Gleiche Bezugsnummern und Benennungen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • Das vorliegende Dokument beschreibt Systeme, Verfahren und Vorrichtungen zum Verschlüsseln von Daten, die in einer Virtuelle-Maschine-Umgebung (VM-Umgebung) verwendet werden, z. B. bei der „Cloud-basierten” Datenverarbeitung oder „Cloud-Cluster”-Datenverarbeitung, bei der mehrere VMs vorliegen. Hierin beschriebene Verschlüsselungstechniken können beispielsweise verwendet werden, um permanente Daten (z. B. in der Cloud gespeicherte Daten), flüchtige Daten (z. B. Momentaufnahmen der in VMs verwendeten permanenten Daten) und im Speicher vorliegende Daten zu verschlüsseln. Permanenter Speicher kann beispielsweise Speicher beinhalten, der über die Lebensdauer einer VM hinaus bestehen bleibt, während flüchtiger Speicher Speicher beinhalten kann, der bei Beendigung der VM verloren geht. Bei einigen Realisierungsformen können die hierin beschriebenen Verschlüsselungstechniken bei Dateisystemen mit protokollstrukturierten Datenträgern (Log-structured Volume, LSV) verwendet werden, bei denen es sich um Dateisysteme handelt, die für einen hohen Schreibdurchsatz ausgelegt sind und bei denen Aktualisierungen von Daten und Metadaten nacheinander in einen fortlaufenden Datenstrom (z. B. in ein „Protokoll”) geschrieben werden.
  • Bei einigen Realisierungsformen können anstelle von oder zusätzlich zu LSV-Systemen andere Speichersysteme verwendet werden. Es können beispielsweise Speichersysteme verwendet werden, die ein Backend-Speichersystem als Blackbox behandeln. Andere Speichersysteme sind möglich.
  • Bei weiteren Realisierungsformen können Anforderungen von anderen Quellen als virtuellen Maschinen empfangen werden. Realisierungsformen können beispielsweise eine sichere Trennung zwischen Benutzeranwendungen und Schlüssel- bzw. Datenverwaltungssystemen bereitstellen, z. B. ein System, bei dem einem Client Speicher über ein Netzwerk zugeordnet ist, z. B. unter Verwendung von iSCSI-Protokollen (iSCSI = Internet Small Computer Systems Interface) oder anderer Mittel wie beispielsweise herkömmlicher Storage-Area-Networks (SANs). Bei diesem Beispiel können Client- und Serverkomponenten durch eine Netzwerkbarriere getrennt sein, es müssen jedoch keine virtuellen Maschinen verwendet werden.
  • 1 zeigt ein Beispiel eines verteilten Systems 101, das mehrere Virtuelle-Maschine-Instanzen beinhaltet. Ein verteiltes System 101 kann virtuelle Maschinen (VMs) 110, 112, 114 auf Hostmaschinen 102, 104 ausführen. Elemente des verteilten Systems 101 können sich am selben oder an unterschiedlichen physischen Standorten befinden. Eine erste Hostmaschine 102 kann sich beispielsweise in einem ersten Rechenzentrum befinden, während sich eine zweite Hostmaschine 104 in einem zweiten Rechenzentrum befinden kann. Bei einigen Realisierungsformen können sich diese Rechenzentren in unterschiedlichen Bundesstaaten, Ländern oder in beidem befinden.
  • Bei einigen Realisierungsformen kann das verteilte System 101 den virtuellen Maschinen 110, 112, 114 ein virtuelles Netzwerk zum Datenaustausch auf der Grundlage des Internetprotokolls (IP) bereitstellen. Den VMs 110, 112, 114 sind Netzwerkadressen zugewiesen (z. B. eine IPv4-Adresse oder IPv6-Adresse), die in dem virtuellen Netzwerk weiterleitbar sind. Bei einigen Realisierungsformen beinhaltet das virtuelle Netzwerk ein privates Teilnetz (z. B. 192.168.0.0/16, 10.0.0.0/8).
  • Die Hostmaschinen 102, 104, die ein verteiltes System 101 beinhalten, können eine oder mehrere Datenverarbeitungsvorrichtungen wie beispielsweise Servereinschübe oder andere Datenverarbeitungseinheiten enthalten. Die Hostmaschinen 102, 104 können unterschiedliche Fähigkeiten und Computerarchitekturen aufweisen und sich am selben oder an unterschiedlichen geographischen Standorten befinden. Die Hostmaschinen 102, 104 können über ein Netzwerk wie beispielsweise ein privates Netzwerk 116 (z. B. Glasfaser- oder Kupferleitungen (Standleitungen oder gemietete Leitungen)) untereinander Daten austauschen. Die Hostmaschinen 102, 104 können auch mit Einheiten in externen Netzwerken wie beispielsweise dem Internet 122 über ein oder mehrere Gateways 120 Daten austauschen, bei denen es sich um Datenverarbeitungsvorrichtungen handelt, die für ein Weiterleiten von Datenaustauschverkehr zwischen dem privaten Netzwerk 116 und dem Internet 122 verantwortlich sind. Andere Arten von externen Netzwerken sind möglich.
  • Das private Netzwerk 116 kann beispielsweise ein oder mehrere drahtgebundene Netzwerke (z. B. Ethernet-Netzwerk oder drahtlose Netzwerke (z. B. Wi-Fi-Netzwerke) beinhalten. Bei einigen Realisierungsformen beinhaltet das private Netzwerk 116 physische Datenaustauschressourcen wie beispielsweise Glasfaser oder Kupferleitung, die zwei Rechenzentren miteinander verbinden. Bei einigen Realisierungsformen ist das private Netzwerk 116 über ein externes Netzwerk wie beispielsweise das Internet 122 realisiert. Bei einigen Realisierungsformen weisen Rechenzentren entsprechende lokale Netzwerke (LANs) auf, die zusammengefasst sind, um ein privates Netzwerk 116 zu bilden. IP-Verkehr zwischen Rechenzentren kann beispielsweise durch Verwendung von Multiprotocol Label Switching (MPLS) weitergeleitet werden. Andere Arten des Weiterleitens sind möglich.
  • Jede Hostmaschine 102, 104 führt ein Hostbetriebssystem aus (z. B. Hostbetriebssysteme 106 und 108). Jedes Hostbetriebssystem 106, 108 verwaltet Hostmaschinenressourcen. Bei diesem Beispiel führen die Hostbetriebssysteme 106, 108 Software aus, die die Hardware der unterlagerten Hostmaschine virtualisiert und die gleichzeitige Ausführung einer oder mehrerer VMs verwaltet. Das Hostbetriebssystem 106 verwaltet beispielsweise zwei VMs (VMs 110 und VM 112), während ein anderes Hostbetriebssystem 108 eine einzige VM 114 verwaltet. Eine Hostmaschine kann im Allgemeinen größere Anzahlen virtueller Maschinen verwalten, aber die Anzahl kann aufgrund physischer Ressourcen der Hostmaschine begrenzt sein.
  • Die VMs 110, 112, 114 verwenden eine simulierte Version der Hardware einer unterlagerten Hostmaschine, die als „virtuelle Hardware” bezeichnet werden kann (z. B. die virtuelle Hardware 110a, 112a und 114a). Durch die virtuelle Hardware ausgeführte Software kann als „Gastsoftware” bezeichnet werden. In einigen Implementierungen kann Gastsoftware nicht bestimmen, ob sie durch virtuelle Hardware oder durch eine physikalische Hostmaschine ausgeführt wird. Wenn Gastsoftware, die in einer VM ausgeführt wird, oder die VM selbst fehlerhaft funktioniert oder abbricht, werden andere VMs, die auf der Hostmaschine ausgeführt werden, nicht beeinflusst. Der Mikroprozessor oder die Mikroprozessoren einer Host-Maschine können Prozessor-Level-Mechanismen umfassen, um es virtueller Hardware zu ermöglichen, Softwareanwendungen effizient auszuführen, indem es ermöglicht, dass Gast-Software-Anweisungen direkt auf dem Mikroprozessor der Host-Maschine ausgeführt werden, ohne dass ein Neuschreiben des Kodes, eine Rekompilation oder Befehlsemulation erforderlich ist.
  • Jeder VM (z. B. VMs 110, 112 und 114) ist eine Gruppe von Seiten virtuellen Speichers vom virtuellen Speicher des zugrunde liegenden Hostbetriebssystems zugeordnet, und es sind virtuelle Plattenblöcke von einem oder mehreren virtuellen Plattenlaufwerken zugeordnet, die von der auf der VM ausgeführten Gastsoftware verwendet wird. So ordnet beispielsweise das Hostbetriebssystem 106 Speicherseiten und Plattenblöcke der VM 110 und VM 112 zu, und das Hostbetriebssystem 108 führt dasselbe mit der VM 114 durch. In einigen Implementierungen kann eine gegebene VM nicht auf die Seiten virtuellen Speichers zugreifen, die anderen VMs zugeordnet sind. So kann beispielsweise VM 110 nicht auf Speicherseiten zugreifen, die VM 112 zugeordnet wurden. Ein virtuelles Plattenlaufwerk kann über mehrere VM-Neustarts hinweg verbunden bleiben. Bei einigen Realisierungsformen sind die Blöcke virtueller Platten auf physischen Plattenlaufwerken mit Hostmaschinen verbunden. VMs können Netzwerkadressen zugeordnet sein, über die ihre jeweiligen Prozesse Daten über ein virtuelles Netzwerk mit anderen Prozessen austauschen können. So kann beispielsweise auf der VM 110 ausgeführte Gastsoftware unter Verwendung der zugeordneten Netzwerkadressen über ein virtuelles Netzwerk Daten mit Gastsoftware austauschen, die auf der VM 112 oder VM 114 ausgeführt wird.
  • Eine Gastsoftware einer VM kann ein Gastbetriebssystem (z. B. Gastbetriebssysteme 110b, 112b und 114b) beinhalten, bei dem es sich um Software handelt, die die Ausführung entsprechender Gastsoftwareanwendungen (z. B. Gastanwendungen 110c, 112c und 114c) innerhalb der VM steuert und diesen Anwendungen Dienste bereitstellt. So kann ein Gastbetriebssystem beispielsweise ein Betriebssystem wie etwa eine Variante des UNIX-Betriebssystems sein. Andere Betriebssysteme sind möglich. Jede VM kann dasselbe Gastbetriebssystem oder verschiedene Gastbetriebssysteme ausführen. Ein Booten einer VM kann ein Verwenden einer virtuellen Boot-Platte beinhalten, um ein Kernel-Image in den Arbeitsspeicher zu laden, das einem Gastbetriebssystem zugewiesen ist. Ein Zugriff des Gastbetriebssystems auf Ressourcen wie Netzwerke und virtuellen Plattenspeicher wird durch das zugrunde liegende Hostbetriebssystem gesteuert.
  • Zur Veranschaulichung und unter Bezugnahme auf die virtuelle Maschine 110 wird beispielsweise die virtuelle Hardware 110a unterbrochen, wenn die Gastanwendung 110c oder das Gastbetriebssystem 110b versucht, eine Eingabe-/Ausgabe-Operation auf einer virtuellen Platte durchzuführen, Netzwerkdatenaustausch einzuleiten oder eine vorrangige Operation durchzuführen, sodass das Hostbetriebssystem 106 die Aktion stellvertretend für die virtuelle Maschine 110 durchführen kann. Das Hostbetriebssystem 106 kann diese Handlungen mit einem Prozess durchführen, der in Kernelprozessraum 106b, Benutzerprozessraum 106a oder beiden ausgeführt wird.
  • Der Kernelprozessraum 106b ist virtueller Speicher, der für den Kernel 106d des Hostbetriebssystems 106 reserviert ist, der beispielsweise Kernelerweiterungen und Einheitentreiber beinhalten kann. Der Kernelprozessraum verfügt über erhöhte Berechtigungen (manchmal auch als „Supervisor-Modus” bekannt); D. h. der Kernel 106d kann bestimmte privilegierte Operationen ausführen, die für Prozesse, die im Benutzerprozessraum 106a laufen, ausgeschaltet sind. Beispiele für vorrangige Operationen umfassen Zugriff auf verschiedene Adressräume, Zugriff auf spezielle Funktionsprozessoreinheiten in der Hostmaschine wie Speicherverwaltungseinheiten usw. Der Benutzerprozessraum 106a ist ein separater Teil virtuellen Speichers, der für Prozesse des Benutzermodus reserviert ist. Prozesse des Benutzermodus können vorrangige Operationen nicht direkt durchführen.
  • Bei verschiedenen Realisierungsformen ist ein Abschnitt der Datenaustauschfunktionalität des VM-Netzwerks in einem Datenaustauschprozess (z. B. Datenaustauschprozess 106c) realisiert. In anderen Implementierungen wird der Kommunikationsprozess im Benutzerbereich (z. B. Prozessbereich 106a) eines Host-Betriebssystems (z. B. Host-Betriebssystem 106) ausgeführt. Bei anderen Realisierungsformen kann der Datenaustauschprozess im Kernelprozessraum (z. B. Kernelprozessraum 106d) des Hostbetriebssystems ausgeführt werden. Es ist möglich, entweder einen einzigen Kommunikationsprozess für alle VMs zu nutzen, die auf einer Host-Maschine ausgeführt werden, oder mehrere Kommunikationsprozesse, einen für jede VM, die auf einer Host-Maschine ausgeführt wird. In wieder anderen Implementierungen wird ein Teil des Kommunikationsprozesses im Benutzerbereich ausgeführt und ein Teil im Kernprozessbereich. Bei einigen Realisierungsformen kann der Datenaustauschprozess einen Kapselungsmechanismus auf Hardwareebene verwenden.
  • Ein Datenaustauschprozess 106c, 108c kann mit einem VM-Registrierungsdienst 118 Daten austauschen, um ein virtuelles Netzwerkpaar (VNP) zwischen zwei VMs einzurichten. Bei einem virtuellen Netzwerk kann ein VNP verwendet werden, um unter Verwendung einer oder mehrerer virtueller Verbindungen bzw. eines oder mehrerer Links Verkehr zwischen zwei Endpunkten weiterzuleiten. Dem VNP zugewiesener Netzwerkverkehr kann über eine lokale Schleife (z. B. wenn sich beide VMs auf derselben Hostmaschine befinden) oder über ein oder mehrere Netzwerke transportiert werden, beispielsweise über ein privates Netzwerk 116, das Internet 122 oder eine Kombination davon. Ein VNP zwischen der virtuellen Maschine 110 und der virtuellen Maschine 114 kann beispielsweise verwendet werden, um Pakete weiterzuleiten, die über das private Netzwerk 116 zwischen VNP-Endpunkten übertragen werden, die durch den ersten bzw. zweiten Datenaustauschprozess 106c, 108c verwaltet werden. Bei einigen Realisierungsformen realisiert ein Server wie beispielsweise ein VM-Registrierungsserver die Funktionalität des VM-Registrierungsdienstes. Der VM-Registrierungsdienst 118 kann Zuweisungen von Netzwerkadressen (z. B. IP-Adressen) zu VMs verwalten und Zuordnungen zwischen VM-Netzwerkadressen in einem virtuellen Netzwerk und den jeweiligen Netzwerkadressen der Hostmaschinen aufrechterhalten, die die VMs ausführen.
  • 2A veranschaulicht einen exemplarischen Ablauf von Operationen bei einem System 200 zur Datenverschlüsselung von Daten, die durch virtuelle Maschinen erzeugt wurden und auf die durch VMs zugegriffen wird. Bei einigen Realisierungsformen beinhaltet das System 200 mehrere VMs, z. B. VM A 202 und VM B 204, und ein Servicesystem 206, das einen Zugriff auf die Daten bereitstellt. Bei einigen Realisierungsformen ist das Serversystem 206 so konfiguriert, dass VMs ausgeführt werden, die Daten in einem virtuellen Netzwerk austauschen. Den VMs sind beispielsweise Netzwerkadressen in dem virtuellen Netzwerk zugewiesen. Bei einigen Realisierungsformen verwendet das Serversystem 206 separate Tunnel, um zu bewirken, dass den jeweiligen virtuellen Maschinen Pakete im virtuellen Netzwerk bereitgestellt werden. Bei einigen Realisierungsformen beinhaltet die Umgebung 200 ein Schlüsselverwaltungssystem 208, das bei der Verschlüsselung/Entschlüsselung (z. B. unter Verwendung von Techniken zur Erzeugung von Schlüsseln nach dem Zufallsprinzip) verwendete Schlüssel zuweist, den Schlüsseln Datenschlüsselkennungen zuordnet und Schlüssel in Umhüllungskomponenten umhüllt. Die Begriffe „umhüllen” und „umhüllt” schließen im hierin verwendeten Sinne deren normale und gewöhnliche Bedeutung ein, einschließlich und ohne darauf beschränkt zu sein, des Vorgangs des Verschlüsselns eines Schlüssels. Wenn mehr als nur der Schlüssel verschlüsselt wird, wird die gesamte Struktur ferner oftmals als „umhülltes BLOB” bezeichnet. Verschlüsselte Benutzerdaten können „umhüllt” werden, indem Metadaten zugewiesen werden, die Einzelheiten der Verschlüsselung enthalten, die zum Verschlüsseln bestimmter Datenblöcke verwendet wurden (z. B. Verschlüsselungsalgorithmus, Verschlüsselungsschlüsselindex, Authentifizierungskennzeichen (Tags) usw.). Zur Klarstellung und ohne Einschränkung der Allgemeingültigkeit wird im Folgenden der Begriff „Datenumhüllungskomponente” verwendet, um eine derartige Kombination aus verschlüsselten Daten und Verschlüsselungsmetadaten zu bezeichnen, die zusammen gespeichert werden können oder auch nicht.
  • Bei einigen Realisierungsformen kann der Virtuelle-Maschine-Manager einer virtuellen Maschine Bibliotheken nutzen, um mit dem LSV-Teilsystem zusammenzuwirken, das beispielsweise in einem dritten Ring (oder in einer nicht vorrangigen Anwendungsdomäne) des Hosts ausgeführt wird. Der Code kann beispielsweise die Bereitstellung der Rolle des Serversystems 206 bewirken.
  • Im Allgemeinen kennzeichnet eine Datenschlüsselkennung einen Schlüssel eindeutig. Datenschlüsselkennungen können auf verschiedene Arten erzeugt werden. Bei einigen Realisierungsformen kann ein Verfahren des Schlüsselverwaltungssystems 208 unter Verwendung eines Hash-Werts und auf der Grundlage der Schlüsselart eine Schlüsselkennung erzeugen. Bei einigen Realisierungsformen können andere Arten des Erzeugens einer Schlüsselkennung verwendet werden.
  • Bei einigen Realisierungsformen wird durch das Serversystem 206 von einer ersten VM (z. B. VM A 202) eine erste Anforderung 210 empfangen, um Daten auf einem protokollstrukturierten Datenträger zu speichern. Auf der Grundlage der Anforderung erzeugt 212 a das Serversystem 206 einen Datenschlüssel und fordert an 213, dass der Datenschlüssel anhand einer Zugriffssteuerungsliste (ACL) eines oder mehrerer Benutzer umhüllt wird, die zum Zugriff auf die Daten berechtigt sind. Die ACL kann beispielsweise durch einen Benutzerberechtigungssystem (z. B. ein System mit Einmalanmeldung (Single-Sing-On)) bereitgestellt werden. Bei einigen Realisierungsformen stellt das Schlüsselverwaltungssystem 208 dem Serversystem 206 ein umhülltes BLOB bereit 214, das den umhüllten Schlüssel beinhaltet. Das Serversystem 206 verwendet den Datenschlüssel zur Verschlüsselung der Daten 216 und speichert die verschlüsselten Daten und das umhüllte BLOB auf dem protokollstrukturierten Datenträger. Das Serversystem 206 stellt einem oder mehreren Benutzern auf der Zugriffssteuerungsliste die Datenschlüsselkennung bereit 218, z. B. den Benutzern, die der VM A 202 und VM B 204 zugewiesen sind.
  • Das Serversystem 206 empfängt von einer zweiten virtuellen Maschine (z. B. VM B 204) eine zweite Anforderung 220, um eine Momentaufnahme der Daten zu erhalten. Auf der Grundlage der zweiten Anforderung sendet 221 das Serversystem 206 das umhüllte BLOB zusammen mit Berechtigungsnachweisen an das Schlüsselverwaltungssystem 208. Das Schlüsselverwaltungssystem 208 verwendet seinen Umhüllungsschlüssel, z. B. einen Masterschlüssel, um das BLOB zu entschlüsseln, ruft die Schlüssel und ihre zugewiesenen ACLs ab und stellt dem Serversystem 206 das nicht umhüllte BLOB bereit 222. Wenn die Berechtigungsnachweise für den angeforderten Schlüssel anhand einer Identität in der zugewiesenen ACL authentifiziert werden 224, gibt das Schlüsselverwaltungssystem 208 diesen Schlüssel 226 an das Serversystem 206 zurück, das die Daten 228 unter Verwendung des Datenschlüssels entschlüsselt und der zweiten virtuellen Maschine (z. B. VM B 204) eine Momentaufnahme 230 der Daten bereitstellt.
  • DIE 2B, 2C und 3 sind Darstellungen, die exemplarische Abläufe von Operationen 240a bis 240c veranschaulichen, die bei Schlüsselverwaltungstechniken während der Verschlüsselung/Entschlüsselung verwendet werden. Die Techniken können beispielsweise unter Verwendung symmetrischer Schlüssel verwendet werden, die zum direkten Schutz der Platte und des Inhalts der Speicherung des VM-Zustands dienen. Bei einigen Realisierungsformen können die Datenschlüssel unter Verwendung von Umhüllungs- und Umhüllungsaufhebungsfunktionen des Schlüsselverwaltungssystems verwaltet werden, z. B. unter Verwendung von Datenschlüsseln, die durch einen Schlüsselspeicher erzeugt und durch diesen aufrecht erhalten werden. Bei einigen Realisierungsformen wird durch einen Hash-Wert des Schlüsselmaterials auf Datenschlüssel verwiesen, der unter Verwendung eines Verfahrens erzeugt wurde, das auf der Schlüsselart beruht.
  • Die Operationen 240a können beispielsweise in einer Umgebung durchgeführt werden, die einen Benutzer 242, eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API) 244 und eine Benutzerberechtigung 246 beinhaltet, die durch den Benutzer 242 verwendet wird, um sich z. B. unter Verwendung der API 244 bei der VM anzumelden. Bei einigen Realisierungsformen erzeugt und umhüllt ein Schlüsselgenerator 248 Datenschlüssel, die in einem Schlüsselspeicher 250 gespeichert werden.
  • Unter Bezugnahme auf den Ablauf 240a, der in 2B dargestellt ist, empfängt die API 244 nach Erzeugung von Daten (z. B. von permanenten Daten) durch den Benutzer 242 ein Zugriffstoken 258, z. B. von einer entfernten Einheit. Die Daten können beispielsweise in einer Anforderung von einer VM enthalten sein, die Daten auf einem protokollstrukturierten Datenträger zu speichern. Das Zugriffstoken 258 wird zur Benutzerberechtigung 246 weitergeleitet, die Benutzerberechtigungsnachweise 260 erzeugt, die zur API 244 zurückgegeben werden. Die Benutzerberechtigungsnachweise beinhalten beispielsweise eine Zugriffssteuerungsliste (ACL), die einen oder mehrere Benutzer bezeichnet, die zum Zugriff auf die Daten berechtigt sind. Der Schlüsselgenerator 248 empfängt die Benutzerberechtigungsnachweise 260 und erzeugt einen Benutzerschlüssel 262, der zur Verschlüsselung der Daten verwendet wird, bevor die Daten auf dem protokollstrukturierten Datenträger gespeichert werden. Der Schlüssel 262 wird anschließend umhüllt, um einen umhüllten Schlüssel 264 zu erzeugen. Eine Schlüsselressource 266 wird erzeugt, die eine Datenschlüsselkennung und eine Datenschlüsselumhüllungskomponente (z. B. den umhüllten Schlüssel 264) beinhaltet. Die Datenschlüsselumhüllungskomponente enthält einen Datenschlüssel, der durch die Datenschlüsselkennung gekennzeichnet ist. Die Datenschlüsselumhüllungskomponente enthält ferner die ACL, die die Benutzer bezeichnet, die zum Zugriff auf die Daten berechtigt sind.
  • Unter Bezugnahme auf 2C beinhaltet der Ablauf 240b ein Aufheben der Umhüllung mit Benutzerschlüssel, um auf die geschützten Daten innerhalb der Cloud zuzugreifen. Nach Erzeugung einer VM (z. B. durch denselben oder einen anderen Benutzer) empfängt die API 244 beispielsweise ein Zugrifftoken 270, z. B. von einer entfernten Einheit. Bei diesem Beispiel ist das Zugriffstoken 270 einer Anforderung durch den Benutzer 242 bezüglich des Zugriffs auf eine Momentaufnahme der Daten zugewiesen. Das Zugriffstoken 270 wird zur Benutzerberechtigung 246 weitergeleitet, die Benutzerberechtigungsnachweise 272 bereitstellt. Die Benutzerberechtigungsnachweise 272 und die Schlüsselressource 266 (einschließlich des umhüllten Schlüssels 264) werden an den Schlüsselgenerator 248 übergeben. Nach der Überprüfung, dass der Benutzer zum Zugriff auf die Daten berechtigt ist, wird die Umhüllung des umhüllten Schlüssels 264 aufgehoben (z. B. im Schlüsselspeicher 250), wodurch der Benutzerschlüssel 262 erzeugt wird. Cloud-basierte Benutzerberechtigungsnachweise 268 und ein Cloud-basierter Schlüssel 274 werden dem Schlüsselspeicher 250 bereitgestellt, der einen umhüllten Schlüssel 276 erzeugt.
  • Unter Bezugnahme auf 3 beinhaltet der Ablauf 240c ein Verwenden des Cloud-basierten umhüllten Schlüssels 272, um Zugriff auf die geschützten Daten in der Cloud zu erhalten. Der umhüllte Schlüssel 272 und die Cloud-basierten Berechtigungsnachweise 268 werden beispielsweise der Abgleicheinheit 252 bereitgestellt. Wenn der Benutzer 242, der Zugriff auf die geschützten Daten anfordert, zum Zugriff auf die Daten berechtigt ist, wird die Umhüllung des umhüllten Schlüssels 276 aufgehoben (z. B. durch den Schlüsselspeicher 250), um den nicht umhüllten Schlüssel 274 bereitzustellen. Bei einigen Realisierungsformen verwendet ein Prozess 278, bei dem Schlüssel verwendet werden, den nicht umhüllten Schlüssel 274, um die Daten für den Zugriff durch den Benutzer 242 auf der VM zu entschlüsseln.
  • Bei einigen Ausführungsformen beinhaltet die Abgleicheinheit 252 Prozesse, die langlebige Berechtigungs-Zugriffstoken aufrechterhalten, die dem Zugriff eines Benutzers auf Daten auf der VM entsprechen. Die Abgleicheinheit 252 kann nach Bedarf Zugriffstoken anfordern, um Umhüllungen von Schlüsseln aufzuheben. Die Abgleicheinheit 252 kann beispielsweise ihre Berichtigungsdienst-Rollenberechtigungsnachweise verwenden, um den Schlüsselspeicher 250 zu veranlassen, die Umhüllung eines Datenschlüssels aufzuheben, der anhand der Cloud-Cluster-Rolle umhüllt wurde.
  • Bei einigen Realisierungsformen verwendet der Schlüsselspeicher 250 die Berechtigungsdienst-Berechtigungsnachweise, um den Zugriff auf Masterschlüssel zu steuern. Masterschlüssel können beispielsweise verwendet werden, um einen umhüllten Schlüssel zu entschlüsseln und die den Schlüsseln zugewiesenen ACLs lokal sichtbar zu machen. Der Schlüsselspeicher 250 kann anschließend überprüfen, dass die Identität, die einem Zugriffstoken (z. B. dem Zugriffstoken 270) entspricht, einen Eintrag in der ACL aufweist, um den Zugriff auf dessen entsprechenden Schlüssel zuzulassen. Zu diesem Zeitpunkt kann der Schlüsselspeicher 250 den Schlüssel an einen Replikatorprozess zurückgeben, der den Schlüssel den Speichereinheiten zuweist, solange die VM aktiv ist. Der Replikator kann dasselbe Zugriffstoken weiterhin nutzen, solange er während des Zugreifens auf die permanente Platte den Zugriff auf neue Schlüssel benötigt. Wenn das Zugriffstoken abläuft, kann der Replikator ein neues Zugriffstoken anfordern. Alle Prozesse, die Schlüssel oder Token beinhalten, können dann den Speicher löschen, in dem sie enthalten sind, sobald die Schlüssel oder Token nicht mehr benötigt werden.
  • Bei einigen Realisierungsformen ermittelt der protokollstrukturierte Datenträger (LSV), ob die Daten bei Lesevorgängen zu entschlüsseln sind (wenn sie z. B. bereits entschlüsselt wurden), und verschlüsselt Daten bei Schreibvorgängen immer. Bei einigen Realisierungsformen hält der LSV innerhalb des Blocks von Metadaten Informationen über den Verschlüsselungszustand jedes Blocks aufrecht. LSV-Verwaltungstools verarbeiten ferner Änderungen bei ACL-Eigenschaften oder anderen kryptographischen Eigenschaften in Bezug auf Momentaufnahmegrenzen. Wenn sich beispielsweise kryptographische Eigenschaften von Momentaufnahmen ändern, werden die Änderungen in der neuen Momentaufnahme automatisch aktualisiert. Bei einigen Realisierungsformen befinden sich die einer bestimmten Momentaufnahme zugewiesenen kryptographischen Metadaten in einem Momentaufnahme-Metadatensegment, das innerhalb des Datenblocks gespeichert ist. Bei Momentaufnahmen, die Änderungen an einem Datenschlüssel beinhalten (z. B. bei Schlüsselrotation, -stilllegung usw.) erzeugen Schlüsselverwaltungstools einen neuen umhüllten Schlüssel. Bei einigen Realisierungsformen wird die Gruppe umhüllter Schlüssel aus der vorherigen Momentaufnahme in die Metadaten der aktuellen Momentaufnahme kopiert.
  • Einige Realisierungsformen übergeben geheimes Schlüsselmaterial unter Verwendung sicherer Aufrufe und/oder Transaktionen, die nicht protokolliert werden. Ein Verwenden sicherer Aufrufe kann beispielsweise verhindern, dass geheimes Schlüsselmaterial in Protokolle, Überwachungstools oder andere Ressourcen gelangt, die Standardaufrufen und -transaktionen zugewiesen sind. Ferner beinhalten bei Prozessen, die Schlüsselinformationen zu Platten zuweisen und aufrechterhalten (z. B. Schlüsselzustandspuffer), die Schlüsselinformationen kein geheimes Schlüsselmaterial, sondern stellen stattdessen lediglich Metadaten über den Schlüssel bereit, unter anderem die Schlüsselart und die Schlüsselkennung.
  • Bei einigen Realisierungsformen werden Schlüsselzustandsobjekte, die geheimes Schlüsselmaterial enthalten, in einem intern verwalteten Cache-Zwischenspeicher aufrechterhalten. Beim Start einer neuen VM-Instanz wird beispielsweise zuerst das gesamte geheime Schlüsselmaterial unter Verwendung eines sicheren Aufrufs als VM-Spezifikation an einen Cache-Zwischenspeicher übergeben. Ein Systemprozess fügt anschließend den Platten, die die VM bilden, Schlüsselzustandsobjekte hinzu, deren geheimes Schlüsselmaterial entfernt wurde. Wenn der Systemprozess die VM-Spezifikation als Teil einer VM-Erstellung sendet, wird das zuvor empfangene geheime Schlüsselmaterial unter Verwendung der Schlüsselkennungen in die VM-Spezifikation eingeschleust, um die Schlüsselmaterialien anzugleichen.
  • 4 ist ein Ablaufplan, der einen exemplarischen Prozess 400 zum Verschlüsseln von Daten für virtuelle Maschinen zeigt. Der Prozess 400 kann beispielsweise durch das unter Bezugnahme auf 2A beschriebene Serversystem 206 durchgeführt werden.
  • Bei 402 wird eine erste Anforderung von einer ersten virtuellen Maschine empfangen, um Daten auf einem protokollstrukturierten Datenträger zu speichern. Das Serversystem 206 kann beispielsweise die Anforderung 210 von einer ersten VM (z. B. VM A 202) empfangen. Die Anforderung kann darin bestehen, Daten wie beispielsweise eine neu angelegte Datendatei (z. B. ein Abrechnungsarbeitsblatt) zu speichern, die der Benutzer (z. B. Benutzer A) auf der VM A 202 angelegt hat.
  • Bei 404 werden auf der Grundlage der Anforderung die Daten und eine Zugriffssteuerungsliste (ACL) eines oder mehrerer Benutzer empfangen, die zum Zugriff auf die Daten berechtigt sind. Das Serversystem 206 kann beispielsweise die zu speichernden Daten (z. B. das Abrechnungsarbeitsblatt) von der Benutzereinheit empfangen, die auf die VM zugreift. Gleichzeitig kann das Serversystem 206 die ACL empfangen, die die Benutzer bezeichnet, die zum Zugriff auf die Daten berechtigt sind (z. B. Benutzer A, B und C).
  • Bei 406 wird ein Datenschlüssel erhalten, der durch eine Datenschlüsselkennung gekennzeichnet ist. Das Schlüsselverwaltungssystem 208 kann beispielsweise einen Datenschlüssel (z. B. einen Verschlüsselungsschlüssel) erzeugen, der durch eine Datenschlüsselkennung gekennzeichnet ist, die durch das Schlüsselverwaltungssystem 208 zugewiesen wurde.
  • Bei 407 werden der Datenschlüssel und die Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels verschlüsselt, um ein umhülltes BLOB zu erzeugen. Bei 408 werden die Daten unter Verwendung des Datenschlüssels verschlüsselt, um verschlüsselte Daten zu erzeugen. Bei 409 werden das umhüllte BLOB und die verschlüsselten Daten auf dem protokollstrukturierten Datenträger gespeichert. Das Serversystem 206 kann beispielsweise alle auf dem LSV speichern.
  • Bei 410 wird die Datenschlüsselkennung einem oder mehreren Benutzern auf der Zugriffssteuerungsliste bereitgestellt. Das Serversystem 206 kann beispielsweise den bereitgestellten Datenschlüssel allen Benutzern bereitstellen, die zum Zugriff auf die Daten berechtigt sind, z. B. allen Benutzern auf der ACL, die den Daten zugewiesen ist.
  • Bei 412 wird eine zweite Anforderung von einer zweiten virtuellen Maschine empfangen, um eine Momentaufnahme der Daten zu erhalten. Beispielsweise können derselbe Benutzer (z. B. Benutzer A) oder ein anderer Benutzer (z. B. Benutzer B) eine Anforderung senden, um eine Kopie des Abrechnungsarbeitsblatts zu erhalten. Die Anforderung kann die Datenschlüsselkennung und eine Bezeichnung des Benutzers beinhalten, der die Anforderung ausgelöst hat.
  • Bei 414 wird auf der Grundlage der zweiten Anforderung ein nicht umhülltes BLOB erhalten, das den Datenschlüssel und die Zugriffssteuerungsliste enthält. Bei 415 werden der Datenschlüssel und die Zugriffssteuerungsliste aus dem nicht umhüllten BLOB erhalten. Das Serversystem 206 kann beispielsweise unter Verwendung der Datenschlüsselkennung die Datenschlüsselumhüllungskomponente vom Schlüsselverwaltungssystem 208 anfordern und empfangen.
  • Bei 416 wird ein der zweiten Anforderung zugewiesener Benutzer authentifiziert, der Benutzer wird anhand der Zugriffssteuerungsliste berechtigt, und es wird ermittelt, ob der Benutzer authentifiziert und berechtigt ist. Das Serversystem 206 kann beispielsweise die der Anforderung zugewiesenen Benutzerberechtigungsnachweise (z. B. Benutzerkennung) anhand der ACL prüfen, um nachzuprüfen, dass der Benutzer (z. B. Benutzer B) zum Zugriff auf das Abrechnungsarbeitsblatt berechtigt ist.
  • Bei 418 werden nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist, die Daten unter Verwendung des Datenschlüssels entschlüsselt. Wenn beispielsweise festgestellt wird, das Benutzer B in der ACL enthalten ist, kann das Serversystem 206 den Datenschlüssel verwenden, um das Abrechnungsarbeitsblatt zu entschlüsseln.
  • Bei 420 wird der zweiten virtuellen Maschine eine Momentaufnahme der Daten bereitgestellt. Das Serversystem 206 kann das Abrechnungsarbeitsblatt beispielsweise Benutzer B zur Verwendung auf der VM des Benutzers B bereitstellen.
  • Verschlüsselung und Entschlüsselung, die durch den Prozess 400 durchgeführt werden, können zusätzlich zur Verschlüsselung/Entschlüsselung von Schlüsselmaterial auf der Grundlage einzelner Blöcke stattfinden. Bei einigen Realisierungsformen kann die Verschlüsselung/Entschlüsselung unter Verwendung eines Multithread-Moduls realisiert sein, das Datenblöcke in paralleler Weise kryptographisch umsetzt.
  • Bei einigen Realisierungsformen kann ein feststehender Pool von Threads verwendet werden, um Blöcke parallel zu verschlüsseln und zu entschlüsseln. Eine Standardanzahl von Threads kann beispielsweise gleich der Anzahl von CPUs sein, die auf dem Host (z. B. dem Serversystem 206) erkannt wurden. Bei einigen Realisierungsformen können E/A-Threads feststehende Speichersegmente als Spiegelpuffer verwenden. Wenn es anschließend darum geht, die Daten kryptographisch umzusetzen, können die Segmente in Datenblöcke für einzelne Threads im Thread-Pool für die kryptographische Umsetzung unterteilt werden. Bei einigen Realisierungsformen kann die Standard-Datenblockgröße 512 kB betragen oder eine andere konfigurierbare Größe aufweisen.
  • Bei einigen Realisierungsformen können Bitmaps verwendet werden, um die Verschlüsselung von Platten auf einer Grundlage von Deltaplatten zu überwachen. Blöcke können beispielsweise unverschlüsselte Blöcke beinhalten, die keinerlei Daten enthalten (selten) oder Blöcke aus einem unverschlüsselten Basisimage enthalten. Wenn die Blöcke geschrieben und verschlüsselt werden, kann das Bitmap aktualisiert werden. Der Bitmapmechanismus kann beispielsweise nur bei zeitweiligen Images verwendet werden, sodass Dataplatten-Rohkomponenten von Deltaplatten verschlüsselt werden, während Basisplatten-Rohkomponenten nicht verschlüsselt werden. Bei einigen Realisierungsformen kann ein Öffnen eines unverschlüsselten Basisplatten-Rohimage zum Lesen/Schreiben bei aktivierter Verschlüsselung dazu führen, dass das Basisimage bei nachfolgenden Öffnen-Vorgängen anderer VMs beschädigt wird.
  • 5A ist ein Ablaufplan, der einen exemplarischen Schlüsselrotationsprozess 500 für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden. Der Prozess 500 kann beispielsweise verwendet werden, um Datenschlüssel auf einer planmäßigen Grundlage rotieren zu lassen, z. B. alle sieben Tage oder in einem anderen Zeitraum. Bei einigen Realisierungsformen kann der Prozess 500 verwendet werden, um Cloud-Cluster-Masterschlüssel zu rollieren, wodurch ein vorheriger Schlüssel zu einem „aktiven” Schlüssel und der neue Schlüssel zu einem „primären” Schlüssel wird. Wenn bei einem Datenschlüssel die Umhüllung durch Verwendung einer aktiven Masterschlüsselversion aufgehoben wird, kann auch die primäre Masterschlüsselversion wieder umhüllt werden, wodurch der umhüllte aktive Schlüssel durch den neuen umhüllten primären Schlüssel ersetzt wird.
  • Bei 502 wird eine Schwellenwertbedingung eingerichtet, die einem Speicher der Daten auf dem protokollstrukturierten Datenträger zugewiesen ist, auf dem die Schwellenwertbedingung zur Rotation des Datenschlüssels verwendbar ist. Bei einigen Realisierungsformen weist die Schwellenwertbedingung eine Datenmenge auf, die durch den Datenschlüssel geschützt werden, beispielsweise eine Anzahl von Datenblöcken, eine Anzahl von Dateien oder ein anderes Maß der Datenmenge, die zum gegenwärtigen Zeitpunkt durch den Datenschlüssel geschützt werden. Bei einigen Realisierungsformen ist die Datenmenge, die durch den Schlüssel geschützt ist, eine kumulative Menge, beispielsweise die gesamte Datenmenge, die im Laufe der Zeit unter Verwendung desselben Datenschlüssels geschützt werden. Bei einigen Realisierungsformen beinhaltet die Schwellenwertbedingung eine Zeitdauer, während der der Datenschlüssel in Gebrauch ist. Die maximale Zeitdauer zur Verwendung eines Datenschlüssels kann beispielsweise auf eine beliebige Anzahl von Stunden, Tagen, Wochen usw. eingestellt werden.
  • Bei 504 wird eine Feststellung getroffen, dass die Schwellenwertbedingung aufgetreten und der Zeitpunkt gekommen ist, um den Datenschlüssel zu rotieren, wie in den folgenden Schritten beschrieben. Bei 506 wird ein neuer Datenschlüssel erhalten, der durch eine neue Datenschlüsselkennung gekennzeichnet ist. Bei einigen Realisierungsformen kann der neue Datenschlüssel vom Schlüsselverwaltungssystem 208 empfangen werden.
  • Bei 508 werden die Daten unter Verwendung des Datenschlüssels entschlüsselt, z. B., der Datenschlüssel muss stillgelegt werden. Dies ist die letzte Verwendung des Datenschlüssels vor dessen Stilllegung.
  • Bei 509 werden der neue Datenschlüssel und die Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels verschlüsselt, um ein neues umhülltes BLOB zu erzeugen. Bei 510 werden die Daten unter Verwendung des neuen Datenschlüssels verschlüsselt, um verschlüsselte Daten zu erzeugen. Bei 511 werden das neue umhüllte BLOB und die verschlüsselten Daten auf dem protokollstrukturierten Datenträger gespeichert. Bei 512 wird die neue Datenschlüsselkennung einem oder mehreren Benutzern auf der Zugriffssteuerungsliste bereitgestellt.
  • Bei 514 wird der stillzulegende Datenschlüssel zerstört. Bei einigen Realisierungsformen geschieht die Zerstörung des Datenschlüssels durch Überschreiben des Speicherplatzes des Datenschlüssels mit willkürlichen Daten, bei denen es sich nicht um Schlüsseldaten handelt.
  • 5B ist ein Ablaufplan, der einen exemplarischen Schlüsselstilllegungsprozess 520 für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden. Bei einigen Realisierungsformen wird für alle umhüllten Schlüssel ein Verzeichnis aufrechterhalten, das Informationen darüber beinhaltet, welche Masterschlüsselversion zum Umhüllten der Schlüssel verwendet wurde. Einige Realisierungsformen halten ferner ein Verzeichnis aller aktiven Datenschlüssel aufrecht. Das Verzeichnis beinhaltet zum Beispiel Verweise auf die umhüllten Schlüssel, von denen sie erhalten wurden, und auf die VM-Instanzen, in denen sie gegenwärtig gehalten werden. Einige Realisierungsformen beinhalten Zeitstempel, die jedem Schlüssel zugewiesen sind und anzeigen, wann jeder Schlüssel angelegt wurde. Bei einigen Realisierungsformen können die Zeitstempel und/oder andere Informationen verwendet werden, um die Stilllegung von Datenschlüsseln auszulösen. Bei einigen Realisierungsformen geschieht die Stilllegung nach 120 Tagen, was bedeutet, dass jeder bestehende umhüllte Schlüssel anhand des aktuellen primären Masterschlüssels spätestens 120 Tage nach dem Zeitpunkt erneut verschlüsselt wird, an dem der umhüllte Schlüssel erzeugt wurde. Bei einigen Realisierungsformen sind Alarme gesetzt (z. B. 120 Tage ab dem Datum der Schlüsselerzeugung), durch die Auslöseereignisse auftreten, um den Zeitpunkt zur Schlüsselstilllegung anzuzeigen. Sobald alle umhüllten Schlüssel, die durch einen aktiven Masterschlüssel geschützt wurden, erneut umhüllt worden sind, wird der Masterschlüssel-Stilllegungsprozess durch Zerstören des aktiven Masterschlüssels abgeschlossen. Es folgen exemplarische Schritte zur Stilllegung.
  • Bei 522 wird eine Schwellenwertbedingung eingerichtet, die einem Speicher der Daten auf dem protokollstrukturierten Datenträger zugewiesen ist, auf dem die Schwellenwertbedingung zur Stilllegung des Datenschlüssels verwendbar ist. Bei einigen Realisierungsformen beinhaltet die Schwellenwertbedingung eine Zeitdauer, während der der Datenschlüssel in Gebrauch ist, z. B. zur Stilllegung von Datenschlüsseln, die das Alter von 120 Tagen erreichen.
  • Bei 524 wird eine Feststellung eingeleitet, dass die Schwellenwertbedingung aufgetreten ist, und es wird die Stilllegung des Datenschlüssels eingeleitet. Die Feststellung kann beispielsweise durch das Auftreten eines Alarms oder durch Vergleichen des aktuellen Datums mit dem Erzeugungsdatum des Datenschlüssels vorgenommen werden, um zu ermitteln, ob der Unterschied groß genug ist, um die Schwellenwertbedingung auszulösen.
  • Bei 526 wird ein neuer Datenschlüssel erhalten, der durch eine neue Datenschlüsselkennung gekennzeichnet ist. Beispielsweise kann das Schlüsselverwaltungssystem 208 den neuen Schlüssel erzeugen und die Schlüsselkennung für den neuen Schlüssel bereitstellen.
  • Bei 528 werden die Daten unter Verwendung des stillzulegenden Datenschlüssels entschlüsselt. Dies ist die letzte Verwendung des alten Datenschlüssels.
  • Bei 529 werden der neue Datenschlüssel und die Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels verschlüsselt, um ein neues umhülltes BLOB zu erzeugen. Bei 530 werden die Daten unter Verwendung des neuen Datenschlüssels verschlüsselt, um verschlüsselte Daten zu erzeugen. Bei 531 werden das neue umhüllte BLOB und die verschlüsselten Daten auf dem protokollstrukturierten Datenträger gespeichert. Bei 532 wird die neue Datenschlüsselkennung einem oder mehreren Benutzern auf der Zugriffssteuerungsliste bereitgestellt.
  • Bei 534 wird der stillzulegende Datenschlüssel zerstört. Bei einigen Realisierungsformen geschieht die Zerstörung des Datenschlüssels durch Überschreiben des Speicherplatzes des Datenschlüssels mit Nullwerten, Löschwerten, Einsen oder Nullen.
  • 5C ist ein Ablaufplan, der einen exemplarischen Schlüsselannullierungsprozess 540 für Datenschlüssel zeigt, die auf virtuellen Maschinen verwendet werden. Falls beispielsweise eine Masterschlüsselversion verletzt wird, können der Masterschlüssel und alle Datenschlüssel rolliert werden, die durch den verletzten Masterschlüssel geschützt werden. Bei einigen Realisierungsformen beinhaltet das Rollieren der Datenschlüssel ein erneutes Verschlüsseln der Dateninhalte anhand des neu erzeugten Datenschlüssels. Der neu erzeugte Datenschlüssel kann mit dem neu erzeugten primären Masterschlüssel umhüllt werden. Bei einigen Realisierungsformen werden alle mit dem vorherigen Datenschlüssel verschlüsselten Daten zerstört.
  • Bei 542 wird ein Zugriff auf die Daten geprüft. Bei einigen Realisierungsformen geschieht das Prüfen des Datums durch Überwachen von Prozessen und Benutzern, die auf die Daten zugreifen. Bei 544 wird festgestellt, dass durch einen Benutzer auf die Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der Datenschlüssel verletzt wurde.
  • Bei 546 werden Maßnahmen zum Ersatz des verletzten Datenschlüssels eingeleitet. Bei 548 wird ein neuer Datenschlüssel erhalten, der durch eine neue Datenschlüsselkennung gekennzeichnet ist.
  • Bei 550 werden die Daten unter Verwendung des stillzulegenden Datenschlüssels entschlüsselt. Dies ist die letzte Verwendung des alten Datenschlüssels.
  • Bei 551 werden der neue Datenschlüssel und die Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels verschlüsselt, um ein neues umhülltes BLOB zu erzeugen. Bei 552 werden die Daten unter Verwendung des neuen Datenschlüssels verschlüsselt, um verschlüsselte Daten zu erzeugen. Bei 553 werden das neue umhüllte BLOB und die verschlüsselten Daten auf dem protokollstrukturierten Datenträger gespeichert. Bei 554 wird die neue Datenschlüsselkennung einem oder mehreren Benutzern auf der Zugriffssteuerungsliste bereitgestellt.
  • Bei 556 wird der alte Datenschlüssel zerstört. Bei einigen Realisierungsformen geschieht die Zerstörung des Datenschlüssels durch Überschreiben des Speicherplatzes des Datenschlüssels mit Nullwerten, Löschwerten, Einsen oder Nullen.
  • Bei einigen Realisierungsformen geschieht die Umwandlung beim Rollieren eines Datenschlüssels in einer nicht unterbrechenden Weise, wenn sich der Datenschlüssel im aktiven Gebrauch durch eine VM befindet. Das Rollieren geschieht beispielsweise ohne Unterbrechung der Fähigkeit der VM, die Platte in einer normalen Weise zu verwenden.
  • 6 ist ein Beispiel einer Vernetzungsarchitektur für ein verteiltes System, das zur Ausführung virtueller Maschinen konfiguriert ist. Ein verteiltes System kann Serversysteme enthalten, die Hostmaschinen 615a, 615b beinhalten, die so konfiguriert sind, dass eine oder mehrere virtuelle Maschinen 620a, 620b, 620c, 620d ausgeführt werden. Die Hostmaschinen 615a, 615b verwenden IP-Tunnel 660a, 660b, 660c, um IP-Verkehr zwischen den virtuellen Maschinen 620a bis d und IP-Verkehr zwischen den virtuellen Maschinen 620a bis d und VM-Gateways 640a, 640b zu übertragen. Die VM-Gateways 640a, b sind so konfiguriert, dass den virtuellen Maschinen 620a bis d Zugriff auf das Internet 650 bereitgestellt wird.
  • Die Hostmaschinen 615a, 615b können über jeweilige lokale Netzwerke (LANs) 655a, 655b Verbindungen zum Internet 650 herstellen. Bei einigen Realisierungsformen sind den Hostmaschinen 615a, 615b IP-Adressen (z. B. 134.130.78.11, 224.10.202.6) zugewiesen, die im Internet 650 sichtbar sind. Verkehr auf einem zwischen Hostmaschinen vorliegenden IP-Tunnel 660a (z. B. IP-Tunnelpakete) kann von der Hostmaschine 615 an einem ersten LAN 655a über das Internet 650 zu einer Hostmaschine 615b in einem zweiten LAN 655b weitergeleitet werden (Tunnel 660a überträgt Verkehr zwischen VM-1 620a und VM-13 620c). Verkehr auf einem zwischen Hostmaschinen vorliegenden IP-Tunnel 660b kann vollständig innerhalb einer Hostmaschine 615a weitergeleitet werden.
  • Das VM-Gateway 640a, 640b kann Verkehr zwischen dem Internet 650 und dem virtuellen Netzwerk 601 weiterleiten, indem Quell- oder Zieladressinformationen in Paket-Headern geändert werden, sodass der Adressraum des virtuellen Netzwerks 601 hinter der IP-Adresse des Gateways 640a, 640b verborgen ist. Insbesondere wird bei Paketen, die aus dem Internet 650 am Gateway 640a, 640b eintreffen und für das virtuelle Netzwerk 601 bestimmt sind, die Zieladresse ihres IP-Datagramms von der des Gateways 640a, 640b (z. B. 134.130.78.1 oder 224.10.202.1) in die IP-Adresse der Ziel-VM (z. B. 192.168.1.10) geändert. Bei Paketen, die aus dem virtuellen Netzwerk 601 am Gateway 640a, 640b eintreffen und für das Internet 650 bestimmt sind, wird die Quelladresse ihres IP-Datagramms von der einer VM (z. B. 192.168.1.10) in die IP-Adresse des VM-Gateways 640a, 640b geändert, die im Internet 650 sichtbar ist (z. B. 134.130.78.1, 224.10.202.1). Auf der Grundlage dessen, dass das virtuelle Netzwerk 601 ein privates Teilnetz verwendet, können die VM-Gateways 640a, b eine Netzwerkadressumsetzung (Network Address Translation, NAT) durchführen, um Umsetzungen zwischen privaten Teilnetzadressen und öffentlichen Adressen vorzunehmen.
  • Die virtuellen Maschinen 620a, 620b, 620c, 620d, die auf den Hostmaschinen 615a bis b ausgeführt werden, können Prozesse wie beispielsweise Webserverprozesse ausführen, die mit Browsersoftware zusammenwirken, die auf Clients 630a, 630b, 630c ausgeführt wird. Ein Client kann eine Datenverarbeitungsvorrichtung wie beispielsweise ein Server, ein Personal Computer, ein Notebook-Computer, ein Smartphone, ein Fernsehgerät mit einem oder mehreren darin integrierten oder mit diesem verbundenen Prozessoren, eine integrierte Einheit (z. B. ein intelligenter Stromzähler) oder ein Tablet-Computer sein. Bei diesem Beispiel tauscht der Client 630c Daten mit einer VM (z. B. VM-21 620d) aus, indem IP-Pakete an ein VM-Gateway 640b gesendet werden. Das VM-Gateway 640b wiederum kapselt die Pakete vom Client 630c und sendet die gekapselten Pakete über einen IP-Tunnel 660c an die Hostmaschine 615b, die die VM-21 620d ausführt. Die Hostmaschine 615b, die die VM-21 620d ausführt, kann die Pakete entkapseln und die Pakete zur VM-21 620d leiten.
  • IP-Verkehr im virtuellen Netzwerk 140 kann durch IP-Tunnel übertragen werden. Die Hostmaschinen 102, 104 können IP-Kapselung und -Entkapselung 142 bei IP-Verkehr zu und von jeder VM 110, 112, 114 durchführen. Gekapselter IP-Verkehr von einer VM kann über IP-Tunnelung an eine andere VM gesendet werden. Ein IP-Tunnel kann eine Transportschicht bereitstellen. IP Tunnelung kann beispielsweise ein Senden eines IP Tunnelpakets beinhalten, das ein gekapseltes Paket beinhaltet. Das gekapselte Paket kann ein IP-Paket sein. Andere Arten gekapselter Pakete sind möglich. In einigen Fällen kann ein IP-Tunnel an derselben Hostmaschine sowohl beginnen als auch enden (z. B., wenn sich Quell- und Ziel-VM auf derselben Hostmaschine befinden). In einigen Fällen kann ein IP-Tunnel an einer Hostmaschine beginnen und an einer anderen Hostmaschine enden (wenn sich z. B. Quell- und Ziel-VM auf unterschiedlichen Hostmaschinen befinden). IP-Tunnelverkehr zwischen den Hostmaschinen 102, 104 kann auf einem virtuellen privaten Netzwerk (VPN) über ein Netzwerk 150 wie beispielsweise das Internet übertragen werden.
  • Die Hostmaschinen 102, 104 können eine Weiterleitungstabelle für virtuelle Netzwerke verwenden, um die Endpunktpositionen der IP-Tunnel abzurufen. Bei einigen Realisierungsformen kann eine Weiterleitungstabelle für virtuelle Netzwerke auf der Grundlage einer eingegebenen VM-Kennung oder VM-IP-Adresse eine weiterleitungsfähige IP-Adresse im Netzwerk 150 bereitstellen, die der Hostmaschine entspricht, die die VM ausführt, die der eingegebenen VM-Kennung oder VM-IP-Adresse zugewiesen ist.
  • Ausführungsformen des Gegenstands und die in der vorliegenden Spezifikation beschriebenen Operationen können in digitalen Elektronikschaltungen oder in Computersoftware oder -firmware oder -hardware realisiert sein, einschließlich der in der vorliegenden Spezifikation offenbarten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen aus einer oder mehreren von ihnen. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem Computer-Speichermedium für die Ausführung durch oder die Steuerung des Betriebs des datenverarbeitenden Apparats kodiert werden. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten propagierten Signal, z. B. einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal künstlich kodiert werden, das erzeugt wird, um Informationen für die Übertragung auf einen geeigneten Empfängerapparat für die Durchführung durch einen datenverarbeitenden Apparat zu kodieren. Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln oder in ihnen enthalten sein. Außerdem ist ein Computer-Speichermedium zwar kein verbreitetes Signal, aber ein Computer-Speichermedium kann eine Quelle oder ein Bestimmungsort von Computerprogrammanweisungen sein, die in einem künstlich erzeugten verbreiteten Signal kodiert werden. Bei dem Computer-Speichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Plattenlaufwerke oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein.
  • Die in der vorliegenden Spezifikation beschriebenen Operationen können als Operationen realisiert sein, die durch eine Datenverarbeitungsvorrichtung an Daten durchgeführt wird, die auf einer oder mehreren computerlesbaren Speichereinheiten gespeichert sind oder von anderen Quellen empfangen werden.
  • Der Begriff „Datenverarbeitungsvorrichtung” umfasst alle Arten von Vorrichtungen, Einheiten und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers, eines Systems auf einem Chip oder mehreren oder Kombinationen des Vorstehenden. Die Vorrichtung kann spezielle zweckgebundene Logikschaltungen beinhalten, z. B. ein FPGA (Field Programmable Gate Array) oder eine anwendungsspezifische integrierte Schaltung (Application-specific Integrated Circuit, ASIC). Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm in der Frage erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem, eine plattformunabhängige Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination einer oder mehrerer der genannten darstellt. Der Apparat und die Ausführungsumgebung können verschiedene unterschiedliche Rechnermodell-Infrastrukturen umsetzen, wie Webdienstleistungen, verteilte Rechen- und Grid-Computin-Infrastrukturen.
  • Ein Computerprogramm (auch als Programm, Software, Softwareanwendung, Script oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form installiert sein, darunter als unabhängiges Programm oder als Modul, Komponente, Unterroutine, Objekt oder eine andere Einheit, die zur Verwendung in einer Datenverarbeitungsumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
  • Die in der vorliegenden Spezifikation beschriebenen Prozesse und logischen Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Operationen an Eingangsdaten durchzuführen und Ausgabedaten zu erzeugen. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Zu Prozessoren, die zur Ausführung eines Computerprogramms geeignet sind, gehören beispielsweise sowohl Mehrzweck- als auch Spezialmikroprozessoren sowie alle Arten eines oder mehrerer Prozessoren von Digitalcomputern beliebiger Arten. Ganz allgemein nimmt ein Prozessor Anweisungen und Daten von einem Festwertspeicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Durchführen von Handlungen gemäß Anweisungen und ein oder mehr Speichergeräte für das Speichern von Anweisungen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehr Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem Organizer (PDA), einem mobilen Audio- oder Videoplayer, einer Spielkonsole, einem Funknavigationsempfänger oder einem tragbaren Speichergerät (z. B. in einem USB-Stick), um nur einige zu nennen. Geräte, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von Dauerspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und USB-Flash-Speicher; Magnetplatten, z. B. interne Festplatten oder herausnehmbare Platten; magnetooptische Platten; und CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.
  • Zur Bereitstellung der Interaktion mit einem Benutzer können Ausführungsformen des in der vorliegenden Spezifikation beschriebenen Gegenstands auf einem Computer realisiert sein, der eine Anzeigeeinheit aufweist, z. B. einen Kathodenstrahlröhrenmonitor (CRT-Monitor (CRT = Cathode Ray Tube)) oder einen Flüssigkeitskristallanzeige-Monitor (LCD-Monitor (LCD = Liquid Crystal Display), um den Benutzer Informationen anzuzeigen, und eine Tastatur und eine Anzeigeeinheit, z. B. eine Maus oder einen Trackball, mit deren Hilfe der Benutzer dem Computer Eingaben bereitstellen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Nutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe von dem Nutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Darüber hinaus kann ein Computer über das Senden von Dokumenten an und das Empfangen von Dokumenten von einer Einrichtung, die vom Benutzer verwendet wird, mit einem Benutzer interagieren; beispielsweise über das Senden von Webpages an einen Webbrowser auf dem Clientgerät des Benutzers als Antwort auf die vom Webbrowser empfangenen Aufforderungen.
  • Ausführungsformen des in der vorliegenden Spezifikation beschriebenen Gegenstands können in einem Computersystem realisiert sein, das eine Backend-Komponente, z. B. einen Datenserver, oder eine Middleware-Komponente, z. B. einen Anwendungsserver, oder eine Frontend-Komponente, z. B. einen Client-Computer mit grafischer Benutzeroberfläche oder einen Webbrowser) beinhaltet, über die der Benutzer mit einer Realisierungsform des in der vorliegenden Spezifikation beschriebenen Gegenstands interagieren kann, oder eine beliebige Kombination aus einer oder mehreren derartigen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. Zu Beispielen für Kommunikationsnetze zählen ein lokales Netzwerk („LAN”), ein Fernnetzwerk („WAN”), eine netzübergreifende Verbindung (z. B. das Internet) und Peer-to-Peer-Netzwerke (z. B. Ad-Hoc Peer-to-Peer Netzwerke).
  • Das Computersystem kann Clients und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben. In einigen Ausführungsformen überträgt ein Server Daten (z. B. eine HTML-Seite) an ein Client-Gerät (z. B. zum Anzeigen von Daten auf und zum Empfangen von Benutzereingaben von einem Benutzer, der mit dem Client-Gerät interagiert). Am Client-Gerät erzeugte Daten (z. B. infolge der Benutzerinteraktion) können vom Client-Gerät am Server empfangen werden.
  • Obwohl die vorliegende Spezifikation viele konkrete Realisierungsdetails enthält, sollten diese nicht als Einschränkungen des Schutzbereichs beliebiger Erfindungen oder der Ansprüche ausgelegt werden, sondern vielmehr als Beschreibungen konkreter Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in jeder geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
  • Ebenso sind Operationen Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, dies sollte aber nicht so verstanden werden, dass diese Operationen in der konkret dargestellten Reihenfolge oder der Reihe nach durchzuführen sind oder dass alle dargestellten Operationen durchzuführen sind, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
  • Daher wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.

Claims (12)

  1. System, das Folgendes umfasst: eine oder mehrere Datenverarbeitungsvorrichtungen, die zur Durchführung von Operationen programmiert sind, die umfassen: das Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um erste Daten auf einem protokollstrukturierten Datenträger zu speichern, und auf der Grundlage der ersten Anforderung: das Erhalten der ersten Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die ersten Daten berechtigt sind; das Erhalten eines ersten Datenschlüssels, der eine erste Datenschlüsselkennung aufweist; das Verschlüsseln der ersten Daten und der Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels, um ein umhülltes BLOB zu erzeugen; das Verschlüsseln der ersten Daten unter Verwendung des ersten Datenschlüssels, um neue verschlüsselte erste Daten zu erzeugen; das Speichern des umhüllten BLOB und der verschlüsselten ersten Daten auf dem protokollstrukturierten Datenträger; und das Bereitstellen der ersten Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste; und das Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der ersten Daten zu erhalten, worin die zweite Anforderung die erste Datenschlüsselkennung und eine Kennung eines Benutzers beinhaltet, der die zweite Anforderung ausgelöst hat, und auf der Grundlage der zweiten Anforderung: das Entschlüsseln, unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, des umhüllten BLOB, wobei der erste Umhüllungsschlüssel verwendet wird, um den ersten Datenschlüssel und die Zugriffssteuerungsliste zu erhalten; das Authentifizieren des Benutzers, der die zweite Anforderung ausgelöst hat, und Berechtigen des Benutzers anhand der Zugriffssteuerungsliste und nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist: das Entschlüsseln der verschlüsselten ersten Daten unter Verwendung des ersten Datenschlüssels, um entschlüsselte erste Daten zu erhalten; und das Bereitstellen einer Momentaufnahme der entschlüsselten ersten Daten für die zweite virtuelle Maschine.
  2. System nach Anspruch 1, worin die Operationen ferner umfassen: das Feststellen, dass eine Rotationsbedingung aufgetreten ist, worin die Rotationsbedingung verschlüsselten zweiten Daten zugewiesen ist, die auf dem protokollstrukturierten Datenträger gespeichert sind, worin die verschlüsselten zweiten Daten unter Verwendung des ersten Datenschlüssels verschlüsselt wurden und worin die verschlüsselten zweiten Daten die verschlüsselten ersten Daten beinhalten; das Erhalten eines zweiten Datenschlüssels, der durch eine zweite Datenschlüsselkennung gekennzeichnet ist; das Entschlüsseln der verschlüsselten zweiten Daten unter Verwendung des ersten Datenschlüssels, um zweite Daten zu erhalten; das Verschlüsseln der zweiten Daten und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen; das Verschlüsseln der zweiten Daten unter Verwendung des zweiten Datenschlüssels, um neue verschlüsselte zweite Daten zu erhalten; das Speichern des neuen umhüllten BLOB und der neuen verschlüsselten zweiten Daten auf dem protokollstrukturierten Datenträger; das Bereitstellen der zweiten Datenschlüsselkennung für den einen oder die mehreren Benutzer auf der Zugriffssteuerungsliste; und das Verhindern einer anschließenden Verwendung des ersten Datenschlüssels.
  3. System nach Anspruch 2, worin die Rotationsbedingung beinhaltet, dass eine durch den ersten Datenschlüssel geschützte Datenmenge eine Schwellenwertdatenmenge überschreitet, und worin die Schwellenwertdatenmenge eine kumulative Menge einer aktuellen Menge ist.
  4. System nach Anspruch 2, worin die Rotationsbedingung beinhaltet, dass eine Zeitdauer, während der der erste Datenschlüssel in Gebrauch ist, eine Schwellenwertzeitdauer überschritten hat.
  5. System nach Anspruch 1, worin die Operationen ferner umfassen: den Prüfzugriff auf die verschlüsselten ersten Daten; das Feststellen, dass durch einen Benutzer auf die verschlüsselten ersten Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der erste Datenschlüssel verletzt wurde; das Erhalten eines zweiten Datenschlüssels, der durch eine zweite Datenschlüsselkennung gekennzeichnet ist; das Entschlüsseln der verschlüsselten ersten Daten unter Verwendung des ersten Datenschlüssels, um entschlüsselte erste Daten zu erhalten; das Verschlüsseln der zweiten Daten und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen; das Verschlüsseln der entschlüsselten ersten Daten unter Verwendung des zweiten Datenschlüssels, um neue verschlüsselte erste Daten zu erzeugen; das Speichern des neuen umhüllten BLOB und der neuen verschlüsselten ersten Daten auf dem protokollstrukturierten Datenträger; das Bereitstellen der zweiten Datenschlüsselkennung für den einen oder die mehreren Benutzer auf der Zugriffssteuerungsliste; und das Verhindern einer anschließenden Verwendung des ersten Datenschlüssels.
  6. System nach Anspruch 1, worin das Speichern der verschlüsselten ersten Daten ein Komprimieren der verschlüsselten ersten Daten beinhaltet.
  7. Speichermedium mit darauf gespeicherten Anweisungen, die bei Ausführung bewirken, dass eine Datenverarbeitungsvorrichtung Operationen durchführt, die umfassen: Datenverarbeitungsvorrichtung, die zur Durchführung von Operationen programmiert sind, die umfassen: das Empfangen einer ersten Anforderung von einer ersten virtuellen Maschine, um erste Daten auf einem protokollstrukturierten Datenträger zu speichern, und auf der Grundlage der ersten Anforderung: das Erhalten der ersten Daten und einer Zugriffssteuerungsliste eines oder mehrerer Benutzer, die zum Zugriff auf die ersten Daten berechtigt sind; das Erhalten eines ersten Datenschlüssels, der eine erste Datenschlüsselkennung aufweist; Verschlüsseln des Datenschlüssels und der Zugriffssteuerungsliste unter Verwendung eines Umhüllungsschlüssels, um ein umhülltes BLOB zu erzeugen; das Verschlüsseln der ersten Daten unter Verwendung des Datenschlüssels, um verschlüsselte erste Daten zu erzeugen; das Speichern des umhüllten BLOB und der verschlüsselten ersten Daten auf dem protokollstrukturierten Datenträger; und das Bereitstellen der ersten Datenschlüsselkennung für einen oder mehrere Benutzer auf der Zugriffssteuerungsliste; und das Empfangen einer zweiten Anforderung von einer zweiten virtuellen Maschine, um eine Momentaufnahme der ersten Daten zu erhalten, worin die zweite Anforderung die erste Datenschlüsselkennung und eine Kennung eines Benutzers beinhaltet, der die zweite Anforderung ausgelöst hat, und auf der Grundlage der zweiten Anforderung: das Entschlüsseln, unter Verwendung der einen oder mehreren Datenverarbeitungsvorrichtungen, des umhüllten BLOB, wobei der erste Umhüllungsschlüssel verwendet wird, um den ersten Datenschlüssel und die Zugriffssteuerungsliste zu erhalten; das Authentifizieren des Benutzers, der die zweite Anforderung ausgelöst hat, und Berechtigen des Benutzers anhand der Zugriffssteuerungsliste und nach einer Feststellung, dass der Benutzer authentifiziert und berechtigt ist: das Entschlüsseln der verschlüsselten ersten Daten unter Verwendung des ersten Datenschlüssels, um entschlüsselte erste Daten zu erhalten; und das Bereitstellen einer Momentaufnahme der entschlüsselten ersten Daten für die zweite virtuelle Maschine.
  8. Speichermedium nach Anspruch 7, worin die Operationen des Weiteren Folgendes umfassen: das Feststellen, dass eine Rotationsbedingung aufgetreten ist, worin die Rotationsbedingung verschlüsselten zweiten Daten zugewiesen ist, die auf dem protokollstrukturierten Datenträger gespeichert sind, worin die verschlüsselten zweiten Daten unter Verwendung des ersten Datenschlüssels verschlüsselt wurden und worin die verschlüsselten zweiten Daten die verschlüsselten ersten Daten beinhalten; das Erhalten eines zweiten Datenschlüssels, der eine zweite Datenschlüsselkennung aufweist; das Entschlüsseln der verschlüsselten zweiten Daten unter Verwendung des ersten Datenschlüssels, um zweite Daten zu erhalten; das Verschlüsseln der zweiten Daten und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen; das Verschlüsseln der zweiten Daten unter Verwendung des zweiten Datenschlüssels, um neue verschlüsselte zweite Daten zu erhalten; das Speichern des neuen umhüllten BLOB und der neuen verschlüsselten zweiten Daten auf dem protokollstrukturierten Datenträger; das Bereitstellen der zweiten Datenschlüsselkennung für den einen oder die mehreren Benutzer auf der Zugriffssteuerungsliste; und das Verhindern einer anschließenden Verwendung des ersten Datenschlüssels.
  9. Speichermedium nach Anspruch 7, worin die Rotationsbedingung beinhaltet, dass eine durch den ersten Datenschlüssel geschützte Datenmenge eine Schwellenwertdatenmenge überschreitet, und worin die Schwellenwertdatenmenge eine kumulative Menge einer aktuellen Menge ist.
  10. Speichermedium nach Anspruch 7, worin die Rotationsbedingung beinhaltet, dass eine Zeitdauer, während der der erste Datenschlüssel in Gebrauch ist, eine Schwellenwertzeitdauer überschreitet.
  11. Speichermedium nach Anspruch 7, worin die Operationen des Weiteren Folgendes umfassen: den Prüfzugriff auf die verschlüsselten ersten Daten; und das Feststellen, dass durch einen Benutzer auf die verschlüsselten ersten Daten zugegriffen wurde, der nicht auf der Zugriffssteuerungsliste steht, und dass der erste Datenschlüssel verletzt wurde; das Erhalten eines zweiten Datenschlüssels, der durch eine zweite Datenschlüsselkennung gekennzeichnet ist; Entschlüsseln der verschlüsselten ersten Daten unter Verwendung des ersten Datenschlüssels, um entschlüsselte erste Daten zu erhalten; das Verschlüsseln der zweiten Daten und der Zugriffssteuerungsliste unter Verwendung des Umhüllungsschlüssels, um ein neues umhülltes BLOB zu erzeugen; das Verschlüsseln der entschlüsselten ersten Daten unter Verwendung des zweiten Datenschlüssels, um neue verschlüsselte erste Daten zu erzeugen; das Speichern des neuen umhüllten BLOB und der neuen verschlüsselten ersten Daten auf dem protokollstrukturierten Datenträger; das Bereitstellen der zweiten Datenschlüsselkennung für den einen oder die mehreren Benutzer auf der Zugriffssteuerungsliste; und das Verhindern einer anschließenden Verwendung des ersten Datenschlüssels.
  12. Speichermedium nach Anspruch 7, worin das Speichern der verschlüsselten ersten Daten ein Komprimieren der verschlüsselten ersten Daten beinhaltet.
DE202013012514.4U 2012-02-24 2013-02-22 Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen Expired - Lifetime DE202013012514U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201213405036 2012-02-24
US13/405,036 US8996887B2 (en) 2012-02-24 2012-02-24 Log structured volume encryption for virtual machines

Publications (1)

Publication Number Publication Date
DE202013012514U1 true DE202013012514U1 (de) 2017-02-23

Family

ID=47891961

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202013012514.4U Expired - Lifetime DE202013012514U1 (de) 2012-02-24 2013-02-22 Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen

Country Status (6)

Country Link
US (1) US8996887B2 (de)
EP (1) EP2823432B1 (de)
CN (1) CN104246789B (de)
AU (1) AU2013226326B2 (de)
DE (1) DE202013012514U1 (de)
WO (1) WO2013130367A1 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
WO2013145517A1 (ja) * 2012-03-28 2013-10-03 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US9703937B2 (en) * 2013-04-10 2017-07-11 Dell Products, L.P. Method to prevent operating system digital product key activation failures
US9071429B1 (en) * 2013-04-29 2015-06-30 Amazon Technologies, Inc. Revocable shredding of security credentials
US9961052B2 (en) * 2013-06-28 2018-05-01 Extreme Networks, Inc. Virtualized host ID key sharing
US9912729B2 (en) * 2013-07-22 2018-03-06 Verizon Patent And Licensing Inc. Encapsulation scheme for cloud computing environment
US10461937B1 (en) * 2013-12-18 2019-10-29 Amazon Technologies, Inc. Hypervisor supported secrets compartment
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9864874B1 (en) 2014-05-21 2018-01-09 Amazon Technologies, Inc. Management of encrypted data storage
US9648121B2 (en) * 2014-05-27 2017-05-09 Ravello Systems Ltd. Source-destination network address translation (SDNAT) proxy and method thereof
US9985970B2 (en) * 2014-05-28 2018-05-29 Conjur, Inc. Individualized audit log access control for virtual machines
US9680821B2 (en) 2014-05-28 2017-06-13 Conjur, Inc. Resource access control for virtual machines
US10397213B2 (en) 2014-05-28 2019-08-27 Conjur, Inc. Systems, methods, and software to provide access control in cloud computing environments
US11087006B2 (en) * 2014-06-30 2021-08-10 Nicira, Inc. Method and apparatus for encrypting messages based on encryption group association
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
DE102014018889A1 (de) * 2014-12-17 2016-06-23 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zum sicheren Speichern von Daten und zum Zugreifen auf diese Daten
US9954896B2 (en) * 2015-04-29 2018-04-24 Rapid7, Inc. Preconfigured honey net
US10505939B2 (en) * 2015-05-11 2019-12-10 Timothy Keeler System account access manager
CN106295328B (zh) 2015-05-20 2019-06-18 阿里巴巴集团控股有限公司 文件检测方法、装置及系统
US20160373405A1 (en) * 2015-06-16 2016-12-22 Amazon Technologies, Inc. Managing dynamic ip address assignments
US10372935B1 (en) * 2015-11-13 2019-08-06 Google Llc Selectively encrypting commit log entries
US11210406B2 (en) * 2016-07-15 2021-12-28 Seagate Technology Llc Encrypting system level data structures
US10798073B2 (en) 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
US11438317B2 (en) * 2017-01-31 2022-09-06 Hewlett Packard Enterprise Development Lp Device identification encryption
US10469254B2 (en) * 2017-03-29 2019-11-05 Intuit Inc. Method and system for hierarchical cryptographic key management
US10491576B1 (en) 2017-06-16 2019-11-26 Intuit Inc. System and method for security breach response using hierarchical cryptographic key management
CN107579823A (zh) * 2017-10-10 2018-01-12 郑州云海信息技术有限公司 一种虚拟机登录密码重置方法和装置
US10911491B2 (en) 2017-11-20 2021-02-02 International Business Machines Corporation Encryption with sealed keys
CN108241796A (zh) * 2017-12-26 2018-07-03 上海电气风电集团有限公司 一种用于用户操作的监控方法及装置
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US10380369B1 (en) 2018-06-14 2019-08-13 Rubrik, Inc. Multi-tenant authorization framework in a data management and storage cluster
US11057359B2 (en) * 2018-08-13 2021-07-06 Salesforce.Com, Inc. Key encryption key rotation
US11573973B1 (en) * 2018-12-19 2023-02-07 Vivek Vishnoi Methods and systems for the execution of analysis and/or services against multiple data sources while maintaining isolation of original data source
CN110336665B (zh) * 2019-07-11 2022-06-14 成都卫士通信息产业股份有限公司 一种大数据消息加密方法、装置
US11381393B2 (en) * 2019-09-24 2022-07-05 Akamai Technologies Inc. Key rotation for sensitive data tokenization
US11483136B2 (en) * 2019-12-10 2022-10-25 Google Llc Wrapped keys with access control predicates
US11196548B1 (en) 2020-07-02 2021-12-07 International Business Machines Corporation Hypervisor protected key
US11734197B2 (en) * 2020-07-31 2023-08-22 EMC IP Holding Company LLC Methods and systems for resilient encryption of data in memory
US20220085983A1 (en) * 2020-09-14 2022-03-17 Hewlett Packard Enterprise Development Lp Encryption keys from storage systems
US20210014047A1 (en) * 2020-09-25 2021-01-14 Intel Corporation Methods, systems, apparatus, and articles of manufacture to manage access to decentralized data lakes
EP4145762B1 (de) * 2021-09-06 2023-10-25 Axis AB Verfahren und system zur sicheren verarbeitung von daten mittels einer verarbeitungsanwendung
US11522703B1 (en) * 2022-01-19 2022-12-06 Vignet Incorporated Decentralized applications and data sharing platform for clinical research
US11664099B1 (en) 2022-01-19 2023-05-30 Vignet Incorporated Decentralized data collection for clinical trials
WO2024031025A1 (en) * 2022-08-05 2024-02-08 Snap Inc. Coordinating data access among multiple services

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463768A (en) 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
US5655081A (en) 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5778444A (en) 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6178482B1 (en) 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US7466703B1 (en) 1998-05-01 2008-12-16 Alcatel-Lucent Usa Inc. Scalable high speed router apparatus
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6505248B1 (en) 1999-03-24 2003-01-07 Gte Data Services Incorporated Method and system for monitoring and dynamically reporting a status of a remote server
US6628654B1 (en) 1999-07-01 2003-09-30 Cisco Technology, Inc. Dispatching packets from a forwarding agent using tag switching
US6587866B1 (en) 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
JP2001243159A (ja) 2000-02-29 2001-09-07 Canon Inc データ処理装置及びデータ処理方法、記憶媒体
US6598179B1 (en) 2000-03-31 2003-07-22 International Business Machines Corporation Table-based error log analysis
US7269185B2 (en) 2000-05-22 2007-09-11 Nortel Networks Limited Management and control of multi-layer networks
US7043455B1 (en) 2000-07-28 2006-05-09 International Business Machines Corporation Method and apparatus for securing session information of users in a web application server environment
US7111005B1 (en) 2000-10-06 2006-09-19 Oracle International Corporation Method and apparatus for automatic database encryption
JP2002207620A (ja) 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
JP4075318B2 (ja) 2001-04-18 2008-04-16 株式会社日立製作所 プロトコル変換方法,及びアドレス変換サーバ
US6643613B2 (en) 2001-07-03 2003-11-04 Altaworks Corporation System and method for monitoring performance metrics
US7627860B2 (en) 2001-08-14 2009-12-01 National Instruments Corporation Graphically deployment of a program with automatic conversion of program type
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6898697B1 (en) 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7500262B1 (en) 2002-04-29 2009-03-03 Aol Llc Implementing single sign-on across a heterogeneous collection of client/server and web-based applications
US8065717B2 (en) 2002-11-27 2011-11-22 Activcard Automated security token administrative services
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
EP1593236A2 (de) 2003-01-31 2005-11-09 Koninklijke Philips Electronics N.V. Verfahren und brücke vorrichtung zur priorisierung der übertragung von datenströmen
US7330999B2 (en) 2003-04-23 2008-02-12 Dot Hill Systems Corporation Network storage appliance with integrated redundant servers and storage controllers
AU2003239059A1 (en) 2003-06-18 2005-01-04 Telefonaktiebolaget Lm Ericsson (Publ) An arrangement and a method relating to ip network access
US20050047575A1 (en) 2003-08-29 2005-03-03 Stephen Parker Secure valet telephone system
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
EP1697818B1 (de) 2003-12-23 2018-05-30 Wells Fargo Bank, N.A. Authentifikationssystem für vernetzte computeranwendungen
US7529836B1 (en) 2004-01-08 2009-05-05 Network Appliance, Inc. Technique for throttling data access requests
US6996502B2 (en) 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US20050166011A1 (en) 2004-01-23 2005-07-28 Burnett Robert J. System for consolidating disk storage space of grid computers into a single virtual disk drive
TW200532466A (en) 2004-02-03 2005-10-01 Sony Corp Information processing device, information processing method, information processing system and information processing program of accessible media
US7958225B2 (en) 2004-02-12 2011-06-07 Avaya Inc. Method and apparatus for monitoring the transportation of medical images on a communication network
US20070271604A1 (en) 2004-03-17 2007-11-22 Fidelitygenetic Ltd. Secure Transaction of Dna Data
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
JP4397744B2 (ja) 2004-06-25 2010-01-13 パナソニック株式会社 半導体集積回路の高位合成方法
US7415470B2 (en) 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US20060048077A1 (en) 2004-08-31 2006-03-02 International Business Machines Corporation Method, system, program product and user interface for displaying a topology
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7760664B2 (en) 2004-09-30 2010-07-20 Sanyogita Gupta Determining and provisioning paths in a network
GB2419697A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures each having an infrastructure controller
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100578143B1 (ko) 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US7738402B2 (en) 2004-12-23 2010-06-15 Carmel-Haifa University Economic Corp. Ltd. Ad hoc communication system and method for routing speech packets therein
US20060161753A1 (en) 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US7827403B2 (en) 2005-04-13 2010-11-02 Oracle International Corporation Method and apparatus for encrypting and decrypting data in a database table
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
JP2007104310A (ja) 2005-10-04 2007-04-19 Hitachi Ltd ネットワーク装置、ネットワークシステム及び鍵更新方法
GB0523115D0 (en) 2005-11-12 2005-12-21 Ibm A resource optimisation component
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
JP4916729B2 (ja) 2006-01-30 2012-04-18 ブラザー工業株式会社 仮想デバイス名変更プログラム
EP1818844B1 (de) 2006-02-10 2013-03-13 Secunet Security Networks Aktiengesellschaft Verfahren zur Benutzung von Sicherheitstoken
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20070288921A1 (en) 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
US20070294360A1 (en) 2006-06-15 2007-12-20 International Business Machines Corporation Method and apparatus for localized adaptation of client devices based on correlation or learning at remote server
US8019790B2 (en) * 2006-07-11 2011-09-13 Dell Products, Lp System and method of dynamically changing file representations
US20080208681A1 (en) * 2006-09-28 2008-08-28 Ayman Hammad Payment using a mobile device
US20080086515A1 (en) 2006-10-06 2008-04-10 International Business Machines Corporation Method and System for a Soft Error Collection of Trace Files
US8045481B2 (en) 2006-10-20 2011-10-25 Ciena Corporation System and method for supporting virtualized links at an exterior network-to-network interface
US7653833B1 (en) 2006-10-31 2010-01-26 Hewlett-Packard Development Company, L.P. Terminating a non-clustered workload in response to a failure of a system with a clustered workload
TW200822633A (en) 2006-11-03 2008-05-16 Hon Hai Prec Ind Co Ltd Network device and packet forwarding method thereof
EP1962192A1 (de) 2007-02-21 2008-08-27 Deutsche Telekom AG Verfahren und System zur transparenten Migration des Speichers einer virtuellen Maschine
US20080205415A1 (en) 2007-02-28 2008-08-28 Morales Henry N Jerez Access, Connectivity and Interoperability for Devices and Services
US20080270704A1 (en) 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8452015B2 (en) 2007-05-10 2013-05-28 Computer Associates Think, Inc. Propagating keys from servers to clients
US7889651B2 (en) 2007-06-06 2011-02-15 International Business Machines Corporation Distributed joint admission control and dynamic resource allocation in stream processing networks
US7779298B2 (en) 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
US8661181B2 (en) 2007-06-28 2014-02-25 Memory Technologies Llc Memory protection unit in a virtual processing environment
US7836285B2 (en) 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US20090097657A1 (en) 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
JP4480756B2 (ja) 2007-12-05 2010-06-16 富士通株式会社 ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US8156491B2 (en) 2008-02-29 2012-04-10 Red Hat, Inc. Fault tolerant virtual machine
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US8990911B2 (en) 2008-03-30 2015-03-24 Emc Corporation System and method for single sign-on to resources across a network
US20100046363A1 (en) 2008-05-02 2010-02-25 Rochester Institute Of Technology Methods for managing an election of a cluster head in ad hoc mobile communication network and systems thereof
US8559908B2 (en) 2008-06-16 2013-10-15 Qualcomm Incorporated Jamming graph and its application in network resource assignment
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
US9189268B2 (en) 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
US7805516B2 (en) 2008-10-14 2010-09-28 Dell Products L.P. Enabling throttling of resources on a virtualization enabled information handling system
US8504844B2 (en) * 2008-12-19 2013-08-06 Teradata Us, Inc. System, method, and computer-readable medium for cryptographic key rotation in a database system
JP5802137B2 (ja) 2009-02-05 2015-10-28 ダブリューダブリューパス コーポレイションWwpass Corporation 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法
US8364970B2 (en) 2009-02-18 2013-01-29 Nokia Corporation Method and apparatus for providing enhanced service authorization
JP5081847B2 (ja) 2009-02-20 2012-11-28 株式会社日立製作所 マルチプロセッサによるパケット処理装置およびパケット処理方法
US8364984B2 (en) * 2009-03-13 2013-01-29 Microsoft Corporation Portable secure data files
US8578076B2 (en) 2009-05-01 2013-11-05 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8284945B2 (en) * 2009-06-02 2012-10-09 Hewlett-Packard Development Company, L.P. Automatic change of symmetrical encryption key
US8189790B2 (en) * 2009-08-14 2012-05-29 Brocade Communications Systems, Inc. Developing initial and subsequent keyID information from a unique mediaID value
US8463885B2 (en) 2009-08-31 2013-06-11 Red Hat, Inc. Systems and methods for generating management agent installations
TWI426528B (zh) 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統
US8693485B2 (en) 2009-10-14 2014-04-08 Dell Products, Lp Virtualization aware network switch
US8537860B2 (en) 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
AU2010327295B2 (en) 2009-12-01 2015-02-05 Securekey Technologies, Inc. System and methods for identity attribute validation
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
WO2011095516A1 (en) 2010-02-05 2011-08-11 St-Ericsson Sa Method and system for mass storage on flash memory
WO2011116248A1 (en) 2010-03-17 2011-09-22 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8396954B2 (en) 2010-06-24 2013-03-12 Aryaka Networks, Inc. Routing and service performance management in an application acceleration environment
US8296459B1 (en) 2010-06-30 2012-10-23 Amazon Technologies, Inc. Custom routing decisions
US8375070B2 (en) 2010-09-02 2013-02-12 International Business Machines Corporation Collective operations in a file system based execution model
US8363656B2 (en) 2010-09-15 2013-01-29 International Business Machines Corporation Multiple virtual machines sharing a single IP address
US8484353B1 (en) 2010-09-28 2013-07-09 Amazon Technologies, Inc. Resource placement templates for virtual networks
US20120185688A1 (en) 2011-01-13 2012-07-19 Google Inc. Processor mode locking
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
CA2766731C (en) * 2011-02-03 2019-12-03 Afore Solutions Inc. Method and system for cloud based storage
US8863257B2 (en) 2011-03-10 2014-10-14 Red Hat, Inc. Securely connecting virtual machines in a public cloud to corporate resource
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8676980B2 (en) 2011-03-22 2014-03-18 Cisco Technology, Inc. Distributed load balancer in a virtual machine environment
WO2012158654A2 (en) * 2011-05-14 2012-11-22 Bitcasa, Inc. Cloud file system with server-side deduplication of user-agnostic encrypted files
US8661255B2 (en) * 2011-12-06 2014-02-25 Sony Corporation Digital rights management of streaming contents and services

Also Published As

Publication number Publication date
US20130227303A1 (en) 2013-08-29
EP2823432B1 (de) 2018-06-27
CN104246789B (zh) 2017-09-26
AU2013226326A1 (en) 2014-09-11
WO2013130367A1 (en) 2013-09-06
CN104246789A (zh) 2014-12-24
EP2823432A1 (de) 2015-01-14
AU2013226326B2 (en) 2017-08-31
US8996887B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
DE202013012514U1 (de) Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE102016124383B4 (de) Computersystem-Architektur sowie Computernetz-Infrastruktur, umfassend eine Mehrzahl von solchen Computersystem-Architekturen
DE102018101307A1 (de) Techniken für SGX-Enklaven-Fernauthentifizierung
DE102015118886A1 (de) Lizenzieren in der Cloud
CH709936B1 (de) System und Verfahren für das kryptographische Suite-Management.
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112013000649B4 (de) Netzwerkknoten mit einer an das Netzwerk angeschlossenen zustandslosen Sicherheitsauslagerungseinheit
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE112018004332T5 (de) Hinauszögern von entropieausschöpfung in schlüsselverwaltungssystemen mit hardware-sicherheitsmodulen
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112018002947T5 (de) Computersystem-software/firmware und prozessoreinheit mit einem sicherheitsmodul
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE112022003368T5 (de) Verschlüsselungsüberwachungsregister und -system
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
WO2003025758A2 (de) Vorrichtung und verfahren zur etablierung einer sicherheitspolitik in einem verteilten system
DE102018217431A1 (de) Sicherer Schlüsseltausch auf einem Gerät, insbesondere einem eingebetteten Gerät
EP3373545A1 (de) Sicherheitseinheit insbesondere ein für iot-gerät und verfahren zur ausführung einer oder mehrerer applikationen zum gesicherten datenaustausch mit einem oder mehrere web-dienste bereitstellenden servern
DE112019001957T5 (de) Sichere operationen mit verschlüsselten daten
DE112022003983T5 (de) Berechtigte, sichere datenverschiebung
DE112021000340T5 (de) Sichere private schlüsselverteilung zwischen endpunktinstanzen
DE102014213454A1 (de) Verfahren und System zur Erkennung einer Manipulation von Datensätzen

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right