-
HINTERGRUND
-
Die Offenbarung betrifft allgemein ein Generieren von Datenverschlüsselungsschlüsseln (DEKs). Die Offenbarung betrifft insbesondere durch ein System generierte DEKs für Dateien und Datensätze und ein Ermöglichen eines effizienten Neuverschlüsselns von Dateien und Datensätzen. Wie hierin verwendet, bezieht sich der Begriff „Datensatz“ weitestgehend auf digitale Dateien und Datensätze.
-
Eine Datenverschlüsselung ist eine wirkungsvolle Möglichkeit, das Risiko eines Datenmissbrauchs zu reduzieren. Der Einsatz einer Verschlüsslungsstrategie kann komplex sein. Bei Unternehmensorganisationen besteht ein wachsendes Interesse an der Verwendung einer Verschlüsselung auf Datensatzebene, wobei das zugrunde liegende Betriebssystem die Verschlüsselung für jede Anwendung durchführt, ohne Anwendungsänderungen zu erfordern. Architekten für Unternehmenssicherheit, die eine Verschlüsselung auf Datensatzebene für Unternehmensorganisationen einsetzen, können dafür zuständig sein, neue Richtlinien und Prozeduren in Bezug auf die Datenverschlüsselung zu bestimmen. Zum Beispiel erfordern einige Sicherheitsrichtlinien, dass verschlüsselte Daten periodisch mit einem neuen DEK erneut verschlüsselt werden.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Das Folgende ist eine Kurzdarstellung zum Bereitstellen eines grundlegenden Verständnisses von einer oder mehreren Ausführungsformen der Offenbarung. Diese Kurzdarstellung ist nicht dazu bestimmt, Schlüssel- oder kritische Elemente zu identifizieren oder irgendeinen Schutzumfang der speziellen Ausführungsformen oder irgendeinen Schutzumfang der Ansprüche abzugrenzen. Ihr einziger Zweck besteht in der Darstellung von Konzepten in einer vereinfachten Form als eine Einleitung für die ausführlichere, später vorgelegte Beschreibung. In einer oder mehreren hierin beschriebenen Ausführungsformen ermöglichen Einheiten, Systeme, durch einen Computer umgesetzte Verfahren, Vorrichtungen und/oder Computerprogrammprodukte ein Generieren von Datenverschlüsselungsschlüsseln (DEKs) für Datensätze.
-
Aspekte der Erfindung offenbaren Verfahren, Systeme und durch einen Computer lesbare Medien, die einem Verbessern der Fähigkeit zum Generieren von eindeutigen Datenverschlüsselungsschlüsseln für einen Datensatz zugehörig sind, durch Zuweisen eines Datensatzes, der einer Sicherheitsrichtlinie zugehörig ist, wobei die Sicherheitsrichtlinie ein Schlüsselverschlüsselungsschlüssel- (KEK) Label, Abrufen des KEK-Labels aus der Sicherheitsrichtlinie, Speichern des KEK-Labels als Metadaten des Datensatzes, Öffnen des Datensatzes für einen erstmaligen Schreibvorgang, Generieren eines Datenverschlüsselungsschlüssels (DEK), Abrufen eines KEK aus einem Schlüsselspeicher gemäß dem KEK-Label, Verschlüsseln des DEK durch Verwenden des KEK, Speichern des verschlüsselten DEK als Metadaten des Datensatzes und Verschlüsseln des Datensatzes durch Verwenden des DEK angibt.
-
Figurenliste
-
Über die ausführlichere Beschreibung einiger Ausführungsformen der vorliegenden Offenbarung in den begleitenden Zeichnungen werden die vorgenannten und weitere Aufgaben, Funktionen und Vorteile der vorliegenden Offenbarung deutlicher, wobei dasselbe Bezugszeichen im Allgemeinen auf dieselben Komponenten in den Ausführungsformen der vorliegenden Offenbarung verweist.
- 1 stellt eine schematische Veranschaulichung eines Funktions-Blockschaubilds eines Systems gemäß einer Ausführungsform der Erfindung bereit.
- 2 stellt eine schematische Veranschaulichung eines Systems gemäß einer Ausführungsform der Erfindung bereit.
- 3 stellt einen Ablaufplan bereit, der eine Generierungssequenz von betrieblichen Schlüsseln gemäß einer Ausführungsform der Erfindung darstellt.
- 4 stellt einen Ablaufplan bereit, der eine betriebliche Lesesequenz gemäß einer Ausführungsform der Erfindung darstellt.
- 5 stellt einen Ablaufplan bereit, der das Ziel einer Neuverschlüsselungsoperation eines betrieblichen Datensatzes darstellt, wobei die Lesesequenz der Quelle durch 4 gemäß einer Ausführungsform der Erfindung identifiziert wird.
- 6 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der Erfindung dar.
- 7 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der Erfindung dar.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Einige Ausführungsformen werden ausführlicher unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen die Ausführungsformen der vorliegenden Offenbarung veranschaulicht worden sind. Die vorliegende Offenbarung kann jedoch auf verschiedene Arten umgesetzt werden und sollte daher nicht auf die hierin offenbarten Ausführungsformen beschränkt aufgefasst werden.
-
In einer Ausführungsform kann bzw. können eine oder mehrere Komponenten des Systems Hardware und/oder Software nutzen, um hochtechnische Probleme zu lösen (z.B. Öffnen eines verschlüsselten Datensatzes, Validieren der Berechtigung des Benutzers für ein KEK-Label, Abrufen eines KEK, der dem KEK-Label zugehörig ist, aus einem Schlüsselspeicher, Bereitstellen des KEK für ein Speicherverwaltungs-Subsystem (SMS), Lesen eines verschlüsselten DEK aus Metadaten des Datensatzes, Entschlüsseln des DEK durch Verwenden des KEK, danach Entschlüsseln des Datensatzes durch Verwenden des entschlüsselten DEK usw.). Diese Lösungen sind nicht abstrakt und können zum Beispiel aufgrund der Verarbeitungsfähigkeiten, die zum Erleichtern einer Generierung von Verschlüsselungsschlüsseln erforderlich sind, nicht als ein Satz von geistigen Aktivitäten durch eine Person durchgeführt werden. Ferner können einige der durchgeführten Prozesse durch einen spezialisierten Computer zum Ausführen von definierten Aufgaben in Bezug auf Arbeitsspeicheroperationen durchgeführt werden. Zum Beispiel kann ein spezialisierter Computer eingesetzt werden, um Aufgaben auszuführen, die sich auf ein Generieren von Verschlüsselungsschlüsseln oder dergleichen beziehen.
-
Eine Verschlüsselung auf Datensatzebene bezieht sich auf eine anwendungstransparente Verschlüsselung von Daten auf Richtliniengrundlage, die in Datensätzen gespeichert sind. In der Regel sind für kryptografische Schlüssel zuständige Mitarbeiter für ein Erstellen und Verwalten von Schlüsseln in einer Unternehmensorganisation verantwortlich. Sie generieren DEKs, die permanent in Schlüsselspeichern gespeichert und durch eindeutige Schlüssel-Label identifiziert werden. Um eine Verschlüsselung auf Datensatzebene für eine Gruppe von Datensätzen zu ermöglichen, kann ein Schlüssel-Label zu einer Sicherheitsrichtlinie hinzugefügt werden, die den Datensätzen zugehörig ist, die verschlüsselt werden sollen. Um den Zugriff auf Daten im Klartext zu kontrollieren, können Sicherheitsadministratoren die Berechtigung des Dateneigentümers für den Datensatz sowie für das Datensatz-DEK-Label erteilen, das diesem Datensatz zugehörig ist. Um den Zugriff auf Daten im Klartext einzuschränken, können Sicherheitsadministratoren Speicheradministratoren eine Berechtigung nur für den Datensatz, aber nicht für das DEK-Label erteilen, das diesem Datensatz zugehörig ist. Wenn Dateneigentümer mit Berechtigung für den Datensatz und das DEK-Label in den Datensatz schreiben oder aus diesem lesen, werden die Daten durch Verwenden des DEK verschlüsselt oder entschlüsselt. Speicheradministratoren nur mit Berechtigung für den Datensatz können die Datensätze zuweisen und Verwalten, können aber ohne Berechtigung für das DEK-Label weder in Datensätze schreiben noch aus diesen lesen und somit nicht auf Daten im Klartext zugreifen.
-
Die Datenmenge, die von Organisationen verschlüsselt wird, wird immer größer, je verbreiteter Datenmissbrauch wird. Mit einer Verschlüsselung auf Datensatzebene erfordert der Prozess eines Zuweisens eines neu verschlüsselten Datensatzes in der Regel eine Anwendungsunterbrechung. Der Prozess zum Neuverschlüsseln eines vorhandenen verschlüsselten Datensatzes mit einem neuen DEK erfordert in der Regel eine weitere Anwendungsunterbrechung. Auf Grundlage der erforderlichen Häufigkeit eines Neuverschlüsselns eines Datensatzes mit einem neuen DEK, wie in einer Sicherheitsrichtlinie definiert, kann die Anzahl der Unterbrechungen die täglichen Geschäftsoperationen beeinträchtigen.
-
Der typische Prozess zum erneuten Verschlüsseln eines Datensatzes mit einem neuen DEK, der auch als Neuverschlüsselungsoperation bezeichnet wird, umfasst zahlreiche Schritte. In diesem Beispiel wird das DEK-Label dem Speicherverwaltungs-Subsystem (SMS) über eine Datensatz-Sicherheitsrichtlinie bereitgestellt, die durch einen Sicherheitsadministrator definiert wird und durch eine System-Berechtigungseinrichtung (SAF) validiert werden kann. Ähnliche Schritte wären ohne Berücksichtigung dessen erforderlich, wie das DEK-Label dem System bereitgestellt wird. Der Prozess umfasst mindestens 8 Schritte: Generieren eines neuen DEK mit einem neuen Schlüssel-Label, Suchen aller Datensatz-Sicherheitsrichtlinien, die dem alten DEK-Label zugehörig sind, Aktualisieren der vorgenannten Datensatz-Sicherheitsrichtlinien mit dem neuen DEK-Label, Identifizieren aller Datensätze, die mit dem alten DEK-Label verschlüsselt wurden, Zuweisen neuer Datensätze, die der neu aktualisierten Datensatz-Sicherheitsrichtlinie zugehörig sind, Kopieren der Daten aus den alten Datensätzen in die neuen Datensätze, Löschen der alten Datensätze und Archivieren oder Einrichten eines Ablaufdatums für den alten DEK.
-
Aspekte der Erfindung offenbaren Verfahren, Systeme und durch einen Computer lesbare Medien, die einem Verbessern der Fähigkeit zugehörig sind, Datenverschlüsselungsschlüssel (DEKs) zu wechseln, indem das Betriebssystem in die Lage versetzt wird, zum Zeitpunkt eines ersten Öffnens eines Datensatzes, einen eindeutigen DEK zu generieren, der mit einem Schlüsselverschlüsselungsschlüssel (KEK) verschlüsselt und anschließend in den Metadaten des Datensatzes gespeichert wird, der verschlüsselt wird. Zu diesem Prozess gehört, dass der Sicherheitsadministrator ein KEK-Label anstelle eines DEK-Labels in einer Datensatz-Sicherheitsrichtlinie angibt. Eine System-Berechtigungseinrichtung (SAF) kann das KEK-Label sowie die Berechtigung eines Benutzers, auf das KEK-Label zuzugreifen, anschließend validieren.
-
Der Dateneigentümer oder Speicheradministrator weist einen Datensatz zu, der dieser Datensatz-Sicherheitsrichtlinie zugehörig ist. Die SAF validiert die Berechtigung des Benutzers für den Datensatz sowie für das KEK-Label und ruft das KEK-Label aus der zugehörigen Datensatz-Sicherheitsrichtlinie ab. Die offenbarten Verfahren speichern dann das abgerufene KEK-Label in den Metadaten des Datensatzes. Wenn der Dateneigentümer den neu zugewiesenen Datensatz für einen erstmaligen Schreibvorgang öffnet, ruft das SMS die SAF auf, um die Berechtigung des Benutzers für das KEK-Label zu validieren, ruft den KEK aus dem Schlüsselspeicher ab, generiert einen eindeutigen DEK, verschlüsselt den DEK durch Verwenden des KEK und speichert den verschlüsselten DEK in den Metadaten des Datensatzes. Das Verfahren verschlüsselt den Datensatz dann durch Verwenden des DEK. Die Verschlüsselung umfasst ein Schreiben der verschlüsselten Daten in den Bereich, der für den Datensatz zugewiesen ist.
-
Aspekte der Erfindung offenbaren Verfahren, Systeme und durch einen Computer lesbare Medien, die einem Aktivieren der Fähigkeit zugehörig sind, verschlüsselte Datensätze durch Öffnen eines verschlüsselten Datensatzes zu lesen, einen KEK, der dem KEK-Label aus einem Schlüsselspeicher zugehörig ist, gemäß dem KEK-Label abzurufen, einen verschlüsselten Datenverschlüsselungsschlüssel (DEK) aus Datensatz-Metadaten abzurufen, den DEK durch Verwenden des KEK zu entschlüsseln und den Benutzerzugriff auf die Datensatzdaten bereitzustellen.
-
Zum Abschließen einer Datensatz-Neuverschlüsselungsoperation kopiert der Dateneigentümer einfach die Daten aus einem alten verschlüsselten Datensatz in den neuen Datensatz, der die Daten mit dem neu generierten DEK transparent verschlüsselt. Das Endergebnis ist, dass der neue Datensatz mit einem neuen DEK verschlüsselt wird, wobei sowohl das KEK-Label als auch der verschlüsselte DEK in den Metadaten des neuen Datensatzes gespeichert werden. Der DEK ist eindeutig für diesen Datensatz und wird niemals außerhalb der Datensatz-Metadaten gespeichert.
-
Aspekte der Erfindung offenbaren Verfahren, Systeme und durch einen Computer lesbare Medien, die einem Verbessern der Fähigkeit zugehörig sind, verschlüsselte Datensätze durch Zuweisen eines der Sicherheitsrichtlinie zugehörigen Ziel-Datensatzes zu kopieren, das KEK-Label aus der Sicherheitsrichtlinie abzurufen, das KEK-Label als Ziel-Datensatz-Metadaten zu speichern, den Ziel-Datensatz für einen erstmaligen Schreibvorgang zu öffnen, einen Ziel-Datensatzdaten-Verschlüsselungsschlüssel (DEK) zu generieren, einen KEK aus einem Schlüsselspeicher gemäß dem KEK-Label abzurufen, den Ziel-Datensatz-DEK durch Verwenden des KEK zu verschlüsseln, den verschlüsselten DEK als Ziel-Datensatz-Metadaten zu speichern und einen Quell-Datensatz als den Ziel-Datensatz durch Verwenden des Ziel-Datensatz-DEK zu verschlüsseln.
-
Ein typischer Neuverschlüsselungs- oder Schlüsselwechsel-Prozess kann Schritte zum Generieren eines neuen Datenverschlüsselungsschlüssels (DEK) mit einem neuen Schlüssel-Label, Suchen aller Datensatz-Sicherheitsrichtlinien, die dem alten DEK-Label zugehörig sind, Aktualisieren der Datensatz-Sicherheitsrichtlinien mit dem neuen DEK-Label, Identifizieren aller Datensätze, die mit dem alten DEK-Label verschlüsselt wurden, Zuweisen neuer Datensätze, die den neu aktualisierten Datensatz-Sicherheitsrichtlinien zugehörig sind, Kopieren der Daten aus den alten Datensätzen in die neuen Datensätze, Löschen der alten Datensätze und Archivieren oder Einrichten eines Ablaufdatums für den alten DEK umfassen. Der Prozess stellt eine erhebliche Belastung für ein Koordinieren des Wechselns oder Neuverschlüsselns aller verschlüsselten Datensätze durch Verwenden eines einzelnen DEK dar. Die offenbarten Verfahren und Programme stellen einen vereinfachten Prozess zum Neuverschlüsseln von Datensätzen und zum Ermöglichen einer gestaffelten Neuverschlüsselung von Datensätzen über die Gruppe von verschlüsselten Datensätzen bereit.
-
In einer Ausführungsform umfasst ein Definieren oder Zuweisen von Ressourcen für einen neuen Datensatz ein Verweisen auf eine Datensatz-Sicherheitsrichtlinie, die ein Schlüsselverschlüsselungsschlüssel -(KEK) Label statt eines Datenverschlüsselungsschlüssel-(DEK) Labels für den Datensatz enthält. Das KEK-Label verweist auf einen KEK, der in einem Speicher für kryptografische Schlüssel gespeichert ist. In dieser Ausführungsform ruft das Verfahren bei einem erstmaligen Öffnen eines Datensatzes das KEK-Label aus der Datensatz-Sicherheitsrichtlinie ab und speichert das KEK-Label als Datensatz-Metadaten. Das Verfahren generiert einen eindeutigen DEK für den Datensatz. Das Verfahren ruft den KEK aus dem Schlüsselspeicher durch Verwenden des KEK-Labels ab, verschlüsselt den DEK durch Verwenden des KEK und speichert den verschlüsselten DEK in den Metadaten des Datensatzes. Das Verfahren verschlüsselt den Datensatz durch Verwenden des DEK und schreibt den verschlüsselten Datensatz in den zugewiesenen Speicherplatz,
-
In einer Ausführungsform umfasst ein Kopieren eines vorhandenen verschlüsselten Datensatzes ein Zugreifen auf einen vorhandenen Quell-Datensatz für eine Datenleseoperation und einen ersten Zugriff auf einen neu zugewiesenen Ziel-Datensatz für eine Datenschreiboperation. In dieser Ausführungsform ist der neu zugewiesene Ziel-Datensatz derselben Datensatz-Sicherheitsrichtlinie zugehörig wie der Quell-Datensatz und nutzt dasselbe KEK-Label wie der Quell-Datensatz. Ein Öffnen des vorhandenen Quell-Datensatzes für eine Leseoperation führt zum Abruf des KEK aus dem Schlüsselspeicher durch Verwenden des KEK Labels, das in den Metadaten des Quell-Datensatzes gespeichert ist, zur Entschlüsselung des verschlüsselten DEK, der in den Metadaten des Quell-Datensatzes gespeichert ist, durch Verwenden des KEK, und zur Entschlüsselung der Daten aus dem Quell-Datensatz durch Verwenden des DEK. Ein Öffnen des neu zugewiesenen Ziel-Datensatzes für einen Schreib- (Kopier-) Vorgang führt zum Abruf des KEK aus dem Schlüsselspeicher durch Verwenden des KEK-Labels, das in den Metadaten des Ziel-Datensatzes gespeichert ist, zur Generierung eines eindeutigen DEK für den Ziel-Datensatz, zur Verschlüsselung des DEK durch Verwenden des KEK, zur Speicherung des verschlüsselten DEK in den Metadaten des Ziel-Datensatzes, zur Verschlüsselung der Daten aus dem Quell-Datensatz durch Verwenden des neu generierten DEK aus dem Ziel-Datensatz und zum Schreiben der neu verschlüsselten Daten in den Ziel-Datensatz. Ein Kopieren eines vorhandenen verschlüsselten Quell-Datensatzes verschlüsselt den Datensatz effektiv neu durch die Generierung und Verwendung eines neuen DEK für den Ziel-Datensatz ohne jede Notwendigkeit, die Datensatz-Sicherheitsrichtlinie, das KEK-Label oder den Schlüsselspeicher zu ändern.
-
In einer Ausführungsform erfordert eine Neuverschlüsselung von vorhandenen verschlüsselten Datensätzen gemäß einer Datensatz-Sicherheitsrichtlinie nur die Zuweisung eines neuen Datensatzes gemäß der Richtlinie, ein Kopieren des vorhandenen Datensatzes in den neuen Datensatz - einschließlich der Generierung eines neuen DEK für den neuen Datensatz, ein Verschlüsseln des neuen DEK durch Verwenden des KEK, der dem KEK-Label zugehörig ist, das in den Metadaten des Datensatzes gespeichert ist, ein Speichern des verschlüsselten DEK als neue Datensatz-Metadaten, und ein anschließendes Verschlüsseln und Schreiben des neues Datensatzes durch Verwenden des DEK. In einer Ausführungsform schließt ein Löschen des alten Datensatzes nach dem Kopieren den Neuverschlüsselungsprozess ab.
-
Die Verschlüsselung jedes Datensatzes verwendet einen eindeutigen, durch einen KEK verschlüsselten DEK. Ein einzelner KEK kann übergreifend über eine Gruppe von Datensätzen als gemeinsam genutzter KEK verwendet werden. Die Kombination von eindeutigem DEK und gemeinsam genutztem KEK ermöglicht eine gestaffelte Neuverschlüsselung von Datensätzen, da jeder neu verschlüsselte Datensatz einen neuen eindeutigen DEK ohne einen neuen KEK erhält, wodurch jede Notwendigkeit, alle Datensätze gleichzeitig neu zu verschlüsseln und Unterbrechungen des dazugehörigen Systems, die einer globalen Neuverschlüsslung von Datensätzen zugehörig sind, entfällt bzw. entfallen.
-
In einer Ausführungsform umfasst eine System-Berechtigungseinrichtung (SAF) eine definierte Datensatz-Sicherheitspolitik auf Systemebene, die angibt, ob ein Schlüssel-Label in der Datensatz-Sicherheitsrichtlinie als ein KEK-Label oder ein DEK-Label zu behandeln ist. Bei einem neu zugewiesenen Datensatz wird ein Schlüssel-Label aus der Datensatz-Sicherheitsrichtlinie gelesen und in den Datensatz-Metadaten (z.B. einer Verschlüsselungszelle) zusammen mit einem Indikator gespeichert, um das Schlüssel-Label als ein KEK-Label oder ein DEK-Label zu bezeichnen.
-
In einer Ausführungsform kann ein Benutzer (Speicheradministrator) berechtigt sein, auf Datensätze, aber nicht auf die zugehörigen KEK-Labels zuzugreifen, wodurch der Speicheradministrator in die Lage versetzt wird, Datensätze nach Bedarf zu manipulieren, ohne einen Zugriff auf die tatsächlichen Datensatzdaten zu ermöglichen. In einer Ausführungsform kann ein Datensatz-Benutzer Zugriff auf ein KEK-Label und den zugehörigen KEK haben, nicht jedoch auf alle Datensätze, die dem KEK-Label und KEK zugehörig sind. Da jeder KEK und jedes KEK-Label über mehrere Datensätze übergreifend wiederverwendet werden können, ist eine validierte Benutzerberechtigung für ein KEK-Label notwendig, aber nicht ausreichend, um dem Benutzer den Zugriff auf die Datensatzdaten zu ermöglichen. Nur ein Benutzer mit validierter Berechtigung für den Datensatz und das KEK-Label hat Zugriff auf die zugrunde liegenden Datensatzdaten. In dieser Ausführungsform validiert das Verfahren jeden Benutzer für eine Berechtigung für jeden der relevanten Datensätze und die zugehörigen KEK-Labels.
-
In einer Ausführungsform kann ein Datensatz-1, der durch einen KEK-1 geschützt wird, der einem KEK-1-Label zugehörig ist und mit einem DEK-1 verschlüsselt ist, durch die folgenden Schritte neu verschlüsselt - einem Verschlüsselungsschlüssel-Wechsel unterzogen werden:
- a. Zuweisen eines neuen Datensatzes-1, der dem KEK-1 und dem KEK-1-Label zugehörig ist, gemäß der Datensatz-Sicherheitsrichtlinie des Datensatzes-1;
- b. Öffnen des neuen Datensatzes-2, was zur Generierung eines DEK-2 führt;
- c. Verschlüsseln des DEK-2 durch Verwenden des KEK-1. Der DEK-2 und das KEK-1-Label werden als Verschlüsselungs-Metadaten mit dem Datensatz-2 gespeichert; und
- d. Kopieren der Daten aus dem Quell-Datensatz in den neuen Datensatz - der DEK-1 wird durch Verwenden des KEK-1 entschlüsselt, der dem KEK-1-Label zugehörig ist. Die Daten des Datensatzes-1 werden durch Verwenden des DEK-1 entschlüsselt und anschließend durch Verwenden des DEK-2 verschlüsselt.
-
Das Beispiel umfasst geeignete Schritte durch das SMS für die Validierung der Benutzerberechtigung für den Zugriff auf den Datensatz und das KEK-1-Label.
-
Wie hierin verwendet, weisen die SAF (System-Berechtigungseinrichtung), der Schlüsselspeicher, das SMS (Speicherverwaltungs-Subsystem), der KEK (Schlüsselverschlüsselungsschlüssel), der DEK (Datenverschlüsselungsschlüssel) und der Kryptografie-Provider Software-Module einer Datenverarbeitungsumgebung auf, die durch die offenbarten Verfahren zur Neuverschlüsslung einer Verschlüsselung verwendet werden. Die CFHE (Kryptografiefunktions-Hardware-Engine) weist eine Hardware-Engine der Datenverarbeitungsumgebung auf, die zum Durchführen von kryptografischen Funktionen zum Unterstützen der offenbarten Neuverschlüsselungsverfahren aufgerufen wird.
-
1 stellt ein Funktions-Blockschaubild bereit, das die Beziehung zwischen verschiedenen Systemkomponenten der offenbarten Ausführungsformen veranschaulicht. Wie in der Figur gezeigt, empfängt das SMS 12 Benutzer-Datensatzanforderungen 10. Nach einem Empfangen der Benutzer-Datensatzanforderungen 10 öffnet das SMS einen zugewiesenen und vorhandenen Datensatz und scannt die Metadaten des Datensatzes für Verschlüsselungsschlüssel-Informationen (ein KEK-Label).
-
In einer Ausführungsform weist das SMS für einen neuen Datensatz den Datensatz gemäß einer definierten Sicherheitsrichtlinie für den Datensatz zu. Die Sicherheitsrichtlinie umfasst jedes KEK-Label, das dem Datensatz zugewiesen ist, und eine Auflistung von Benutzern, die berechtigt sind, auf den Datensatz zuzugreifen. Die SAF verwaltet außerdem eine Auflistung von Benutzern, die berechtigt sind, auf jedes KEK-Label zuzugreifen. Beim Zuweisen des Datensatzes sichert das SMS das Datensatz-KEK-Label als Teil der Metadaten der Verschlüsselung des Datensatzes.
-
Das SMS 12 fragt die SAF 14 nach der Datensatz-Sicherheitsrichtlinie ab, um die Berechtigung des anfordernden Benutzers zu validieren, auf den Datensatz und das zugehörige KEK-Label zuzugreifen. Nach der Validierung der Benutzerberechtigung für den Datensatz und das zugehörige KEK-Label übergibt das SMS 12 das KEK-Label aus den Datensatz-Metadaten an den Kryptografie-Provider 16. Der Kryptografie-Provider 16 sucht mithilfe des KEK-Labels nach einem KEK in dem Schlüsselspeicher 18. In einer Ausführungsform übergibt der Kryptografie-Provider 16 den KEK an das SMS 12,
-
In einer Ausführungsform ruft das SMS 12 für neue Datensätze den Kryptografie-Provider 16 auf, um einen DEK für den Datensatz zu generieren, den DEK durch Verwenden des KEK zu verschlüsseln, und Daten durch Verwenden des DEK zu verschlüsseln und in den Datensatz zu schreiben. Das SMS speichert den verschlüsselten DEK als Metadaten in einer Verschlüsselungszelle, die dem zugewiesenen Datensatz zugehörig ist.
-
Für vorhandene Datensätze validiert das SMS 12 den Zugriff des anfordernden Benutzers auf den Datensatz und das KEK-Label und ruft den Kryptografie-Provider 16 auf, den KEK zum Entschlüsseln des DEK des Datensatzes zu verwenden, und anschließend die Daten des Datensatzes für den Zugriff durch den Benutzer 10 durch Verwenden des DEK zu entschlüsseln. In einer Ausführungsform ruft das SMS 12 die CFHE 20 auf, den Datensatz durch Verwenden des entschlüsselten DEK zu entschlüsseln.
-
2 stellt eine schematische Veranschaulichung von beispielhaften Netzwerkressourcen bereit, die einem Ausüben der offenbarten Erfindungen zugehörig sind. Die Erfindungen können in den Prozessoren von jedem der offenbarten Elemente ausgeübt werden, die einen Anweisungsstrom verarbeiten. Wie in der Figur gezeigt, wird eine vernetzte Client-Einheit 110 drahtlos mit einem Server-Subsystem 102 verbunden. Eine Client-Einheit 104 wird drahtlos mit dem Server-Subsystem 102 über ein Netzwerk 114 verbunden. Die Client-Einheiten 104 und 110 weisen ein Programm (nicht gezeigt) zur Verschlüsselung/Neuverschlüsslung von Datensätzen zusammen mit einer ausreichenden Datenverarbeitungsressource (Prozessor, Arbeitsspeicher, Netzwerkkommunikations-Hardware) auf, um das Programm auszuführen. Wie in 2 gezeigt, weist das Server-Subsystem 102 einen Servercomputer 150 auf. 2 stellt ein Blockschaubild von Komponenten des Servercomputers 150 in einem vernetzten Computersystem 1000 gemäß einer Ausführungsform der vorliegenden Erfindung dar. Es sollte klar sein, dass 2 nur eine Veranschaulichung einer Umsetzung bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen impliziert, in denen verschiedene Ausführungsformen umgesetzt werden können. An der dargestellten Umgebung können viele Modifizierungen vorgenommen werden.
-
Der Servercomputer 150 kann einen bzw. mehrere Prozessoren 154, einen Arbeitsspeicher 158, einen permanenten Speicher 170, eine Datenübertragungseinheit 152, eine oder mehrere Eingabe/Ausgabe- (E/A) Schnittstellen 156 und eine Datenübertragungsstruktur 140 umfassen. Die Prozessoren 154 können eine CFHE (nicht gezeigt) zum Durchführen von dedizierten kryptografischen Funktionen umfassen. Die Datenübertragungsstruktur 140 stellt Datenübertragungen zwischen einem Cachespeicher 162, dem Arbeitsspeicher 158, dem permanenten Speicher 170, der Datenübertragungseinheit 152 und einer oder mehreren Eingabe/Ausgabe- (E/A) Schnittstellen 156 bereit. Die Datenübertragungsstruktur 140 kann mit jeder Architektur umgesetzt werden, die für ein Übergeben von Daten und/oder ein Steuern von Informationen zwischen Prozessoren (wie Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), Systemarbeitsspeichern, Peripherie-Einheiten und allen anderen Hardware-Komponenten in einem System ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 140 mit einem oder mehreren Bussen umgesetzt werden.
-
Der Arbeitsspeicher 158 und der permanente Speicher 170 sind durch einen Computer lesbare Speichermedien. In dieser Ausführungsform umfasst der Arbeitsspeicher 158 einen Direktzugriffsspeicher (RAM) 160. Im Allgemeinen kann der Arbeitsspeicher 158 jedes geeignete flüchtige oder nicht flüchtige durch einen Computer lesbare Speichermedium enthalten. Der Cachespeicher 162 ist ein schneller Arbeitsspeicher, der die Leistung des Prozessors bzw. der Prozessoren 154 verbessert, indem kürzlich genutzte Daten und Daten in der Nähe der kürzlich genutzten Daten aus dem Arbeitsspeicher 158 beibehalten werden.
-
Die Programmanweisungen und Daten, die zum Ausüben der Ausführungsformen der vorliegenden Erfindung verwendet werden, z.B. das Verschlüsselungsprogramm 175, sind in dem permanenten Speicher 170 zur Ausführung und/oder den Zugriff durch einen oder mehrere der jeweiligen Prozessoren 154 des Servercomputers 150 über den Cachespeicher 162 gespeichert. In dieser Ausführungsform umfasst der permanente Speicher 170 eine Magnetfestplatte. Alternativ oder zusätzlich zu einer Magnetfestplatte kann der permanente Speicher 170 einen Solid-State-Festplattenspeicher, eine Halbleiter-Speichereinheit, einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen Flash-Speicher oder jedes andere durch einen Computer lesbare Speichermedium umfassen, das fähig ist, Programmanweisungen oder digitale Informationen zu speichern.
-
Die von dem permanenten Speicher 170 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 170 verwendet werden. Weitere Beispiele umfassen optische und magnetische Platten, USB-Sticks und Smart-Cards, die für einen Datentransfer auf ein anderes durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 170 ist, in ein Laufwerk eingesetzt werden.
-
Die Datenübertragungseinheit 152 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder-einheiten bereit, einschließlich Ressourcen von Client-Datenverarbeitungseinheiten 104 und 110. In diesen Beispielen enthält die Datenübertragungseinheit 152 eine oder mehrere Netzwerk-Schnittstellenkarten. Die Datenübertragungseinheit 152 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Kommunikationsverbindungen bereitstellen. Software-Verteilungsprogramme und andere Programme und Daten, die zum Umsetzen der vorliegenden Erfindung verwendet werden, können in den permanenten Speicher 170 des Servercomputers 150 über die Datenübertragungseinheiten 152 heruntergeladen werden.
-
Die E/A-Schnittstelle(n) 156 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Servercomputer 150 verbunden sein können. Zum Beispiel kann bzw. können die E/A-Schnittstelle(n) 156 eine Verbindung zu externen Einheiten 190 bereitstellen, wie zum Beispiel eine Tastatur, ein Tastenfeld, ein Berührungsbildschirm, ein Mikrofon, eine Digitalkamera und/oder eine andere geeignete Eingabeeinheit. Die externe Einheit bzw. Einheiten 190 kann bzw. können auch tragbare, durch einen Computer lesbare Speichermedien umfassen, wie zum Beispiel USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten. Die Software und verwendeten Daten, die zum Ausüben von Ausführungsformen der vorliegenden Erfindung verwendet werden, z.B. ein Verschlüsselungsprogramm 175 auf dem Servercomputer 150, können auf derartigen durch einen tragbaren Computer lesbaren Speichermedien gespeichert werden und können auf den permanenten Speicher 170 über die E/A-Schnittstelle bzw. E/A-Schnittstellen 156 geladen werden. Die E/A-Schnittstelle(n) 156 ist bzw. sind auch mit einer Anzeige 180 verbunden.
-
Die Anzeige 180 stellt einen Mechanismus zum Anzeigen von Daten für einen Benutzer bereit und kann zum Beispiel ein Computermonitor sein. Die Anzeige 180 kann auch als Berührungsbildschirm arbeiten, wie zum Beispiel eine Anzeige eines Tablet-Computers.
-
3 stellt einen Ablaufplan 300 bereit, der beispielhafte Arbeitsschritte zum Erstellen eines neuen Datensatzes gemäß einer Ausführungsform der Erfindung veranschaulicht. Gemäß dem Ablaufplan 300 weist das Verfahren des Verschlüsselungsprogramms 175 in einem Block 310 einen neuen Datensatz nach einer Benutzeranforderung durch Verwenden der Parameter zu, die der Datensatz-Sicherheitsrichtlinie zugehörig sind, die die Verwendung eines KEK-Labels für den Datensatz und das KEK-Label selbst umfasst. In einem Block 320 ruft das Verfahren das KEK-Label aus der Datensatz-Sicherheitsrichtlinie ab, und in einem Block 330 speichert das Verfahren das KEK-Label als Verschlüsselungs-Metadaten für den Datensatz.
-
In einem Block 340 öffnet das Verfahren den neu zugewiesenen Datensatz erstmals, um Daten in den Datensatz zu schreiben. In Verbindung mit dem erstmaligen Öffnen des Datensatzes zum Schreiben generiert das Verfahren in einem Block 350 einen für den Datensatz spezifischen DEK - oder hat diesen durch einen Kryptografie-Provider generiert.
-
In einem Block 360 ruft das Verfahren einen KEK aus einem Schlüsselspeicher gemäß dem KEK-Label des Datensatzes ab. In einem Block 370 verschlüsselt das Verfahren den Datensatz-DEK durch Verwenden des abgerufenen KEK oder veranlasst den Kryptografie-Provider den DEK durch Verwenden des KEK zu verschlüsseln. Das Verfahren behält den DEK in einem flüchtigen Arbeitsspeicher zum Verschlüsseln der Daten des Datensatzes bei und speichert den verschlüsselten DEK als Datensatz-Metadaten in einer Verschlüsselungs-Metadatenzelle des Datensatzes in einem Block 380. In einem Block 390 verwendet das Verfahren den DEK im flüchtigen Arbeitsspeicher zum Verschlüsseln und Schreiben von Daten in den zugewiesenen Datensatz.
-
4 stellt einen Ablaufplan 400 bereit, der beispielhafte Aktivitäten veranschaulicht, die der Ausübung der Offenbarung zugehörig sind. In einem Bock 410 empfängt ein Speicherverwaltungssystem (SMS) eine Benutzeranforderung und öffnet einen verschlüsselten Datensatz. Nach dem Öffnen des Datensatzes empfängt das SMS in einem Block 420 ein Schlüsselverschlüsselungsschlüssel- (KEK) Label, das in den Metadaten des Datensatzes gefunden wurde. Das SMS kann gemäß den SAF-Richtlinien eine Validierung der Berechtigung des Benutzers anfordern, auf den Datensatz und das KEK-Label zuzugreifen.
-
In einem Block 430 übergibt das SMS das dem Datensatz zugehörige KEK-Label an einen Kryptografie-Provider, um den KEK, der dem Datensatz zugehörig ist, über das KEK-Label abzurufen. Der Kryptografie-Provider sucht nach dem KEK, der dem KEK-Label zugehörig ist, in einem Schlüsselspeicher und übergibt den KEK an das SMS.
-
In einem Block 440 ruft das SMS einen verschlüsselten DEK aus den Metadaten des offenen Datensatzes ab und entschlüsselt den DEK durch Verwenden des KEK. In einer Ausführungsform verwendet das SMS den KEK zum Entschlüsseln des DEK aus den Datensatz-Metadaten.
-
In einem Block 450 entschlüsselt das Verfahren des Verschlüsselungsprogramms 175 den Datensatz durch Verwenden des DEK. In einer Ausführungsform ruft das SMS die CFHE auf, den Datensatz durch Verwenden des DEK zu entschlüsseln. In einem Block 460 stellt das Verfahren den Benutzerzugriff auf die entschlüsselten Daten des Datensatzes bereit. Das KEK-Label und der verschlüsselte DEK bleiben in den Metadaten des verschlüsselten Datensatzes.
-
In einer Ausführungsform, nachdem Datensätze erstmals durch Verwenden eines DEK verschlüsselt wurden, wobei der DEK durch Verwenden eines KEK verschlüsselt wurde, erfordert ein Neuverschlüsseln - Wechseln - Ändern des Verschlüsselungsschlüssels eines Datensatzes nur ein Kopieren des verschlüsselten Datensatzes aus der aktuellen Datensatz-Zuweisung in eine neue Datensatz-Zuweisung mit demselben KEK-Label. Während der Ausführung des Kopiervorgangs erfolgt eine Generierung eines neuen DEK für den neu zugewiesenen Datensatz zum Erstellen der Kopie, was dazu führt, dass die Kopie durch Verwenden eines neuen DEK verschlüsselt wird, während auf sie immer noch durch Verwenden des ursprünglichen KEK zugegriffen wird. Alternativ kann das neue Datensatz-SAF-Profil ein neues KEK-Label umfassen, wodurch sich eine Kopie des Quell-Datensatzes ergibt, die mit einem neuen DEK verschlüsselt ist, wobei der neue DEK des Weiteren durch Verwenden des neuen KEK verschlüsselt wird.
-
Ein Ablaufplan 500 von 5 veranschaulicht beispielhafte Arbeitsschritte des Verschlüsselungsprogramms 175 während des Kopierens und Neuverschlüsselns eines Datensatzes. In einem Block 510 weist das Verfahren des Verschlüsselungsprogramms 175 einen Ziel-Datensatz nach einer Benutzeranforderung zu, einen Quell-Datensatz durch Verwenden der Parameter zu kopieren, die der Datensatz-Sicherheitsrichtlinie des Ziel-Datensatzes zugehörig sind, die die Verwendung eines KEK-Labels für den Datensatz und das KEK-Label selbst umfasst. Die Datensatz-Sicherheitsrichtlinie des Quell-Datensatzes, die das KEK-Label des Quell-Datensatzes umfasst, wird für den Ziel-Datensatz verwendet. In einem Block 520 ruft das Verfahren das KEK-Label aus der Ziel-Datensatz-Sicherheitsrichtlinie ab, und in einem Block 530 speichert das Verfahren das KEK-Label als Verschlüsselungs-Metadaten für den Ziel-Datensatz.
-
In einem Block 540 öffnet das Verfahren den zugewiesenen Ziel-Datensatz erstmals, um Quell-Daten in den Ziel-Datensatz zu schreiben. In Verbindung mit dem erstmaligen Öffnen des Ziel-Datensatzes zum Schreiben generiert das Verfahren in einem Block 550 einen für den Ziel-Datensatz spezifischen DEK- oder hat diesen durch einen Kryptografie-Provider generiert.
-
In einem Block 560 ruft das Verfahren einen KEK aus einem Schlüsselspeicher gemäß dem KEK-Label des Ziel-Datensatzes ab. In einem Block 570 verschlüsselt das Verfahren den Ziel-Datensatz-DEK durch Verwenden des abgerufenen KEK. Das Verfahren behält den Ziel-Datensatz-DEK in einem flüchtigen Arbeitsspeicher zum Verschlüsseln der Daten des Datensatzes bei und speichert den verschlüsselten Ziel-Datensatz-DEK als Ziel-Datensatz-Metadaten in einer Verschlüsselungs-Metadatenzelle des Ziel-Datensatzes in einem Block 580. Das Verfahren des Verschlüsselungsprogramms 175 folgt den in 4 dargelegten und oben beschriebenen Arbeitsschritten, um die Daten des Quell-Datensatzes zu öffnen, zu entschlüsseln und zu lesen. In einem Block 590 verwendet das Verfahren den DEK im flüchtigen Arbeitsspeicher zum Verschlüsseln und Schreiben von Daten aus dem Quell-Datensatz in den zugewiesenen Ziel-Datensatz. In einer Ausführungsform folgt das Verfahren der Verschlüsselung und dem Schreiben der Quell-Daten in den Ziel-Datensatz durch Löschen des Quell-Datensatzes aus dem dauerhaften Arbeitsspeicher (nicht gezeigt).
-
Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
-
Die Eigenschaften sind wie folgt:
- 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 des Dienstes 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). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Die Dienstmodelle sind wie folgt:
- Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) 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, Verarbeitung, 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 eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Die Nutzungsmodelle sind wie folgt:
- Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
- Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
- Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
- 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 eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
-
Unter folgender Bezugnahme auf 6 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N, Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 6 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
-
Unter folgender Bezugnahme auf 7 wird eine Gruppe von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (6) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und vernetzte Komponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 82 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 84 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
-
Eine Arbeitslastenschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lifecycle-Management 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und Verschlüsselungsprogramm 175.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Die Erfindung kann vorteilhafterweise in jedem System einzeln oder parallel ausgeübt werden, das einen Anweisungsstrom verarbeitet. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen enthalten, 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 eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare 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 tragbarer CD-ROM, eine DVD, ein Arbeitsspeicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, 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 andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete 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 aufweisen. 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, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie 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 entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu 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, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen 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 Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass 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 Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und Blockschaubilder 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 den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Verweise in der Patentschrift auf „eine bestimmte Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein besonderes Merkmal, eine besondere Struktur oder Eigenschaft umfassen kann, aber nicht notwendigerweise jede Ausführungsform das besondere Merkmal, die besondere Struktur oder Eigenschaft umfassen muss. Des Weiteren verweisen derartige Ausdrücke nicht notwendigerweise auf dieselbe Umgebung. Wenn ferner ein bestimmtes Merkmal, eine Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird geltend gemacht, dass es innerhalb der Kenntnisse eines Fachmanns liegt, auf ein derartiges Merkmal, eine derartige Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen Einfluss zu nehmen, gleichgültig, ob dies explizit beschrieben wurde.
-
Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll die Erfindung keinesfalls einschränken. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der Erfindung abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.