DE112021002747T5 - Sicheres wiederherstellen von geheimen schlüsseln - Google Patents

Sicheres wiederherstellen von geheimen schlüsseln Download PDF

Info

Publication number
DE112021002747T5
DE112021002747T5 DE112021002747.6T DE112021002747T DE112021002747T5 DE 112021002747 T5 DE112021002747 T5 DE 112021002747T5 DE 112021002747 T DE112021002747 T DE 112021002747T DE 112021002747 T5 DE112021002747 T5 DE 112021002747T5
Authority
DE
Germany
Prior art keywords
key
encrypted
group
keys
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021002747.6T
Other languages
English (en)
Inventor
Steven Robert Hetzler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021002747T5 publication Critical patent/DE112021002747T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Abstract

Ein geheimer Schlüssel wird in eine Anzahl verschlüsselter Abschnitte aufgeteilt. Die verschlüsselten Abschnitte können auf Mitglieder einer Gruppe verteilt werden. Die verschlüsselten Abschnitte machen eine Wiederherstellung des geheimen Schlüssels möglich, jedoch wird zum Entschlüsseln ein Gruppen-Berechtigungsschlüssel benötigt. Somit ist zum Wiederherstellen des geheimen Schlüssels eine Anzahl Abschnitte erforderlich, jedoch noch nicht hinreichend.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein ein sicheres Wiederherstellen von geheimen Schlüsseln (secure secret recovery) in einem Datenverarbeitungssystem.
  • HINTERGRUND DER ERFINDUNG
  • Geheime Schlüssel und die Vergabe von Zugriffsrechten werden in einer breiten Vielfalt von Computersystemen verwendet. Geheime Schlüssel können vertrauliche Daten wie Chiffrierschlüssel usw. enthalten. Geheime Schlüssel werden auf verschiedene Weise geschützt, jedoch stellen Hashverfahren und Verschlüsselung zwei der bekanntesten Verfahrensweisen dar. Zwar wird in beiden Fällen ein geheimer Schlüssel in einen im Wesentlichen nicht lesbaren „Ciphertext“ (verschlüsselter Text) umgewandelt, jedoch ist eine Hashverschlüsselung in der Regel unidirektional (ein hashverschlüsselter geheimer Schlüssel kann nicht einfach wiederhergestellt, aber mit einem anderen hashverschlüsselten geheimen Schlüssel verglichen werden), wobei eine Verschlüsselung in der Regel reversibel ist (ein verschlüsselter geheimer Schlüssel kann wieder „entschlüsselt“ werden, wenngleich nur unter Verwendung eines speziellen „Schlüssels“, mit dessen Hilfe ein geheimer Schlüssel durch einen Benutzer wiederhergestellt werden kann, der im Besitz des Chiffrierschlüssels ist). Somit eignen sich diese Verfahrensweisen für verschiedene Anwendungsfälle. Zum Beispiel verwenden Kennwortsysteme üblicherweise Hashverfahren (eine Website, in der ein hashverschlüsseltes Kennwort gespeichert ist, kann prüfen, ob ein Benutzer sein korrektes Kennwort eingegeben hat, ohne das „eigentliche“ Kennwort des Benutzers ermitteln zu können), während wiederholt verwendete Daten üblicherweise von der Verschlüsselung Gebrauch machen (Datenübertagung, Datenspeicherung usw.).
  • Es gibt viele verschiedene Verschlüsselungs-Algorithmen, jedoch ist allen die Verwendung eines oder mehrerer „Schlüssel“ gemein. Bei einem Chiffrierschlüssel handelt es sich um eine unverwechselbare Datenfolge als Eingabewert für eine Verschlüsselungsfunktion; um einen geheimen Schlüssel zu verschlüsseln, wird der geheime Schlüssel zusammen mit einem unverwechselbaren Schlüssel eingegeben, was zu einem verschlüsselten Ausgabewert führt, der aus Ciphertext besteht. Dieser Ciphertext hat ein im Wesentlichen zufälliges Aussehen, kann jedoch durch Eingeben des Ciphertextes und desselben Chiffrierschlüssels (bei Verschlüsselungssystemen mit „symmetrischem Schlüssel“) oder eines verschiedenen Dechiffrierschlüssels (bei Verschlüsselung mit „asymmetrischem Schlüssel“) in eine Entschlüsselungsfunktion (die in direkter Beziehung zu der zum Verschlüsseln des geheimen Schlüssels verwendeten Verschlüsselungsfunktion steht) entschlüsselt werden. Die Kenntnis über die verwendete Verschlüsselungsfunktion kann durch einen außenstehenden Benutzer oft empirisch erlangt werden, sodass der Schutz des Chiffrierschlüssels von überragender Bedeutung für den Schutz des geheimen Schlüssels ist. Bei einigen Systemen kann auch der Chiffrierschlüssel selbst verschlüsselt werden, oft unter Verwendung einer verschiedenen Verschlüsselungsfunktion (und eines verschiedenen Chiffrierschlüssels). Einige Formen der Verschlüsselung ermöglichen ein Entschlüsseln unter Verwendung eines von mehreren vorgegebenen Schlüsseln. Dies kann durch Speichern mehrerer Kopien desselben geheimen Schlüssels erreicht werden, wobei jede Kopie mittels eines verschiedenen Schlüssels verschlüsselt wird.
  • Geheime Schlüssel wie Cloud-Chiffrierschlüssel werden normalerweise sicher gespeichert, um deren Missbrauch zu verhindern. Dies wird jedoch mit einer verringerten Fehlertoleranz erkauft; wenn der geheime Schlüssel auf einem einzigen Laufwerk sicher gespeichert ist, kann eine Störung des Laufwerks dazu führen, dass der geheime Schlüssel nicht wiederhergestellt werden kann. Wenn es sich bei dem geheimen Schlüssel um einen Speicher-Chiffrierschlüssel handelt (der die Verschlüsselung auf einem Speichersystem gespeicherter Daten steuert), kann der Verlust des Schlüssels zum Verlust der Daten oder des Zugriffs auf die Daten führen (was, abgesehen vom Schlüssel, praktisch gleichbedeutend mit dem Verlust der Daten selbst sein kann). Viele Systeme haben Sicherungskopien von geheimen Schlüsseln, um dies abzumildern, jedoch haben einfache Sicherungskopien auch Nachteile; sie dienen als zusätzliche Angriffsvektoren. Zum Beispiel kann anstelle des eigentlichen geheimen Schlüssels die Sicherungskopie selbst durch einen Angreifer gefährdet werden.
  • KURZDARSTELLUNG
  • Ein Verfahren gemäß einem Aspekt der Erfindung umfasst ein Empfangen eines ersten verschlüsselten Abschnitts von einer ersten Schlüsseleinheit und eines zweiten verschlüsselten Abschnitts von einer zweiten Schlüsseleinheit. Das Verfahren weist auch ein Empfangen eines Gruppen-Berechtigungsschlüssels von einer Gruppen-Berechtigungsinstanz auf. Das Verfahren weist auch ein Entschlüsseln des ersten verschlüsselten Abschnitts und des zweiten verschlüsselten Abschnitts unter Verwendung des Gruppen-Berechtigungsschlüssels auf. Das Verfahren weist auch ein Wiederherstellen des geheimen Schlüssels auf der Grundlage des ersten verschlüsselten Abschnitts und des zweiten verschlüsselten Abschnitts auf. Das Verfahren ermöglicht auf vorteilhafte Weise ein sicheres Wiederherstellen eines geheimen Schlüssels, wofür sowohl mehrere Abschnitte von mehreren Schlüsseleinheiten als auch ein Schlüssel von einer Gruppen-Berechtigungsinstanz erforderlich sind.
  • Gemäß einer oder mehreren Ausführungsformen der Erfindung weist das Verfahren ferner auf: Erzeugen eines ersten Fingerabdrucks des verschlüsselten ersten Abschnitts und eines zweiten Fingerabdrucks des verschlüsselten zweiten Abschnitts; Senden des ersten Fingerabdrucks und des zweiten Fingerabdrucks an die Gruppen-Berechtigungsinstanz, wobei das Empfangen des Gruppen-Berechtigungsschlüssels als Reaktion darauf erfolgt, dass die Gruppen-Berechtigungsinstanz den ersten Fingerabdruck und den zweiten Fingerabdruck geprüft hat. Dadurch erhält der Prozess zum sicheren Wiederherstellen von geheimen Schlüsseln eine zusätzliche Sicherheit und Gültigkeitsüberprüfung, indem die Gruppen-Berechtigungsinstanz aufgefordert wird, die Abschnitte anhand von Fingerabdrücken zu prüfen (ohne die Abschnitte selbst der Gruppen-Berechtigungsinstanz offenzulegen).
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung weist das Verfahren ferner auf: Aufteilen des wiederhergestellten geheimen Schlüssels in einen ersten neuen Abschnitt und einen zweiten neuen Abschnitt; Verschlüsseln des ersten neuen Abschnitts und des zweiten neuen Abschnitts; Übermitteln des verschlüsselten ersten neuen Abschnitts an die erste Verschlüsselungseinheit; und Übermitteln des verschlüsselten zweiten neuen Abschnitts an die zweite Verschlüsselungseinheit. Dadurch wird es auf vorteilhafte Weise ermöglicht, unter Wahrung der Geheimhaltung neue Abschnitte des wiederhergestellten geheimen Schlüssels auf Verschlüsselungseinheiten zu verteilen (d.h. für den Fall, dass die Komponente ausgefallen und der wiederhergestellte Schlüssel möglicherweise anderweitig verlorengegangen ist). Ferner werden die verteilten Abschnitte wieder entschlüsselt, wodurch die Sicherheit gegenüber dem Stand der Technik weiter verbessert wird.
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung weist das Verfahren auf: Erhalten eines geheimen Schlüssels; Empfangen eines Gruppen-Berechtigungsschlüssels von einer Gruppen-Berechtigungsinstanz; und Erzeugen einer Mehrzahl verschlüsselter Abschnitte des geheimen Schlüssels auf der Grundlage des Gruppen-Berechtigungsschlüssels. Dadurch wird auf vorteilhafte Weise ermöglicht, ein System einzurichten, in dem ein sicher gespeicherter geheimer Schlüssel wiederhergestellt werden kann.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Computerprogrammprodukt bereitgestellt, das ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zum Ausführen eines der oben erörterten und anschließend beanspruchten Verfahren zu veranlassen. Dadurch wird auf vorteilhafte Weise ermöglicht, einen geheimen Schlüssel sicher wiederherzustellen, wozu sowohl mehrere Abschnitte von mehreren Schlüsseleinheiten als auch ein Schlüssel von einer Gruppen-Berechtigungsinstanz erforderlich sind.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein System bereitgestellt, das einen Arbeitsspeicher und eine Zentraleinheit (central processing unit, CPU) aufweist. Die CPU ist zum Ausführen von Anweisungen so konfiguriert, dass sie eines der oben erörterten und anschließend beanspruchten Verfahren durchführen kann. Dadurch wird auf vorteilhafte Weise ermöglicht, einen geheimen Schlüssel sicher wiederherzustellen, wozu sowohl mehrere Abschnitte von mehreren Schlüsseleinheiten als auch ein Schlüssel von einer Gruppen-Berechtigungsinstanz erforderlich sind.
  • Es ist nicht beabsichtigt, durch die obige Kurzdarstellung jede veranschaulichte Ausführungsform oder jede Ausführung der vorliegenden Offenbarung zu beschreiben.
  • Figurenliste
  • Die in der vorliegenden Anmeldung enthaltenen Zeichnungen sind in die Beschreibung einbezogen und bilden einen Bestandteil derselben. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zum Erläutern der Grundgedanken der Offenbarung. Die Zeichnungen veranschaulichen lediglich bestimmte Ausführungsformen und schränken die Offenbarung nicht ein. Merkmale und Vorteile verschiedener Ausführungsformen des beanspruchten Gegenstands werden im Verlauf der folgenden detaillierten Beschreibung und unter Bezugnahme auf die Zeichnungen deutlich, in denen durch gleiche Zeichnungsnummern gleiche Teile bezeichnet werden, wobei:
    • 1 ein Blockschaltbild ist, das ein System zum sicheren Wiederherstellen eines geheimen Schlüssels gemäß mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 2 eine Übersichtsdarstellung eines Verfahrens zum sicheren Wiederherstellen eines geheimen Schlüssels unter Verwendung eines Ansatzes „ausschneiden-dann-verschlüsseln“ gemäß mehreren Ausführungsformen der vorliegenden Offenbarung ist.
    • 3 ein beispielhaftes Verfahren zum sicheren Wiederherstellen eines geheimen Schlüssels aus der Sicht einer Gruppen-Berechtigungsinstanz gemäß mehreren Ausführungsformen der vorliegenden Offenbarung ist.
    • 4 ein beispielhaftes Verfahren zum sicheren Wiederherstellen eines geheimen Schlüssels aus der Sicht einer Ersatz-Schlüsseleinheit gemäß mehreren Ausführungsformen der vorliegenden Offenbarung ist.
    • 5 eine Übersichtsdarstellung eines Verfahrens zum sicheren Einsatz eines geheimen Schlüssels gemäß mehreren Ausführungsformen der vorliegenden Offenbarung ist.
    • 6 ein Blockschaubild ist, das ein System mit einer beispielhaften Schlüsseleinheit in größerer Ausführlichkeit veranschaulicht, das mehrere Schlüssel-Zugriffssteuereinheiten und Speicherschlüssel gemäß mehreren Ausführungsformen der vorliegenden Offenbarung enthält.
    • 7 eine Übersichtsdarstellung eines Verfahrens zum sicheren Wiederherstellen eines sicheren Schlüssels unter Verwendung eines Ansatzes „verschlüsseln-dann-ausschneiden“ gemäß mehreren Ausführungsformen der vorliegenden Offenbarung ist.
    • 8 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt.
    • 9 die Schichten eines Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt.
    • 10 ein Übersichts-Blockschaltbild eines beispielhaften Computersystems veranschaulicht, das zum Umsetzen von Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
  • Zwar sind für die Erfindung verschiedenen Modifikationen und alternativen Formen vorstellbar, jedoch sind deren Besonderheiten in den Zeichnungen lediglich beispielhaft gezeigt und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass es nicht beabsichtigt ist, die Erfindung auf die einzelnen beschriebenen Ausführungsformen zu beschränken. Vielmehr soll die Erfindung alle Modifikationen, Pendants und Alternativen erfassen, die in den Schutzumfang der Erfindung fallen.
  • DETAILLIERTE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung betreffen Systeme und Verfahren zum sicheren Wiederherstellen von geheimen Schlüsseln. Einzelne Aspekte betreffen ein System zum Feststellen, dass eine Schlüsseleinheit mit einem darin enthaltenen geheimen Schlüssel ausgefallen ist, zum Wiederherstellen des geheimen Schlüssels unter Verwendung in anderen Schlüsseleinheiten gespeicherter Komponenten und um einer Ersatz-Schlüsseleinheit zu ermöglichen, den wiederhergestellten geheimen Schlüssel zu entschlüsseln.
  • Die Systeme und Verfahren gemäß der vorliegenden Offenbarung verbessern auf vorteilhafte Weise die Fehlertoleranz bei gleichzeitiger Verringerung des Sicherheitsaufwands. Wesentlich ist, dass der geheime Schlüssel in einem verschlüsselten Zustand gespeichert werden kann und statt der Verwendung einer kompletten Sicherungskopie des geheimen Schlüssels der geheime Schlüssel in Abschnitte (Teile oder Fragmente) „zerschnitten“ (geteilt oder fragmentiert) wird, die jeweils verschlüsselt und durch getrennte „Schlüsseleinheiten“ gespeichert werden. Die verschlüsselten Abschnitte können nicht „einfach“ ohne Schlüssel entschlüsselt werden, die von einer Gruppen-Berechtigungsinstanz bereitgestellt werden, die die verschiedenen Schlüsseleinheiten überwacht. Auf diese Weise kann der geheime Schlüssel beim Ausfall der Schlüsseleinheit, in der der geheime Schlüssel gespeichert ist, mit geringfügigem Sicherheitsrisiko wiederhergestellt werden. Daraus ergeben sich mehrere Vorteile. Wenn zum Beispiel eine Schlüsseleinheit, in der ein Speicher-Chiffrierschlüssel gespeichert ist, ausfällt, braucht das Speichersystem gegebenenfalls nicht unbedingt komplett aus einer Sicherungskopie wiederhergestellt zu werden (ein Prozess, der bei größeren Speichersystemen mehrere Wochen oder länger dauert); vielmehr kann ein System gemäß der vorliegenden Offenbarung den „verlorengegangenen“ Speicher-Chiffrierschlüssel wiederherstellen und wieder die ordnungsgemäße Kontrolle über das Speichersystem und dessen Daten erlangen. All dies kann ferner ohne das Risiko geschehen, den Speicherschlüssel gegenüber den anderen Schlüsseleinheiten oder gar der Gruppen-Berechtigungsinstanz offenzulegen, sodass er nicht unbedingt (sofort) nach dem Wiederherstellen geändert zu werden braucht.
  • Im Rahmen dieser Offenbarung wird Bezug genommen auf „Schlüssel“ wie „Speicherschlüssel“, „Gruppen-Berechtigungsschlüssel“ und „Benutzerschlüssel“. Diese Beinamen werden lediglich beispielhaft verwendet; dem Fachmann ist klar, dass die Schlüssel auch für andere Zwecke verwendet werden können. Insbesondere werden die „Speicherschlüssel“ lediglich als Beispiel für den „sicher gespeicherten geheimen Schlüssel“ verwendet, der durch die vorliegende Offenbarung sicher wiederherstellbar wird. Als weitere mögliche Beispiele kommen Datenübertagungsschlüssel, vertrauliche Daten usw. infrage. Desgleichen wird der Begriff „Schlüsseleinheit“ als anschauliches Beispiel verwendet, jedoch kann derselbe Begriff im weiteren Sinne auch einfach als „Einheit“ bezeichnet werden.
  • Im Rahmen dieser Offenbarung wird Bezug genommen auf „Abschnitte“. Insbesondere können Abschnitte eines geheimen Schlüssels (wie eines Speicherschlüssels) verschlüsselt und auf Einheiten einer Gruppe verteilt werden. Als in einer Einheit „gespeichert“ beschriebene Abschnitte sind in einen verschlüsselten Zustand innerhalb des Abschnittspeichers dieser Einheit gespeichert. Abschnitte werden durch die Einheit verschlüsselt, die die Abschnitte ursprünglich herstellt. Abschnitte werden unter Verwendung spezieller Chiffrierschlüssel verschlüsselt, die von der Gruppen-Berechtigungsinstanz bereitgestellt werden.
  • Zwar beziehen sich die meisten Beispiele der vorliegenden Offenbarung auf jede Einheit, in der ein einzelner verschlüsselter Abschnitt eines geheimen Schlüssels gespeichert ist, jedoch können in einer Einheit gemäß einigen Ausführungsformen mehrere Abschnitte gespeichert sein. Zum Beispiel kann in einer Gruppe von vier Einheiten der Schlüssel S einer ersten Einheit in Abschnitte s1, s2 und s3 aufgeteilt sein. Gemäß einigen Ausführungsformen können in einer zweiten Einheit ein Abschnitt s1, in einer dritten Einheit ein Abschnitt s2 und ein einer vierten Einheit ein Abschnitt s3 gespeichert sein, sodass bei Ausfall der ersten Einheit eine Ersatzeinheit dennoch alle Abschnitte empfangen kann und somit (unter der Annahme, dass andere Im Folgenden beschriebene Bedingungen erfüllt sind) der Schlüssel S wiederhergestellt werden kann. Gemäß einigen Ausführungsformen können jedoch in der zweiten Einheit die Abschnitte s1 und s2, in der dritten Einheit die Abschnitte s2 und s3 und in der vierten Einheit die Abschnitte s3 und s1 gespeichert sein. Auf diese Weise ist jeder Abschnitt in mindestens zwei Einheiten gespeichert, sodass bei Ausfall der ersten und der zweiten Einheit alle Abschnitte wiederhergestellt werden können und somit der geheime Schlüssel wiederhergestellt werden kann. Hierdurch kann es möglicherweise zu Redundanz kommen, wodurch die Fehlertoleranz in einigen Systemen auf vorteilhafte Weise verbessert wird. Außerdem kann es dadurch möglich werden zu ermitteln, ob eine Einheit durch einen Angreifer oder auf andere Weise gefährdet worden ist, da Abschnitte miteinander verglichen werden können, um zu ermitteln, ob sich Abschnitte einer einzelnen Einheit von den „Kopien“ der in anderen Einheiten gespeicherten Abschnitte unterscheiden.
  • Abschnitte eines geheimen Schlüssels können auf Einheiten verteilt werden, um ein Wiederherstellen des geheimen Schlüssels unabhängig davon zu ermöglichen, welche Einheit ausgefallen ist (oder ob gemäß einer Ausführungsform möglicherweise sogar mehrere Einheiten ausgefallen sind). Gemäß einigen Ausführungsformen können in Einheiten auch Paritätsdaten gespeichert sein, um ein Prüfen gespeicherter Abschnitte zu ermöglichen.
  • Ein geheimer Schlüssel kann zu Anfang von einem Bediener eines Systems (z.B. einem Techniker, der eine Schlüsseleinheit eingerichtet hat), von Hardware (z.B. nach dem Zufallsprinzip erzeugt) usw. erhalten werden. Gemäß einigen Ausführungsformen kann ein geheimer Schlüssel von Informationen von einer Gruppen-Berechtigungsinstanz abgeleitet werden. Wenn ein geheimer Schlüssel wiederhergestellt werden soll, kann zu der Gruppe eine neue Einheit (die hierin oft als „Ersatz-Schlüsseleinheit“ bezeichnet wird) hinzugefügt werden. Wenn die neue Einheit hinzugefügt wird, kann die Gruppen-Berechtigungsinstanz deren Identität prüfen (zum Beispiel mittels eines Zertifikatsaustauschs/einer Zertifikatsprüfung). Nach dem Bestätigen ihrer Zugehörigkeit zur Gruppen-Berechtigungsinstanz kann diese neue Einheit Abschnitte des geheimen Schlüssels von den übrigen Einheiten empfangen. Da die Abschnitte (unter Verwendung eines durch die Gruppen-Berechtigungsinstanz kontrollierten Schlüssels) durch eine Einheit verschlüsselt wurden, in der sie nicht gespeichert sind, sind die Einheiten, in denen die Abschnitte gespeichert sind, nicht in der Lage, diese zu entschlüsseln.
  • Gemäß einigen Ausführungsformen können Schlüsseleinheiten zu „Gruppen“ zusammengefasst werden, wobei jede Gruppe einen Satz von n Schlüsseleinheiten (mit n ≥ = 1) umfasst. Zum Beispiel kann eine Gruppen-Berechtigungsinstanz vor dem Betreiben eines Systems eine Gruppe von n Schlüsseleinheiten erzeugen. Jede Gruppe kann durch eine andere Gruppen-Berechtigungsinstanz (Group Authority - GA) wie beispielsweise die GA 110 von 1 verwaltet werden, jedoch kann eine Gruppen-Berechtigungsinstanz gemäß einigen Ausführungsformen mehr als eine Gruppe verwalten. Zur einfacheren Erläuterung wird hierin nur eine einzelne Gruppe von Schlüsseleinheiten ausführlich beschrieben. Es kann von Vorteil sein, wenn es sich bei der GA um eine PKI-Zertifikationsinstanz handelt, um das Bestätigen der Identitäten der Komponenten des Systems zu ermöglichen. Die GA kann entscheiden, welcher Satz Schlüsseleinheiten zu einer bestimmten Gruppe gehört, und kann dies erreichen, indem sie ein Zertifikat für eine Zugehörigkeit zu der Gruppe erzeugt. Dann können die Schlüsseleinheiten Teil der Gruppe werden. Es ist von Vorteil, wenn Schlüsseleinheiten bestätigt wird, dass sie sich entsprechend den Anforderungen an das sichere Wiederherstellen von geheimen Schlüsseln ordnungsgemäß verhalten. Dies kann vom Hersteller erledigt werden, indem dieser Seriennummern, Zertifikate, signierte Codes usw. verwendet. Dadurch können Angreifer daran gehindert werden, (über „defekte“ Schlüsseleinheiten) in die Gruppe einzudringen. Gemäß einigen Ausführungsformen kann die GA zum Beispiel mit einem Inhaltsverzeichnis (möglicherweise in Form einer Blockchain) ausgestattet werden, die die Schlüsseleinheiten kennzeichnet, und prüfen, ob die Schlüsseleinheiten mit der Inhaltsliste übereinstimmen. Gemäß einigen Ausführungsformen kann eine Gruppe durch mehr als eine Gruppen-Berechtigungsinstanz gemeinsam gesteuert werden.
  • Im Rahmen dieser Offenbarung wird auf den Austausch von Daten mit und/oder zwischen Einheiten, Benutzern, einer Gruppen-Berechtigungsinstanz usw. Bezug genommen, indem beispielsweise eine Gruppen-Berechtigungsinstanz einen Gruppen-Berechtigungsschlüssel an eine Schlüsseleinheit sendet. Zum Verbessern der Sicherheit von Mitteilungen kann für solche Datenübertragungen eine Transportverschlüsselung in einer Weise verwendet werden, die dem Fachmann bekannt ist.
  • 1 veranschaulicht ein Übersichts-Blockschaltbild eines beispielhaften Systems 100 zum sicheren Wiederherstellen von geheimen Schlüsseln gemäß mehreren Ausführungsformen der vorliegenden Offenbarung. Das System 100 umfasst eine Gruppen-Berechtigungsinstanz (GA) 110, Schlüsseleinheiten, darunter eine Schlüsseleinheit U1 121, eine Schlüsseleinheit U2 122 und eine Schlüsseleinheit U3 123 (allgemein als „Schlüsseleinheiten 121 bis 123“ bezeichnet) und Speichereinheiten, darunter eine Speichereinheit 107, eine Speichereinheit 108 und eine Speichereinheit 109 (allgemein als „Speichereinheiten 107 bis 109 bezeichnet“). Die GA 110 ist dafür zuständig, die Konfiguration des Gesamtsystems festzulegen. Die GA 110 enthält einen Satz GA-Schlüssel 101, 102 und 103, die dazu verwendet werden, Informationen in den Schlüsseleinheiten zu schützen (was Im Folgenden näher beschrieben wird). Die GA 110 enthält auch einen Fingerabdruck-Speicher 114.
  • In den Schlüsseleinheiten 107 bis 109 sind Daten unter Verwendung von Schlüsseln gespeichert, die vor den Benutzern 104 bis 106 und der GA 110 verborgen gehalten bleiben. Die Speicher-Chiffrierschlüssel 141, 142 und 143 (die allgemein als „Speicher-Chiffrierschlüssel 141 bis 143“ oder „Speicherschlüssel 141 bis 143“ bezeichnet werden) sind in den Schlüsseleinheiten 121 bis 123 gespeichert. In einer der Schlüsseleinheiten kann nur ein einziger Speicher-Chiffrierschlüssel gespeichert werden. Ferner können die Schlüsseleinheiten 121 bis 123 so eingerichtet sein, dass die Speicher-Chiffrierschlüssel 141 bis 143 nicht den Schlüsseleinheiten 121 bis 123 entnommen werden können (zum Beispiel kann ein bestimmter Speicher-Chiffrierschlüssel durch keine andere Einheit als die Schlüsseleinheit gelesen werden, in der er gespeichert ist). Die Speicher-Chiffrierschlüssel 141 bis 143 sind in einem verschlüsselten Zustand innerhalb von Schlüsselzugriffs-Steuereinheiten 131 bis 133 gespeichert.
  • Die Speicherschlüssel 141 bis 143 können mit verschiedenen Benutzerschlüsseln so verschlüsselt werden, dass beispielsweise ein einzelner (in 1 nicht gezeigter) Benutzerschlüssel nur zum Entschlüsseln eines Speicherschlüssels in der Lage sein kann. Zum Beispiel kann der Speicherschlüssel 141 mittels eines ersten Benutzerschlüssels verschlüsselt und innerhalb der Schlüsselzugriffs-Steuereinheit gespeichert werden, der Speicherschlüssel 142 kann mittels eines zweiten Benutzerschlüssels verschlüsselt und innerhalb der Schlüsselzugriffs-Steuereinheit 132 gespeichert werden, und der Speicherschlüssel 143 kann mittels eines dritten Benutzerschlüssels verschlüsselt und innerhalb der Schlüsselzugriffs-Steuereinheit 133 gespeichert werden usw.
  • Gemäß einigen Ausführungsformen ist jeder Benutzer des Systems 100 mit einem oder mehreren „Benutzerschlüsseln“ versehen, die zum Entschlüsseln bestimmter Speicherschlüssel konfiguriert sind, was im Folgenden unter Bezugnahme auf die 5 und 6 näher beschrieben wird.
  • Wie gezeigt ist in jeder der Schlüsseleinheiten 121 bis 123 eine der Schlüsselzugriffs-Steuereinheiten 131 bis 133 gespeichert. Gemäß einigen in 1 nicht dargestellten Ausführungsformen können einige Schlüsseleinheiten jedoch mehrere Schlüsselzugriffs-Steuereinheiten enthalten, in denen jeweils ein Speicherschlüssel gespeichert ist. Dies kann für das Bereitstellen eines detaillierteren Zugriffs für einzelne Benutzer auf bestimmte Speicherschlüssel von besonderem Vorteil sein. Dies wird Im Folgenden unter Bezugnahme auf die 5 und 6 näher beschrieben.
  • Die Schlüsseleinheiten 121 bis 123 enthalten auch Schlüsselabschnitts-Speicher 161 bis 163, die es den Schlüsseleinheiten ermöglichen, Abschnitte von Speicherschlüsseln von anderen Schlüsseleinheiten zu speichern. Zum Beispiel versetzt der Schlüsselabschnitts-Speicher 161 die Schlüsseleinheit 121 in die Lage, Abschnitte 172, 183 von Speicherschlüsseln 142 beziehungsweise 143 zu speichern. Desgleichen versetzt der Schlüsselspeicher 162 die Schlüsseleinheit U2 in die Lage, Abschnitte 173 und 181 von Speicherschlüsseln 143 beziehungsweise 141 zu speichern, und die Speicherschlüssel 163 versetzt die Schlüsseleinheit 123 in die Lage, Abschnitte 182 und 171 von Speicherschlüsseln 142 beziehungsweise 141 zu speichern. Während des Prozesses des Erzeugens einer Schlüsseleinheit (beispielsweise der Schlüsseleinheit 121) mit einem Speicherschlüssel (beispielsweise dem Speicherschlüssel 141) kann die Schlüsseleinheit den Speicherschlüssel mittels einer Teilungs-/Wiederherstellungsfunktion in zwei oder mehrere Abschnitte (beispielsweise die Abschnitte 171 und 181) aufteilen. Dann kann die Schlüsseleinheit einen oder mehrere Gruppen-Berechtigungsschlüssel (beispielsweise die GA-Schlüssel 101 bis 103) zum Verschlüsseln der Abschnitte verwenden. Gemäß einigen Ausführungsformen wird jeder Abschnitt mit einem anderen GA-Schlüssel verschlüsselt. Nachdem die Abschnitte verschlüsselt worden sind, kann die Schlüsseleinheit Fingerabdrücke für die verschlüsselten Abschnitte erzeugen. Dann kann die Schlüsseleinheit die Fingerabdrücke zur Gruppen-Berechtigungsinstanz senden, damit diese in einem Fingerabdruck-Speicher 114 gespeichert werden.
  • Gemäß einigen Ausführungsformen kann die Schlüsseleinheit Schlüsselabschnitte in einer Speichereinheit speichern. Zum Beispiel kann die Schlüsseleinheit 121 Schlüsselabschnitte 172 und 183 im Speicher 107 speichern. Beim Speichern von Schlüsselabschnitten kann die Schlüsseleinheit diese unter Verwendung eines durch die Schlüsseleinheit verwalteten Speicherschlüssels verschlüsseln (z.B. kann die Schlüsseleinheit 121 die Schlüsselabschnitte 172 und 183 unter Verwendung des Speicherschlüssels 141 verschlüsseln und dann im Speicher 107 speichern).
  • Ein Speicherschlüssel wird durch eine Wiederherstellungsfunktion (zum Beispiel von einer ausgefallenen Schlüsseleinheit) wiederherstellbar, die den Schlüssel in m Abschnitte aufteilt, wobei m < n (und n = einer Anzahl von Einheiten in einer Gruppe) ist, die Abschnitte verschlüsselt und die verschlüsselten Abschnitte an verschiedene Schlüsseleinheiten sendet. Die Abschnitte können unter Verwendung eines oder mehrerer durch die GA 110 bereitgestellter GA-Schlüssel (beispielsweise der GA-Schlüssel 101 bis 103) verschlüsselt werden. Gemäß einigen Ausführungsformen teilt zum Beispiel jede Schlüsseleinheit ihren Speicherschlüssel in m Abschnitte auf, verschlüsselt jeden Abschnitt und sendet an jede andere Schlüsseleinheit einen Abschnitt. Somit kann jede Schlüsseleinheit m verschlüsselte Abschnitte empfangen (wobei jeder Abschnitt von einem anderen Schlüssel stammt). Gemäß einigen Ausführungsformen kann die Schlüsseleinheit mehr als einen Speicherschlüssel enthalten und somit für jeden Speicherschlüssel m Abschnitte senden (sodass einige Schlüsseleinheiten mehr als m Abschnitte empfangen können.
  • Gemäß einigen Ausführungsformen sind die an jede Schlüsseleinheit gesendeten GA-Schlüssel voneinander verschieden. Unter der Verwendung von GA-Schlüsseln ist zu verstehen, dass der Besitz von m Abschnitten notwendig, zum Wiederherstellen des geheimen Schlüssels jedoch nicht hinreichend ist. Auf diese Weise verbessert das System 100 auf vorteilhafte Weise die Sicherheit gegenüber dem Stand der Technik (beispielsweise Shamir's Secret Sharing, bei dem nur eine Mindestanzahl gefordert wird) durch Verringern des Risikos, dass Angreifer eine Schlüsseleinheit gefährden und von sich aus außerhalb eines Szenarios „Schlüsseleinheit-Ausfall“ einen Schlüssel wiederherstellt; selbst wenn eine Schlüsseleinheit in der Lage ist, m Abschnitte des Schlüssels zu übernehmen, ist sie dann nicht in der Lage, die Abschnitte (ohne den oder die korrekten GA-Schlüsse)I von der GA zu entschlüsseln (und somit den Schlüssel wiederherzustellen). Selbst wenn der Angreifer Zugriff auf einen GA-Schlüssel hat (zum Beispiel auf den einen der ausgefallenen Schlüsseleinheit, der zuvor zum Verschlüsseln von dessen eigenen Abschnitten verwendet wurde), wird er weiterhin nicht in der Lage sein, den Schlüssel ohne die übrigen GA-Schlüssel wiederherzustellen.
  • Gemäß einigen Ausführungsformen stellt die GA 110 für jeden Abschnitt einen anderen GA-Schlüssel bereit. Wenn zum Beispiel m = 2 ist, kann die GA 110 einen Schlüssel 101 für einen ersten Abschnitt 171 und einen Schlüssel 102 für einen zweiten Abschnitt 181 bereitstellen. Die Anzahl m der Abschnitte kann von der Anzahl der Schlüsseleinheiten n in der Gruppe und den Eigenschaften des zum Schützen der Abschnitte verwendeten Lösch- oder Fehlerkorrekturcodes abhängen. Gemäß einigen Ausführungsformen kann zum Prüfen der Unversehrtheit von Abschnitten eine Parität einbezogen werden.
  • Zum Beispiel kann eine Schlüsselgruppe n = 5 Schlüsseleinheiten enthalten, wobei ein Speicherschlüssel w mit einer weiteren fehlenden Schlüsseleinheit wiederhergestellt werden (zum Beispiel könnte eine der 5 Schlüsseleinheiten ausgefallen sein). Der Code kann somit m = 3 Abschnitte und eine aus diesen Abschnitten berechnete Parität haben, um einen Code mit n-1 Elementen zu erzeugen. Da die Abschnitte mit Schlüsseln von der GA 110 verschlüsselt sind, die für den restlichen Satz Schlüsseleinheiten nicht verfügbar sind, ist der geheime Schlüssel durch den Besitz von m Abschnitten, nicht jedoch durch eine berechtigte Einheit (beispielsweise eine zum Ersetzen der ausgefallenen Schlüsseleinheit hinzugefügte Ersatz-Schlüsseleinheit) geschützt. Ferner werden zum Wiederherstellen des geheimen Schlüssels ein oder mehrere Schlüssel von der GA 110 benötigt.
  • Gemäß einem Beispiel kann die Gruppen-Berechtigungsinstanz GA 110 nach dem Codieren eines neuen geheimen Schlüssels 141 in einer Schlüsseleinheit 121 die Schlüssel 101 bis 103 an die Schlüsseleinheit 121 senden. Die Wiederherstellungsfunktion 116 der Schlüsseleinheit 121 kann den Speicherschlüssel 141 aufteilen, jeden Abschnitt mit einem anderen Schlüssel der GA-Schlüssel 101 bis 103 verschlüsseln und dann für jeden derartig verschlüsselten Abschnitt einen Fingerabdruck berechnen. Diese Fingerabdrücke können zur GA 110 zurückgegeben und im Fingerabdruck-Speicher 114 gespeichert werden. Dann können die verschlüsselten Abschnitte an andere Schlüsseleinheiten 122 und 1123 gesendet werden. Zum Beispiel kann die Schlüsseleinheit 122 den verschlüsselten Abschnitt 171 und die Schlüsseleinheit 123 den verschlüsselten Abschnitt 181 empfangen. Die Schlüsseleinheiten können auch Wiederherstellungsfunktionen zum Durchführen der Lösch-/Fehlerkorrektur-Codierung und zum Verteilen der Abschnitte verwenden.
  • Während einer Wiederherstellungsoperation (zum Beispiel, wenn die Schlüsseleinheit 121 ausgefallen ist, weil der Speicherschlüssel 141 verlorengegangen ist) kann die GA 110 verlangen, dass eine (in 1 nicht gezeigte) Ersatz-Schlüsseleinheit nachweist, dass sie über alle Schlüsselabschnitte verfügt, die sie zum Wiederherstellen des Speicherschlüssels 141 benötigt, bevor die zum Entschlüsseln der Abschnitte erforderlichen GA-Schlüssel gesendet werden. Dies kann durch die Ersatz-Schlüsseleinheit erfolgen, die die verschlüsselten Schlüsselabschnitte 171 und 181 von den Schlüsseleinheiten 122 beziehungsweise 123 empfängt. Dann kann die Ersatz-Schlüsseleinheit die Abschnitte bewerten (mittels Fingerabdrücken, die die GA 110 mit dem Fingerabdruck-Schlüssel 114 vergleicht), und dann kann die GA 110 die zum Entschlüsseln der Abschnitte 171 und 181 erforderlichen GA-Schlüssel an die Ersatz-Schlüsseleinheit senden. Nach dem Empfangen der Schlüssel kann die Ersatz-Schlüsseleinheit die Abschnitte entschlüsseln und den geheimen Schlüssel 141 wiederherstellen.
  • Gemäß einigen Ausführungsformen kann ein Schlüssel vor dem Aufteilen verschlüsselt werden, anstatt den Schlüssel zuerst aufzuteilen und dann die Abschnitte zu verschlüsseln. Gemäß einigen Ausführungsformen kann zum Beispiel die Schlüsseleinheit 121 den GA-Schlüssel 101 empfangen, den Speicherschlüssel 141 mit dem GA-Schlüssel 101 verschlüsseln, einen Fingerabdruck des verschlüsselten Schlüssels (zum Beispiel mittels einer Hashfunktion) erzeugen und den Fingerabdruck an die GA 110 senden. Die GA 110 kann den Fingerabdruck des verschlüsselten Schlüssels speichern, und die Schlüsseleinheit 121 kann dann den verschlüsselten Schlüssel in Abschnitte 171 und 181 aufteilen und diese dann an die Schlüsseleinheiten 123 beziehungsweise 122 verteilen. Beim Wiederherstellen eines Schlüssels kann eine Ersatz-Schlüsseleinheit die verschlüsselten Abschnitte empfangen, diese wieder zu dem verschlüsselten Schlüssel zusammensetzen, einen Prüf-Fingerabdruck des verschlüsselten Schlüssels erzeugen und den Fingerabdruck an die GA 110 senden. Die GA 110 kann den Fingerabdruck prüfen und den entsprechenden GA-Schlüssel 101 zurücksenden, wodurch die Ersatz-Schlüsseleinheit in die Lage versetzt wird, den Schlüssel zu entschlüsseln und wiederherzustellen. Dadurch können die Komplexität des Systems 100 und der Speicheraufwand verringert werden (da die GA 110 nicht einen Fingerabdruck für jeden verschlüsselten Abschnitt, sondern nur einen Fingerabdruck des gesamten verschlüsselten Schlüssels zu speichern braucht).
  • 2 ist Übersichtsdarstellung eines Verfahrens 200 zum sicheren Wiederherstellen von geheimen Schlüsseln unter Verwendung eines Ansatzes „ausschneiden-dann-verschlüsseln“ gemäß mehreren Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 200 kann durch ein System durchgeführt werden, das zum sicheren Wiederherstellen von geheimen Schlüsseln konfiguriert ist, beispielsweise das System 100 von 1. Das Verfahren 200 kann als Reaktion darauf durchgeführt werden, dass eine Schlüsseleinheit ausfällt, eine Überprüfung gestartet wird usw. Das Verfahren 200 umfasst ein Empfangen verschlüsselter Abschnitte eines Schlüssels in Schritt 202. Der Schritt 202 kann zum Beispiel durch eine Ersatz-Schlüsseleinheit ausgeführt werden. Der Schritt 202 kann ein Empfangen verschlüsselter Abschnitte eines geheimen Schlüssels von anderen Schlüsseleinheiten in dem System umfassen. Gemäß einigen Ausführungsformen kann der Schritt 202 auch ein Empfangen eines oder mehrerer Paritäts-Schlüssel von einer Schlüsseleinheit in dem System umfassen. Gemäß einigen Ausführungsformen kann der Schritt 202 ein Empfangen eines von mehreren Abschnitten des geheimen Schlüssels umfassen. Gemäß einigen Ausführungsformen kann der Schritt 202 ein Empfangen aller Abschnitte des geheimen Schlüssels bis auf einen zusammen mit einem Paritäts-Schlüssel umfassen, wodurch das Wiederherstellen des fehlenden Abschnitts ermöglicht wird.
  • Das Verfahren 200 umfasst ferner ein Prüfen der Abschnitte in Schritt 204. Der Schritt 204 kann zum Beispiel ein Erzeugen von Fingerabdrücken der verschlüsselten Abschnitte und ein Vergleichen der Fingerabdrücke mit den gespeicherten Fingerabdrücken umfassen. Die Schlüsseleinheit kann zum Beispiel eine Hashfunktion wie den Secure-Hash-Algorithmus (SHA)-256 verwenden oder eine Prüfsumme erzeugen. Eine Schlüsseleinheit kann die Fingerabdrücke erzeugen und diese an eine Gruppen-Berechtigungsinstanz senden. Gemäß einigen Ausführungsformen kann die Gruppen-Berechtigungsinstanz die empfangenen Fingerabdrücke mit den gespeicherten Fingerabdrücken vergleichen, um zu ermitteln, ob die verschlüsselten Abschnitte gültig sind. Zwar liegt der Schwerpunkt dieser Offenbarung auf der Prüfung mittels Fingerabdruck, jedoch können auch andere Techniken zum Prüfen des Besitzes eines geheimen Schlüssels verwendet werden, darunter Prüfungen mittels „Nullwissen“.
  • Ferner umfasst das Verfahren 200 ein Entschlüsseln der Abschnitte in Schritt 206. Der Schritt 206 kann zum Beispiel ein Verwenden eines oder mehrerer Gruppen-Berechtigungsschlüssel zum Entschlüsseln der Abschnitte umfassen. Die Gruppen-Berechtigungsschlüssel können durch die Gruppen-Berechtigungsinstanz an die Schlüsseleinheit gesendet werden, sobald die Gruppen-Berechtigungsinstanz bestätigt, dass die Fingerabdrücke der verschlüsselten Abschnitte gültig sind (z.B. nach Schritt 204). Nachdem die Gruppen-Berechtigungsschlüssel empfangen worden sind, verwendet die Schlüsseleinheit die Gruppen-Berechtigungsschlüssel zum Entschlüsseln der Abschnitte. Gemäß einigen Ausführungsformen kann für jeden Abschnitt ein anderer Gruppen-Berechtigungsschlüssel verwendet werden. Gemäß einigen Ausführungsformen kann für mehrere (oder sogar alle) Abschnitte ein einziger Gruppen-Berechtigungsschlüssel verwendet werden.
  • Das Verfahren 200 umfasst weiterhin ein Wiederherstellen des Schlüssels in Schritt 208. Der Schritt 208 kann durch die Ersatz-Schlüsseleinheit ausgeführt werden. Die Ersatz-Schlüsseleinheit kann die entschlüsselten Abschnitte des Speicherschlüssels in eine Wiederherstellungsfunktion eingeben und als Reaktion darauf den Speicherschlüssel erhalten. Es wird darauf hingewiesen, dass der unverschlüsselte Speicherschlüssel nicht an externe Einheiten außerhalb der Schlüsseleinheit ausgegeben oder durch diese aufgerufen werden kann, um den Speicherschlüssel wiederherzustellen.
  • Nach Ausführen von Schritt 208 ist der Speicherschlüssel wiederhergestellt und kann zur Verwendung in Speicheroperationen bereitstehen, ohne eine Speichereinheit wiederherstellen zu müssen. Dadurch wird auf vorteilhafte Weise die Ausfallzeit verringert, die sich ansonsten aus einem Ausfall einer Schlüsseleinheit ergäbe. Die Schritte 210 und 212 ermöglichen es dem System, sich auf eine nachfolgende Wiederherstellung vorzubereiten (zum Beispiel für den Fall, dass die Ersatzeinheit später selbst versagt). Bemerkenswerterweise ermöglicht die Wiederherstellung des Speicherschlüssels, in einer Schlüsseleinheit gespeicherte Informationen zu schützen, während diese im Speicherschlüssel verschlüsselt sind. Somit sind wiederhergestellte Daten im Speicherschlüssel verschlüsselt und bleiben somit gesichert. Zum Wiederherstellen der Daten durch andere Mittel wäre ein Zugriff durch den Zugriffsschutz (z.B. ein RAID) auf die unverschlüsselten Daten erforderlich, was im Allgemeinen weniger sicher ist.
  • Ferner umfasst das Verfahren 200 ein Verteilen neuer Abschnitte des neu wiederhergestellten Speicherschlüssels in Schritt 210. Der Schritt 210 kann durch eine Ersatz-Schlüsseleinheit ausgeführt werden. Der Schritt 210 kann zum Beispiel ein Aufteilen des Speicherschlüssels in eine Mehrzahl Abschnitte umfassen. Die Anzahl der Abschnitte (m) kann auf einer Anzahl Schlüsseleinheiten in einer Gruppe (n) beruhen. Gemäß einigen Ausführungsformen ist zum Beispiel m = n - 1. Gemäß einigen Ausführungsformen kann ein Schlüssel jedoch auch in weniger Abschnitte aufgeteilt werden, wobei ein Abschnitt an mehr als eine Schlüsseleinheit gesendet wird (wodurch auf vorteilhafte Weise die Redundanz verringert wird). Eine Gruppen-Berechtigungsinstanz kann einen neuen Satz Gruppen-Berechtigungsschlüssel erzeugen und die neuen GA-Schlüssel an die Ersatz-Schlüsseleinheit senden. Die Schlüsseleinheit kann dann den einen oder mehrere neue GA-Schlüssel zum Entschlüsseln der neuen Abschnitte verwenden. Gemäß einigen Ausführungsformen kann jeder Abschnitt unter Verwendung eines anderen GA-Schlüssel entschlüsselt werden. Gemäß einigen Ausführungsformen können GA-Schlüssel für mehr als einen Abschnitt verwendet werden. Nachdem alle Abschnitte entschlüsselt worden sind, kann die Ersatz-Schlüsseleinheit die entschlüsselten Abschnitte an andere Schlüsseleinheiten der Gruppe senden. Die neuverschlüsselten Abschnitte können in einem Abschnitt-Speicher der anderen Schlüsseleinheiten gespeichert werden, wo sie die in Schritt 202 empfangenen Abschnitte ersetzen.
  • Das Verfahren 200 umfasst ferner ein Aktualisieren von Fingerabdrücken auf der Grundlage der neuen Abschnitte in Schritt 212. Der Schritt 212 kann zum Beispiel ein Erzeugen von Fingerabdrücken der neuverschlüsselten Abschnitte durch eine Schlüsseleinheit umfassen. Der Schritt 212 umfasst ferner ein Senden der Fingerabdrücke an die Gruppen-Berechtigungsinstanz. Die Gruppen-Berechtigungsinstanz speichert die neuen Fingerabdrücke in einer Fingerabdruck-Speichereinheit, indem sie die in zuvor in Schritt 204 geprüften und gespeicherten Fingerabdrücke ersetzt.
  • Gemäß einigen Ausführungsformen kann die Reihenfolge der Schritte 204 bis 208 unterschiedlich sein; zum Beispiel kann die in 2 dargestellte Reihenfolge nach dem System „aufteilen-dann-verschlüsseln“ verwendet werden. Gemäß einigen Ausführungsformen kann der Schlüssel jedoch vor dem Aufteilen verschlüsselt werden (was als Ausführungsform „verschlüsseln-dann-aufteilen“ bezeichnet wird). Bei solchen Ausführungsformen können die Prüf-Fingerabdrücke nicht auf der Grundlage jedes einzelnen Abschnitts, sondern auf der Grundlage des gesamten verschlüsselten Schlüssels erzeugt werden. Gemäß einigen Ausführungsformen können die Abschnitte nach dem Empfangen der verschlüsselten Abschnitte in Schritt 202 wieder zu einem (immer noch verschlüsselten) Schlüssel zusammengesetzt werden, ein Fingerabdruck des verschlüsselten Schlüssels kann erzeugt und geprüft werden, und der Gruppen-Berechtigungsschlüssel kann zum Entschlüsseln des Schlüssels verwendet werden. Bei solchen Ausführungsformen kann der Schritt 210 ein Verschlüsseln des wiederhergestellten Schlüssels mit einem neuen GA-Schlüssel mit anschließendem Aufteilen des neuverschlüsselten Schlüssels und Verteilen der Abschnitte umfassen. Im Folgenden wird unter Bezugnahme auf 7 eine allgemeine Ausführungsform nach dem System „verschlüsseln-dann-aufteilen“ beschrieben. 2 zeigt einen Ablaufplan von Schritten zum sicheren Wiederherstellen von geheimen Schlüsseln auf Systemebene. Die 3 und zeigen detailliertere Ablaufpläne von Schritten, die durch eine Gruppen-Berechtigungsinstanz beziehungsweise eine Ersatz-Schlüsseleinheit ausgeführt werden.
  • 3 zeigt ein beispielhaftes Verfahren 300 zum sicheren Wiederherstellen von geheimen Schlüsseln aus der Sicht einer Gruppen-Berechtigungsinstanz gemäß mehreren Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 300 kann durch eine Gruppen-Berechtigungsinstanz wie beispielsweise die GA 110 von 1 durchgeführt werden. Das Verfahren 300 umfasst ein Detektieren einer ausgefallenen Schlüsseleinheit in Schritt 302. Der Schritt 302 kann zum Beispiel ein Feststellen, das eine Schlüsseleinheit nicht mehr reagiert, ein Empfangen einer Anzeige, dass die Schlüsseleinheit ausgefallen ist, usw. umfassen. Die Schlüsseleinheiten tauschen miteinander Daten aus und können Techniken wie Detektieren von Überwachungssignalen verwenden, um zu überprüfen, ob die anderen Einheiten noch intakt sind. Es kommt oft zu zeitweiligen Ausfällen, die jedoch von echten Ausfällen unterschieden werden sollten. Unter Konsens ist zu verstehen, dass ein bestimmter Anteil der Einheiten (darunter möglicherweise auch die GA und andere Benutzer) feststellen, dass sie eine Zeitlang nicht in der Lage sind, eine Schlüsseleinheit zu erreichen. Gemäß einigen Ausführungsformen kann ein Bediener benachrichtigt werden zu prüfen, ob das Problem an der Schlüsseleinheit oder an etwas anderem liegt. Gemäß einigen Ausführungsformen kann die Gruppen-Berechtigungsinstanz eine Einheit nur dann als „ausgefallen“ erklären, wenn die übrigen Einheiten zustimmen.
  • Ferner umfasst das Verfahren 300 ein Starten der Wiederherstellung des Schlüssels in Schritt 304. Der Schritt 304 kann zum Beispiel ein Ermitteln einer Ersatz-Schlüsseleinheit und ein Senden eines Signals an die Gruppe der Schlüsseleinheiten, dass die Ersatz-Schlüsseleinheit die ausgefallene Schlüsseleinheit wiederherstellen soll. Gemäß einigen Ausführungsformen kann die Ersatz-Schlüsseleinheit manuell eingerichtet werden, z.B. durch einen Techniker. Gemäß einigen Ausführungsformen kann die Gruppe der Schlüsseleinheiten eine „schlafende“ oder „Reserve-" Ersatz-Schlüsseleinheit enthalten, in diesem Fall kann der Schritt 304 ein Aufwecken oder anderweitiges Aktivieren der Reserve-Ersatz-Schlüsseleinheit umfassen. Durch das Starten von Schritt 304 wird die Ersatz-Schlüsseleinheit in die Lage versetzt, verschlüsselte Schlüsselabschnitte von anderen aktiven Schlüsseleinheiten anzufordern und zu empfangen, was Im Folgenden unter Bezugnahme auf das Verfahren 400 von 4 näher erörtert wird.
  • Ferner umfasst das Verfahren 300 ein Empfangen von Fingerabdrücken verschlüsselter Schlüsselabschnitte in Schritt 306. Diese Fingerabdrücke können zum Beispiel von der Ersatz-Schlüsseleinheit empfangen werden. Gemäß einigen Ausführungsformen umfasst der Schritt 306 ein Empfangen eines Fingerabdrucks jedes verschlüsselten Abschnitts des wiederherzustellenden Schlüssels. Gemäß einigen Ausführungsformen können die Abschnitte vor dem Entschlüsseln wieder zusammengesetzt werden, und der Schritt 306 umfasst ein Empfangen eines einzigen Fingerabdrucks des verschlüsselten Schlüssels.
  • Ferner umfasst das Verfahren 300 ein Ermitteln in Schritt 308, ob die empfangenen Fingerabdrücke mit den von der Gruppen-Berechtigungsinstanz gespeicherten Fingerabdrücken übereinstimmen. Eine Gruppen-Berechtigungsinstanz kann zum Beispiel einen Satz Prüf-Fingerabdrücke in einem Fingerabdruck-Speicher (beispielsweise in dem Fingerabdruck-Speicher 114 von 1) aufbewahren. Durch Ermitteln in Schritt 308, ob die Fingerabdrücke übereinstimmen, kann die Gruppen-Berechtigungsinstanz in die Lage versetzt werden zu ermitteln, ob die Ersatz-Schlüsseleinheit alle Abschnitte erhalten hat und ob die Ersatz-Schlüsseleinheit veraltete oder anderweitig beschädigte Abschnitte hat. Dies kann beim Detektieren betrügerischer Anforderungen zum Wiederherstellen des Schlüssels nützlich sein.
  • Die das Verfahren 300 durchführende Gruppen-Berechtigungsinstanz kann eine Mehrzahl Fingerabdrücke speichern. Gemäß einigen Ausführungsformen kann der Fingerabdruck-Speicher der Gruppen-Berechtigungsinstanz zum Beispiel für jeden Speicherschlüssel in der Gruppe einen Fingerabdruck enthalten. Der Fingerabdruck-Speicher kann ferner eine Datenstruktur oder ein anderes Mittel zum Zuordnen enthalten, welcher Fingerabdruck welchem Abschnitt welches Schlüssels entspricht, was dem Fachmann verständlich sein dürfte.
  • Wenn die in Schritt 306 empfangenen Fingerabdrücke nicht mit den gespeicherten Fingerabdrücken übereinstimmen (308 „Nein“), kann die das Verfahren 300 durchführende Gruppen-Berechtigungsinstanz in Schritt 310 einen Fehler zurückgeben Gemäß einigen Ausführungsformen kann der Schritt 310 ferner ein Erzeugen eines Warnsignals umfassen oder auf andere Weise anzeigen, dass aufgrund der fehlenden Übereinstimmung zwischen den Fingerabdrücken eines Abschnitts ein Versuch zum Wiederherstellen fehlgeschlagen ist.
  • Das Verfahren 300 umfasst ferner ein Senden von Gruppen-Berechtigungsschlüsseln in Schritt 312 an die Ersatz-Schlüsseleinheit, wenn die in Schritt 306 empfangenen Fingerabdrücke mit den in der GA gespeicherten Fingerabdrücken übereinstimmen (308 „Ja“). Der Schritt 312 kann ein Ermitteln oder anderweitiges Auswählen von (durch die Gruppen-Berechtigungsinstanz gespeicherten) GA-Schlüsseln umfassen, die zum Entschlüsseln der verschlüsselten Abschnitte erforderlich sind. Gemäß einigen Ausführungsformen kann zum Beispiel jeder Abschnitt lediglich mit einem anderen GA-Schlüssel verschlüsselt sein. Durch Senden der passenden Schlüssel wird die Ersatz-Schlüsseleinheit in die Lage versetzt, die Abschnitte zu entschlüsseln und somit den Speicherschlüssel der ausgefallenen Schlüsseleinheit wiederherzustellen. Bemerkenswert ist, dass der Speicherschlüssel durch den Inhaber des Wiederherstellungsschlüssels ohne einen Dritten (beispielsweise die Gruppen-Berechtigungsinstanz, einen Benutzer, eine andere Schlüsseleinheit usw.) wiederhergestellt wird, der über Zugriff auf den Speicherschlüssel selbst verfügt. Ferner kann der Schlüssel nicht ohne beide Abschnitte von anderen Schlüsseleinheiten sowie die Schlüssel von der Gruppen-Berechtigungsinstanz wiederhergestellt werden, wodurch die Sicherheit auf vorteilhafte Weise erhöht wird.
  • Das Verfahren 300 umfasst ferner ein Erzeugen neuer GA-Schlüssel in Schritt 314. Der Schritt 314 kann das Verschlüsseln von neu erzeugten Abschnitten des Speicherschlüssels ermöglichen, um neue, unverwechselbar verschlüsselte Abschnitte zu erzeugen (die die Ersatz-Schlüsseleinheit dann an die anderen Schlüsseleinheiten verteilen kann). Ähnlich wie bei den vorhergehenden Schlüsseln kann die Gruppen-Berechtigungsinstanz für jeden Abschnitt einen neuen GA-Schlüssel erzeugen. Ferner umfasst das Verfahren 300 ein Senden der neuen GA-Schlüssel in Schritt 316 an die Ersatz-Schlüsseleinheit.
  • Wenn die Ersatz-Schlüsseleinheit die neuen GA-Schlüssel empfängt, ist sie in der Lage, neue Abschnitte zu verschlüsseln und somit neue Fingerabdrücke der neuverschlüsselten Abschnitte zu erzeugen. Ferner kann das Verfahren 300 ein Empfangen und Speichern der Fingerabdrücke neuverschlüsselter Schlüsselabschnitte in Schritt 318 umfassen. Der Schritt 318 kann ein Empfangen der Fingerabdrücke von der Ersatz-Schlüsseleinheit und ein Speichern der Fingerabdrücke im Fingerabdruck-Speicher der Ersatz-Schlüsseleinheit umfassen. Gemäß einigen Ausführungsformen kann die Gruppen-Berechtigungsinstanz die bereits vorhandenen Fingerabdrücke überschreiben, die dem durch die Ersatz-Schlüsseleinheit wiederhergestellten Speicherschlüssel zugehörig sind.
  • 4 ist ein beispielhaftes Verfahren 400 zum sicheren Wiederherstellen von geheimen Schlüsseln aus der Sicht einer Ersatz-Schlüsseleinheit gemäß mehreren Ausführungsformen der vorliegenden Offenbarung. Bei dem in 4 gezeigten Verfahren 400 kann es sich um ein Beispiel eines Ansatzes „aufteilen-dann-verschlüsseln“ handeln, jedoch kann dieses abgewandelt werden, um auch Ausführungsformen nach dem Ansatz „verschlüsseln-dann-aufteilen“ zu ermöglichen. Das Verfahren 400 kann durch eine Ersatz-Schlüsseleinheit durchgeführt werden, die in einer Gruppe von Schlüsseleinheiten enthalten oder zu dieser hinzugefügt worden ist. Die Ersatz-Schlüsseleinheit kann einer der Schlüsseleinheiten 121 bis 123 von 1 ähnlich sein oder nach Ausfall einer vorhandenen Schlüsseleinheit hinzugefügt oder anderweitig aktiviert werden. Das Verfahren 400 umfasst ein Empfangen von Anweisungen von einer Gruppen-Berechtigungsinstanz (beispielsweise der GA 110 von 1) in Schritt 402 zum Wiederherstellen eines Schlüssels. Die GA kann diese Anweisungen als Reaktion auf ein Detektieren senden, dass eine Schlüsseleinheit der Gruppe ausgefallen ist (was unter Bezugnahme auf 5 erörtert wird).
  • Ferner umfasst das Verfahren 400 ein Empfangen verschlüsselter Abschnitte des sicheren geheimen Schlüssels von anderen Schlüsseleinheiten in Schritt 404. Der Schritt 404 kann zum Beispiel ein Anfordern der dem verloren gegangenen Schlüssel der (ausgefallenen Schlüsseleinheit) entsprechenden Abschnitte von jeder der übrigen Schlüsseleinheiten in der Gruppe umfassen. Wenn zum Beispiel die Einheit 122 von 1 ausgefallen ist (und den Zugriff auf den Speicherschlüssel 142 verloren hat), kann eine (in 1 nicht gezeigte Ersatz-Schlüsseleinheit Abschnitte des Schlüssels 142 von den Einheiten 121 und 123 anfordern. Die Ersatz-Schlüsseleinheit kann dann einen verschlüsselten Schlüsselabschnitt 172 von der Schlüsseleinheit 121 und einen verschlüsselten Schlüsselabschnitt 182 von der Schlüsseleinheit 123 empfangen. Gemäß einigen Ausführungsformen kann der Schritt 404 ferner ein Empfangen eines oder mehrerer Paritäts-Schlüssel umfassen, durch die die Ersatz-Schlüsseleinheit in die Lage versetzt werden kann, einen fehlenden verschlüsselten Schlüsselabschnitt zu erzeugen.
  • Das Verfahren 400 umfasst ferner ein Senden von Fingerabdrücken der verschlüsselten Schlüsselabschnitte in Schritt 406 an die Gruppen-Berechtigungsinstanz. Der Schritt 400 kann zum Beispiel ein Erzeugen von Fingerabdrücken der in Schritt 404 empfangenen Schlüsselabschnitte umfassen. Die Fingerabdrücke können unter Verwendung einer Wiederherstellungsfunktion der Ersatz-Schlüsseleinheit (ähnlich den Wiederherstellungsfunktionen 116, 118, 120 von 1) erzeugt werden. Nachdem die Fingerabdrücke erzeugt worden sind, können sie an eine Gruppen-Berechtigungsinstanz wie die GA 110 gesendet werden. Dadurch wird die Gruppen-Berechtigungsinstanz in die Lage versetzt, die Fingerabdruck mit gespeicherten Fingerabdrücken zu vergleichen, um zu prüfen, ob die Ersatz-Schlüsseleinheit die richtigen Abschnitte hat.
  • Ferner umfasst das Verfahren 400 ein Empfangen eines oder mehrerer Gruppen-Berechtigungsschlüssel in Schritt 408 von der Gruppen-Berechtigungsinstanz. Gemäß einigen Ausführungsformen kann die Ersatz-Schlüsseleinheit für jeden Abschnitt einen GA-Schlüssel empfangen. Gemäß einigen Ausführungsformen kann ein GA-Schlüssel für mehr als einen Abschnitt empfangen werden. Wenn die in Schritt 406 gesendeten Fingerabdrücke nicht mit denjenigen im Fingerabdruck-Speicher der GA übereinstimmen, kann die GA das Senden der GA-Schlüssel ablehnen, und das Wiederherstellen kann fehlschlagen. Je nach Ausführungsform kann die Einheit unter Verwendung herkömmlicher Verfahren dennoch wiederhergestellt werden. Hierfür muss gegebenenfalls jedoch ein Schutz-/Sicherungssystem (z.B. ein RAID) mit unverschlüsselten Daten berechnet werden, was im Allgemeinen als weniger sicher erachtet wird.
  • Ferner umfasst das Verfahren 400 ein Entschlüsseln der Abschnitte mit den Gruppen-Berechtigungsschlüsseln und ein Wiederherstellen des Speicherschlüssels in Schritt 410. Der Schritt 410 kann durch eine Wiederherstellungsfunktion der Ersatz-Schlüsseleinheit ausgeführt werden. Die Gruppen-Berechtigungsinstanz kann angeben, welcher GA-Schlüssel mit dem verschlüsselten Abschnitt verwendet werden soll. Nachdem die Abschnitte entschlüsselt worden sind, können sie wieder zu dem ursprünglichen Speicherschlüssel zusammengesetzt werden. Nachdem der Speicherschlüssel wiederhergestellt worden ist, kann wieder auf die dem Speicherschlüssel zugehörige Speichereinheit zugegriffen und der Normalbetrieb wieder aufgenommen werden. Die Schritte 412 bis 420 ermöglichen dem System jedoch durch Festlegen neuer Abschnitte und Fingerabdrücke ein Wiederherstellen nach einem möglichen zukünftigen Ausfall der Ersatz-Schlüsseleinheit.
  • Ferner umfasst das Verfahren 400 ein Empfangen von Ersatz-GA-Schlüsseln in Schritt 412 von der GA. Nachdem der Speicherschlüssel wiederhergestellt worden ist, kann die GA neue Chiffrierschlüssel erzeugen, die zum Verschlüsseln von Abschnitten des Speicherschlüssels auf neue Weise verwendet werden sollen. Diese neuen GA-Schlüssel werden dann an die Ersatz-Schlüsseleinheit gesendet.
  • Ferner umfasst das Verfahren 400 ein Erzeugen neuer Abschnitte des wiederhergestellten Schlüssels in Schritt 414. Der Schritt 414 kann durch die Wiederherstellungsfunktion der Ersatz-Schlüsseleinheit ausgeführt werden.
  • Das Verfahren 400 umfasst ferner ein Verschlüsseln der neuen Abschnitte unter Verwendung der Ersatz-GA-Schlüssel in Schritt 416, nachdem die Ersatz-GA-Schlüssel empfangen (Schritt 412) und die neuen Abschnitte erzeugt worden sind (Schritt 414). Durch die neuen GA-Schlüssel kann die Ersatz-Schlüsseleinheit in die Lage versetzt werden, die Abschnitte anders als die vorhergehenden Abschnitte (d.h. die in Schritt 404 empfangenen Abschnitte) zu verschlüsseln. Der Schritt 416 kann auch durch die Wiederherstellungsfunktion der Ersatz-Schlüsseleinheit ausgeführt werden.
  • Ferner umfasst das Verfahren 400 ein Senden von Fingerabdrücken der neuen (verschlüsselten) Abschnitte in Schritt 418 an die Gruppen-Berechtigungsinstanz. Der Schritt 418 kann zum Beispiel ein Erzeugen von Fingerabdrücken der verschlüsselten Abschnitte unter Verwendung der Wiederherstellungsfunktion der Ersatz-Schlüsseleinheit und ein Senden der Fingerabdrücke an die Gruppen-Berechtigungsinstanz umfassen. Die GA kann die zuvor gespeicherten Fingerabdrücke durch die neu erzeugten Fingerabdrücke ersetzen.
  • Ferner umfasst das Verfahren 400 ein Senden der neuverschlüsselten Abschnitte in Schritt 420 an andere Schlüsseleinheiten. Der Schritt 420 kann ferner ein Auswählen der Schlüsseleinheiten, an die die Abschnitte gesendet werden sollen, wenn es mehr andere Schlüsseleinheiten als Abschnitte gibt. Gemäß einigen Ausführungsformen kann der Schritt 420 ein Senden der Abschnitte an die Schlüsseleinheiten umfassen, von denen die Ersatz-Schlüsseleinheit (in Schritt 404) die vorigen Abschnitte empfangen hat. Dadurch kann auf vorteilhafte Weise ermöglicht werden, dass das Verteilen von Schlüsselabschnitten relativ unverändert bleibt.
  • Zu beachten ist, dass in der ausgefallen Schlüsseleinheit Abschnitte anderer Schlüssel enthalten sein können, die in anderen Schlüsseleinheiten gespeichert sind. Nach dem Wiederherstellen des beschädigten Schlüssels durch die Ersatz-Schlüsseleinheit können somit die Schlüssel anderer Schlüsseleinheiten (in beliebiger Reihenfolge, je nach dem gewählten Ansatz „aufteilen-dann-verschlüsseln“ oder „verschlüsseln-dann-aufteilen“) neu aufgeteilt und neu verschlüsselt werden, und die verschlüsselten Abschnitte können neu verteilt werden. Gemäß einigen Ausführungsformen können alle Abschnitte, die über alle Schlüsseleinheiten hinweg gespeichert sind, auf diese Weise ersetzt werden. Gemäß einigen Ausführungsformen ist es möglich, dass nur die von der ausgefallenen Schlüsseleinheit gespeicherten Abschnitte wiederhergestellt und an die Ersatz-Schlüsseleinheit gesendet werden. Zu diesem Zweck können die Schlüsseleinheiten der Gruppe dieselbe Zerteilungs-Anordnung (eine „symmetrische Anordnung“) verwenden. Wenn eine erste Einheit über den Ausfall einer zweiten Einheit in Kenntnis gesetzt wird, kann die erste Einheit somit in der Lage sein zu ermitteln, welche ihrer Schlüsselabschnitte in der zweiten Einheit gespeichert waren. Bei nichtsymmetrischen Anordnungen kann die Gruppen-Berechtigungsinstanz stattdessen diese Information nachverfolgen.
  • Gemäß einigen Ausführungsformen kann eine Schlüsseleinheit vor dem Senden der neuverschlüsselten Abschnitte eine zyklische Redundanzprüfung (cyclic redundancy check, CRC) jedes Abschnitts berechnen und diese zusammen mit dem Abschnitt selbst senden. Beim Empfangen von Abschnitten kann die CRC erneut berechnet und geprüft werden, um zu erkennen, ob der Abschnitt beschädigt worden ist.
  • Anstatt (oder zusätzlich zum) Erzeugen neuer Abschnitte (Schritt 414) kann die Schlüsseleinheit gemäß einigen Ausführungsformen zu den „alten“ Abschnitten (d.h. zu den in Schritt 410 verschlüsselten Abschnitten) weitere Informationen hinzufügen, beispielsweise eine Zeitmarke, eine Sequenznummer oder eine erzeugte Zufallszahl. Die zusätzlichen Informationen bewirken, dass nach dem Verschlüsseln und Erzeugen eines Fingerabdrucks (Schritte 416 und 418) der Fingerabdruck verschieden ist. Dadurch wird die Sicherheit gegenüber einem Angreifer erhöht, der im Laufe der Zeit alte Abschnitte zu „sammeln“ versucht und schließlich in der Lage ist, einen Schlüssel wiederherzustellen (da der alte Abschnitt wegen der hinzugefügten Informationen immer noch einen anderen Fingerabdruck hat). Dadurch kann die Sicherheit erhöht und ein System in die Lage versetzt werden, alte Abschnitte wiederzuverwenden, anstatt nach dem Wiederherstellen neue Abschnitte zu erzeugen.
  • Gemäß einigen Ausführungsformen können einige Schritte des Verfahrens 400 in einer anderen Reihenfolge ausgeführt werden. Anstatt den Schlüssel zuerst aufzuteilen und die Abschnitte dann zu verschlüsseln (wie in den Schritten 414 bis 416), kann ein System den Schlüssel zuerst verschlüsseln und dann den verschlüsselten Schlüssel aufteilen.
  • 5 ist ein Verfahren 500 zum sicheren Umgang mit geheimen Schlüsseln gemäß mehreren Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 500 beschreibt die allgemeine Arbeitsweise eines Systems wie die des Systems 100 von 1. Das Verfahren 500 kann durch eine Schlüsseleinheit unter Austausch von Daten mit einem Benutzer und einer Speichereinheit oder einem Speichersystem durchgeführt werden. Das Verfahren 500 kann zum Beispiel durch die Schlüsseleinheit 121 (unter Austauschen von Daten mit Benutzern und dem Speichersystem 107) durchgeführt werden.
  • Das Verfahren 500 umfasst ein Empfangen einer Anforderung und eines Benutzerschlüssels von einem Benutzer in Schritt 502. Zwar beschreibt das Verfahren 500 ein Lesen von Daten aus einem Speichersystem, jedoch kann das Verfahren 500 so verändert werden, dass es zum Schreiben von Daten in einen Speicher in der Lage ist, was dem Fachmann bekannt ist. Der Schritt 502 kann zum Beispiel ein Empfangen einer Leseanforderung für in einem Speichersystem gespeicherte Daten umfassen. Die Schlüsseleinheit empfängt auch einen Benutzerschlüssel zum Entschlüsseln des (in einem verschlüsselten Zustand) innerhalb der Schlüsseleinheit gespeicherten Speicherschlüssels. Der Schritt 502 kann auch ein Ausführen einer Authentifizierungsprozedur (oft als Teil der Herstellung einer sicheren Datenübertragungsverbindung).
  • Ferner umfasst das Verfahren 500 ein Ermitteln in Schritt 504, ob der Benutzerschlüssel in der Lage ist, Zugriff auf die Verwendung des Schlüssels durch die Schlüsseleinheit zu erlangen (beispielsweise durch Entschlüsseln des Speicherschlüssels). Wenn der Benutzerschlüssel den Speicherschlüssel nicht entschlüsselt, kann der Benutzer keinen Zugriff auf den Speicherschlüssel erlangen (504 „Nein“), woraufhin die Anforderung in Schritt 506 abgelehnt wird. Der Schritt 506 kann ein Zurückgeben einer Fehlernachricht an den anfordernden Benutzer umfassen. Die Fehlernachricht kann anzeigen, dass der Benutzer keinen Zugriff auf das Speichersystem oder den Speicherschlüssel hat.
  • Ferner umfasst das Verfahren 500 ein Abrufen der angeforderten Daten (in einem verschlüsselten Zustand) in Schritt 508 vom Speicher, wenn der Benutzerschlüssel in der Lage ist, den Speicherschlüssel zu entschlüsseln (504 „Ja“). Dann wird in Schritt 510 der Speicherschlüssel mittels des Benutzerschlüssels entschlüsselt und in Schritt 512 der entschlüsselte Speicherschlüssel zum Entschlüsseln der abgerufenen Daten verwendet. Ferner umfasst das Verfahren 500 ein Senden der angeforderten Daten an den Benutzer in Schritt 514 als Reaktion auf die Anforderung.
  • Gemäß einigen Ausführungsformen kann eine Gruppen-Berechtigungsinstanz einen Speicherschlüssel überprüfen, indem sie einen Test-Datenblock erzeugt und veranlasst, dass dieser (mittels eines veränderten Verfahrens 500) mittels des Speicherschlüssels (oder mittels eines Testschlüssels, der durch Verschlüsseln des Speicherschlüssels unter Verwendung eines durch die Gruppen-Berechtigungsinstanz oder durch die Schlüsseleinheit gespeicherten Prüfschlüssels erzeugt wurde, in der der zu testende Speicherschlüssel gespeichert ist) verschlüsselt in einem Speicher gespeichert wird. Ein Fingerabdruck der Daten kann in dem Fingerabdruck-Speicher der Gruppen-Berechtigungsinstanz gespeichert werden. Zu einem späteren Zeitpunkt kann die Gruppen-Berechtigungsinstanz die Schlüsseleinheit veranlassen, die Daten zu entschlüsseln, einen neuen Fingerabdruck zu erzeugen und den neuen Fingerabdruck an die Gruppen-Berechtigungsinstanz senden. Wenn die Fingerabdrücke nicht übereinstimmen, kann sich der Speicherschlüssel verändert haben. Dies kann insbesondere von Vorteil bei der Prüfung sein, ob eine Wiederherstellung erfolgreich war.
  • 6 ist ein Blockschaubild, das ein System 600 mit einer beispielhaften Schlüsseleinheit 621 genauer veranschaulicht, die mehrere Schlüsselzugangs-Steuereinheiten 631, 632, 633, 634 und 635 sowie Speicherschlüssel 641 und 642 gemäß mehreren Ausführungsformen der vorliegenden Offenbarung enthält. Die Schlüsseleinheit 621 kann Teil einer größeren Gruppe von (in 6 nicht gezeigten) Schlüsseleinheiten sein. 6 zeigt auch einen Benutzer 601 (mit einem Benutzerschlüssel 611, einen Benutzer 602 (mit einem Benutzerschlüssel 612) und einen Benutzer 603 (mit einem Benutzerschlüssel 613). Wesentlich ist, dass die Schlüsseleinheit 621 mehrere Kopien des Speicherschlüssels enthalten kann, die jeweils unter Verwendung eines anderen Schlüssels verschlüsselt sind, damit mehrere Benutzer auf denselben Speicherschlüssel zugreifen können. Auf diese Weise kann es mehreren Benutzern ermöglicht werden, ohne Gefährdung der Sicherheit in Bezug auf die Art und Weise der Speicherung des Schlüssels (jeweils mit ihrem eigenen Benutzerschlüssel) auf denselben Schlüssel zuzugreifen.
  • Wenn ein Benutzer Zugriff auf den Speicher 608 wünscht, sendet er seinen Benutzerschlüssel an die Schlüsseleinheit 621. Der Benutzerschlüssel wird dann an eine (durch Vorhängeschlösser 651, 652, 653 dargestellte) Verschlüsselungs-/Entschlüsselungsfunktion einer der Schlüsselzugriffs-Steuereinheiten übergeben. Zum Beispiel kann die Verschlüsselungs-/Entschlüsselungsfunktion 651 der Schlüsselzugriffs-Steuereinheit 631 mit dem Benutzerschlüssel 611, die Verschlüsselungs-/Entschlüsselungsfunktion 652 der Schlüsselzugriffs-Steuereinheit 632 hingegen mit dem Benutzerschlüssel 612 entschlüsselt werden. Beachtenswert ist, dass in der Schlüsselzugriffs-Steuereinheit 631 sowie der Schlüsselzugriffs-Steuereinheit 632 verschlüsselte Kopien desselben Speicherschlüssels 641 gespeichert sind. Die Kopien sind lediglich unterschiedlich verschlüsselt, sodass zum Beispiel der Benutzerschlüssel 611 keinen Zugriff auf die Schlüsselzugriffs-Steuereinheit 632 erlangen kann (da der Benutzerschlüssel 611 nur das Vorhängeschloss 651 entschlüsseln kann).
  • Ferner kann die Schlüsselzugriffs-Steuereinheit 633 einen verschiedenen Speicherschlüssel 642 enthalten, der jedoch so verschlüsselt ist (Vorhängeschloss 651), dass der Benutzerschlüssel ihn entschlüsseln kann. Desgleichen kann die Schlüsselzugriffs-Steuereinheit 634 eine zweite mittels der Verschlüsselung 652 verschlüsselte Kopie enthalten, und die Schlüsselzugriffs-Steuereinheit kann eine dritte mittels der Verschlüsselung 653 verschlüsselte Kopie des Speicherschlüssels 642 enthalten, die mittels des Benutzerschlüssels 613 entschlüsselbar ist. Dies kann zum Beispiel bedeuten, dass zwei Benutzer in der Lage sind, Zugriff auf den Speicherschlüssel 641 zu erlangen, während drei Benutzer in der Lage sind, Zugriff auf den Speicherschlüssel 642 zu erlangen.
  • Die Schlüsseleinheit 621 enthält auch einen in 6 gezeigten Abschnitts-Speicher 660, der mehrere Abschnitte von verschiedenen Schlüsseln 661, 662, 663 und 664 (insgesamt als „Abschnitte 661 bis 664“ bezeichnet) enthält. Die Abschnitte 661 bis 664 können Abschnitten von verschiedenen Schlüsseln entsprechen, die von anderen Schlüsseleinheiten in derselben Gruppe gespeichert sind. Die Abschnitte 661 bis 664 sind in einem verschlüsselten Zustand gespeichert und können auf Anforderung einer Gruppen-Berechtigungsinstanz an eine Ersatz-Schlüsseleinheit gesendet werden.
  • Die Schlüsseleinheit 621 ist mit dem Speichersystem 608 verbunden, das eine oder mehrere Speichereinheiten umfasst. An das Speichersystem 608 gesendete oder von diesem empfangene Daten können mittels eines der Speicherschlüssel 641 oder 642 verschlüsselt/entschlüsselt werden.
  • Wenn die Schlüsseleinheit 621 erstmalig initialisiert wird, werden die Speicherschlüssel 641 und 642 mittels einer Wiederherstellungsfunktion aufgeteilt. Die Abschnitte können dann unter Verwendung eines oder mehrerer von einer (in 6 nicht gezeigten) Gruppen-Berechtigungsinstanz empfangener Gruppen-Berechtigungsschlüssel verschlüsselt und zum sicheren Speichern auf andere Schlüsseleinheiten in der (in 6 nicht gezeigten) Gruppe verteilt werden.
  • 7 ist eine Übersicht eines Verfahrens 700 zum sicheren Wiederherstellen geheimer Schlüssel gemäß mehreren Ausführungsformen der vorliegenden Offenbarung, das einen Ansatz „verschlüsseln-dann-aufteilen“ verwendet. Das Verfahren 700 kann durch ein System durchgeführt werden, das zum sicheren Wiederherstellen von geheimen Schlüsseln konfiguriert ist, beispielsweise das System 100 von 1. Das Verfahren 700 kann als Reaktion darauf durchgeführt werden, dass eine Schlüsseleinheit ausfällt, eine Prüfung gestartet wird, usw. Das Verfahren 700 umfasst ein Empfangen verschlüsselter Abschnitte eines Schlüssels in Schritt 702. Der Schritt 702 kann zum Beispiel durch eine Ersatz-Schlüsseleinheit ausgeführt werden. Der Schritt 702 kann ein Empfangen verschlüsselter Abschnitte eines geheimen Schlüssels von anderen Schlüsseleinheiten in der Schlüsselgruppe oder in dem System umfassen. Gemäß einigen Ausführungsformen kann der Schritt 702 auch ein Empfangen eines oder mehrerer Paritäts-Schlüssel von einer Schlüsseleinheit in dem System umfassen. Gemäß einigen Ausführungsformen kann der Schritt 702 ein Empfangen eines einzelnen Abschnitts des geheimen Schlüssels umfassen. Gemäß einigen Ausführungsformen kann der Schritt 702 ein Empfangen aller Abschnitte des geheimen Schlüssels bis auf einen zusammen mit einem Paritäts-Schlüssel umfassen, wodurch ein Wiederherstellen des fehlenden Abschnitts ermöglicht wird.
  • Ferner umfasst das Verfahren 700 ein Zusammensetzen der verschlüsselten Abschnitte in Schritt 704 zu einem verschlüsselten Schlüssel. Der Schritt 704 kann zum Beispiel ein Lesen einer oder mehrerer Kennungen jedes Abschnitts zum Ermitteln einer ordnungsgemäßen Reihenfolge für das Anordnen der Abschnitte, um diese zu dem verschlüsselten Schlüssel zusammenzusetzen. Bemerkenswert ist, dass eine Schlüsseleinheit zwar in der Lage sein kann, den verschlüsselten Schlüssel zusammenzusetzen, jedoch nicht in der Lage ist, den Schlüssel ohne den passenden Gruppen-Berechtigungsschlüssel zu entschlüsseln (und somit wiederherzustellen). Die Gruppen-Berechtigungsinstanz kann von der Schlüsseleinheit einen Nachweis fordern, dass es sich bei dem von ihr zusammengesetzten verschlüsselten Schlüssel um den richtigen Schlüssel handelt.
  • Ferner umfasst das Verfahren 700 ein Überprüfen eines Fingerabdrucks des verschlüsselten Schlüssels in Schritt 706. Der Schritt 706 kann zum Beispiel ein Erzeugen eines Fingerabdrucks des verschlüsselten Schlüssels und ein Vergleichen des Fingerabdrucks mit einem gespeicherten Fingerabdruck umfassen. Die Schlüsseleinheit kann zum Beispiel eine Hash-Funktion wie den Secure Hash Algorithm (SHA)-256 verwenden oder eine Prüfsumme erzeugen. Eine Schlüsseleinheit kann den Fingerabdruck erzeugen und diesen an eine Gruppen-Berechtigungsinstanz senden. Gemäß einigen Ausführungsformen kann die Gruppen-Berechtigungsinstanz den empfangenen Fingerabdruck mit einem gespeicherten Fingerabdruck vergleichen, um zu ermitteln, ob der verschlüsselte Schlüssel gültig ist (z.B. um zu bestätigen, ob der wieder zusammengesetzte verschlüsselte Schlüssel mit dem zuvor aufgeteilten verschlüsselten und wiederhergestellten Schlüssel identisch ist). Bemerkenswert ist, dass der verschlüsselte Schlüssel selbst nicht an die Gruppen-Berechtigungsinstanz gesendet werden kann; vielmehr empfängt diese lediglich einen Hashwert des verschlüsselten Schlüssels. Auf diese Weise vermag sogar die Gruppen-Berechtigungsinstanz nicht den Schlüssel zu erhalten.
  • Ferner umfasst das Verfahren 700 ein Entschlüsseln des Schlüssels in Schritt 708. Der Schritt 708 kann zum Beispiel ein Verwenden eines Gruppen-Berechtigungsschlüssels zum Entschlüsseln des zusammengesetzten verschlüsselten Schlüssels umfassen. Der Gruppen-Berechtigungsschlüssel kann durch die Gruppen-Berechtigungsinstanz an die Schlüsseleinheit gesendet werden, sobald die Gruppen-Berechtigungsinstanz bestätigt, dass der Fingerabdruck des verschlüsselten Schlüssels gültig ist (z.B. nach Schritt 706). Nachdem der Gruppen-Berechtigungsschlüssel empfangen wurde, verwendet die Schlüsseleinheit den Gruppen-Berechtigungsschlüssel zum Entschlüsseln des Schlüssels. Bemerkenswert ist, dass die Gruppen-Berechtigungsinstanz mehrere verschiedene Gruppen-Berechtigungsschlüssel enthalten kann (oder in der Lage sein kann, diese zu erzeugen/zu erhalten); die Schlüsseleinheit kann den Schlüssel nur mit dem passenden Schlüssel entschlüsseln. Die Gruppen-Berechtigungsinstanz kann zum Beispiel auf der Grundlage der Ergebnisse des Vergleichs der Fingerabdrücke (gespeicherte Fingerabdrücke können als Indizes für ein Array von Gruppen-Schlüsseln verwendet werden), einer speziellen Anforderung (die Schlüsseleinheit kann ausdrücklich erklären, dass sie beabsichtigt, einen bestimmten Speicherschlüssel wiederherzustellen oder einen bestimmten Gruppen-Berechtigungsschlüssel anzufordern) usw. festlegen, welcher Schlüssel (wenn überhaupt) an die Schlüsseleinheit gesendet werden soll.
  • Gemäß einigen Ausführungsformen können die in dieser Offenbarung erörterten verschlüsselten Abschnitte zu einem Fehlerkorrektur-Code (beispielsweise ein Lösch-Code) codiert werden, um einen zweiten Satz Abschnitte zu erzeugen. Bei dem verwendeten Code kann es sich um einen beliebigen Typ Fehlerkorrektur-Code (z.B. 3+P, Tornado-Codes, Reed-Solomon-Codes usw.) handeln, darunter Codes mit mehreren Paritäten.
  • Gemäß einigen Ausführungsformen kann sogar bei einem Ansatz „verschlüsseln-dann-aufteilen“ für jeden verschlüsselten Abschnitt ein Fingerabdruck erzeugt und an eine Gruppen-Berechtigungsinstanz gesendet werden. Dadurch kann eine Gruppen-Berechtigungsinstanz in die Lage versetzt werden zu detektieren, ob eine Schlüsseleinheit einen veränderten Abschnitt hat (was als Beweis für einen böswilligen Angreifer oder eine Beschädigung dienen kann). Auch ein Fehlerkorrektur-Code kann eine solche Veränderung (im Rahmen der Leistungsfähigkeit des Codes) detektieren und korrigieren.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
    • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
    • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
    • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
    • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
    • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
    • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
    • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
    • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 8 ist die veranschaulichende Cloud-Computing-Umgebung 800 abgebildet. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 800 einen oder mehrere Cloud-Computing-Knoten 810, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 840A, der Desktop-Computer 940B, der Laptop-Computer 840C und/oder das Automobil-Computer-System 840N Daten austauschen können. Die Knoten 810 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 800, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 8 gezeigten Datenverarbeitungseinheiten 840A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 810 und die Cloud-Computing-Umgebung 800 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 9 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 800 (8) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 960 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 961; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 962; Server 963; Blade-Server 964; Speichereinheiten 965; und Netzwerke sowie Netzwerkkomponenten 966. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 967 und eine Datenbank-Software 968.
  • Eine Virtualisierungsschicht 970 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 971, virtueller Speicher 972, virtuelle Netzwerke 973, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 974; und virtuelle Clients 975.
  • In einem Beispiel kann die Verwaltungsschicht 980 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 981 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 982 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 983 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 984 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 985 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 990 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 991; Software-Entwicklung und Lebenszyklusverwaltung 992; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 993; Datenanalytikverarbeitung 994; Transaktionsverarbeitung 995; und sicheres Wiederherstellen von geheimen Schlüsseln 996.
  • In 10 ist ein Übersichts-Blockschaltbild eines beispielhaften Computersystems 1000 gezeigt, das zum Ausführen verschiedener Aspekte der vorliegenden Offenbarung konfiguriert werden kann, darunter mittels der Verfahren 200, 300, 400, 500 und/oder 700. Das beispielhafte Computersystem 1000 kann zum Umsetzen eines oder mehrerer der Verfahren und Module und aller hierin beschriebenen diesbezüglichen Funktionen oder Operationen (z.B. unter Verwendung eines oder mehrerer Prozessorschaltkreise oder Computer-Prozessoren des Computers) gemäß Ausführungsformen der vorliegenden Offenbarung verwendet werden. Gemäß einigen Ausführungsformen können die Hauptkomponenten des Computersystems 1000 eine oder mehrere CPUs 1002, ein Speicher-Teilsystem 1008, eine Terminal-Schnittstelle 1016, eine Speicher-Schnittstelle 1018, eine E /A- (Eingabe /Ausgabe-) Einheiten-Schnittstelle 1020 und eine Netzwerk-Schnittstelle 1022 aufweisen, die alle über einen Speicherbus 1006, einen E-/A-Bus 1014 und eine E-/A-Bus-Schnittstelleneinheit 1012 zum Austauschen von Daten untereinander direkt oder indirekt miteinander verbunden sind.
  • Das Computersystem 1000 kann eine oder mehrere programmierbare Universal-Verarbeitungseinheiten (CPUs) 1002 enthalten, von denen einige oder alle einen oder mehrere Kerne 1004A, 1004B, 1004C und 1004D enthalten können, die hierin allgemein als CPU 1002 bezeichnet werden. Gemäß einigen Ausführungsformen kann das Computersystem 1000 mehrere für ein relativ großes System typische Prozessoren enthalten; gemäß anderen Ausführungsformen kann es sich bei dem Computersystem alternativ jedoch um ein Ein-CPU-System handeln. Jede CPU 1002 kann in dem Speicher-Teilsystem 1008 gespeicherte Anweisungen auf einem CPU-Kern 1004 ausführen und eine oder mehrere Ebenen von Caches auf der Leiterplatte aufweisen.
  • Gemäß einigen Ausführungsformen kann das Speicher-Teilsystem 1008 einen Direktzugriffs-Halbleiterspeicher, eine Massenspeichereinheit oder ein Speichermedium (flüchtig oder permanent) zum Speichern von Daten und Programmen aufweisen. Gemäß einigen Ausführungsformen kann das Speicher-Teilsystem 1008 den gesamten virtuellen Speicher des Computersystems 1000 darstellen sowie den virtuellen Speicher anderer mit dem Computersystem 1000 oder über ein Netzwerk verbundener Computersysteme enthalten. Bei dem Speicher-Teilsystem 1008 kann es sich konstruktiv um eine einzige monolithische Einheit handeln, jedoch kann es sich gemäß einigen Ausführungsformen bei dem Speicher-Teilsystem 1008 um eine komplexere Anordnung handeln, beispielsweise eine Hierarchie von Caches und anderen Speichereinheiten. Der Speicher kann sich zum Beispiel in mehreren Cache-Ebenen befinden, und diese Caches können weiterhin nach ihrer Funktion unterschieden sein, sodass ein Cache Anweisungen und ein anderer Cache von Anweisungen unabhängige Daten aufbewahrt, die durch den oder die Prozessoren verwendet werden. Der Speicher kann weiterhin verteilt und verschiedenen CPUs oder Sätzen von CPUs zugeteilt sein, was bei verschiedenen Computer-Architekturen mit so genanntem nicht einheitlichem Speicherzugriff (non-uniform memory access, NUMA) bekannt ist. Gemäß einigen Ausführungsformen kann der Hauptspeicher oder das Speicher-Teilsystem 804 Elemente zum Steuern des Datenflusses von durch die CPU 1002 verwendeten Speichern enthalten. Hierzu kann auch ein Speicher-Controller 1010 gehören.
  • Der Speicherbus 1006 ist in 10 zwar als Einzelbusstruktur gezeigt, die einen direkten Datenübertragungspfad zwischen der CPU 1002, dem Speicher-Teilsystem 1008 und der E-/A-Busschnittstelle 1012 bereitstellt, jedoch kann der Speicherbus 1006 gemäß einigen Ausführungsformen mehrere verschiedene Busse oder Datenübertragungspfade aufweisen, die in einer beliebigen verschiedener Formen angeordnet sein können, beispielsweise als Punkt-zu-Punkt-Verbindungen in hierarchischen, Stern- oder Web-Konfigurationen, mehrere hierarchische Busse, parallele und redundante Pfade, oder in einem beliebigen anderen geeigneten Konfigurationstyp. Darüber hinaus sind die E-/A-Busschnittstelle 1012 und der E-/A-Bus 1014 zwar jeweils als einzelne Einheiten gezeigt, jedoch kann das Computersystem 1000 gemäß einigen Ausführungsformen mehrere E-/A-Bus-Schnittstelleneinheiten 1012, mehrere E-/A-Busse 1014 oder beide enthalten. Ferner sind zwar mehrere E-/A-Schnittstelleneinheiten gezeigt, die den E-/A-Bus 1014 von verschiedenen zu den verschiedenen E-/A-Einheiten verlaufenden Datenübertragungspfaden trennen, können gemäß anderen Ausführungsformen eine oder alle E-/A-Einheiten direkt mit einem oder mehreren System-E-/A-Bussen verbunden sein.
  • Gemäß einigen Ausführungsformen kann es sich bei dem Computersystem 1000 um ein Mehrbenutzer-Mainframe-Computersystem, ein Einzelbenutzer-System oder einen Server-Computer oder eine ähnliche Einheit handeln, die nur eine geringe oder keine Benutzeranbindung hat, jedoch Anforderungen von anderen Computersystemen (Clients) empfängt. Gemäß einigen Ausführungsformen kann das Computersystem 1000 ferner als Arbeitsplatz-Computer, als tragbarer Computer, als Laptop- oder Notebook-Computer, als Tablet-Computer, als Taschen-Computer, als Telefon, Smartphone, mobile Einheit oder beliebiger anderer geeigneter Typ von elektronischer Einheit umgesetzt werden.
  • Es wird darauf hingewiesen, dass 10 die repräsentativen Hauptkomponenten eines beispielhaften Computersystems 1000 darstellen soll. Gemäß einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität als in 10 dargestellt haben, es können andere oder zusätzliche Komponenten als in 10 gezeigt vorhanden sein, und die Anzahl, der Typ und die Konfiguration solcher Komponenten kann variieren.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit in einem Schritt, gleichzeitig, im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung sind zum Zweck der Veranschaulichung vorgelegt worden, erheben jedoch nicht den Anspruch auf Vollständigkeit oder Einschränkung auf die offenbarten Ausführungsformen. Dem Fachmann dürften viele Modifikationen und Varianten offensichtlich sein, ohne vom Schutzumfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendeten Begriffe wurden gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber handelsüblichen Technologien zu erläutern oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (25)

  1. Verfahren zum Wiederherstellen eines geheimen Schlüssels durch eine erste Schlüsseleinheit, wobei das Verfahren aufweist: Empfangen eines ersten verschlüsselten Abschnitts von einer zweiten Schlüsseleinheit und eines zweiten verschlüsselten Abschnitts von einer dritten Schlüsseleinheit; Empfangen eines oder mehrerer Gruppen-Berechtigungsschlüssel von einer Gruppen-Berechtigungsinstanz; Entschlüsseln des ersten verschlüsselten Abschnitts und des zweiten verschlüsselten Abschnitts unter Verwendung des einen oder mehrerer Gruppen-Berechtigungsschlüssel; und Wiederherstellen des geheimen Schlüssels auf der Grundlage des ersten entschlüsselten Abschnitts und des zweiten entschlüsselten Abschnitts.
  2. Verfahren nach Anspruch 1, das ferner aufweist: Erzeugen eines ersten Fingerabdrucks des verschlüsselten ersten Fingerabdrucks und eines zweiten Fingerabdrucks des verschlüsselten zweiten Abschnitts; und Senden des ersten Fingerabdrucks und des zweiten Fingerabdrucks an die Gruppen-Berechtigungsinstanz, wobei das Empfangen des einen oder mehrerer Gruppen-Berechtigungsschlüssel als Reaktion darauf erfolgt, dass die Gruppen-Berechtigungsinstanz den ersten Fingerabdruck und den zweiten Fingerabdruck überprüft.
  3. Verfahren nach Anspruch 1, das ferner aufweist: Aufteilen des wiederhergestellten geheimen Schlüssels in einen ersten neuen Abschnitt und einen zweiten neuen Abschnitt; Verschlüsseln des ersten neuen Abschnitts und des zweiten neuen Abschnitts; Senden des verschlüsselten ersten neuen Abschnitts an die zweite Schlüsseleinheit; und Senden des verschlüsselten zweiten neuen Abschnitts an die dritte Schlüsseleinheit.
  4. Verfahren nach Anspruch 3, das ferner ein Empfangen eines oder mehrerer neuer Gruppen-Berechtigungsschlüssel von der Gruppen-Berechtigungsinstanz aufweist, wobei das Verschlüsseln des ersten neuen Abschnitts und des zweiten neuen Abschnitts unter Verwendung des einen oder mehrerer Gruppen-Berechtigungsschlüssel durchgeführt wird.
  5. Verfahren nach Anspruch 3, das ferner aufweist: Erzeugen eines ersten neuen Fingerabdrucks des verschlüsselten ersten neuen Abschnitts; Erzeugen eines zweiten neuen Fingerabdrucks des verschlüsselten zweiten Abschnitts; und Senden des ersten neuen Fingerabdrucks und des zweiten neuen Fingerabdrucks an die Gruppen-Berechtigungsinstanz.
  6. Verfahren nach Anspruch 3, das ferner aufweist: Empfangen eines dritten verschlüsselten Abschnitts von der zweiten Schlüsseleinheit; Empfangen eines vierten verschlüsselten Abschnitts von der dritten Schlüsseleinheit; und Speichern des dritten verschlüsselten Abschnitts und des vierten verschlüsselten Abschnitts in einem Abschnitts-Speicher.
  7. Verfahren nach Anspruch 6, das ferner aufweist: Feststellen, dass die dritte Schlüsseleinheit ausgefallen ist; Empfangen einer Anforderung von der Gruppen-Berechtigungsinstanz, den vierten verschlüsselten Abschnitt an eine vierte Schlüsseleinheit zu senden; und Senden des vierten verschlüsselten Abschnitts an die vierte Schlüsseleinheit.
  8. Verfahren nach Anspruch 1, das ferner aufweist: Verschlüsseln des wiederhergestellten geheimen Schlüssels; Speichern des wiederhergestellten geheimen Schlüssels in einer Steuereinheit für den Zugriff auf geheime Schlüssel; Empfangen einer Anforderung von einem Benutzer, wobei die Anforderung einen Benutzerschlüssel enthält; Entschlüsseln des geheimen Schlüssels unter Verwendung des Benutzerschlüssels; und Antworten auf die Anforderung unter Verwendung des wiederhergestellten geheimen Schlüssels.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei dem geheimen Schlüssel um einen Speicher-Chiffrierschlüssel handelt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei der Gruppen-Berechtigungsinstanz um eine Zertifikats-Berechtigungsinstanz handelt.
  11. System, das aufweist: einen Speicher; und eine mit dem Speicher verbundene Zentraleinheit (central processing unit, (CPU)), wobei die CPU zum Ausführen von Anweisungen konfiguriert ist, um: festzustellen, dass eine Schlüsseleinheit ausgefallen ist, in der ein geheimer Schlüssel gespeichert ist, wobei die Schlüsseleinheit in einer Gruppe enthalten ist; Fingerabdrücke verschlüsselter Schlüsselabschnitte von einer Ersatz-Schlüsseleinheit zu empfangen; die empfangenen Fingerabdrücke zu prüfen, wobei das Prüfen ein Vergleichen der empfangenen Fingerabdrücke mit gespeicherten Fingerabdrücken umfasst, die in einem Fingerabdruck-Speicher gespeichert sind; und als Reaktion auf das Prüfen einen oder mehrere gespeicherte Gruppen-Berechtigungsschlüssel an die Ersatz-Schlüsseleinheit zu senden.
  12. System nach Anspruch 11, wobei die CPU ferner so konfiguriert ist, dass sie: die Ersatz-Schlüsseleinheit zu der Gruppe hinzufügen kann; und eine Identität der Ersatz-Schlüsseleinheit überprüfen kann.
  13. System nach Anspruch 11, wobei die CPU ferner so konfiguriert ist, dass sie: einen oder mehrere neue Gruppen-Berechtigungsschlüssel erzeugen kann; und den einen oder mehrere Gruppen-Berechtigungsschlüssel an die Ersatz-Schlüsseleinheit senden kann.
  14. System nach Anspruch 12, wobei die CPU ferner so konfiguriert ist, dass sie: neue Fingerabdrücke von der Ersatz-Schlüsseleinheit empfangen kann; und die neuen Fingerabdrücke in dem Fingerabdruck-Speicher speichern kann.
  15. System nach einem der Ansprüche 11 bis 14, wobei es sich bei der Gruppen-Berechtigungsinstanz um eine Zertifikats-Berechtigungsinstanz handelt.
  16. System nach einem der Ansprüche 11 bis 15, wobei es sich bei dem geheimen Schlüssel um einen Speicher-Chiffrierschlüssel handelt.
  17. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zu veranlassen: einen geheimen Schlüssel zu beziehen; einen oder mehrere Gruppen-Berechtigungsschlüssel von einer Gruppen-Berechtigungsinstanz zu empfangen; und auf der Grundlage des einen oder mehrerer Gruppen-Berechtigungsschlüssel eine Mehrzahl verschlüsselter Abschnitte des geheimen Schlüssels zu erzeugen.
  18. Computerprogrammprodukt nach Anspruch 17, wobei die Anweisungen den Computer ferner veranlassen: auf der Grundlage des geheimen Schlüssels einen oder mehrere Fingerabdrücke zu erzeugen; und den einen oder mehrere Fingerabdrücke an die Gruppen-Berechtigungsinstanz zu senden.
  19. Computerprogrammprodukt nach Anspruch 17, wobei: der eine oder mehrere Gruppen-Berechtigungsschlüssel aus einem einzelnen Gruppen-Berechtigungsschlüssel bestehen; und das Erzeugen der Mehrzahl verschlüsselter Abschnitte umfasst: Verschlüsseln des geheimen Schlüssels unter Verwendung des einzelnen Gruppen-Berechtigungsschlüssels; und Aufteilen des verschlüsselten geheimen Schlüssels.
  20. Computerprogrammprodukt nach Anspruch 17, wobei das Erzeugen der Mehrzahl verschlüsselter Abschnitte umfasst: Aufteilen des geheimen Schlüssels in eine Mehrzahl Abschnitte; und Verschlüsseln der Mehrzahl Abschnitte unter Verwendung des einen oder mehrerer Gruppen-Berechtigungsschlüssel.
  21. Computerprogrammprodukt nach Anspruch 17, wobei die Anweisungen ferner den Computer veranlassen, die Mehrzahl verschlüsselter Abschnitte an eine Mehrzahl Schlüsseleinheiten zu senden.
  22. Computerprogrammprodukt nach Anspruch 17, wobei die Anweisungen den Computer ferner veranlassen: auf der Grundlage der verschlüsselten Abschnitte und eines Fehlerkorrektur-Codes eine zweite Mehrzahl Abschnitte zu erzeugen; und die zweite Mehrzahl Abschnitt an eine Mehrzahl Schlüsseleinheiten zu senden.
  23. Computerprogrammprodukt nach Anspruch 17, wobei die Anweisungen ferner den Computer veranlassen: einen ersten verschlüsselten Abschnitt von einer ersten Schlüsseleinheit und einen zweiten verschlüsselten Abschnitt von einer zweiten Schlüsseleinheit zu empfangen; den ersten verschlüsselten Abschnitt und den zweiten verschlüsselten Abschnitt zu speichern; eine Anforderung zum Senden des zweiten verschlüsselten Abschnitts an eine Ersatz-Schlüsseleinheit von der Gruppen-Berechtigungsinstanz zu empfangen; und als Reaktion auf die Anforderung den zweiten verschlüsselten Abschnitt an die Ersatz-Schlüsseleinheit zu senden.
  24. Computerprogrammprodukt nach Anspruch 23, wobei die Anweisungen den Computer ferner veranlassen: einen Ersatz-Abschnitt von der Ersatz-Schlüsseleinheit zu empfangen; und den ersten verschlüsselten Abschnitt durch den Ersatz-Abschnitt zu ersetzen.
  25. Computerprogrammprodukt nach Anspruch 24, wobei die Anweisungen den Computer ferner veranlassen: einen oder mehrere neue Gruppen-Berechtigungsschlüssel von der Gruppen-Berechtigungsinstanz zu empfangen; auf der Grundlage des einen oder mehrerer Gruppen-Berechtigungsschlüssel einen oder mehrere neue verschlüsselte Abschnitte des geheimen Schlüssels zu erzeugen; und mindestens einen des einen oder der mehreren neuen verschlüsselten Abschnitte an die Ersatz-Schlüsseleinheit zu senden.
DE112021002747.6T 2020-07-02 2021-06-04 Sicheres wiederherstellen von geheimen schlüsseln Pending DE112021002747T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/919,248 US20220006613A1 (en) 2020-07-02 2020-07-02 Secure secret recovery
US16/919,248 2020-07-02
PCT/IB2021/054897 WO2022003449A1 (en) 2020-07-02 2021-06-04 Secure secret recovery

Publications (1)

Publication Number Publication Date
DE112021002747T5 true DE112021002747T5 (de) 2023-03-09

Family

ID=79167872

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002747.6T Pending DE112021002747T5 (de) 2020-07-02 2021-06-04 Sicheres wiederherstellen von geheimen schlüsseln

Country Status (8)

Country Link
US (1) US20220006613A1 (de)
JP (1) JP2023531695A (de)
KR (1) KR20230031279A (de)
CN (1) CN115769544A (de)
AU (1) AU2021302873A1 (de)
DE (1) DE112021002747T5 (de)
GB (1) GB2611966A (de)
WO (1) WO2022003449A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721585A (zh) * 2021-01-06 2022-07-08 伊姆西Ip控股有限责任公司 存储管理方法、设备和计算机程序产品

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8031875B1 (en) * 2007-08-09 2011-10-04 Emc Corporation Key distribution in unidirectional channels with applications to RFID
CN101853220A (zh) * 2009-04-02 2010-10-06 同方股份有限公司 一种具有密钥分拆存储机制的移动存储设备
US8918897B2 (en) * 2009-11-24 2014-12-23 Cleversafe, Inc. Dispersed storage network data slice integrity verification
CA2781872A1 (en) * 2009-11-25 2011-06-09 Security First Corp. Systems and methods for securing data in motion
CN102065135B (zh) * 2010-12-15 2013-02-13 中国联合网络通信集团有限公司 点对点数据获取方法、系统及服务器
US9479383B2 (en) * 2011-07-12 2016-10-25 Hughes Network Systems, Llc Data compression for priority based data traffic, on an aggregate traffic level, in a multi stream communications system
US20140331061A1 (en) * 2013-05-02 2014-11-06 Solidfire, Inc Drive level encryption key management in a distributed storage system
US9369289B1 (en) * 2013-07-17 2016-06-14 Google Inc. Methods and systems for performing secure authenticated updates of authentication credentials
KR102460096B1 (ko) * 2015-05-27 2022-10-27 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US9954680B1 (en) * 2015-12-18 2018-04-24 EMC IP Holding Company LLC Secure management of a master encryption key in a split-key based distributed computing environment
US10680805B2 (en) * 2016-11-04 2020-06-09 Visa International Service Association Data encryption control using multiple controlling authorities
CN106789977B (zh) * 2016-12-07 2020-05-26 北京信任度科技有限公司 一种基于密钥分割实现手机令牌的方法及系统
US10867057B1 (en) * 2017-06-01 2020-12-15 Massachusetts Mutual Life Insurance Company Decentralized encryption and decryption of blockchain data
CN108062254B (zh) * 2017-12-12 2022-11-18 腾讯科技(深圳)有限公司 作业处理方法、装置、存储介质及设备
US11509478B2 (en) * 2018-05-08 2022-11-22 Visa International Service Association Password based threshold token generation
US20190372765A1 (en) * 2018-06-01 2019-12-05 Roland Tegeder System and Method for Providing an Authorised Third Party with Overt Ledger Secured Key Escrow Access to a Secret
US11601264B2 (en) * 2018-10-12 2023-03-07 Tzero Ip, Llc Encrypted asset encryption key parts allowing for assembly of an asset encryption key using a subset of the encrypted asset encryption key parts
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
HK1254273A2 (zh) * 2018-12-03 2019-07-12 Foris Ltd 安全的分佈式密鑰管理系統
US11611539B2 (en) * 2018-12-16 2023-03-21 Auth9, Inc. Method, computer program product and apparatus for encrypting and decrypting data using multiple authority keys
US11075755B2 (en) * 2019-04-24 2021-07-27 Vmware, Inc. Zero-knowledge key escrow

Also Published As

Publication number Publication date
AU2021302873A1 (en) 2023-02-16
WO2022003449A1 (en) 2022-01-06
CN115769544A (zh) 2023-03-07
GB2611966A (en) 2023-04-19
JP2023531695A (ja) 2023-07-25
US20220006613A1 (en) 2022-01-06
GB202301430D0 (en) 2023-03-15
KR20230031279A (ko) 2023-03-07

Similar Documents

Publication Publication Date Title
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
EP3195556B1 (de) Verteilte datenspeicherung mittels berechtigungstoken
DE112018001285B4 (de) Kryptografische Schlüsselerzeugung mit Anwendung auf Datendeduplizierung
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE112020005075B4 (de) Effiziente schwellenwertspeicherung von datenobjekten
CN105071936A (zh) 用于安全数据共享的系统和方法
DE112020005429T5 (de) Zufallsknotenauswahl für zulassungsbeschränkte Blockchain
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112021004008T5 (de) Validieren von verfolgten abschnitten von empfangenen sensordaten mithilfe von kryptographischer computerverarbeitung
DE112021005862T5 (de) Selbstprüfende blockchain
DE112022000906T5 (de) Trennen von blockchain-daten
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
Atan et al. Formulating a security layer of cloud data storage framework based on multi agent system architecture
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
DE112021001764T5 (de) Ermitteln eines urhebers eines verschlüsselten objekts
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed