DE102012219155B4 - Verschlüsseln von Datenobjekten zur Datensicherung - Google Patents
Verschlüsseln von Datenobjekten zur Datensicherung Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, 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
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 DokumentDE 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 - Das Dokument
WO 2011/084849 A2 - 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 - 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 und5b 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 von7 . -
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 Client2 und einem Server4 , um Daten von dem Client2 in der Speichereinrichtung6 zu sichern. Der Client hält Datenobjekte8 wie etwa Dateien oder Objekte vor und hält Client-Objektinformationen10 vor, die Metadaten für jedes Datenobjekt aufweisen, einschließlich einer geordneten Liste von Datenblöcken, die jedem Datenobjekt zugewiesen sind. Der Client2 enthält ein Betriebssystem12 , um Datenobjekte8 in dem Client2 zu erzeugen und vorzuhalten, wobei die Datenobjekte8 in einer lokalen Speichereinrichtung im Client2 gespeichert werden können. Um Datenobjekte8 in dem Client2 zu sichern, überträgt ein Client-Sicherungsmanager14 Segmente in den Datenobjekten8 zu einem Server-Sicherungsmanager16 in dem Server4 . In bestimmten Ausführungsformen sendet der Client2 als Teil der Deduplizierung lediglich Segmente, die nicht bereits in dem Server4 gespeichert sind. - Der Server-Sicherungsmanager
16 hält Server-Objektinformationen18 über Segmente vor, die Datenobjekten zugewiesen sind, die von einem oder mehreren Clients2 bereitgestellt werden. Des Weiteren kann der Server-Sicherungsmanager16 einen Deduplizierungsindex20 vorhalten, um lediglich eine Kopie eines Segments in der Speichereinrichtung6 zu speichern, obwohl ein Segment in mehreren Datenobjekten enthalten sein kann. Der Server4 kann ferner Segment-Speicherinformationen22 vorhalten, die in der Speichereinrichtung6 einen Speicherplatz jedes Segments angeben, das in den Datenobjekten enthalten ist, die in der Speichereinrichtung6 gesichert werden. - Die Komponenten von Client
2 und Server4 kommunizieren über eine Verbindung24 . In einer Ausführungsform können der Client2 und der Server4 separate Computersysteme aufweisen und die Verbindung24 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 Client2 und Server4 auf einer einzelnen Computersystem-Plattform umgesetzt sein und die Verbindung24 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 Client2 bekannt sein soll und der verwendet wird, um einen ersten Abschnitt von Segmenten wie etwa das erste Segment des Datenobjektes8 , das zur Sicherung an den Server4 gesendet wird, zu verschlüsseln. Der Server4 kann einen gemeinsam genutzten Schlüssel (SS)30 mit dem Client2 teilen, um Segmente der Datenobjekte, die zwischen dem Client2 und dem Server4 als Teil von Sicherungs- und Wiederherstellungsbefehlen gesendet werden, zu verschlüsseln. Der Server kann den gemeinsam genutzten Schlüssel30 mit mehreren Clients teilen, um Segmente zu verschlüsseln. Der Server4 kann verschlüsselte Segmente, die mit dem gemeinsam genutzten Schlüssel (SS) verschlüsselt sind, in der Speichereinrichtung6 speichern, um die Sicherheit von Segmenten, die in dem Server4 gespeichert sind, zu verbessern. In einer alternativen Ausführungsform kann der Server4 die Segmente von Datenobjekten vom Client2 unverschlüsselt speichern und mit dem gemeinsam genutzten Schlüssel (SS) verschlüsseln, wenn sie zum Client2 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üssel30 , der von Clients2 und Server4 verwendet wird, kann denselben symmetrischen Schlüssel aufweisen. Die Schlüssel28 und30 können alternativ gemäß einer Kryptografie mit öffentlichem Schlüssel unter Verwendung einer Technologie mit asymmetrischem Schlüssel erzeugt werden. Der Server4 kann z.B. einen privaten Schlüssel vorhalten und den öffentlichen Schlüssel mit Clients2 teilen, den die Clients2 verwenden können, um Segmente zu verschlüsseln, die zu dem Server4 gesendet werden, die mit dem privaten Schlüssel des Servers entschlüsselt werden können. Der Server kann Segmente zu den Clients2 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 Clients2 vorgehalten wird, entschlüsselt werden können. Weitere Schlüsselverschlüsselungstechniken, die in der Technik bekannt sind, können für den privaten Schlüssel28 des Client und den gemeinsam genutzten Schlüssel30 verwendet werden. In einer noch weiteren Ausführungsform ist es möglich, dass der gemeinsam genutzte Schlüssel30 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 Programme14 und16 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 Sicherungsmanager14 ,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-Objektinformationen50 für ein Datenobjekt, das in den Client-Objektinformationen50 vorgehalten wird. Die Client-Objektinformationen50 für ein Datenobjekt enthalten eine Datenobjektbezeichnung52 , die durch den Client2 dem Datenobjekt zugewiesen ist, wie etwa eine eindeutige Kennungsbezeichnung, und eine oder mehrere Segmentkennungen (Ci)54a ,54b , ...54n von Segmenten, die dem Client-Datenobjekt52 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 Objektinformationen50 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 Server4 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 Client2 als auch der Server4 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-Objektinformationen60 für ein Datenobjekt, das in den Server-Objektinformationen18 vorgehalten wird. Die Server-Objektinformationen60 für ein Datenobjekt enthalten die Client-Datenobjektbezeichnung62 , die dem Datenobjekt durch den Client2 zugewiesen ist, wie etwa die Datenobjektbezeichnung52 , die in den Client-Objektinformationen50 verwendet wird, und eine oder mehrere Segmentkennungen (Ci)64a ,64b ...64n von Segmenten, die dem Client-Datenobjekt52 zugewiesen sind, das die gleichen Segmentkennungen54a ,54b ...54n aufweist, die von dem Client2 zum Identifizieren der Segmente verwendet werden. Die Segmentkennungen64a ,64b ...64n können aus den verschlüsselten Segmenten in dem Datenobjekt berechnet werden, die mit dem privaten Schlüssel28 des Client oder dem gemeinsam genutzten Schlüssel30 verschlüsselt sind. Die Server-Objektinformationen60 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üssel28 des Client verschlüsselt wird. -
4 veranschaulicht eine Ausführungsform eines Deduplizierungsindex-Eintrags70 , der durch den Server-Sicherungsmanager16 für jedes Segment, das in der Speichereinrichtung6 gespeichert ist, vorgehalten wird, die ein verschlüsseltes Segment aufweisen kann. Der Indexeintrag70 enthält eine Segmentkennung (ID)72 des Segmentes in der Speichereinrichtung6 wie etwa die Segmentkennung54a ...54n ,64a ...64n , die von den Clients2 und dem Server4 verwendet werden, und einen Speicherplatz74 , der die Speichereinrichtung6 angibt, die das Segment72 aufweist. Wenn festgelegt wird, ob eine Kopie des Segmentes zu dem Server4 zu senden ist, kann der Client2 die Segmentkennung (Ci) dem Server4 bereitstellen und der Server4 kann feststellen, ob ein Eintrag70 in dem Deduplizierungsindex20 eine Segmentkennung (Ci) aufweist, die mit der Segmentkennung des Segmentes übereinstimmt, das der Client2 als Teil eines Sicherungsbefehls an den Server4 zu senden versucht. Wenn es keine Übereinstimmung gibt, sendet der Client2 eine vollständige Kopie des Segmentes in dem Datenobjekt8 zum Sichern an den Server4 zur Speicherung in der Speichereinrichtung6 . Wenn der Deduplizierungsindex20 andernfalls eine übereinstimmende Kopie der Segmentkennung (Ci) aufweist, muss der Client-Sicherungsmanager14 keine vollständige Kopie des Segmentes senden. Der Client-Sicherungsmanager14 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 bis5b veranschaulichen eine Ausführungsform von Befehlen, die durch den Client-Sicherungsmanager14 und den Server-Sicherungsmanager16 ausgeführt werden, um im Client2 vorhandene Datenobjekte im Server4 zu sichern. Bei der Auslösung eines Befehls (im Block100 ) zum Sichern eines Datenobjekts8 verschlüsselt der Client-Sicherungsmanager14 (im Block102 ) ein erstes Segment (C1) in dem Datenobjekt mit dem privaten Schlüssel (PC) des Client und sendet (im Block104 ) das verschlüsselte erste Segment (eP(C1)) mit einer Sicherungsanforderung, die die Nummer des ersten Segmentes in dem Datenobjekt angibt, an den Server4 . Wenn in bestimmten Ausführungsformen verschlüsselte Segmente an den Server zur Sicherung gesendet werden, kann der Client-Sicherungsmanager14 die Segmentnummer oder die Ordnungszahl des Segmentes in dem Datenobjekt50 angeben oder der Server-Sicherungsmanager18 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-Sicherungsmanager14 feststellen, ob der Server4 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-Sicherungsmanager14 eine Kopie der Client-Objektinformationen50 senden, die die verschlüsselten Segmente54a ,54b ...54n angeben, die gesendet werden. - Nach dem Empfangen (im Block
106 ) des verschlüsselten ersten Segmentes in dem Datenobjekt50 bestimmt der Server-Sicherungsmanager16 (im Block108 ) die Segmentkennung (Ci) des verschlüsselten ersten Segmentes (eP(C1)). In einer Ausführungsform kann der Client-Sicherungsmanager14 die Segmentkennung bereitstellen oder die Segmentkennung kann berechnet werden, indem ein Kurzfassungs-Hash-Wert oder eine Kurzfassungsfunktion auf das verschlüsselte erste Segment54a angewendet wird. Der Server-Sicherungsmanager16 fügt (im Block110 ) die Segmentkennung (C1) für das erste empfangene Segment (eP(C1)) dem Speicherplatz64a des ersten Segmentes in den Server-Objektinformationen60 für das Client-Datenobjekt zur Sicherung hinzu. Alternativ kann der Server-Sicherungsmanager16 vom Client2 die Client-Objektinformationen50 mit den Segmentkennungen basierend auf den verschlüsselten Segmenten empfangen und diese Informationen verwenden, um die Server-Objektinformationen60 zu erzeugen. Der Server-Sicherungsmanager16 sendet (im Block112 ) den gemeinsam genutzten Schlüssel (SS)30 an den Client2 , der (im Block113 ) den gemeinsam genutzten Schlüssel30 für die Verwendung zum Verschlüsseln von Segmenten zur Sicherung in dem Datenobjekt empfängt. Der Client2 kann alternativ den gemeinsam genutzten Schlüssel30 von vorhergehenden Befehlen bereits aufweisen. Der Server-Sicherungsmanager16 erzeugt (im Block114 ) eine Kennung (I) wie etwa eine Zufallszahl für das Datenobjekt zur Sicherung und ordnet (im Block116 ) die Datenobjektkennung (I) den Server-Objektinformationen60 im Feld66 zu. Der Server-Sicherungsmanager16 sendet (im Block118 ) die Kennung (I)66 zu dem Client2 . - Nach dem Empfangen (im Block
120 ) der Datenobjektkennung (I)66 verschlüsselt das Client-Sicherungsprogramm14 (im Block122 ) die Kennung (I) mit dem privaten Schlüssel28 des Client, um eine verschlüsselte Kennung (I' = eP(I)) zu erzeugen und sendet (im Block124 ) die verschlüsselte Kennung (I') an den Server4 . Nach dem Empfangen (im Block126 ) der verschlüsselten Kennung (I') ordnet der Server-Sicherungsmanager16 (im Block128 ) die verschlüsselte Kennung (I') den Server-Objektinformationen60 zu, indem die Kennung (I') oder ein Zeiger auf (I') in das Feld68 aufgenommen wird. - In alternativen Ausführungsformen kann das Server-Sicherungsprogramm
16 eine Kennung (I) für den Client2 zur Verwendung für alle Datenobjekte vom Client2 erzeugen, so dass dann, wenn der Client2 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 Datenobjekt50 nach dem letzten gesendeten Segment wie etwa nach dem ersten oder einem nachfolgenden gesendeten Segment vorhanden ist, sendet der Client-Sicherungsmanager14 (im Block132 ) eine Nachricht "Ende des Datenobjektes" an den Server4 . Wenn andernfalls weitere Segmente in dem Client-Datenobjekt50 zum Senden vorhanden sind, geht der Client-Sicherungsmanager14 (im Block136 ) zum Block140 in5b über, um das nächste Segment54b ...54n mit dem gemeinsam genutzten Schlüssel (SS) zu verschlüsseln. Der Client-Sicherungsmanager14 ermittelt (im Block142 ) eine Segmentkennung (Ci) des verschlüsselten nächsten Segmentes wie etwa eine Kurzfassung di. Der Client-Sicherungsmanager14 führt eine Deduplizierung aus, so dass lediglich Segmente, die sich nicht bereits in der Speichereinrichtung6 befinden, gesendet werden. Der Client-Sicherungsmanager14 ermittelt (im Block144 ), ob das nächste verschlüsselte Segment (identifiziert durch die Segmentkennung (Ci)) bereits im Server4 gespeichert ist. Das kann aus einer Abfrage eines Deduplizierungsindex20 ermittelt werden, um festzustellen, ob ein Deduplizierungsindex-Eintrag70 vorhanden ist, der eine Segmentkennung72 aufweist, die mit jener des nächsten verschlüsselten Segmentes übereinstimmt, oder durch den Client-Sicherungsmanager14 ermittelt werden, der den Server-Sicherungsmanager16 oder eine Deduplizierungseinheit abfragt, ob das verschlüsselte Segment gesendet werden muss (z.B. ob die Segmentkennung des zu sendenden Segmentes nicht im Deduplizierungsindex20 enthalten ist). In bestimmten Ausführungsformen können die Segmentkennungen72 in den Deduplizierungsindex-Einträgen70 aus dem verschlüsselten Segment ermittelt oder berechnet werden. - Wenn (im Block
144 ) das nächste zu sendende Segment (Ci) nicht bereits im Server4 gespeichert ist, sendet der Client-Sicherungsmanager14 (im Block146 ) das verschlüsselte Segment zu dem Server4 . Wenn (im Block144 ) das nächste zu sendende Segment bereits im Server gespeichert ist, sendet der Client-Sicherungsmanager14 (im Block148 ) die Segmentkennung (Ci) des nächsten verschlüsselten Segmentes in dem Datenobjekt. Nach dem Senden (im Block146 oder148 ) des Segmentes oder der Segmentkennung geht die Steuerung (im Block150 ) wieder zum Block130 in5a über, um festzustellen, ob weitere Segmente in dem Datenobjekt vorhanden sind, um sie zu verarbeiten und an den Server4 zu senden. - Nach dem Empfangen (im Block
152 ) des verschlüsselten Segmentes speichert der Server-Sicherungsmanager16 (im Block154 ) das verschlüsselte Segment in der Speichereinrichtung6 und aktualisiert (im Block156 ) den Eintrag70 des Deduplizierungsindex20 für das Segment, der den Speicherplatz des Segmentes in der Speichereinrichtung6 angibt. Nach dem Empfangen (im Block158 ) der verschlüsselten Segmentkennung (Ci) oder nach dem Aktualisieren des Deduplizierungsindex20 (im Block156 ) fügt der Server-Sicherungsmanager16 (im Block160 ) die Segmentkennung (Ci) des (im Block152 ) empfangenen verschlüsselten Segmentes oder die (im Block158 ) empfangene Segmentkennung den Server-Objektinformationen60 an einem Speicherplatz hinzu, der der Position des Segmentes in den Client-Objektinformationen50 entspricht. In einer alternativen Ausführungsform wird der Befehl im Block160 nicht ausgeführt, wenn der Client-Sicherungsmanager14 die gesamten Segmentkennungs-(Ci)Informationen in den Client-Objektinformationen50 bei der Sicherungsanforderung an den Server14 gesendet hat. Des Weiteren kann der Client2 die Reihenfolge-Informationen der gesendeten Segmente und Kennungen in dem Datenobjekt senden. - Bei den beschriebenen Ausführungsformen der
5a und5b verschlüsselt der Client2 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üssel28 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 Server4 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üssel28 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üssel28 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-Sicherungsmanager14 ,16 vorhanden sein, die den ersten Abschnitt von Segmenten angibt, der mit dem privaten Schlüssel28 des Client verschlüsselt wäre. - Der Server-Sicherungsmanager
16 kann Datenobjekte von mehreren Clients4 sichern. In diesem Fall kann jeder Client4 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 Client2 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 Sicherungsmanager14 ,16 von Client und Server ausgeführt werden, um ein Datenobjekt, das in dem Server4 gespeichert ist, wiederherzustellen. Nachdem der Client-Sicherungsmanager14 (im Block200 ) ein Befehl bzw. eine Operation zum Wiederherstellen des Datenobjektes50 ausgelöst hat, sendet der Client-Sicherungsmanager14 (im Block202 ) eine Anforderung zum Wiederherstellen eines Datenobjekts, die die Datenobjektbezeichnung52 enthalten würde. Nach dem Empfangen (im Block204 ) der Wiederherstellungsanforderung sendet der Server-Sicherungsmanager16 (im Block206 ) das erste verschlüsselte Segment64a (oder den verschlüsselten ersten Abschnitt von Segmenten) in dem Datenobjekt60 und sendet (im Block208 ) die verschlüsselte Kennung (I')68 zu dem Client2 . Nach dem Empfangen (im Block210 ) des verschlüsselten ersten Segmentes entschlüsselt der Client-Sicherungsmanager14 (im Block212 ) das verschlüsselte erste Segment (eP(C1)) mit dem privaten Schlüssel28 des Client, um das unverschlüsselte erste Segment54a zu erzeugen. Nach dem Empfangen (im Block214 ) der verschlüsselten Kennung (I') entschlüsselt der Client-Sicherungsmanager14 (im Block216 ) die verschlüsselte Kennung (I') mit dem privaten Schlüssel28 des Client, um eine entschlüsselte Kennung des Datenobjektes (I = dP(I')) zu erzeugen. Die entschlüsselte Kennung (I) wird (im Block218 ) zu dem Server4 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-Sicherungsmanager16 (im Block222 ), ob die angebliche Kennung (PI) mit der Kennung (I)66 übereinstimmt, die dem Datenobjekt60 (3 ), das wiederhergestellt werden soll, übereinstimmt. Wenn eine Übereinstimmung vorhanden ist, sendet der Server-Sicherungsmanager16 alle weiteren verschlüsselten Segmente, z.B. C2, ... Cn, die in den Server-Objektinformationen60 angegeben und mit dem gemeinsam genutzten Schlüssel30 verschlüsselt sind, zu dem Client4 . Wenn keine Übereinstimmung vorhanden ist, beendet der Server-Sicherungsmanager16 (im Block226 ) die Wiederherstellungsanforderung. Der Server-Sicherungsmanager16 kann eine Nachricht zu dem Client2 senden, dass die Wiederherstellungsbefehle infolge eines Berechtigungsfehlers beendet wird. Nach dem Empfangen (im Block228 ) von zusätzlichen verschlüsselten Segmenten nach dem ersten Segment (oder dem ersten Abschnitt von Segmenten) entschlüsselt der Client-Sicherungsmanager14 (im Block228 ) die Segmente mit dem gemeinsam genutzten Schlüssel30 . - In einer alternativen Ausführungsform können die Befehle in den Blöcken
206 ,210 und212 lediglich dann ausgeführt werden, nachdem die angebliche Client-Kennung im Block222 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-Objektinformationen60 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 der5a und5b bereitstellen, da andere Clients den privaten Schlüssel28 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 Block224 ). -
7 veranschaulicht ein Beispiel des Datenobjektes A und des Datenobjektes B von verschiedenen Clients A bzw. B, die Datenobjekte in dem Server4 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 in8 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üssel30 (S) verschlüsselt, wodurch wie in8 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 in8 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 Server4 befindet, müssen bei Anwendung der Deduplizierung diese verschlüsselten Segmente für das Datenobjekt B nicht erneut zu dem Server4 gesendet werden. Der Server4 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 die9 bis11 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-Datenverarbeitungsknotens300 , der eine Umsetzung der Systeme von Client2 und Server4 aufweisen kann. Der Cloud-Datenverarbeitungsknoten300 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-Datenverarbeitungsknoten300 als eine hier im Vorhergehenden dargestellte Funktionalität umgesetzt sein und/oder diese ausführen. - Im Cloud-Datenverarbeitungsknoten
300 gibt es ein Computersystem/einen Server302 , 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 Server302 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 Server302 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 Server302 im Cloud-Datenverarbeitungsknoten300 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers302 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten304 , einen Systemspeicher306 und einen Bus308 enthalten, der verschiedene Systemkomponenten verbindet, darunter den Systemspeicher306 mit dem Prozessor304 , 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 Server302 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-Speicher312 . Das Computersystem/der Server302 kann des Weiteren andere entnehmbare/nicht entnehmbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich beispielhaft kann das Speichersystem313 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 Bus308 verbunden sein. Wie ferner dargestellt und im Folgenden beschrieben, kann der Speicher306 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 Programmmodulen316 aufweist, kann als Beispiel und ohne Einschränkung wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten im Speicher306 gespeichert sein. Jedes von Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten oder eine Kombination hiervon kann eine Umsetzung einer Netzwerksbetriebsumgebung enthalten. Programmmodule316 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 Einheiten318 Daten austauschen wie etwa einer Tastatur, einer Zeigeeinrichtung, einer Anzeige120 usw.; einer oder mehreren Einrichtungen, die ermöglichen, dass ein Benutzer mit dem Computersystem/Server12 in Wechselwirkung tritt; und/oder jeder Einrichtung (z.B. Netzwerkkarte, Modem usw.), die ermöglicht, dass das Computersystem/der Server302 mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten austauscht. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe-(E/A-)Schnittstellen322 erfolgen. Das Computersystem/der Server302 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 Netzwerkadapter324 Daten austauschen. Wie dargestellt, kommuniziert der Netzwerkadapter324 mit den anderen Komponenten des Computersystems/Servers302 über den Bus308 . Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server302 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-Datenverarbeitungsumgebung350 dargestellt. Wie gezeigt, weist die Cloud-Datenverarbeitungsumgebung350 einen oder mehrere Cloud-Datenverarbeitungsknoten300 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 Mobiltelefon354A , ein Desktop-Computer354B , ein Laptop-Computer354C und/oder ein Fahrzeug-Computersystem354N . 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-Datenverarbeitungsumgebung350 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 in10 gezeigten Typen von Datenverarbeitungseinheiten354A bis N lediglich veranschaulichend sind und dass die Datenverarbeitungsknoten300 und die Cloud-Datenverarbeitungsumgebung350 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-Datenverarbeitungsumgebung350 (10 ) gezeigt. Es sollte vorab klar sein, dass vorgesehen ist, dass die in11 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-Ebene360 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 Sicherungsmanager14 ,16 von Client und Server wie oben unter Bezugnahme auf die1 bis4 ,5a ,5b und6 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 und6 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)
- 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.
- Das Verfahren nach Anspruch 1, wobei der zweite Abschnitt Segmente aufweist, die nicht in dem ersten Abschnitt enthalten sind.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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)
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 |
-
2011
- 2011-10-21 US US13/279,017 patent/US8769310B2/en not_active Expired - Fee Related
-
2012
- 2012-05-30 US US13/484,028 patent/US8762743B2/en not_active Expired - Fee Related
- 2012-10-19 DE DE102012219155.0A patent/DE102012219155B4/de active Active
Patent Citations (6)
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 |