DE102012219155B4 - Verschlüsseln von Datenobjekten zur Datensicherung - Google Patents

Verschlüsseln von Datenobjekten zur Datensicherung Download PDF

Info

Publication number
DE102012219155B4
DE102012219155B4 DE102012219155.0A DE102012219155A DE102012219155B4 DE 102012219155 B4 DE102012219155 B4 DE 102012219155B4 DE 102012219155 A DE102012219155 A DE 102012219155A DE 102012219155 B4 DE102012219155 B4 DE 102012219155B4
Authority
DE
Germany
Prior art keywords
segments
client
server
identifier
encrypted
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.)
Active
Application number
DE102012219155.0A
Other languages
English (en)
Other versions
DE102012219155A1 (de
Inventor
Mark L. Yakushev
James Patrick Smith
Avishai Haim Hochberg
David Maxwell Cannon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012219155A1 publication Critical patent/DE102012219155A1/de
Application granted granted Critical
Publication of DE102012219155B4 publication Critical patent/DE102012219155B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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

Landscapes

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

Abstract

Verfahren, das aufweist: Vorhalten eines privaten Schlüssels des Client, wobei vorgesehen ist, dass er lediglich durch einen Client vorgehalten wird; Erzeugen eines Datenobjekts von Segmenten zur Speicherung im Server, wobei der Server die Segmente in einer Speichereinrichtung speichert; Verschlüsseln eines ersten Abschnittes der Segmente in dem Datenobjekt mit dem privaten Schlüssel des Client; Senden des ersten Abschnittes der Segmente in dem Datenobjekt, die mit dem privaten Schlüssel des Client verschlüsselt sind, zur Speicherung zu dem Server; Verschlüsseln eines zweiten Abschnittes der Segmente in dem Datenobjekt mit einem gemeinsam genutzten Schlüssel, um einen verschlüsselten zweiten Abschnitt der Segmente zu erzeugen, Ermitteln einer Kennung des zweiten Abschnittes der Segmente, Nutzen der ermittelten Kennung, um zu festzustellen, ob der zweite Abschnitt der Segmente in dem Server gespeichert ist, Senden des zweiten verschlüsselten Abschnittes der Segmente an den Server in Reaktion auf die Feststellung, dass der zweite Abschnitt der Segmente nicht in dem Server gespeichert ist, und Senden einer Kennung für jedes Segment in dem zweiten Abschnitt der Segmente des Datenobjektes in Reaktion auf die Feststellung, dass der zweite Abschnitt der Segmente bereits in dem Server gespeichert ist.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Computerprogrammprodukt, ein System und ein Verfahren zum Verschlüsseln von Datenobjekten zur Datensicherung auf einem Server.
  • 2. Beschreibung der verwandten Technik
  • Daten-Deduplizierung ist eine Datenkompressionstechnik zum Eliminieren redundanter Daten zur Verbesserung der Speicherausnutzung. Eine Deduplizierung vermindert die erforderliche Speicherkapazität, da lediglich eine Kopie einer eindeutigen Dateneinheit, die auch als ein Segment (Chunk) bekannt ist, gespeichert wird. Plattenbasierte Speichersysteme wie etwa ein Speicherverwaltungsserver oder eine Virtual Tape Library (VTL) können eine Deduplizierungstechnologie umsetzen, um redundante Datensegmente zu erkennen und eine Duplizierung zu vermindern, indem eine redundante Speicherung dieser Segmente vermieden wird.
  • Ein Deduplizierungssystem wird betrieben, indem eine Datei in eine Reihe von Segmenten unterteilt wird. Das Deduplizierungssystem ermittelt, ob eines der Segmente bereits gespeichert wurde, und fährt damit fort, lediglich die nicht redundanten Segmente zu speichern. Eine Redundanz kann bei Segmenten in der Datei, die gerade gespeichert werden, oder bei Segmenten, die bereits im System gespeichert sind, geprüft werden.
  • Ein Objekt kann in Segmente unterteilt werden, indem eine Fingerabdruck-Technik wie etwa der Rabin-Karp-Fingerabdruck verwendet wird. Redundante Segmente werden unter Verwendung einer Hash-Funktion wie etwa MD5 (Message-Digest Algorithmus 5) oder SHA-1 (Secure Hash-Algorithmus 1) an jedem Segment erkannt, um einen Hash-Wert für die Segmente zu erzeugen und anschließend diese Hash-Werte mit Hash-Werten von Segmenten, die bereits im System gespeichert wurden, zu vergleichen. Üblicherweise werden die Hash-Werte für gespeicherte Segmente in einem Index (Deduplizierungsindex) vorgehalten. Ein Segment kann durch einen Hash-Wert oder eine Kurzfassung (Digest) und eine Segmentgröße eindeutig identifiziert werden. Der Hash-Wert eines betrachteten Segments wird in dem Deduplizierungsindex nachgeschlagen. Wenn ein Eintrag für diesen Hash-Wert und diese Größe gefunden wird, ist ein redundantes Segment identifiziert und dieses Segment in dem Datenobjekt oder Objekt kann durch einen Zeiger auf das übereinstimmende Segment, das in der Speichereinrichtung vorgehalten wird, ersetzt werden.
  • In einem Client-Server-Softwaresystem kann die Deduplizierung an der Datenquelle (Client), dem Ziel (Server) oder an einem Deduplizierungsgerät, das mit dem Server verbunden ist, ausgeführt werden. Die Fähigkeit zum Deduplizieren von Daten an der Quelle oder am Ziel bietet eine Flexibilität in Bezug auf Ressourcennutzung und Strategieverwaltung. Die Quellen- und Zielsysteme weisen üblicherweise das folgende Datensicherungsprotokoll auf:
    Quelle identifiziert Datensegment D in Datei F.
  • Quelle erzeugt einen Hash-Wert h(D) für das Datensegment D.
  • Quelle fragt das Ziel ab, ob das Ziel bereits ein Datensegment mit dem Hash-Wert h(D) und der Größe I(D) aufweist.
  • Wenn das Ziel mit "ja" antwortet, teilt die Quelle dem Ziel einfach mit, dass dieses Segment mit dem Hash-Wert h(D) und der Größe I(D) ein Teil der Datei F ist.
  • Wenn das Ziel mit "nein" antwortet, sendet die Quelle das Datensegment D mit seinem Hash-Wert h(D) und der Größe I(D) an das Ziel. Das Ziel speichert D in einem Speicherpool und gibt h(D) und I(D) in den Deduplizierungsindex (De-dup-Index) ein.
  • Wenn weitere Segmente verarbeitet werden sollen, gehe zum Schritt 1.
  • In der Technik besteht ein Bedarf an verbesserten Techniken zum Schützen von Daten, die bei einer Deduplizierung beteiligt sind. Folglich besteht eine der Erfindung zugrunde liegende Aufgabe darin, eine verbesserte Deduplizierungstechnik für eine Speicherung von Daten auf einem Server sowie eine damit in Zusammenhang stehende sichere Datenübertragung vorzustellen.
  • Eine Reihe von Dokumenten beschreibt Techniken aus dem Umfeld dieses technischen Gebietes:
    Das Dokument DE 199 25 910 B4 beschreibt ein Verfahren zum Be- oder Verarbeiten von Daten, die in wenigstens einer Datenbank in zumindest teilweise verschlüsselter Form gespeichert werden. Dieses Dokument beschreibt aber nicht, dass die Daten eines ersten Abschnittes von Segmenten in dem Datenobjekt mit einem privaten Schlüssel eines Client und die Daten eines zweiten Abschnittes von Segmenten in Datenobjekt mit einem anderen – einem gemeinsam genutzten Schlüssel – verschlüsselt werden.
  • Das Dokument US 2005/0131905 A1 beschreibt ein Verfahren, bei dem ein oder mehrere Client-Programme, die an ein Netzwerk angeschlossen sind, die gleichen Daten an einer gleichen Stelle in einem Daten-Repository speichern. Dabei werden zur Identifikation von Datensegmenten Fingerprints mit dem Ziel einer Deduplizierung von Datensegmenten auf einem Server eingesetzt.
  • Das Dokument WO 2011/084849 A2 beschreibt ein System und ein Verfahren für ein effektives Speichern von Daten sowohl on-site als auch off-site in einem Cloud-Speichersystem.
  • Das Dokument DE 100 41 514 C2 beschreibt ein Verfahren zur Wahrung der Vertraulichkeit von Anwendungsdaten bei deren Speicherung und Bearbeitung auf einem zentralen Rechner eines Betreibers, bei dem Datenelemente von Datensätzen der Anwenderdaten teilweise verschlüsselt und teilweise unverschlüsselt gespeichert sind.
  • Das Dokument US 8,041,641 B1 beschreibt ein Verfahren zur Bereitstellung von Backup-Speicher-Services zum Verschlüsseln von Daten. Dazu gehört auch eine Feststellung, ob die verschlüsselten Anteile bereits in dem Back-up-Speicher vorhanden sind.
  • Das Dokument US 2009/0319772 A2 beschreibt einen Netzwerk-Speicherserver, welcher mehrere Schreibanfragen von einem Satz von Clients empfängt, und welcher mehrere Datenblöcke, die durch die gleiche Anfrage geschrieben werden, zwischenspeichert. Dabei werden die Daten der Datenblöcke komprimiert und ausgewählte Datenblöcke werden verschlüsselt.
  • Die oben genannte Aufgabe wird durch die Gegenstände der unahängigen Ansprüche gelöst, insbesondere durch ein System und ein Verfahren zum Verschlüsseln von Datenobjekten zur Sicherung auf einem Server. Weitere Ausführungsbeispiele sind durch den jeweils abhängigen Ansprüche beschrieben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine Datenverarbeitungsumgebung, in der Ausführungsformen verkörpert werden.
  • 2 veranschaulicht eine Ausführungsform von Client-Objektinformationen.
  • 3 veranschaulicht eine Ausführungsform von Server-Objektinformationen.
  • 4 veranschaulicht eine Ausführungsform eines Deduplizierungsindex-Eintrags.
  • Die 5a und 5b veranschaulichen eine Ausführungsform von Operationen bzw. Befehle zur Sicherung eines Datenobjekts.
  • 6 veranschaulicht eine Ausführungsform von Befehle zum Wiederherstellen eines Datenobjekts.
  • 7 veranschaulicht ein Beispiel von Datenobjekten und ihren Segmenten.
  • 8 veranschaulicht ein Beispiel von verschlüsselten Segmenten in den Datenobjekten von 7.
  • 9 veranschaulicht eine Umsetzung eines Knotens in der Ausführungsform der Netzwerk-Datenverarbeitung.
  • 10 veranschaulicht eine Ausführungsform einer Cloud-Datenverarbeitungsumgebung.
  • 11 veranschaulicht eine Ausführungsform von Abstraktionsmodell-Ebenen einer Cloud-Datenverarbeitungsumgebung.
  • DETAILLIERTE BESCHREIBUNG
  • Eine Verschlüsselung kann verwendet werden, um potenzielle Sicherheitsrisiken in einem Sicherungssystem zu vermeiden. Zu diesen Risiken gehört der Schutz von Daten bei der Datenübertragung, indem Daten während der Übertragung zwischen Client und Server verschlüsselt werden. Der Schutz von ruhenden Daten beinhaltet üblicherweise eine Verschlüsselung von Daten, die auf einem Sicherungsserver gespeichert werden, insbesondere dann, wenn die Medien entnehmbar sind und während des Transportes verfälscht werden könnten. Der Schutz von Daten vor einem Missbrauch des Sicherungssystems betrifft den Schutz vor Angreifern, die über den Sicherheitsserver selbst auf die Daten zugreifen, wie z.B. durch einen schurkischen Administrator oder durch einen Angreifer, der das Passwort eines Benutzers herausfindet und dann auf Daten zugreift, die auf dem Sicherungssystem gespeichert sind.
  • Um sich vor einem oder mehreren der obigen Risiken in einem Sicherungssystem zu schützen, können unterschiedliche Ansätze zur Verschlüsselung und Schlüsselverwaltung verwendet werden. Bei einer Umsetzung einer lokalen Schlüsselverwaltung werden Daten durch den Client während der Sicherung unter Verwendung eines Schlüssels, der entweder in dem Client-System gespeichert ist oder durch den Benutzer verwaltet wird, verschlüsselt. Die Daten bleiben während der Datenübertragung und im Ruhezustand verschlüsselt und sind vor einem Missbrauch des Sicherungssystems sicher. Bei der System-Schlüsselverwaltung werden Verschlüsselungsschlüssel durch den Sicherungsserver oder ein externes Schlüsselverwaltungssystem verwaltet, um die Daten im Ruhezustand zu schützen, wobei Daten in Abhängigkeit von der Umsetzung auch während der Datenübertragung geschützt werden können.
  • Verschlüsselte Daten können tatsächlich nicht dedupliziert werden, da eine Verschlüsselung das redundante Wesen der Daten beseitigt. Wenn z.B. zwei identische Dateien A und B unter Verwendung von zwei unterschiedlichen Schlüsseln verschlüsselt werden, können die resultierenden verschlüsselten Dateien A' und B' nicht gegeneinander dedupliziert werden.
  • Beschriebene Ausführungsformen stellen Techniken für einen Client bereit, um ein Datenobjekt in einem Server zu sichern, indem ein erster Abschnitt von Segmenten in dem Datenobjekt mit einem privaten Schlüssel des Client verschlüsselt wird. Ein zweiter Abschnitt der Segmente in dem Datenobjekt, der nicht mit dem privaten Schlüssel des Client verschlüsselt ist, kann mit einem gemeinsam genutzten Schlüssel verschlüsselt werden. Die verschlüsselten Segmente in dem Datenobjekt können einer Deduplizierung unterzogen werden, so dass der Client lediglich verschlüsselte Segmente zu dem Server sendet, die nicht bereits in dem Server gespeichert sind. In bestimmten Ausführungsformen speichert der Server verschlüsselte Segmente zur Deduplizierung, wobei bestimmte Segmente mit dem gemeinsam genutzten Schlüssel verschlüsselt sind und andere Segmente mit dem privaten Schlüssel von Clients, die Datenobjekte in dem Server sichern, verschlüsselt sind. Da alle Clients den gemeinsam genutzten Schlüssel zum Verschlüsseln der Segmente in ihren Datenobjekten verwenden können, werden die in dem Server gespeicherten Segmente, die mit dem gemeinsam genutzten Schlüssel verschlüsselt sind, mit größerer Wahrscheinlichkeit bei einer Deduplizierung verwendet als Segmente, die mit den privaten Schlüsseln des Client verschlüsselt sind. Die Verwendung von privaten Schlüsseln des Client zum Verschlüsseln von Segmenten in Datenobjekten verbessert die Sicherheit von Datenobjekten, indem verhindert wird, dass irgendeine andere Instanz als der Client, der das Datenobjekt gesichert hat und den ersten Abschnitt der Segmente mit seinem privaten Schlüssel verschlüsselt hat, auf das Datenobjekt zugreift, da vorgesehen ist, dass private Schlüssel lediglich durch den Client, für den der Schlüssel erzeugt wurde, vorgehalten werden.
  • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung mit einem Client 2 und einem Server 4, um Daten von dem Client 2 in der Speichereinrichtung 6 zu sichern. Der Client hält Datenobjekte 8 wie etwa Dateien oder Objekte vor und hält Client-Objektinformationen 10 vor, die Metadaten für jedes Datenobjekt aufweisen, einschließlich einer geordneten Liste von Datenblöcken, die jedem Datenobjekt zugewiesen sind. Der Client 2 enthält ein Betriebssystem 12, um Datenobjekte 8 in dem Client 2 zu erzeugen und vorzuhalten, wobei die Datenobjekte 8 in einer lokalen Speichereinrichtung im Client 2 gespeichert werden können. Um Datenobjekte 8 in dem Client 2 zu sichern, überträgt ein Client-Sicherungsmanager 14 Segmente in den Datenobjekten 8 zu einem Server-Sicherungsmanager 16 in dem Server 4. In bestimmten Ausführungsformen sendet der Client 2 als Teil der Deduplizierung lediglich Segmente, die nicht bereits in dem Server 4 gespeichert sind.
  • Der Server-Sicherungsmanager 16 hält Server-Objektinformationen 18 über Segmente vor, die Datenobjekten zugewiesen sind, die von einem oder mehreren Clients 2 bereitgestellt werden. Des Weiteren kann der Server-Sicherungsmanager 16 einen Deduplizierungsindex 20 vorhalten, um lediglich eine Kopie eines Segments in der Speichereinrichtung 6 zu speichern, obwohl ein Segment in mehreren Datenobjekten enthalten sein kann. Der Server 4 kann ferner Segment-Speicherinformationen 22 vorhalten, die in der Speichereinrichtung 6 einen Speicherplatz jedes Segments angeben, das in den Datenobjekten enthalten ist, die in der Speichereinrichtung 6 gesichert werden.
  • Die Komponenten von Client 2 und Server 4 kommunizieren über eine Verbindung 24. In einer Ausführungsform können der Client 2 und der Server 4 separate Computersysteme aufweisen und die Verbindung 24 kann ein Netzwerk aufweisen wie etwa ein Lokalbereichs-Netzwerk (LAN), ein Speicherbereichs-Netzwerk (SAN), ein Weitbereichs-Netzwerk (WAN) usw. In weiteren Ausführungsformen können die Komponenten von Client 2 und Server 4 auf einer einzelnen Computersystem-Plattform umgesetzt sein und die Verbindung 24 kann Datenübertragungen über einen Bus oder einen Speicher aufweisen.
  • In bestimmten Ausführungsformen hält der Client 2 einen privaten Schlüssel (PC) 28 des Client vor, der lediglich dem Client 2 bekannt sein soll und der verwendet wird, um einen ersten Abschnitt von Segmenten wie etwa das erste Segment des Datenobjektes 8, das zur Sicherung an den Server 4 gesendet wird, zu verschlüsseln. Der Server 4 kann einen gemeinsam genutzten Schlüssel (SS) 30 mit dem Client 2 teilen, um Segmente der Datenobjekte, die zwischen dem Client 2 und dem Server 4 als Teil von Sicherungs- und Wiederherstellungsbefehlen gesendet werden, zu verschlüsseln. Der Server kann den gemeinsam genutzten Schlüssel 30 mit mehreren Clients teilen, um Segmente zu verschlüsseln. Der Server 4 kann verschlüsselte Segmente, die mit dem gemeinsam genutzten Schlüssel (SS) verschlüsselt sind, in der Speichereinrichtung 6 speichern, um die Sicherheit von Segmenten, die in dem Server 4 gespeichert sind, zu verbessern. In einer alternativen Ausführungsform kann der Server 4 die Segmente von Datenobjekten vom Client 2 unverschlüsselt speichern und mit dem gemeinsam genutzten Schlüssel (SS) verschlüsseln, wenn sie zum Client 2 gesendet werden.
  • Die Schlüssel 28, 30 von Client und Server können kryptografische Schlüssel, die in der Technik bekannt sind, aufweisen, wie etwa symmetrische Schlüssel, die durch einen Algorithmus für symmetrische Schlüssel erzeugt werden. Der gemeinsam genutzte Schlüssel 30, der von Clients 2 und Server 4 verwendet wird, kann denselben symmetrischen Schlüssel aufweisen. Die Schlüssel 28 und 30 können alternativ gemäß einer Kryptografie mit öffentlichem Schlüssel unter Verwendung einer Technologie mit asymmetrischem Schlüssel erzeugt werden. Der Server 4 kann z.B. einen privaten Schlüssel vorhalten und den öffentlichen Schlüssel mit Clients 2 teilen, den die Clients 2 verwenden können, um Segmente zu verschlüsseln, die zu dem Server 4 gesendet werden, die mit dem privaten Schlüssel des Servers entschlüsselt werden können. Der Server kann Segmente zu den Clients 2 senden, die mit dem privaten Schlüssel des Servers verschlüsselt sind und die lediglich durch den öffentlichen Schlüssel des Servers, der durch die Clients 2 vorgehalten wird, entschlüsselt werden können. Weitere Schlüsselverschlüsselungstechniken, die in der Technik bekannt sind, können für den privaten Schlüssel 28 des Client und den gemeinsam genutzten Schlüssel 30 verwendet werden. In einer noch weiteren Ausführungsform ist es möglich, dass der gemeinsam genutzte Schlüssel 30 dem Server gar nicht bekannt ist.
  • Die Speichereinrichtung 6 kann Speichermedien aufweisen, die in einer oder mehreren in der Technik bekannten Speichereinheiten umgesetzt sind, wie etwa zwischengeschaltete Festplattenlaufwerke (die z.B. als ein DASD, RAID, JBOD usw. konfiguriert sind), Festkörperspeichereinheiten (z.B. EEPROM (elektrisch löschbarer programmierbarer Festwertspeicher), Flash-Speicher, Flash-Platte, Speicherklassen-Speicher (SCM)), elektronische Speicher, Magnetbandmedien, Bandkassetten usw.
  • Die Sicherungsmanager 14, 16 von Client und Server können in einem Speicher Softwareprogramme, die durch einen Prozessor ausgeführt werden, aufweisen. In einer alternativen Ausführungsform kann ein bestimmter Teil oder die vollständigen Programme 14 und 16 in einer Hardware-Komponente umgesetzt sein wie etwa eine zweckbestimmte integrierte Schaltung z.B. anwendungsspezifischer integrierter Schaltkreis (ASIC), Erweiterungskarte usw.
  • Obwohl die Sicherungsmanager 14, 16 von Client und Server als separate Komponenten gezeigt sind, können in alternativen Umsetzungen die Funktionen, die durch die Sicherungsmanager 14, 16 von Client und Server ausgeführt werden, in einer einzelnen Programmkomponente in einem einzelnen Computersystem oder in mehr als zwei Programmkomponenten in mehr als zwei Computereinheiten umgesetzt sein.
  • 2 veranschaulicht eine Ausführungsform einer Instanz von Client-Objektinformationen 50 für ein Datenobjekt, das in den Client-Objektinformationen 50 vorgehalten wird. Die Client-Objektinformationen 50 für ein Datenobjekt enthalten eine Datenobjektbezeichnung 52, die durch den Client 2 dem Datenobjekt zugewiesen ist, wie etwa eine eindeutige Kennungsbezeichnung, und eine oder mehrere Segmentkennungen (Ci) 54a, 54b, ... 54n von Segmenten, die dem Client-Datenobjekt 52 zugewiesen sind. Die eigentlichen Segmente können eine variable Länge haben, d.h. sie können die gleiche oder unterschiedliche Längen aufweisen oder eine feststehende Länge haben. Die Objektinformationen 50 können eine geordnete Liste der Segmentkennungen (C1 ... Cn) vorhalten, die die Reihenfolge 1 ... n angibt, in der die Segmente in dem Datenobjekt erscheinen.
  • In einer Ausführungsform wird die Segmentkennung (Ci) berechnet, indem das Segment verarbeitet wird, um einen eindeutigen Wert für das Segment zu erzeugen. Auf diese Weise stellen die Objektinformationen 50 Metadaten über die Segmente, die in dem Objekt enthalten sind, wie etwa Kurzfassung und Länge, jedoch nicht die eigentlichen Daten bereit. Die Kurzfassung (d) kann berechnet werden, indem das Segment verarbeitet wird, um einen eindeutigen Wert für das Segment zu erzeugen. In einer Ausführungsform kann die Kurzfassung eine kryptografische Kurzfassung aufweisen wie etwa MD5 (Message-Digest-Algorithmus 5) oder SHA-1 (Secure-Hash-Algorithmus 1), die kryptografische Hash-Werte jedes Segments in dem Datenobjekt berechnet. Die Segmentkennung (Ci) kann die Kurzfassung (di) allein oder eine Kombination aus der Kurzfassung (di) und einer Länge (li) des Segmentes, das durch die Segmentkennung (Ci) identifiziert ist, oder in Kombination mit weiteren Informationen aufweisen.
  • In einer bestimmten Ausführungsform kann die Kurzfassung (di), die für die Segmentkennung (Ci) verwendet wird, aus dem Segment, das mit dem privaten Schlüssel (PC) 28 des Client oder dem gemeinsam genutzten Schlüssel (SS) 30 verschlüsselt ist, berechnet werden, und der Server 4 kann das verschlüsselte Segment für einen zusätzlichen Schutz speichern. Des Weiteren kann die Länge (li), die zum Identifizieren des Segmentes verwendet wird, in bestimmten Ausführungsformen die Länge des verschlüsselten Segmentes aufweisen. Sowohl der Client 2 als auch der Server 4 können die Segmentkennung (Ci), die aus dem verschlüsselten Segment berechnet wird, zum Identifizieren des Segmentes verwenden. Alternativ kann die Kurzfassung, die für die Segmentkennung verwendet wird, aus dem unverschlüsselten Segment berechnet werden.
  • 3 veranschaulicht eine Ausführungsform von Server-Objektinformationen 60 für ein Datenobjekt, das in den Server-Objektinformationen 18 vorgehalten wird. Die Server-Objektinformationen 60 für ein Datenobjekt enthalten die Client-Datenobjektbezeichnung 62, die dem Datenobjekt durch den Client 2 zugewiesen ist, wie etwa die Datenobjektbezeichnung 52, die in den Client-Objektinformationen 50 verwendet wird, und eine oder mehrere Segmentkennungen (Ci) 64a, 64b ... 64n von Segmenten, die dem Client-Datenobjekt 52 zugewiesen sind, das die gleichen Segmentkennungen 54a, 54b ... 54n aufweist, die von dem Client 2 zum Identifizieren der Segmente verwendet werden. Die Segmentkennungen 64a, 64b ... 64n können aus den verschlüsselten Segmenten in dem Datenobjekt berechnet werden, die mit dem privaten Schlüssel 28 des Client oder dem gemeinsam genutzten Schlüssel 30 verschlüsselt sind. Die Server-Objektinformationen 60 enthalten ferner eine eindeutige Datenobjektkennung (I) 66, die durch den Server dem Datenobjekt zugewiesen ist, wie etwa eine Zufallszahl oder eine Kopie der mit dem privaten Schlüssel (PC) 28 des Client verschlüsselten Datenobjektkennung, wobei I' die verschlüsselte Kennung (eP(I)) 68 ist, die berechnet wird, indem die Kennung (I) 68 mit dem privaten Schlüssel 28 des Client verschlüsselt wird.
  • 4 veranschaulicht eine Ausführungsform eines Deduplizierungsindex-Eintrags 70, der durch den Server-Sicherungsmanager 16 für jedes Segment, das in der Speichereinrichtung 6 gespeichert ist, vorgehalten wird, die ein verschlüsseltes Segment aufweisen kann. Der Indexeintrag 70 enthält eine Segmentkennung (ID) 72 des Segmentes in der Speichereinrichtung 6 wie etwa die Segmentkennung 54a ... 54n, 64a ... 64n, die von den Clients 2 und dem Server 4 verwendet werden, und einen Speicherplatz 74, der die Speichereinrichtung 6 angibt, die das Segment 72 aufweist. Wenn festgelegt wird, ob eine Kopie des Segmentes zu dem Server 4 zu senden ist, kann der Client 2 die Segmentkennung (Ci) dem Server 4 bereitstellen und der Server 4 kann feststellen, ob ein Eintrag 70 in dem Deduplizierungsindex 20 eine Segmentkennung (Ci) aufweist, die mit der Segmentkennung des Segmentes übereinstimmt, das der Client 2 als Teil eines Sicherungsbefehls an den Server 4 zu senden versucht. Wenn es keine Übereinstimmung gibt, sendet der Client 2 eine vollständige Kopie des Segmentes in dem Datenobjekt 8 zum Sichern an den Server 4 zur Speicherung in der Speichereinrichtung 6. Wenn der Deduplizierungsindex 20 andernfalls eine übereinstimmende Kopie der Segmentkennung (Ci) aufweist, muss der Client-Sicherungsmanager 14 keine vollständige Kopie des Segmentes senden. Der Client-Sicherungsmanager 14 kann stattdessen lediglich die Segmentkennung (Ci) übertragen.
  • Auf diese Weise werden die Teilkomponenten eines Objekts, die hier als Segmente bezeichnet sind, separat von den Objekten oder Dateien, in denen sie enthalten sind, gespeichert. Ein Segment kann einen Umfang von Spuren, einen Datenblock oder jede andere definierbare Teileinheit von Daten, die Objekten zugewiesen sein können, aufweisen. Ein Objekt kann jede Gruppierung von Dateneinheiten wie etwa eine Datei, ein Objekt, eine Datenbank usw. beinhalten.
  • Die 5a bis 5b veranschaulichen eine Ausführungsform von Befehlen, die durch den Client-Sicherungsmanager 14 und den Server-Sicherungsmanager 16 ausgeführt werden, um im Client 2 vorhandene Datenobjekte im Server 4 zu sichern. Bei der Auslösung eines Befehls (im Block 100) zum Sichern eines Datenobjekts 8 verschlüsselt der Client-Sicherungsmanager 14 (im Block 102) ein erstes Segment (C1) in dem Datenobjekt mit dem privaten Schlüssel (PC) des Client und sendet (im Block 104) das verschlüsselte erste Segment (eP(C1)) mit einer Sicherungsanforderung, die die Nummer des ersten Segmentes in dem Datenobjekt angibt, an den Server 4. Wenn in bestimmten Ausführungsformen verschlüsselte Segmente an den Server zur Sicherung gesendet werden, kann der Client-Sicherungsmanager 14 die Segmentnummer oder die Ordnungszahl des Segmentes in dem Datenobjekt 50 angeben oder der Server-Sicherungsmanager 18 kann die Nummer des empfangenen Segmentes in dem Datenobjekt aus Metadaten für das Segment oder anhand der Reihenfolge, in der das Segment empfangen wird, ermitteln. In bestimmten Ausführungsformen kann der Client-Sicherungsmanager 14 feststellen, ob der Server 4 bereits ein Segment gespeichert hat, das mit dem ersten Segment, das mit dem privaten Schlüssel des Client verschlüsselt ist, übereinstimmt, und wenn das der Fall ist, lediglich eine Kennung des verschlüsselten ersten Segments (eP(C1)) anstelle des ersten Segmentse senden, um eine Deduplizierung der Segmente, die mit dem privaten Schlüssel des Client verschlüsselt sind, zu gewährleisten. Wenn die Sicherungsanforderung gesendet wird, kann der Client-Sicherungsmanager 14 eine Kopie der Client-Objektinformationen 50 senden, die die verschlüsselten Segmente 54a, 54b ... 54n angeben, die gesendet werden.
  • Nach dem Empfangen (im Block 106) des verschlüsselten ersten Segmentes in dem Datenobjekt 50 bestimmt der Server-Sicherungsmanager 16 (im Block 108) die Segmentkennung (Ci) des verschlüsselten ersten Segmentes (eP(C1)). In einer Ausführungsform kann der Client-Sicherungsmanager 14 die Segmentkennung bereitstellen oder die Segmentkennung kann berechnet werden, indem ein Kurzfassungs-Hash-Wert oder eine Kurzfassungsfunktion auf das verschlüsselte erste Segment 54a angewendet wird. Der Server-Sicherungsmanager 16 fügt (im Block 110) die Segmentkennung (C1) für das erste empfangene Segment (eP(C1)) dem Speicherplatz 64a des ersten Segmentes in den Server-Objektinformationen 60 für das Client-Datenobjekt zur Sicherung hinzu. Alternativ kann der Server-Sicherungsmanager 16 vom Client 2 die Client-Objektinformationen 50 mit den Segmentkennungen basierend auf den verschlüsselten Segmenten empfangen und diese Informationen verwenden, um die Server-Objektinformationen 60 zu erzeugen. Der Server-Sicherungsmanager 16 sendet (im Block 112) den gemeinsam genutzten Schlüssel (SS) 30 an den Client 2, der (im Block 113) den gemeinsam genutzten Schlüssel 30 für die Verwendung zum Verschlüsseln von Segmenten zur Sicherung in dem Datenobjekt empfängt. Der Client 2 kann alternativ den gemeinsam genutzten Schlüssel 30 von vorhergehenden Befehlen bereits aufweisen. Der Server-Sicherungsmanager 16 erzeugt (im Block 114) eine Kennung (I) wie etwa eine Zufallszahl für das Datenobjekt zur Sicherung und ordnet (im Block 116) die Datenobjektkennung (I) den Server-Objektinformationen 60 im Feld 66 zu. Der Server-Sicherungsmanager 16 sendet (im Block 118) die Kennung (I) 66 zu dem Client 2.
  • Nach dem Empfangen (im Block 120) der Datenobjektkennung (I) 66 verschlüsselt das Client-Sicherungsprogramm 14 (im Block 122) die Kennung (I) mit dem privaten Schlüssel 28 des Client, um eine verschlüsselte Kennung (I' = eP(I)) zu erzeugen und sendet (im Block 124) die verschlüsselte Kennung (I') an den Server 4. Nach dem Empfangen (im Block 126) der verschlüsselten Kennung (I') ordnet der Server-Sicherungsmanager 16 (im Block 128) die verschlüsselte Kennung (I') den Server-Objektinformationen 60 zu, indem die Kennung (I') oder ein Zeiger auf (I') in das Feld 68 aufgenommen wird.
  • In alternativen Ausführungsformen kann das Server-Sicherungsprogramm 16 eine Kennung (I) für den Client 2 zur Verwendung für alle Datenobjekte vom Client 2 erzeugen, so dass dann, wenn der Client 2 in der Lage ist, die verschlüsselte Kennung (I') für den Client zu entschlüsseln, dieser Client jedes dem Client zugeordnete Datenobjekt, das durch die für den Client erzeugte Kennung I identifiziert ist, wiederherstellen kann. Es kann somit für einen Client für jedes Datenobjekt eine eindeutige Kennung (I) oder für einen Client eine Kennung, die allen Datenobjekten zugeordnet ist, die von dem Client stammen, geben.
  • Wenn (im Block 130) kein nächstes Segment in dem Datenobjekt 50 nach dem letzten gesendeten Segment wie etwa nach dem ersten oder einem nachfolgenden gesendeten Segment vorhanden ist, sendet der Client-Sicherungsmanager 14 (im Block 132) eine Nachricht "Ende des Datenobjektes" an den Server 4. Wenn andernfalls weitere Segmente in dem Client-Datenobjekt 50 zum Senden vorhanden sind, geht der Client-Sicherungsmanager 14 (im Block 136) zum Block 140 in 5b über, um das nächste Segment 54b ... 54n mit dem gemeinsam genutzten Schlüssel (SS) zu verschlüsseln. Der Client-Sicherungsmanager 14 ermittelt (im Block 142) eine Segmentkennung (Ci) des verschlüsselten nächsten Segmentes wie etwa eine Kurzfassung di. Der Client-Sicherungsmanager 14 führt eine Deduplizierung aus, so dass lediglich Segmente, die sich nicht bereits in der Speichereinrichtung 6 befinden, gesendet werden. Der Client-Sicherungsmanager 14 ermittelt (im Block 144), ob das nächste verschlüsselte Segment (identifiziert durch die Segmentkennung (Ci)) bereits im Server 4 gespeichert ist. Das kann aus einer Abfrage eines Deduplizierungsindex 20 ermittelt werden, um festzustellen, ob ein Deduplizierungsindex-Eintrag 70 vorhanden ist, der eine Segmentkennung 72 aufweist, die mit jener des nächsten verschlüsselten Segmentes übereinstimmt, oder durch den Client-Sicherungsmanager 14 ermittelt werden, der den Server-Sicherungsmanager 16 oder eine Deduplizierungseinheit abfragt, ob das verschlüsselte Segment gesendet werden muss (z.B. ob die Segmentkennung des zu sendenden Segmentes nicht im Deduplizierungsindex 20 enthalten ist). In bestimmten Ausführungsformen können die Segmentkennungen 72 in den Deduplizierungsindex-Einträgen 70 aus dem verschlüsselten Segment ermittelt oder berechnet werden.
  • Wenn (im Block 144) das nächste zu sendende Segment (Ci) nicht bereits im Server 4 gespeichert ist, sendet der Client-Sicherungsmanager 14 (im Block 146) das verschlüsselte Segment zu dem Server 4. Wenn (im Block 144) das nächste zu sendende Segment bereits im Server gespeichert ist, sendet der Client-Sicherungsmanager 14 (im Block 148) die Segmentkennung (Ci) des nächsten verschlüsselten Segmentes in dem Datenobjekt. Nach dem Senden (im Block 146 oder 148) des Segmentes oder der Segmentkennung geht die Steuerung (im Block 150) wieder zum Block 130 in 5a über, um festzustellen, ob weitere Segmente in dem Datenobjekt vorhanden sind, um sie zu verarbeiten und an den Server 4 zu senden.
  • Nach dem Empfangen (im Block 152) des verschlüsselten Segmentes speichert der Server-Sicherungsmanager 16 (im Block 154) das verschlüsselte Segment in der Speichereinrichtung 6 und aktualisiert (im Block 156) den Eintrag 70 des Deduplizierungsindex 20 für das Segment, der den Speicherplatz des Segmentes in der Speichereinrichtung 6 angibt. Nach dem Empfangen (im Block 158) der verschlüsselten Segmentkennung (Ci) oder nach dem Aktualisieren des Deduplizierungsindex 20 (im Block 156) fügt der Server-Sicherungsmanager 16 (im Block 160) die Segmentkennung (Ci) des (im Block 152) empfangenen verschlüsselten Segmentes oder die (im Block 158) empfangene Segmentkennung den Server-Objektinformationen 60 an einem Speicherplatz hinzu, der der Position des Segmentes in den Client-Objektinformationen 50 entspricht. In einer alternativen Ausführungsform wird der Befehl im Block 160 nicht ausgeführt, wenn der Client-Sicherungsmanager 14 die gesamten Segmentkennungs-(Ci)Informationen in den Client-Objektinformationen 50 bei der Sicherungsanforderung an den Server 14 gesendet hat. Des Weiteren kann der Client 2 die Reihenfolge-Informationen der gesendeten Segmente und Kennungen in dem Datenobjekt senden.
  • Bei den beschriebenen Ausführungsformen der 5a und 5b verschlüsselt der Client 2 einen ersten Abschnitt der Segmente in dem zu sichernden Datenobjekt mit einem privaten Schlüssel des Client. Ein zweiter Abschnitt der Segmente in dem zu sichernden Datenobjekt, die nicht mit dem privaten Schlüssel 28 des Client verschlüsselt werden, können mit einem gemeinsam genutzten Schlüssel verschlüsselt oder unverschlüsselt übertragen werden. In einer Ausführungsform kann der erste Abschnitt der Segmente, die mit dem privaten Schlüssel des Client verschlüsselt sind und anfangs zu dem Server 4 gesendet werden, das erste Segment in dem Datenobjekt aufweisen, und der zweite Abschnitt der Segmente weist alle Segmente in dem Datenobjekt auf, die dem ersten Segment folgen. In einer alternativen Ausführungsform kann der erste Abschnitt der Segmente, die mit dem privaten Schlüssel 28 des Client verschlüsselt sind, mehrere Segmente in dem Datenobjekt aufweisen wie etwa aufeinander folgende und/oder nicht aufeinander folgende Segmente, und der zweite Abschnitt von Segmenten weist alle Segmente auf, die nicht mit dem privaten Schlüssel 28 des Client verschlüsselt sind. Der erste Abschnitt von Segmenten kann alternativ einen Teil eines oder mehrerer Segmente aufweisen wie etwa die Segment-Metadaten, spezifizierte Blöcke in einem Segment usw. In bestimmten Ausführungsformen kann eine Konfigurationseinstellung der Client- und Server-Sicherungsmanager 14, 16 vorhanden sein, die den ersten Abschnitt von Segmenten angibt, der mit dem privaten Schlüssel 28 des Client verschlüsselt wäre.
  • Der Server-Sicherungsmanager 16 kann Datenobjekte von mehreren Clients 4 sichern. In diesem Fall kann jeder Client 4 seinen eigenen privaten Schlüssel verwenden, um einen ersten Abschnitt der Segmente in dem Datenobjekt zu verschlüsseln, und mehrere Clients können den gleichen gemeinsam genutzten Schlüssel verwenden, um den zweiten Abschnitt der Segmente in dem Datenobjekt zu verschlüsseln. Des Weiteren können mehrere gemeinsam genutzte Schlüssel vorhanden sein, wobei unterschiedliche Schlüssel von unterschiedlichen Gruppen von Clients gemeinsam genutzt werden, z.B. basierend auf einem Projekt oder einer Abteilung, dem bzw. der der Client zugewiesen ist, wodurch der Zugriff auf Datenobjekte für Untergruppen von Clients innerhalb einer größeren Gruppe weiter eingeschränkt wird.
  • Das Verschlüsseln von Segmenten mit dem privaten Schlüssel 28 des Client, das vorgesehen ist, damit sie lediglich für den Client zugänglich sind, verbessert die Sicherheit des Datenobjektes, da andere wahrscheinlich den ersten Abschnitt der Segmente nicht entschlüsseln können und somit auf das gesamte Datenobjekt nicht zugreifen können. Bei dem ersten Abschnitt der Segmente besteht jedoch eine geringere Wahrscheinlichkeit, dass er für eine Deduplizierung zur Verfügung steht, da andere Clients wahrscheinlich kein entschlüsseltes Segment erzeugen können, das mit einem Segment übereinstimmt, das mit dem privaten Schlüssel eines anderen Client verschlüsselt wurde. Bei Übereinstimmungen von Segmenten, die mit dem privaten Schlüssel eines Client verschlüsselt sind, besteht jedoch eine größere Wahrscheinlichkeit, dass sie zu dem gleichen Client 2 gehören. Der zweite Abschnitt von Segmenten, der Segmente enthält, die mit dem gemeinsam genutzten Schlüssel verschlüsselt sind, müssen wahrscheinlich in Datenobjekten bei unterschiedlichen Clients wiederholt werden, da unterschiedliche Clients bei den gleichen Daten den gleichen gemeinsam genutzten Schlüssel verwenden würden, wodurch sie das gleiche verschlüsselte Segment erzeugen würden. Somit bestehen bei Segmenten, die mit dem gemeinsam genutzten Schlüssel verschlüsselt sind, ähnliche Vorteile der Deduplizierung wie bei unverschlüsselten Segmenten.
  • Eine Verbesserung der Datenobjektsicherheit durch Erhöhen der Anzahl von Segmenten in dem ersten Abschnitt, der mit dem privaten Schlüssel des Client verschlüsselt ist, hat die Wirkung der Verringerung der Anzahl von Segmenten in dem zweiten Abschnitt, der für eine Deduplizierung zur Verfügung steht, wodurch die Fähigkeit zur Einsparung von Speicherplatz 6 und zur Reduzierung von Netzwerkverkehr durch Deduplizierung vermindert wird.
  • 6 veranschaulicht eine Ausführungsform von Befehlen, die durch die Sicherungsmanager 14, 16 von Client und Server ausgeführt werden, um ein Datenobjekt, das in dem Server 4 gespeichert ist, wiederherzustellen. Nachdem der Client-Sicherungsmanager 14 (im Block 200) ein Befehl bzw. eine Operation zum Wiederherstellen des Datenobjektes 50 ausgelöst hat, sendet der Client-Sicherungsmanager 14 (im Block 202) eine Anforderung zum Wiederherstellen eines Datenobjekts, die die Datenobjektbezeichnung 52 enthalten würde. Nach dem Empfangen (im Block 204) der Wiederherstellungsanforderung sendet der Server-Sicherungsmanager 16 (im Block 206) das erste verschlüsselte Segment 64a (oder den verschlüsselten ersten Abschnitt von Segmenten) in dem Datenobjekt 60 und sendet (im Block 208) die verschlüsselte Kennung (I') 68 zu dem Client 2. Nach dem Empfangen (im Block 210) des verschlüsselten ersten Segmentes entschlüsselt der Client-Sicherungsmanager 14 (im Block 212) das verschlüsselte erste Segment (eP(C1)) mit dem privaten Schlüssel 28 des Client, um das unverschlüsselte erste Segment 54a zu erzeugen. Nach dem Empfangen (im Block 214) der verschlüsselten Kennung (I') entschlüsselt der Client-Sicherungsmanager 14 (im Block 216) die verschlüsselte Kennung (I') mit dem privaten Schlüssel 28 des Client, um eine entschlüsselte Kennung des Datenobjektes (I = dP(I')) zu erzeugen. Die entschlüsselte Kennung (I) wird (im Block 218) zu dem Server 4 gesendet.
  • Nach dem Empfangen (im Block 220) einer Antwort von dem Client, die eine angebliche unverschlüsselte Kennung für das Datenobjekt (z.B. PI) enthält, ermittelt der Server-Sicherungsmanager 16 (im Block 222), ob die angebliche Kennung (PI) mit der Kennung (I) 66 übereinstimmt, die dem Datenobjekt 60 (3), das wiederhergestellt werden soll, übereinstimmt. Wenn eine Übereinstimmung vorhanden ist, sendet der Server-Sicherungsmanager 16 alle weiteren verschlüsselten Segmente, z.B. C2, ... Cn, die in den Server-Objektinformationen 60 angegeben und mit dem gemeinsam genutzten Schlüssel 30 verschlüsselt sind, zu dem Client 4. Wenn keine Übereinstimmung vorhanden ist, beendet der Server-Sicherungsmanager 16 (im Block 226) die Wiederherstellungsanforderung. Der Server-Sicherungsmanager 16 kann eine Nachricht zu dem Client 2 senden, dass die Wiederherstellungsbefehle infolge eines Berechtigungsfehlers beendet wird. Nach dem Empfangen (im Block 228) von zusätzlichen verschlüsselten Segmenten nach dem ersten Segment (oder dem ersten Abschnitt von Segmenten) entschlüsselt der Client-Sicherungsmanager 14 (im Block 228) die Segmente mit dem gemeinsam genutzten Schlüssel 30.
  • In einer alternativen Ausführungsform können die Befehle in den Blöcken 206, 210 und 212 lediglich dann ausgeführt werden, nachdem die angebliche Client-Kennung im Block 222 für gültig erklärt wurde. Auf diese Weise wird das erste verschlüsselte Segment nicht gesendet, empfangen und entschlüsselt, bis der Client eine unverschlüsselte Kennung (I) sendet, die mit der Kennung übereinstimmt, die den Server-Objektinformationen zugehörig ist.
  • Wenn der Server 4 Datenobjekte von mehreren Clients sichern würde, würden die Server-Objektinformationen 60 durch die verschlüsselte Datenobjektkennung (I') 68, die mit dem speziellen privaten Schlüssel des Client verschlüsselt ist, einem bestimmten Client zugeordnet. Auf diese Weise können Clients lediglich Datenobjekte wiederherstellen, für die sie die verschlüsselte Datenobjektkennung (I') während des Sicherungsbefehls der 5a und 5b bereitstellen, da andere Clients den privaten Schlüssel 28 des Client, der zum Verschlüsseln der Kennung (I') verwendet wird, nicht aufweisen sollten, womit sie in der Lage wären, die übereinstimmende Datenobjektkennung (I) zu präsentieren und weitere Segmente zum Wiederherstellen zu empfangen (im Block 224).
  • 7 veranschaulicht ein Beispiel des Datenobjektes A und des Datenobjektes B von verschiedenen Clients A bzw. B, die Datenobjekte in dem Server 4 sichern. Die Datenobjekte A und B weisen einige gemeinsame unverschlüsselte Segmente wie etwa die Segmente C2, C4 und C5 auf. Wenn das Datenobjekt A zu dem Sicherungsserver gesendet wird, wird das erste Segment C1 mit dem privaten Schlüssel (p(a)) des Client A verschlüsselt, um wie in 8 gezeigt das verschlüsselte Segment ep(a)(C1) zu erzeugen, und die folgenden Segmente C2, C3, C4 und C5 werden mit dem gemeinsam genutzten Schlüssel 30 (S) verschlüsselt, wodurch wie in 8 gezeigt die verschlüsselten Segmente es(C2), es(C3), es(C4) und es(C5) erzeugt werden. Der Server würde ferner eine Kennung (IA) des Datenobjektes A und eine verschlüsselte Kennung (I'A), die mit dem privaten Schlüssel p(a) des Client A verschlüsselt ist, vorhalten.
  • Das erste Segment C'1 des Datenobjektes B wird mit dem privaten Schlüssel (p(b)) des Client B verschlüsselt und die folgenden Segmente C2, C'3, C4, C5 und C6 werden mit dem gemeinsam genutzten Schlüssel 30 (S) verschlüsselt, um die verschlüsselten Segmente für das Datenobjekt B wie in 8 gezeigt als verschlüsselte Segmente ep(b)(C'1), es(C2), es(C'3), es(C4), es(C5) und es(C6) zu erzeugen. Da sich jedoch die verschlüsselte Version der Segmente es(C2), es(C4), es(C5) als ein Ergebnis der Sicherung des verschlüsselten Datenobjektes A bereits auf dem Server 4 befindet, müssen bei Anwendung der Deduplizierung diese verschlüsselten Segmente für das Datenobjekt B nicht erneut zu dem Server 4 gesendet werden. Der Server 4 würde weiterhin eine Kennung (IB) für das Datenobjekt B und eine verschlüsselte Kennung (I'B), die mit dem privaten Schlüssel (p(b)) des Client B verschlüsselt ist, vorhalten.
  • Wenn der Client B versuchen würde, das Datenobjekt A wiederherzustellen, würde der Server 4 die verschlüsselte Kennung für das Datenobjekt A (I'A) senden, die der Client B nicht entschlüsseln kann, da er nicht den privaten Schlüssel des Client A hat. Somit würde jede versuchte Wiederherstellung des Datenobjektes des Client A durch den Client B fehlschlagen.
  • Die beschriebenen Ausführungsformen stellen eine Verschlüsselung für Sicherungsbefehle in Bezug auf Sicherungsdaten bereit. In weiteren Ausführungsformen können jedoch die erläuterten Befehle zum Übertragen von Segmenten und Daten auf Datenübertragungsbefehle für andere Datentypen wie etwa Archivierungsdaten und Hierarchical Storage Management-(HSM-)Daten mit Speicherplatzverwaltung angewendet werden.
  • Beschriebene Ausführungsformen stellen Techniken zum Verschlüsseln und Schützen von Datenobjekten bereit, die unter Verwendung eines privaten Schlüssels zum Verschlüsseln eines ersten Abschnitts der Segmente in einem Datenobjekt gesichert und wiederhergestellt werden, wobei jedoch ein zweiter Abschnitt der Segmente nicht durch den privaten Schlüssel des Client verschlüsselt wird, so dass sie für eine Deduplizierung mit anderen Client-Segmenten zur Verfügung stehen. In weiteren Ausführungsformen kann der Server eine eindeutige Kennung vorhalten, die für einen bestimmten Client erzeugt wird, damit sie einem durch diesen Client gesendeten Datenobjekt zugeordnet wird.
  • Ausführungsformen der Cloud-Datenverarbeitung
  • Die Datenverarbeitungsumgebung von 1 kann Teil eines Cloud-Datenverarbeitungsmodells zur Dienstbereitstellung sein, um einen bequemen Netzwerkzugang auf Anforderung auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerk-Bandbreite, Server, Verarbeitungseinheiten, Speicher, Speichereinrichtungen, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, der bei einem minimalen Verwaltungsaufwand oder minimaler Wechselwirkung mit einem Dienstanbieter schnell bereitgestellt und aufgehoben werden kann. Die Umsetzung der Cloud-Datenverarbeitung wird unter Bezugnahme auf die 9 bis 11 beschrieben. Dieses Cloud-Modell enthält wenigstens fünf Charakteristiken, wenigstens drei Dienstmodelle und wenigstens vier Einsatzmodelle.
  • Es gibt folgende Charakteristiken:
    Selbstbedienung auf Anforderung: Ein Cloud-Teilnehmer kann mehrseitig Datenverarbeitungsmöglichkeiten wie etwa Serverzeit und Netzwerkspeicherung automatisch bereitstellen, und zwar erforderlichenfalls automatisch, ohne dass eine persönliche Wechselwirkung mit dem Dienstanbieter erforderlich ist.
  • Breiter Netzwerkzugang: Kapazitäten stehen über ein Netzwerk bereit und auf diese wird über Standard-Mechanismen zugegriffen, die eine Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Ressourcen-Pooling: Die Datenverarbeitungs-Ressourcen des Anbieters werden in Pools zusammengefasst, um mehrere Kunden unter Verwendung eines Multi-Tenant-Modells zu versorgen, wobei unterschiedliche physische und virtuelle Ressourcen bedarfsgerecht dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine Art Speicherplatz-Unabhängigkeit dahingehend, dass der Kunde im Allgemeinen keine Kontrolle oder keine Kenntnis über den genauen Standort der bereitgestellten Ressource hat, er kann aber den Standort mit einem höheren Grad der Abstraktion (z.B. Land, Staat, Datenzentrum) spezifizieren.
  • Kurzfristige Elastizität: Kapazitäten können kurzfristig und elastisch, in einigen Fällen automatisch für eine rasche Erweiterung bereitgestellt werden und für eine rasche Verkleinerung schnell aufgegeben werden. Für den Kunden scheinen die Kapazitäten, die zur Bereitstellung verfügbar sind, häufig unbegrenzt und können jederzeit in beliebigem Umfang gekauft werden.
  • Gemessener Dienst: Cloud-Systeme steuern und optimieren die Ressourcenverwendung automatisch durch Erschließen einer Messmöglichkeit bei einem bestimmten Abstraktionsgrad, der für den Servicetyp geeignet ist (z.B. Speicherung, Verarbeitung, Bandbreite und Konten aktiver Benutzer). Die Ressourcennutzung kann überwacht, gesteuert und abgerechnet werden, wobei sowohl dem Anbieter als auch dem Kunden des genutzten Dienstes Transparenz geboten wird.
  • Es gibt folgende Servicemodelle:
    Software als ein Dienst (SaaS): Die für den Kunden bereitgestellte Kapazität besteht in der Verwendung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur laufen. Auf die Anwendungen kann von verschiedenen Client-Einrichtungen über eine Thin-Client-Schnittstelle wie z.B. einen Web-Browser (z.B. web-basierte E-Mail) zugegriffen werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerk, Server, Betriebssysteme, Speichereinrichtungen oder sogar einzelne Anwendungskapazitäten, mit der möglichen Ausnahme von begrenzten Einstellungen von benutzerspezifischen Anwendungskonfigurationen.
  • Plattform als ein Dienst (PaaS): Die für den Kunden bereitgestellte Kapazität besteht in der Nutzung vom Kunden erzeugter oder erworbener Anwendungen, die unter Verwendung von Programmiersprachen und Tools, die vom Anbieter unterstützt werden, auf der Cloud-Infrastruktur erzeugt wurden. Der Kunden verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme oder Speichereinrichtungen, besitzt jedoch die Steuerung über genutzte Anwendungen und mögliche Umgebungskonfigurationen, die Anwendungen beherbergen.
  • Infrastruktur als ein Dienst (IaaS): Die für den Kunden bereitgestellte Kapazität besteht in der Bereitstellung von Verarbeitung, Speichereinrichtungen, Netzwerken und anderen grundlegenden Datenverarbeitungs-Ressourcen, wobei der Kunde in der Lage ist, willkürliche Software anzuwenden und zu betreiben, die Betriebssysteme und Anwendungen beinhalten kann. Der Kunden verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, besitzt jedoch die Steuerung über Betriebssysteme, Speichereinrichtungen, genutzte Anwendungen und möglicherweise eine begrenzte Steuerung bezüglich der Auswahl von Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt folgende Anwendungsmodelle:
    Private Cloud: Die Cloud-Infrastruktur wird lediglich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten betrieben werden und kann im Haus oder außer Haus vorhanden sein.
  • Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Gemeinschaft, die gemeinsame Anliegen hat (z.B. Auftrag, Sicherheitsanforderungen, Richtlinien und Konformitätsbetrachtungen). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann im Haus oder außer Haus vorhanden sein.
  • Öffentliche Cloud: Die Cloud-Infrastruktur wird für die allgemeine Öffentlichkeit oder eine große Industriegruppe zur Verfügung gestellt und ist im Besitz einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid-Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehr Clouds (privat, Gemeinschafts- oder öffentlich), die spezifische Entitäten bleiben, jedoch durch genormte oder eigene Technologien miteinander verbunden sind, die eine Portierbarkeit der Anwendung ermöglichen (z.B. Cloud-Bursting zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist ein Dienst, der mit einem Schwerpunkt auf Zustandsfreiheit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet ist. Der Kern der Cloud-Datenverarbeitung ist eine Infrastruktur mit einem Netzwerk aus miteinander verbundenen Knoten.
  • 9 veranschaulicht ein Beispiel eines Cloud-Datenverarbeitungsknotens 300, der eine Umsetzung der Systeme von Client 2 und Server 4 aufweisen kann. Der Cloud-Datenverarbeitungsknoten 300 ist lediglich ein Beispiel eines geeigneten Cloud-Datenverarbeitungsknotens und es ist nicht vorgesehen, dass er eine Begrenzung am Verwendungsumfang oder an der Funktionalität von Ausführungsformen der hier beschriebenen Erfindung nahe legt. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 300 als eine hier im Vorhergehenden dargestellte Funktionalität umgesetzt sein und/oder diese ausführen.
  • Im Cloud-Datenverarbeitungsknoten 300 gibt es ein Computersystem/einen Server 302, das/der mit zahlreichen anderen Universal- oder speziellen Datenverarbeitungssystem-Umgebungen oder Konfigurationen funktionsfähig ist. Zu Beispielen allgemein bekannter Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/dem Server 302 geeignet sein können, gehören Personalcomputer-Systeme, Server-Computer-Systeme, Thin-Clients, Thick-Clients, handgehaltene oder Laptop-Einheiten, Multiprozessorsysteme, mikroprozessorgestützte Systeme, Set-Top-Boxes, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Datenverarbeitungsumgebungen, die eines der obigen Systeme oder Einheiten enthalten, oder dergleichen, ohne jedoch darauf beschränkt zu sein.
  • Das Computersystem/der Server 302 können im allgemeinen Kontext von über ein Computersystem ausführbaren Befehlen, wie etwa Programmmodule, die durch ein Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Tasks ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 302 kann in verteilten Cloud-Datenverarbeitungsumgebungen praktiziert werden, wobei Tasks durch entfernte Verarbeitungseinheiten ausgeführt werden, die über ein Kommunikationsnetz verbunden sind. In einer verteilten Cloud-Datenverarbeitungsumgebung können Programmmodule sowohl in lokalen als auch in entfernten Computersystem-Speichermedien enthalten sein, die Speichereinheiten enthalten.
  • Wie in 9 gezeigt, ist das Computersystem/der Server 302 im Cloud-Datenverarbeitungsknoten 300 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 302 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 304, einen Systemspeicher 306 und einen Bus 308 enthalten, der verschiedene Systemkomponenten verbindet, darunter den Systemspeicher 306 mit dem Prozessor 304, sind jedoch nicht darauf beschränkt.
  • Der Bus 308 repräsentiert eine oder mehrere von verschiedenen Typen von Busstrukturen, darunter ein Speicherbus oder eine Speicher-Steuereinheit, ein peripherer Bus, ein Anschluss einer Beschleunigungsgraphik oder ein Prozessor- oder lokaler Bus unter Verwendung einer von einer Vielfalt von Busarchitekturen. Beispielhaft gehören zu derartigen Architekturen ein Industry Standard Architecture(ISA-)Bus, ein Micro Channel Architecture-(MCA-)Bus, ein Enhanced ISA-(EISA-)Bus, ein lokaler Video Electronics Standards Association(VESA-)Bus und ein Peripheral Component Interconnects(PCI-)Bus, ohne darauf beschränkt zu sein.
  • Das Computersystem/der Server 302 enthält üblicherweise eine Vielzahl von Medien, die vom Computersystem gelesen werden können. Derartige Medien können jedes zur Verfügung stehende Medium sein, auf das durch das Computersystem/den Server 302 zugegriffen werden kann, und enthalten sowohl flüchtige als auch nichtflüchtige Medien, entnehmbare und nicht entnehmbare Medien.
  • Der Systemspeicher 306 kann vom Computersystem lesbare Medien in der Form eines flüchtigen Speichers enthalten wie z.B. einen Direktzugriffsspeicher (RAM) 310 und/oder einen Cache-Speicher 312. Das Computersystem/der Server 302 kann des Weiteren andere entnehmbare/nicht entnehmbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich beispielhaft kann das Speichersystem 313 zum Lesen von und zum Schreiben auf ein nicht entnehmbares, nichtflüchtiges magnetisches Medium (nicht gezeigt und üblicherweise als "Festplattenlaufwerk" bezeichnet) vorgesehen sein. Obwohl nicht gezeigt, können ein magnetisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine entnehmbare, nichtflüchtige Magnetplatte (z.B. ein "Floppy Disk") und ein optisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine entnehmbare, nichtflüchtige optische Platte wie etwa ein CD-ROM, DVD-ROM oder andere optische Medien vorgesehen sein. In diesen Fällen kann jedes durch ein oder mehrere Medienschnittstellen mit dem Bus 308 verbunden sein. Wie ferner dargestellt und im Folgenden beschrieben, kann der Speicher 306 wenigstens ein Programmprodukt enthalten, das eine Gruppe von Programmmodulen (z.B. wenigstens ein Programmmodul) aufweist, die zum Ausführen der Funktionen von Ausführungsformen der Erfindung konfiguriert sind.
  • Das Programm/Dienstprogramm 314, das eine Gruppe (wenigstens ein) von Programmmodulen 316 aufweist, kann als Beispiel und ohne Einschränkung wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten im Speicher 306 gespeichert sein. Jedes von Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten oder eine Kombination hiervon kann eine Umsetzung einer Netzwerksbetriebsumgebung enthalten. Programmmodule 316 führen im Allgemeinen die Funktionen und/oder Methodiken von hier beschriebenen Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 302 kann außerdem mit einer oder mehreren externen Einheiten 318 Daten austauschen wie etwa einer Tastatur, einer Zeigeeinrichtung, einer Anzeige 120 usw.; einer oder mehreren Einrichtungen, die ermöglichen, dass ein Benutzer mit dem Computersystem/Server 12 in Wechselwirkung tritt; und/oder jeder Einrichtung (z.B. Netzwerkkarte, Modem usw.), die ermöglicht, dass das Computersystem/der Server 302 mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten austauscht. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe-(E/A-)Schnittstellen 322 erfolgen. Das Computersystem/der Server 302 kann ferner mit einem oder mehreren Netzwerken wie etwa einem Lokalbereichsnetz (LAN), einem allgemeinen Weitbereichsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über einen Netzwerkadapter 324 Daten austauschen. Wie dargestellt, kommuniziert der Netzwerkadapter 324 mit den anderen Komponenten des Computersystems/Servers 302 über den Bus 308. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 302 verwendet werden könnten, obwohl nicht gezeigt. Zu Beispielen gehören, sind jedoch nicht beschränkt auf: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
  • In 10 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 350 dargestellt. Wie gezeigt, weist die Cloud-Datenverarbeitungsumgebung 350 einen oder mehrere Cloud-Datenverarbeitungsknoten 300 auf, mit denen lokale Datenverarbeitungseinheiten kommunizieren können, die von Cloud-Nutzern verwendet werden, wie z.B. ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 354A, ein Desktop-Computer 354B, ein Laptop-Computer 354C und/oder ein Fahrzeug-Computersystem 354N. Sie können (nicht gezeigt) in einem oder mehreren Netzwerken wie etwa in privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds wie oben beschrieben oder einer Kombination hiervon physisch oder virtuell gruppiert sein. Dadurch kann eine Cloud-Datenverarbeitungsumgebung 350 eine Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Nutzer keine Ressourcen in einer lokalen Datenverarbeitungseinheit unterhalten muss. Es ist klar, dass vorgesehen ist, dass die in 10 gezeigten Typen von Datenverarbeitungseinheiten 354A bis N lediglich veranschaulichend sind und dass die Datenverarbeitungsknoten 300 und die Cloud-Datenverarbeitungsumgebung 350 mit jedem Typ von computergestützten Einheiten über jeden Typ eines Netzwerks und/oder einer adressierfähigen Netzwerkverbindung (z.B. unter Verwendung eines Web-Browsers) kommunizieren können.
  • Des Weiteren zeigt 10 eine einzelne Cloud. Bestimmte Cloud-Ausführungsformen können jedoch ein Verwendungsmodell bereitstellen, das zusätzlich zu der Cloud, die die Nutzer/Produktionsdaten aufweist, eine separate "Sicherungs-" oder "Datenschutz-"Cloud enthält. Die Bereitstellung einer separaten und eigenständigen zusätzlichen Cloud als Datenschutz-Cloud, um das wie auch immer geartete primäre Cloud-Modell (Bereitstellungs-, Gemeinschafts-, Hybrid- usw.) von der Datenschutz-Cloud zu trennen, verhindert einen einzigen Fehlerpunkt und schafft einen höheren Grad des Schutzes der Nutzerdaten in der separaten Sicherungs-Cloud.
  • In 11 ist eine Gruppe von Ebenen der funktionalen Abstraktion durch die Cloud-Datenverarbeitungsumgebung 350 (10) gezeigt. Es sollte vorab klar sein, dass vorgesehen ist, dass die in 11 gezeigten Komponenten, Ebenen und Funktionen lediglich veranschaulichend sind und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, sind die folgenden Ebenen und entsprechenden Funktionen bereitgestellt:
    Die Hardware- und Software-Ebene 360 enthält Hardware- und Software-Komponenten. Zu Beispielen von Hardware-Komponenten gehören Mainframes, in einem Beispiel IBM® zSeries®-Systeme; auf einer RISC-(Reduced Instruction Set Computer)Architektur basierte Server, in einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Zu Beispielen von Software-Komponenten gehören Netzwerk-Anwendungsserver-Software, in einem Beispiel IBM WebSphere®-Anwendungsserver-Software, und Datenbank-Software, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Handelbezeichnungen von International Business Machines Corporation, die weltweit in vielen Gerichtsbezirken eingetragen sind.)
  • Die Virtualisierungsebene 362 stellt eine Abstraktionsebene bereit, von der die folgenden Beispiele von virtuellen Entitäten bereitgestellt werden können: virtuelle Server; virtuelle Speicher; virtuelle Netzwerke, darunter private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsebene 364 die im Folgenden beschriebenen Funktionen bereitstellen. Ressourcenbereitstellung gewährleistet eine dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Tasks in der Cloud-Datenverarbeitungsumgebung auszuführen. Messwerterfassung und Preiskalkulation (Metering and Pricing) gewährleisten eine Kostenverfolgung, wenn Ressourcen in der Cloud-Datenverarbeitungsumgebung verwendet werden, und eine Rechnungslegung oder Fakturierung für eine Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Anwendungssoftware-Lizenzen aufweisen. Sicherheit gewährleistet eine Identitätsprüfung für Cloud-Nutzer und Tasks sowie einen Schutz für Daten und andere Ressourcen. Benutzerportal gewährleistet einen Zugriff auf die Cloud-Datenverarbeitungsumgebung für Nutzer und Systemadministratoren. Dienstgüte-Verwaltung gewährleistet eine Zuordnung und Verwaltung von Cloud-Datenverarbeitungsressourcen, so dass eine geforderte Dienstgüte eingehalten wird. Planung und Einhaltung von Dienstgütevereinbarungen (SLA) gewährleisten eine Vorvereinbarung für und eine Beschaffung von Cloud-Datenverarbeitungsressourcen, für die gemäß einer SLA eine zukünftige Anforderung erwartet wird.
  • Arbeitsbelastungsebene 366 stellt Beispiele der Funktionalität bereit, für die die Cloud-Datenverarbeitungsumgebung verwendet werden kann. Zu Beispielen der Arbeitsbelastungen und Funktionen, die von dieser Ebene bereitgestellt werden können, gehören: Abbildung und Navigation; Software-Entwicklung und Lebenszyklus-Verwaltung; Unterrichtung im virtuellen Klassenzimmer; Datenanalytik-Verarbeitung; Transaktionsverarbeitung; und Dienste der Sicherungsmanager 14, 16 von Client und Server wie oben unter Bezugnahme auf die 1 bis 4, 5a, 5b und 6 beschrieben.
  • Die beschriebenen Befehle können als Verfahren, Vorrichtung oder Computerprogrammprodukt unter Verwendung von Norm-Programmier- und/oder Entwicklungstechniken umgesetzt werden, um Software, Firmware, Hardware oder eine Kombination hiervon zu erzeugen. Demzufolge können Aspekte der Ausführungsformen die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle allgemein als "Schaltung", "Modul" oder "System" bezeichnet werden können. Aspekte der Ausführungsformen können ferner die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit darauf verkörpertem computerlesbaren Programmcode verkörpert ist.
  • Jede Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z.B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem computerlesbaren Programmcode, der darin z.B. im Basisband oder als Teil einer Trägerwelle verkörpert ist, enthalten. Ein derartiges verbreitetes Signal kann jede von einer Vielzahl von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, die jedoch nicht darauf beschränkt sind. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung kommunizieren, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien oder jede geeignete Kombination aus dem Vorhergehenden, die jedoch nicht darauf beschränkt sind.
  • Computerprogrammcode zum Ausführen von Befehlen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache "C" oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein selbstständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, einschließlich eines Lokalbereichs-Netzwerks (LAN) oder eines Weitbereichs-Netzwerks (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind oben unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können an einen Prozessor eines Universal-Computers, eines speziellen Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, wozu Befehle gehören, die die Funktion/Handlung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert ist.
  • Die Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungseinrichtungen oder andere Einheiten geladen werden, um eine Reihe von Befehlsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen computerimplizierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, bereitstellen.
  • Die Ausdrücke "eine Ausführungsform", "Ausführungsform", "Ausführungsformen", "die Ausführungsform", "die Ausführungsformen", "eine oder mehrere Ausführungsformen", "einige Ausführungsformen", und "eine Ausführungsform" bedeuten "eine oder mehrere (jedoch nicht alle) Ausführungsformen der vorliegenden Erfindung(en)", falls nicht ausdrücklich anders angegeben.
  • Die Ausdrücke "enthaltend", "umfassend", "aufweisend" und deren Variationen bedeuten "enthaltend, jedoch nicht darauf beschränkt", falls nicht ausdrücklich anders angegeben.
  • Die nummerierte Auflistung von Elementen bedeutet nicht, dass einige oder alle Elemente sich gegenseitig ausschließen, falls nicht ausdrücklich anders angegeben.
  • Die Ausdrücke "ein" und "der/die/das" bedeuten "ein oder mehrere", falls nicht ausdrücklich anders angegeben.
  • Einheiten, die miteinander verbunden sind, müssen nicht untereinander ständig verbunden sein, falls nicht ausdrücklich anders angegeben. Außerdem können Einheiten, die miteinander verbunden sind, direkt oder indirekt über eine oder mehrere Vermittlereinheiten kommunizieren.
  • Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die untereinander in Verbindung stehen, bedeutet nicht, dass alle derartigen Komponenten erforderlich sind. Im Gegenteil wird eine Vielzahl von optionalen Komponenten beschrieben, um die große Vielfalt von möglichen Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Obwohl ferner Prozessschritte, Verfahrensschritte, Algorithmen und dergleichen in einer bestimmten Reihenfolge beschrieben werden, können diese Prozesse, Verfahren und Algorithmen so konfiguriert sein, dass sie in abwechselnden Reihenfolgen funktionieren. Mit anderen Worten, jede Abfolge oder Reihenfolge von Schritten, die beschrieben wird, gibt nicht notwendigerweise eine Forderung an, dass die Schritte in dieser Reihenfolge auszuführen sind. Die Schritte der hier beschriebenen Prozesse können in jeder Reihenfolge ausgeführt werden, die zweckmäßig ist. Des Weiteren können einige Schritte gleichzeitig ausgeführt werden.
  • Wenn hier eine einzelne Einheit oder ein einzelner Gegenstand beschrieben ist, ist es in einfacher Weise klar, dass mehr als eine Einheit/ein Artikel (die möglicherweise zusammenwirken) anstelle einer einzelnen Einheit/eines einzelnen Gegenstands verwendet werden können. Wenn in ähnlicher Weise mehr als eine Einheit oder ein Gegenstand hier beschrieben werden (die möglicherweise zusammenwirken), ist es in einfacher Weise klar, dass anstelle der mehr als einen Einheit oder des mehr als einen Gegenstandes eine einzelne Einheit/ein einzelner Gegenstand verwendet werden kann oder eine andere Anzahl von Einheiten/Gegenständen anstelle der gezeigten Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalitäten und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten umgesetzt werden, die nicht explizit so beschrieben sind, dass sie diese Funktionalität/Merkmale aufweisen. Deswegen müssen andere Ausführungsformen der vorliegenden Erfindung die eigentliche Einheit nicht enthalten.
  • Die dargestellten Befehle der 5a, 5b und 6 zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. In alternativen Ausführungsformen können bestimmte Befehle in einer anderen Reihenfolge ausgeführt werden, können modifiziert oder entnommen sein. Darüber hinaus können Schritte zu der oben beschriebenen Logik hinzugefügt werden und trotzdem den beschriebenen Ausführungsformen entsprechen. Ferner können hier beschriebene Befehle nacheinander auftreten oder bestimmte Befehle können parallel verarbeitet werden. Befehle können ferner durch eine einzelne Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten ausgeführt werden.
  • Die vorhergehende Beschreibung von verschiedenen Ausführungsformen der Erfindung wurde für den Zweck der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue Form, die offenbart wurde, beschränken. Viele Modifikationen und Variationen sind im Licht der obigen Erkenntnisse möglich. Es ist vorgesehen, dass der Umfang der Erfindung nicht durch diese genaue Beschreibung, sondern durch die daran angefügten Ansprüche beschränkt sein soll. Die obige Spezifikation, Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und Verwendung der Anordnung der Erfindung bereit. Da viele Ausführungsformen der Erfindung gemacht werden können, ohne vom Erfindungsgedanken oder Umfang der Erfindung abzuweichen, wohnt die Erfindung den Ansprüchen inne, die im Folgenden angefügt sind.
  • Zusätzlich zu den oben beschriebenen Ausführungsformen kann hier eine Reihe von zusätzlichen Ausführungsformen erwähnt werden.
  • In einer Ausführungsform des Computerprogrammproduktes zum Verschlüsseln unter Verwendung von Programmcode, der in einem Client ausgeführt werden kann, kann der erste Abschnitt der Segmente in Reaktion auf die Feststellung, dass jene Segmente nicht bereits auf dem Server gespeichert sind, gesendet werden, wobei der zweite Abschnitt die Segmente aufweisen kann, die nicht im ersten Abschnitt enthalten sind, wobei der zweite Abschnitt der Segmente in Reaktion auf die Feststellung, dass der zweite Abschnitt nicht bereits im Server gespeichert ist, gesendet werden kann.
  • In einer Ausführungsform des eben erwähnten Computerprogrammproduktes können die Befehle ferner aufweisen das Vorhalten eines gemeinsam genutzten Schlüssels; und das Verschlüsseln des zweiten Abschnittes der Segmente mit dem gemeinsam genutzten Schlüssel, um einen verschlüsselten zweiten Abschnitt der Segmente zu erzeugen, wobei der zweite Abschnitt der Segmente, die zu dem Server gesendet werden, den verschlüsselten zweiten Abschnitt der Segmente aufweisen kann.
  • In einer Ausführungsform des eben erwähnten Computerprogrammproduktes können die Befehle ferner das Verwenden einer Kurzfassung jedes Segments in dem Datenobjekt zum Identifizieren der Segmente in dem Client und dem Server aufweisen, wobei die Kurzfassung aus dem Segment berechnet werden kann, das mit dem gemeinsam genutzten Schlüssel oder dem privaten Schlüssel des Client verschlüsselt ist.
  • In einer Ausführungsform des eben erwähnten Computerprogrammproduktes kann der erste Abschnitt der Segmente ein erstens Segment in dem Datenobjekt aufweisen, wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthalten kann, die dem ersten Segment folgen.
  • In einer Ausführungsform des eben erwähnten Computerprogrammproduktes können die Befehle ferner das Empfangen einer Kennung von dem Server; das Verschlüsseln der Kennung mit dem privaten Schlüssel des Client, um eine verschlüsselte Kennung zu erzeugen; und das Übertragen der verschlüsselten Kennung zu dem Server aufweisen.
  • In einer Ausführungsform des eben erwähnten Computerprogrammproduktes können die Befehle ferner das Senden einer Anforderung zu dem Server, um das Datenobjekt wiederherzustellen; das Empfangen der verschlüsselten Kennung von dem Server in Reaktion auf die Anforderung zum Wiederherstellen; das Entschlüsseln der verschlüsselten Kennung mit dem privaten Schlüssel des Client, um eine entschlüsselte Kennung zu erzeugen; das Übertragen der entschlüsselten Kennung zu dem Server; und das Empfangen des zweiten Abschnittes der Segmente von dem Server in Reaktion darauf, dass der Server die entschlüsselte Kennung empfängt, aufweisen.
  • In einer Ausführungsform des Computerprogrammproduktes zum Verschlüsseln eines Datenobjekts in einem Speicher mit Programmcode, der in einem Server ausgeführt werden kann, können die Befehle das Vorhalten eines gemeinsam genutzten Schlüssels, der durch Clients verwendet wird, um Daten für den Server zu verschlüsseln und zu entschlüsseln, wobei der empfangene zweite Abschnitt der Segmente mit dem gemeinsam genutzten Schlüssel verschlüsselt sein kann, aufweisen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammproduktes können die Befehle ferner das Verwenden einer Kurzfassung jedes Segments in dem Datenobjekt, um die Segmente im Client und im Server zu identifizieren, wobei die Kurzfassung aus dem Segment berechnet werden kann, das mit dem gemeinsam genutzten Schlüssel oder dem privaten Schlüssel des Client verschlüsselt ist, aufweisen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammprodukts kann der erste Abschnitt der Segmente ein erstes Segment im Datenobjekt aufweisen, wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthalten kann, die dem ersten Segment folgen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammproduktes können die Befehle ferner das Erzeugen einer Kennung zum Speichern für den Client; das Übertragen der Kennung zu dem Client; das Empfangen einer verschlüsselten Kennung von dem Client, die die mit dem privaten Schlüssel des Client verschlüsselte Kennung aufweist; und das Zuordnen der verschlüsselten Kennung und der Kennung zu dem Datenobjekt aufweisen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammprodukts kann das Vorhalten von Informationen über Datenobjekte von mehreren Clients enthalten sein, wobei jeder der Clients einen eindeutigen privaten Schlüssel des Client aufweisen kann, wobei jedes der Datenobjekte einen mit dem privaten Schlüssel des Client verschlüsselten ersten Abschnitt der Segmente des Client, von dem das Datenobjekt stammt, und einen nicht mit dem privaten Schlüssel des Client verschlüsselten zweiten Abschnitt der Segmente enthalten kann, und wobei Segmente in den gespeicherten Datenobjekten mit privaten Client-Schlüsseln von mehreren Clients verschlüsselte Segmente und mit einem gemeinsam genutzten Schlüssel verschlüsselte Segmente enthalten können, wobei die Befehle zum Empfangen einer Angabe des Datenobjektes, Empfangen des ersten Abschnittes, Empfangen des zweiten Abschnittes, Speichern der empfangenen ersten und zweiten Abschnitte, Erzeugen der Kennung, Übertragen der Kennung, Empfangen der verschlüsselten Kennung und Zuordnen der verschlüsselten Kennung und der Kennung zu dem Datenobjekt für jedes der Datenobjekte von den Clients ausgeführt werden können.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammproduktes können die Befehle ferner das Empfangen einer Anforderung zum Wiederherstellen des Datenobjektes von dem Client; das Senden der verschlüsselten Kennung zu dem Client; das Empfangen einer Antwort von dem Client, die eine angebliche unverschlüsselte Kennung enthält; das Feststellen, ob die angebliche unverschlüsselte Kennung mit der Kennung, die dem Datenobjekt zugeordnet ist, übereinstimmen kann; und das Übertragen des zweiten Abschnittes der Segmente in dem Datenobjekt zu dem Client zum Wiederherstellen in Reaktion auf die Feststellung, dass die angebliche unverschlüsselte Kennung mit der Kennung, die dem Datenobjekt zugeordnet ist, übereinstimmen kann, aufweisen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammproduktes können die Befehle ferner das Senden des ersten Abschnittes der mit dem privaten Schlüssel des Client verschlüsselten Segmente zu dem Client vor dem Empfangen der die angebliche unverschlüsselte Kennung enthaltenden Antwort vom Client aufweisen.
  • In einer Ausführungsform des vom Server ausführbaren Computerprogrammproduktes können die Befehle ferner das Vorhalten von Informationen über Datenobjekte von mehreren Clients, wobei jeder der Clients einen eindeutigen privaten Client-Schlüssel aufweisen kann, wobei jedes der Datenobjekte einen mit dem privaten Schlüssel des Client verschlüsselten ersten Abschnitt der Segmente des Client, von dem das Datenobjekt stammt, und einen nicht mit dem privaten Schlüssel des Client verschlüsselten zweiten Abschnitt der Segmente enthalten kann, und wobei wenigstens zwei der Datenobjekte von wenigstens zwei der Clients wenigstens ein gemeinsames Segment in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten können; und das Speichern lediglich einer Kopie des wenigstens einen gemeinsamen Segmentes, das in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten ist, aufweisen.
  • In einer Ausführungsform des Systems, das mit einem Server in Verbindung steht, der Segmente von Daten in mehreren Datenobjekten in einer Speichereinrichtung speichert, kann der erste Abschnitt der Segmente in Reaktion auf die Feststellung, dass jene Segmente nicht bereits in dem Server gespeichert sind, gesendet werden, wobei der zweite Abschnitt die Segmente, die nicht im ersten Abschnitt enthalten sind, aufweisen kann, wobei der zweite Abschnitt der Segmente in Reaktion auf die Feststellung, dass der zweite Abschnitt nicht bereits in dem Server gespeichert ist, gesendet werden kann.
  • In einer Ausführungsform des Systems, das mit einem Server in Verbindung steht, kann der erste Abschnitt der Segmente ein erstes Segment in dem Datenobjekt aufweisen, wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthalten kann, die dem ersten Segment folgen.
  • In einer Ausführungsform des Systems, das mit einem Server in Verbindung steht, können die Befehle ferner das Empfangen einer Kennung von dem Server; das Verschlüsseln der Kennung mit dem privaten Schlüssel des Client, um eine verschlüsselte Kennung zu erzeugen; das Übertragen der verschlüsselten Kennung zu dem Server aufweisen.
  • In einer Ausführungsform des Systems, das mit einer Speichereinrichtung und einem Client, der computerlesbaren Programmcode aufweist, der durch den Client ausgeführt werden soll, in Verbindung steht, kann der erste Abschnitt der Segmente ein erstes Segment in dem Datenobjekt aufweisen, wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthalten kann, die dem ersten Segment folgen.
  • In einer Ausführungsform des eben erwähnten client-bezogenen Systems können die Befehle ferner das Erzeugen einer Kennung zur Speicherung für den Client; das Übertragen der Kennung zu dem Client; das Empfangen einer verschlüsselten Kennung von dem Client, die die mit dem privaten Schlüssel des Client verschlüsselte Kennung aufweist; und das Zuordnen der verschlüsselten Kennung und der Kennung zu dem Datenobjekt aufweisen.
  • In einer Ausführungsform des eben erwähnten client-bezogenen Systems können die Befehle ferner das Vorhalten von Informationen über Datenobjekte von mehreren Clients, wobei jeder der Clients einen eindeutigen privaten Client-Schlüssel aufweisen kann, wobei jedes der Datenobjekte einen mit dem privaten Schlüssel des Client verschlüsselten ersten Abschnitt der Segmente des Client, von dem das Datenobjekt stammt, und einen nicht mit dem privaten Schlüssel des Client verschlüsselten zweiten Abschnitt der Segmente enthalten kann, und wobei wenigstens zwei der Datenobjekte von wenigstens zwei der Clients wenigstens ein gemeinsames Segment in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten können; und das Speichern lediglich einer Kopie des wenigstens einen gemeinsamen Segmentes, das in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten ist, aufweisen.
  • In einer Ausführungsform des Verfahrens, bei dem vorgesehen ist, dass ein privater Schlüssel des Client lediglich durch einen Client vorgehalten wird, kann der erste Abschnitt der Segmente in Reaktion auf die Feststellung, dass jene Segmente nicht bereits auf dem Server gespeichert sind, gesendet werden, wobei der zweite Abschnitt die Segmente, die nicht im ersten Abschnitt vorhanden sind, aufweisen kann, wobei der zweite Abschnitt der Segmente in Reaktion auf die Feststellung, dass der zweite Abschnitt nicht bereits in dem Server gespeichert ist, gesendet werden kann.
  • In einer Ausführungsform des eben erwähnten Verfahrens kann der erste Abschnitt der Segmente ein erstes Segment in dem Datenobjekt aufweisen, wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthalten kann, die dem ersten Segment folgen.
  • In einer Ausführungsform des eben erwähnten Verfahrens kann das Verfahren ferner das Empfangen einer Kennung von dem Server; das Verschlüsseln der Kennung mit dem privaten Schlüssel des Client, um eine verschlüsselte Kennung zu erzeugen; und das Übertragen der verschlüsselten Kennung zu dem Server aufweisen.
  • In einer Ausführungsform des Verfahrens, das das Empfangen einer Angabe eines Datenobjekts von Segmenten zur Speicherung für den Client in einer Speichereinrichtung aufweisen kann, weist der erste Abschnitt der Segmente ein erstes Segment in dem Datenobjekt auf, und wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthält, die dem ersten Segment folgen.
  • In einer Ausführungsform des eben erwähnten Verfahrens kann das Verfahren ferner das Erzeugen einer Kennung zur Speicherung für den Client; das Übertragen der Kennung zu dem Client; das Empfangen einer verschlüsselten Kennung von dem Client, die den mit dem privaten Schlüssel des Client verschlüsselte Kennung aufweist; und das Zuordnen der verschlüsselten Kennung und der Kennung zu dem Datenobjekt aufweisen.
  • In einer Ausführungsform des eben erwähnten Verfahrens kann das Verfahren ferner das Vorhalten von Informationen über Datenobjekte von mehreren Clients, wobei jeder der Clients einen eindeutigen privaten Client-Schlüssel aufweisen kann, wobei jedes der Datenobjekte einen mit dem privaten Schlüssel des Client verschlüsselten ersten Abschnitt der Segmente des Client, von dem das Datenobjekt stammt, und einen nicht mit dem privaten Schlüssel des Client verschlüsselten zweiten Abschnitt der Segmente enthalten kann, und wobei wenigstens zwei der Datenobjekte von wenigstens zwei der Clients wenigstens ein gemeinsames Segment in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten können; und das Speichern lediglich einer Kopie des wenigstens einen gemeinsamen Segments, das in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten sein kann, aufweisen.

Claims (14)

  1. Verfahren, das aufweist: Vorhalten eines privaten Schlüssels des Client, wobei vorgesehen ist, dass er lediglich durch einen Client vorgehalten wird; Erzeugen eines Datenobjekts von Segmenten zur Speicherung im Server, wobei der Server die Segmente in einer Speichereinrichtung speichert; Verschlüsseln eines ersten Abschnittes der Segmente in dem Datenobjekt mit dem privaten Schlüssel des Client; Senden des ersten Abschnittes der Segmente in dem Datenobjekt, die mit dem privaten Schlüssel des Client verschlüsselt sind, zur Speicherung zu dem Server; Verschlüsseln eines zweiten Abschnittes der Segmente in dem Datenobjekt mit einem gemeinsam genutzten Schlüssel, um einen verschlüsselten zweiten Abschnitt der Segmente zu erzeugen, Ermitteln einer Kennung des zweiten Abschnittes der Segmente, Nutzen der ermittelten Kennung, um zu festzustellen, ob der zweite Abschnitt der Segmente in dem Server gespeichert ist, Senden des zweiten verschlüsselten Abschnittes der Segmente an den Server in Reaktion auf die Feststellung, dass der zweite Abschnitt der Segmente nicht in dem Server gespeichert ist, und Senden einer Kennung für jedes Segment in dem zweiten Abschnitt der Segmente des Datenobjektes in Reaktion auf die Feststellung, dass der zweite Abschnitt der Segmente bereits in dem Server gespeichert ist.
  2. Das Verfahren nach Anspruch 1, wobei der zweite Abschnitt Segmente aufweist, die nicht in dem ersten Abschnitt enthalten sind.
  3. Das Verfahren nach Anspruch 1, wobei der erste Abschnitt der Segmente ein erstes Segment im Datenobjekt aufweist und wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthält, die dem ersten Segment folgen.
  4. Das Verfahren nach Anspruch 1, ferner aufweisend Empfangen einer Kennung von dem Server, Verschlüsseln der Kennung mit dem privaten Schlüssel des Client, um eine verschlüsselte Kennung zu erzeugen, und Übertragen der verschlüsselten Kennung an dem Server.
  5. Das Verfahren nach Anspruch 1, ferner aufweisend Senden einer Anforderung zum Wiederherstellen des Datenobjektes zu dem Server; Empfangen der verschlüsselten Kennung von dem Server in Reaktion auf die Anforderung zum Wiederherstellen; Entschlüsseln der verschlüsselten Kennung mit dem privaten Schlüssel des Client, um eine entschlüsselte Kennung zu erzeugen; Übertragen der entschlüsselten Kennung zu dem Server; und Empfangen des zweiten Abschnittes der Segmente von dem Server in Reaktion darauf, dass der Server die entschlüsselte Kennung empfängt.
  6. Das Verfahren nach Anspruch 1, ferner aufweisend Verwenden einer Kurzfassung jedes Segmentes in dem Datenobjekt, um die Segmente im Client und im Server zu identifizieren, wobei die Kurzfassung aus dem mit dem gemeinsam genutzten Schlüssel oder dem privaten Schlüssel des Client verschlüsselten Segment berechnet wird.
  7. Verfahren, das aufweist: Vorhalten von Informationen über Datenobjekte von mehreren Clients, wobei jeder der Clients einen eindeutigen privaten Client-Schlüssel aufweist, wobei jedes der Datenobjekte einen mit dem privaten Schlüssel des Client verschlüsselten ersten Abschnitt der Segmente des Client, von dem das Datenobjekt stammt, und einen nicht mit dem privaten Schlüssel des Client verschlüsselten zweiten Abschnitt der Segmente enthält, und wobei wenigstens zwei der Datenobjekte von wenigstens zwei der Clients wenigstens ein gemeinsames Segment in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte aufweisen; und Speichern lediglich einer Kopie des wenigstens einen gemeinsamen Segmentes, das in den zweiten Abschnitten der Segmente der wenigstens zwei Datenobjekte enthalten ist Empfangen einer Angabe eines Datenobjekts von Segmenten zur Speicherung für den Client in einer Speichereinrichtung; Empfangen eines ersten Abschnittes der Segmente in dem Datenobjekt, der mit dem privaten Schlüssel des Client verschlüsselt ist; Empfangen eines zweiten Abschnittes der Segmente in dem Datenobjekt, der nicht mit dem privaten Schlüssel des Client verschlüsselt ist; und Speichern der empfangenen ersten und zweiten Abschnitte der Segmente für das Datenobjekt.
  8. Verfahren nach Anspruch 7, wobei der erste Abschnitt der Segmente ein erstes Segment im Datenobjekt aufweist und wobei der zweite Abschnitt der Segmente Segmente in dem Datenobjekt enthält, die dem ersten Segment folgen.
  9. Verfahren nach Anspruch 7, ferner aufweisend Erzeugen einer Kennung zur Speicherung für den Client; Übertragen der Kennung zu dem Client; Empfangen einer verschlüsselten Kennung von dem Client, die die mit dem privaten Schlüssel des Client verschlüsselte Kennung aufweist; und Zuordnen der verschlüsselten Kennung und der Kennung zu dem Datenobjekt.
  10. Verfahren nach Anspruch 7, ferner aufweisend Empfangen einer Anforderung zum Wiederherstellen des Datenobjektes von dem Client; Senden der verschlüsselten Kennung zu dem Client; Empfangen einer Antwort von dem Client, die eine angebliche unverschlüsselte Kennung enthält; Feststellen, ob die angebliche unverschlüsselte Kennung mit der Kennung, die dem Datenobjekt zugeordnet ist, übereinstimmt; und Übertragen des zweiten Abschnittes der Segmente in dem Datenobjekt zu dem Client zum Wiederherstellen in Reaktion auf die Feststellung, dass die angebliche unverschlüsselte Kennung mit der Kennung, die dem Datenobjekt zugeordnet ist, übereinstimmt.
  11. Verfahren nach Anspruch 7, ferner aufweisend Senden des ersten Abschnittes der mit dem privaten Schlüssel des Client verschlüsselten Segmente zu dem Client vor dem Empfangen der Antwort von dem Client, die die angebliche unverschlüsselte Kennung enthält.
  12. System, das mit einem Server in Verbindung steht, aufweisend einen Prozessor und ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der durch den Prozessor ausgeführt wird, um Befehle auszuführen, um das Verfahren nach Anspruch 1 bis 6 auszuführen.
  13. System, das mit einer Speichereinrichtung und einem Client in Verbindung steht, aufweisend einen Prozessor und ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der durch den Prozessor ausgeführt wird, um Befehle auszuführen, um das Verfahren nach Anspruch 7 bis 11 auszuführen.
  14. Computerprogrammprodukt zum Verschlüsseln eines Datenobjektes in einer Speichereinrichtung, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darauf verkörpertem computerlesbarem Programmcode aufweist, der entweder in einem Client ausgeführt wird, um ein Verfahren nach einem der Ansprüche 1 bis 6 auszuführen, oder in einem Server ausgeführt wird, um ein Verfahren nach einem der Ansprüche 7 bis 11 auszuführen.
DE102012219155.0A 2011-10-21 2012-10-19 Verschlüsseln von Datenobjekten zur Datensicherung Active DE102012219155B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/279,017 2011-10-21
US13/279,017 US8769310B2 (en) 2011-10-21 2011-10-21 Encrypting data objects to back-up

Publications (2)

Publication Number Publication Date
DE102012219155A1 DE102012219155A1 (de) 2013-04-25
DE102012219155B4 true DE102012219155B4 (de) 2017-02-02

Family

ID=48051510

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012219155.0A Active DE102012219155B4 (de) 2011-10-21 2012-10-19 Verschlüsseln von Datenobjekten zur Datensicherung

Country Status (2)

Country Link
US (2) US8769310B2 (de)
DE (1) DE102012219155B4 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101917749B1 (ko) * 2011-12-09 2018-11-14 삼성전자주식회사 방송 수신 장치, 서버, 방송 수신 장치의 제어 방법, 및 서버의 제어 방법
US9052824B2 (en) * 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups
US9037856B2 (en) * 2012-07-18 2015-05-19 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9547774B2 (en) 2012-07-18 2017-01-17 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
GB2520056A (en) 2013-11-08 2015-05-13 Ibm Digital data retention management
WO2015152935A1 (en) * 2014-04-04 2015-10-08 Hewlett-Packard Development Company, L.P. Storing and retrieving ciphertext in data storage
US10430599B1 (en) * 2014-06-30 2019-10-01 EMC IP Holding Company LLC Filekey access to data
CN105279043B (zh) * 2014-07-24 2018-07-27 清华大学 一种对单片机软件错误进行恢复的方法及系统
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
JP6460765B2 (ja) * 2014-12-09 2019-01-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム
US10198589B2 (en) 2015-01-03 2019-02-05 Mcafee, Llc Secure distributed backup for personal device and cloud data
DE102015200955A1 (de) * 2015-01-21 2016-07-21 Continental Teves Ag & Co. Ohg Verfahren zum Verarbeiten einer Fahrzeug-zu-X-Nachricht, elektronische Steuerungsvorrichtung und Speichermedium
US9921910B2 (en) * 2015-02-19 2018-03-20 Netapp, Inc. Virtual chunk service based data recovery in a distributed data storage system
US10191914B2 (en) 2015-03-31 2019-01-29 EMC IP Holding Company LLC De-duplicating distributed file system using cloud-based object store
US9916458B2 (en) * 2015-03-31 2018-03-13 EMC IP Holding Company LLC Secure cloud-based storage of data shared across file system objects and clients
US9906361B1 (en) 2015-06-26 2018-02-27 EMC IP Holding Company LLC Storage system with master key hierarchy configured for efficient shredding of stored encrypted data items
US9779269B1 (en) * 2015-08-06 2017-10-03 EMC IP Holding Company LLC Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants
US9992175B2 (en) * 2016-01-08 2018-06-05 Moneygram International, Inc. Systems and method for providing a data security service
US20170220464A1 (en) * 2016-01-28 2017-08-03 Pure Storage, Inc. Efficiently managing encrypted data on a remote backup server
CN108885748A (zh) 2016-02-23 2018-11-23 区块链控股有限公司 用于区块链的加密货币的通用令牌化系统
CN115549887A (zh) 2016-02-23 2022-12-30 恩链控股有限公司 用于信息的安全交换的公共秘密的确定和层级确定性密钥
EP4369273A2 (de) 2016-02-23 2024-05-15 nChain Licensing AG Verfahren und system zur sicherung von computersoftware unter verwendung einer verteilten hash-tabelle und einer blockchain
CA3014737A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
CA3014748C (en) 2016-02-23 2024-03-12 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
GB2561729A (en) * 2016-02-23 2018-10-24 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
EA201891830A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Система и способ управления действиями, связанными с активами, посредством блокчейна
EP3420669B1 (de) 2016-02-23 2021-03-24 Nchain Holdings Limited Kryptographisches verfahren und system zur sicheren extraktion von daten aus einer blockkette
WO2017145019A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
GB2558484A (en) 2016-02-23 2018-07-11 Nchain Holdings Ltd A method and system for the secure transfer of entities on a blockchain
KR20180115727A (ko) 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 보안 투표 및 분배에서 사용을 위한 블록체인 구현 카운팅 시스템 및 방법
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
WO2017203322A1 (en) * 2016-05-23 2017-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Obscured retrieval sequence for information centric networking (icn) encoded video streams
US9794061B1 (en) * 2016-06-14 2017-10-17 Storagecraft Technology Corporation Consolidating encrypted image backups without decryption
US11025600B1 (en) * 2017-11-08 2021-06-01 Massachusetts Institute Of Technology System for de-duplicating network coded distributed storage and related techniques
KR20190057702A (ko) * 2017-11-20 2019-05-29 에이치피프린팅코리아 유한회사 클라우드를 이용한 데이터 백업
US11153094B2 (en) * 2018-04-27 2021-10-19 EMC IP Holding Company LLC Secure data deduplication with smaller hash values
WO2020005853A1 (en) 2018-06-25 2020-01-02 Virtual Software Systems, Inc. Systems and methods for securing communications
US11128460B2 (en) 2018-12-04 2021-09-21 EMC IP Holding Company LLC Client-side encryption supporting deduplication across single or multiple tenants in a storage system
US11256433B2 (en) * 2019-03-15 2022-02-22 Netapp, Inc. Aggregate inline deduplication with volume granular encryption
US11546350B2 (en) * 2019-05-07 2023-01-03 Qualcomm Incorporated Data provenance
KR20220140639A (ko) * 2019-05-22 2022-10-18 묘타, 인크. 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템
US11019033B1 (en) 2019-12-27 2021-05-25 EMC IP Holding Company LLC Trust domain secure enclaves in cloud infrastructure
US11546137B2 (en) * 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11184160B2 (en) 2020-02-26 2021-11-23 International Business Machines Corporation Channel key loading in a computing environment
US11489821B2 (en) * 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
US11652616B2 (en) 2020-02-26 2023-05-16 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11606277B2 (en) * 2021-02-10 2023-03-14 Cohesity, Inc. Reducing the impact of network latency during a restore operation
JP7387679B2 (ja) * 2021-07-12 2023-11-28 株式会社日立製作所 バックアップシステム及び方法
US20230169185A1 (en) * 2021-11-29 2023-06-01 Ppip Llc Device Independent Crypto Engine

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10041514C2 (de) * 2000-08-24 2003-03-27 Stefan Priebsch Verfahren zur Wahrung der Vertraulichkeit von Anwenderdaten bei deren Speicherung und Bearbeitung auf einem zentralen Rechner eines Betreibers
DE19925910B4 (de) * 1999-06-07 2005-04-28 Siemens Ag Verfahren zum Be- oder Verarbeiten von Daten
US20050131905A1 (en) * 2000-02-18 2005-06-16 Margolus Norman H. Data repository and method for promoting network storage of data
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
WO2011084894A2 (en) * 2010-01-06 2011-07-14 Memoir Systems, Inc. System and method for storing data off site
US8041641B1 (en) * 2006-12-19 2011-10-18 Symantec Operating Corporation Backup service and appliance with single-instance storage of encrypted data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265164A (en) 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem
EP1471405A4 (de) 2001-11-12 2010-01-13 Gerite Associates Ltd Verfahren und einrichtung zum schutz von informationen vor unautorisierter benutzung
US7281006B2 (en) * 2003-10-23 2007-10-09 International Business Machines Corporation System and method for dividing data into predominantly fixed-sized chunks so that duplicate data chunks may be identified
WO2006003632A2 (en) 2004-07-02 2006-01-12 Philips Intellectual Property & Standards Gmbh Security unit and method for protecting data
US8572387B2 (en) * 2006-07-26 2013-10-29 Panasonic Corporation Authentication of a peer in a peer-to-peer network
WO2008127309A2 (en) * 2006-11-07 2008-10-23 Security First Corporation Systems and methods for distributing and securing data
GB2446169A (en) * 2006-12-01 2008-08-06 David Irvine Granular accessibility to data in a distributed and/or corporate network
US8199911B1 (en) * 2008-03-31 2012-06-12 Symantec Operating Corporation Secure encryption algorithm for data deduplication on untrusted storage
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US8620877B2 (en) * 2008-04-30 2013-12-31 International Business Machines Corporation Tunable data fingerprinting for optimizing data deduplication
US8117464B1 (en) * 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8204868B1 (en) * 2008-06-30 2012-06-19 Symantec Operating Corporation Method and system for improving performance with single-instance-storage volumes by leveraging data locality
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
KR101222129B1 (ko) * 2008-12-22 2013-01-15 한국전자통신연구원 메타데이터 서버 및 메타데이터 서버의 디스크볼륨 선정 방법
EP2441260B1 (de) 2009-06-09 2020-02-12 EMC Corporation Segmentdeduplizierungssystem mit verschlüsselungselementen
US8930686B2 (en) * 2009-12-23 2015-01-06 International Business Machines Corporation Deduplication of encrypted data
US8401185B1 (en) * 2010-02-01 2013-03-19 Symantec Corporation Systems and methods for securely deduplicating data owned by multiple entities
US8473740B2 (en) * 2011-05-09 2013-06-25 Xerox Corporation Method and system for secured management of online XML document services through structure-preserving asymmetric encryption
EP2710510A4 (de) * 2011-05-14 2015-05-06 Bitcasa Inc Cloud-dateisystem mit serverseitiger entduplizierung von dem benutzer unbekannten verschlüsselten dateien

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19925910B4 (de) * 1999-06-07 2005-04-28 Siemens Ag Verfahren zum Be- oder Verarbeiten von Daten
US20050131905A1 (en) * 2000-02-18 2005-06-16 Margolus Norman H. Data repository and method for promoting network storage of data
DE10041514C2 (de) * 2000-08-24 2003-03-27 Stefan Priebsch Verfahren zur Wahrung der Vertraulichkeit von Anwenderdaten bei deren Speicherung und Bearbeitung auf einem zentralen Rechner eines Betreibers
US8041641B1 (en) * 2006-12-19 2011-10-18 Symantec Operating Corporation Backup service and appliance with single-instance storage of encrypted data
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
WO2011084894A2 (en) * 2010-01-06 2011-07-14 Memoir Systems, Inc. System and method for storing data off site

Also Published As

Publication number Publication date
US8769310B2 (en) 2014-07-01
US20130101113A1 (en) 2013-04-25
DE102012219155A1 (de) 2013-04-25
US8762743B2 (en) 2014-06-24
US20130103945A1 (en) 2013-04-25

Similar Documents

Publication Publication Date Title
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
US11288234B2 (en) Placement of data fragments generated by an erasure code in distributed computational devices based on a deduplication factor
US9984006B2 (en) Data storage systems and methods
EP3195556B1 (de) Verteilte datenspeicherung mittels berechtigungstoken
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
US9256613B2 (en) Systems, methods, and computer program products for secure multi-enterprise storage
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112012003056T5 (de) Virtueller Computer und virtueller Dienst
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
CN112889054A (zh) 多租户数据库管理系统中数据库加密的系统和方法
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE102016102424A1 (de) Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen
US20220027319A1 (en) Data deduplication in blockchain platforms
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
US9977912B1 (en) Processing backup data based on file system authentication
DE102021129514A1 (de) Binden von post-quanten-zertifikaten
US20140236898A1 (en) System and method for facilitating electronic discovery
US20180255034A1 (en) System and method for encrypted document co-editing
DE112019001957T5 (de) Sichere operationen mit verschlüsselten daten
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
Akingbade Cloud Storage problems, benefits and solutions provided by Data De-duplication

Legal Events

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

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELL, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R016 Response to examination communication
R016 Response to examination communication
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R084 Declaration of willingness to licence
R020 Patent grant now final