-
Technisches Gebiet der Erfindung
-
Diese Offenbarung betrifft allgemein ein Identifizieren und Verhindern eines Verlusts von sensiblen Daten in einer Datenverarbeitungsumgebung.
-
Hintergrund der Erfindung
-
Wenn kognitive Systeme verwendet werden, die große Mengen von Textdaten bearbeiten, haben Benutzer in regulierten Branchen (z.B. Krankenhäuser, Finanzeinrichtungen und andere regulierte Kunden) einen Bedarf zu erfassen, ob sensible Daten wie beispielsweise personenbezogene Informationen (PII), geschützte Gesundheitsdaten (PHI) oder dergleichen in ein Datenverarbeitungssystem gestellt worden sind, das in einer Datenverarbeitungsumgebung einer Drittpartei umgesetzt ist, wie beispielsweise eine über ein Netzwerk zugreifbare Cloud-Computing-Infrastruktur. Daher besitzen diese Organisationstypen zum Beispiel maßgebliche Listen mit den Namen ihrer Kunden und anderen sensiblen Informationen, sie möchten diese Listen jedoch nicht in irgendein Cloud-System stellen. Ein Ansatz, sich vor einer Offenlegung von derartigen sensiblen Informationen zu schützen, besteht darin, bekannte Techniken zu nutzen wie zum Beispiel Systeme zur Verhinderung von Datenverlust (DLP), die umfangreiche Datenbanken mit persönlichen Informationen speichern können und anschließend Systeme überwachen, um einen eventuellen Verlust von derartigen Informationen zu erfassen. Obwohl diese Typen von Systemen für ihre beabsichtigten Zwecke gut funktionieren, ist ihre Umsetzung oft komplex und der Betrieb kostspielig. Ferner gehen sie nicht auf die Anforderung ein, dass Unternehmen von ihren Cloud-Anbietern die Zusicherung haben möchten, dass sich derartige Informationen nicht auf der Cloud befinden.
-
DLP und andere bekannte Sicherheitswerkzeuge und -verfahren setzen in der Regel hochentwickelte Techniken ein, um zu bestimmen, ob derartige sensible Daten durchgesickert oder anderweitig auf der Cloud vorhanden sind. In einem allgemeinen Ansatz wird ein statistischer Klassifizierer geschult (z.B. unter Verwendung von Maschinenlernen), wobei das sich daraus ergebende Modell angewendet wird, um die fraglichen sensiblen Daten zu erfassen. Eine derartige Erfassung (die im Nachhinein und in der Regel in der Cloud auftritt) kann jedoch nicht annähernd an die Genauigkeit (mutmaßlich bei oder nahe an 100 %) heranreichen, die ein System auf Grundlage lokaler Regeln mit Zugriff auf eine komplette Client-Datenbank bereitstellen könnte.
-
Kurzdarstellung der Erfindung
-
Gemäß dieser Offenbarung wird ein Verfahren zum Erfassen umgesetzt, ob spezielle sensible Daten eines Kunden in einer Cloud-Computing-Infrastruktur vorhanden sind, ohne zu erfordern, dass Daten mit dem Cloud-Anbieter geteilt werden müssen, oder dass der Cloud-Anbieter den Kundenzugriff auf die von ihm in der Cloud gespeicherten Daten, selbst im Namen des Kunden, bereitstellt. Anstatt vom Kunden zu fordern, seine Datenbank mit sensiblen Informationen zu teilen, oder vom Cloud-Anbieter zu fordern, Zugriff auf eine Sammlung von Informationen offenzulegen, die er in der Cloud speichert, bestimmen der Kunde und der Anbieter gemeinsam, ob sensible Daten von Interesse für den Kunden in irgendeinem Abschnitt der Cloud-Daten zu finden sind (typischerweise ein Index). Diese Bestimmung erfolgt selbst wenn die sensiblen Daten von Interesse als für den Kunden privat und der Index als für den Cloud-Anbieter privat beibehalten werden. Zu diesem Zweck führt jede Partei ein Werkzeug aus, das ein kryptografisches Protokoll verwendet, z.B. ein Private Set Intersection (PSI), um es einer Partei (gleichgültig, ob Anbieter oder Kunde oder möglicherweise beiden) zu ermöglichen, zu erfassen, ob die sensiblen Informationen des Kunden auf der Cloud vorhanden sind. Durch das Werkzeug identifizierte Informationen werden anschließend verwendet, um ein Dokument oder eine Äußerung zu kennzeichnen, eine Warnmeldung zu senden und/oder die sensiblen Daten zu redigieren oder mit Token zu versehen.
-
Gemäß einem spezifischeren Aspekt beschreibt diese Offenbarung ein Verfahren zum Schützen von Daten, das in Verbindung mit einer Cloud-Computing-Umgebung ausgeführt wird, wobei die Cloud-Computing-Umgebung einen Datenspeicher aufweist, in dem eine Sammlung von Informationen empfangen und gespeichert wird. Das Verfahren beginnt mit einem Identifizieren eines ersten Satzes von Daten, die der Sammlung von Informationen zugehörig und für die Cloud-Computing-Umgebung privat sind. Der erste Satz von Daten kann ein Index der Sammlung von Informationen sein. Nach Empfang einer Anforderung von einer Entität wird anschließend eine Erfassungstechnik umgesetzt. Die Entität weist einen zweiten Satz von Daten auf, und dabei ist der zweite Satz von Daten für die Entität von Interesse und für die Entität privat. Manchmal wird der zweite Satz von Daten als die „sensiblen Daten“ der Entität bezeichnet. Ein beispielhafter Satz von Daten kann eine geheime Liste von Wörtern oder Ausdrücken sein. Der erste Satz von Daten ist für den Anbieter privat, wogegen der zweite Satz von Daten für die Entität privat ist; anders ausgedrückt kennt die Entität in der Regel den ersten Satz von Daten nicht, und der Anbieter kennt den zweiten Satz von Daten nicht. Dennoch führen die Parteien gemeinsam ein kryptografisches Protokoll aus, um in dem ersten Satz von Daten ein Vorhandensein von allen Daten des zweiten Satzes zu erfassen, die für die Entität von Interesse sind. Das kryptografische Protokoll wird ausgeführt, indem eine bestimmte kryptografische Funktion über den ersten und den zweiten Satz von privaten Daten ausgewertet wird, ohne der Entität Zugriff auf die Sammlung von Informationen oder den ersten Satz von privaten Daten zu ermöglichen. Bevorzugt ist das kryptografische Protokoll ein Private Set Intersection (PSI), das der Anbieter gemeinsam mit der Entität ausführt, z.B. unter Verwendung einer verstümmelten Schaltung, die unter Verwendung einer kryptografischen Oblivious-Transfer-Primitiven als die bestimmte kryptografische Funktion umgesetzt wird. Nach einem Erfassen aller Daten des zweiten Satzes in dem ersten Satz von Daten, die für die Entität von Interesse sind, wird eine bestimmte Maßnahme ergriffen. Die bestimmte Maßnahme ist in der Regel eines von Folgendem: Bereitstellen einer Warnmeldung, Kennzeichnen der erfassten Informationen, Anwenden eines Tokens auf die erfassten Informationen und Redigieren der erfassten Informationen.
-
Von einem ersten Aspekt aus betrachtet stellt die vorliegende Erfindung ein Verfahren zum Schützen von Daten in Verbindung mit einer Cloud-Computing-Umgebung bereit, wobei die Cloud-Computing-Umgebung einen Datenspeicher aufweist, in dem eine Sammlung von Informationen empfangen und gespeichert wird, aufweisend: Identifizieren eines ersten Satzes von Daten, die der Sammlung von Informationen zugehörig und für die Cloud-Computing-Umgebung privat sind; nach Empfang einer Anforderung von einer Entität, wobei die Entität einen zweiten Satz von Daten aufweist, wobei der zweite Satz von Daten für die Entität von Interesse und für die Entität privat ist, Ausführen eines kryptografischen Protokolls mit der Entität, um in dem ersten Satz von Daten ein Vorhandensein von allen Daten des zweiten Satzes zu erfassen, die für die Entität von Interesse sind, wobei das kryptografische Protokoll ausgeführt wird, indem eine bestimmte kryptografische Funktion über den ersten und den zweiten Satz von privaten Daten ausgewertet wird, ohne der Entität Zugriff auf die Sammlung von Informationen oder den ersten Satz von privaten Daten zu ermöglichen; und Ergreifen einer bestimmten Maßnahme nach einem Erfassen aller Daten des zweiten Satzes in dem ersten Satz von Daten, die für die Entität von Interesse sind.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei das kryptografische Protokoll ein Private Set Intersection (PSI) ist, das gemeinsam in Verbindung mit der Entität ausgeführt wird, und der erste Satz von Daten ein Index der Sammlung von Informationen ist.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die bestimmte kryptografische Funktion eine verstümmelte Schaltung ist, die unter Verwendung einer kryptografischen Oblivious-Transfer-Primitiven umgesetzt wird.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die Entität eine Quelle des zweiten Satzes von Daten ist, und ein Erfassen aller Daten des zweiten Satzes ein Übergeben von derartigen Daten von einem privaten System, das der Entität zugehörig ist, an die Cloud-Computing-Umgebung erfasst.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die Entität eine Verwaltung einer Drittpartei oder eine private Entität ist.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, das ferner ein Empfangen der Sammlung von Informationen von der Entität über eine Anwendungsprogrammierschnittstelle (API) umfasst.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei das kryptografische Protokoll während des Aufnehmens der Sammlung von Informationen ausgeführt wird.
-
Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die bestimmte Maßnahme eines von Folgendem ist: Bereitstellen einer Warnmeldung, Kennzeichnen aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, Anwenden eines Tokens auf alle Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, und Redigieren aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung eine Vorrichtung zum Schützen von Daten in Verbindung mit einer Cloud-Computing-Umgebung bereit, wobei die Cloud-Computing-Umgebung einen Datenspeicher aufweist, in dem eine Sammlung von Informationen empfangen und gespeichert wird, aufweisend: einen Prozessor; Computerarbeitsspeicher, der Computerprogrammanweisungen enthält, die durch den Prozessor ausgeführt werden, wobei die Computerprogrammanweisungen konfiguriert sind zum: Identifizieren eines ersten Satzes von Daten, die der Sammlung von Informationen zugehörig und für die Cloud-Computing-Umgebung privat sind; nach Empfang einer Anforderung von einer Entität, wobei die Entität einen zweiten Satz von Daten aufweist, wobei der zweite Satz von Daten für die Entität von Interesse und für die Entität privat ist, Ausführen eines kryptografischen Protokolls mit der Entität, um in dem ersten Satz von Daten ein Vorhandensein von allen Daten des zweiten Satzes zu erfassen, die für die Entität von Interesse sind, wobei das kryptografische Protokoll ausgeführt wird, indem eine bestimmte kryptografische Funktion über den ersten und den zweiten Satz von privaten Daten ausgewertet wird, ohne der Entität Zugriff auf die Sammlung von Informationen oder den ersten Satz von privaten Daten zu ermöglichen; und Ergreifen einer bestimmten Maßnahme nach einem Erfassen aller Daten des zweiten Satzes in dem ersten Satz von Daten, die für die Entität von Interesse sind.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei das kryptografische Protokoll ein Private Set Intersection (PSI) ist, das gemeinsam in Verbindung mit der Entität ausgeführt wird, und der erste Satz von Daten ein Index der Sammlung von Informationen ist.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei die bestimmte kryptografische Funktion eine verstümmelte Schaltung ist und die Computerprogrammanweisungen konfiguriert sind, um eine kryptografische Oblivious-Transfer-Primitive umzusetzen.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei die Entität eine Quelle des zweiten Satzes von Daten ist und die Computerprogrammanweisungen, die konfiguriert sind, um alle Daten des zweiten Satzes zu erfassen, ein Übergeben der Daten von einem privaten System, das der Entität zugehörig ist, an die Cloud-Computing-Umgebung erfassen.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei die Entität eine Verwaltung einer Drittpartei oder eine private Entität ist.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um die Sammlung von Informationen von der Entität über eine Anwendungsprogrammierschnittstelle (API) zu empfangen.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei das kryptografische Protokoll während des Aufnehmens der Sammlung von Informationen ausgeführt wird.
-
Bevorzugt stellt die vorliegende Erfindung eine Vorrichtung bereit, wobei die Computerprogrammanweisungen konfiguriert sind, um die bestimmte Maßnahme zu ergreifen, die in Computerprogrammanweisungen enthalten ist, die eine Maßnahme bereitstellen, die eines von Folgendem ist: Bereitstellen einer Warnmeldung, Kennzeichnen aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, Anwenden eines Tokens auf alle Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, und Redigieren aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt in einem nicht flüchtigen, durch einen Computer lesbaren Medium zur Verwendung in einem Datenverarbeitungssystem zum Schützen von Daten in Verbindung mit einer Cloud-Computing-Umgebung bereit, wobei die Cloud-Computing-Umgebung einen Datenspeicher aufweist, in dem eine Sammlung von Informationen empfangen und gespeichert wird, wobei das Computerprogrammprodukt Computerprogrammanweisungen enthält, die bei Ausführung durch das Datenverarbeitungssystem konfiguriert sind zum: Identifizieren eines ersten Satzes von Daten, die der Sammlung von Informationen zugehörig und für die Cloud-Computing-Umgebung privat sind; nach Empfang einer Anforderung von einer Entität, wobei die Entität einen zweiten Satz von Daten aufweist, wobei der zweite Satz von Daten für die Entität von Interesse und für die Entität privat ist, Ausführen eines kryptografischen Protokolls mit der Entität, um in dem ersten Satz von Daten ein Vorhandensein von allen Daten des zweiten Satzes zu erfassen, die für die Entität von Interesse sind, wobei das kryptografische Protokoll ausgeführt wird, indem eine bestimmte kryptografische Funktion über den ersten und den zweiten Satz von privaten Daten ausgewertet wird, ohne der Entität Zugriff auf die Sammlung von Informationen oder den ersten Satz von privaten Daten zu ermöglichen; und Ergreifen einer bestimmten Maßnahme nach einem Erfassen aller Daten des zweiten Satzes in dem ersten Satz von Daten, die für die Entität von Interesse sind.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das kryptografische Protokoll ein Private Set Intersection (PSI) ist, das gemeinsam in Verbindung mit der Entität ausgeführt wird, und der erste Satz von Daten ein Index der Sammlung von Informationen ist.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt nach Anspruch 18 bereit, wobei die bestimmte kryptografische Funktion eine verstümmelte Schaltung ist und die Computerprogrammanweisungen konfiguriert sind, um eine kryptografische Oblivious-Transfer-Primitive umzusetzen.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Entität eine Quelle des zweiten Satzes von Daten ist und die Computerprogrammanweisungen, die konfiguriert sind, um alle Daten des zweiten Satzes zu erfassen, ein Übergeben von derartigen Daten von einem privaten System, das der Entität zugehörig ist, an die Cloud-Computing-Umgebung erfassen.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Entität eine Verwaltung einer Drittpartei oder eine private Entität ist.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um die Sammlung von Informationen von der Entität über eine Anwendungsprogrammierschnittstelle (API) zu empfangen.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das kryptografische Protokoll während des Aufnehmens der Sammlung von Informationen ausgeführt wird.
-
Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Computerprogrammanweisungen konfiguriert sind, um die bestimmte, in Computerprogrammanweisungen enthaltene Maßnahme zu ergreifen, die eines von Folgendem bereitstellen: eine Warnmeldung, Kennzeichnen aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, Anwenden eines Tokens auf alle Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind, und Redigieren aller Daten des zweiten Satzes, für die bestimmt worden ist, dass sie in dem ersten Satz von Daten vorhanden sind.
-
Im Vorgenannten wurden einige der relevanteren Merkmale des Erfindungsgegenstands erläutert. Diese Merkmale sollten als rein veranschaulichend aufgefasst werden. Viele andere vorteilhafte Ergebnisse können wie beschrieben durch Anwenden des offenbarten Erfindungsgegenstands in unterschiedlicher Weise oder durch Modifizieren des Erfindungsgegenstands erzielt werden.
-
Figurenliste
-
Für ein umfassenderes Verständnis der vorliegenden Erfindung und von deren Vorteilen wird nachstehend auf die folgenden Beschreibungen Bezug genommen, die in Verbindung mit den begleitenden Zeichnungen erstellt wurden, wobei:
- 1 ein beispielhaftes Blockschaubild einer verteilten Datenverarbeitungsumgebung darstellt, in der beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
- 2 ein beispielhaftes Blockschaubild eines Datenverarbeitungssystems ist, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
- 3 eine beispielhafte Cloud-Computing-Architektur veranschaulicht, in der der offenbarte Erfindungsgegenstand umgesetzt werden kann;
- 4 eine repräsentative Datenverarbeitungsumgebung von kognitiven Diensten ist, in der die Techniken dieser Offenbarung umgesetzt werden können; und
- 5 die zugrunde liegende Technik dieser Offenbarung darstellt.
-
Ausführliche Beschreibung einer veranschaulichenden Ausführungsform
-
Unter folgender Bezugnahme auf die Zeichnungen, und insbesondere unter Bezugnahme auf 1 bis 2 werden beispielhafte Darstellungen von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen der Offenbarung umgesetzt werden können. Es sollte klar sein, dass 1 bis 2 nur zu Beispielzwecken dienen und durch sie keinerlei Einschränkung hinsichtlich der Umgebungen festgestellt oder impliziert werden soll, in denen Aspekte oder Ausführungsformen des offenbarten Erfindungsgegenstands umgesetzt werden können. Viele Modifizierungen können an den dargestellten Umgebungen vorgenommen werden, ohne von dem Schutzumfang der vorliegenden Erfindung abzuweichen.
-
Client-Server- Technologien
-
Unter folgender Bezugnahme auf die Zeichnungen zeigt 1 eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein verteiltes Datenverarbeitungssystem 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, welches das Medium ist, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die in dem verteilten Datenverarbeitungssystem 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen enthalten, wie beispielsweise drahtgebundene, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel.
-
In dem dargestellten Beispiel sind ein Server 104 und ein Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Diese Clients 110, 112 und 114 können zum Beispiel PCs, Netzwerk-Computer oder dergleichen sein. In dem dargestellten Beispiel stellt der Server 104 Daten wie zum Beispiel Boot-Dateien, Betriebssystemabbildungen und Anwendungen für die Clients 110, 112 und 114 bereit. Die Clients 110, 112 und 114 sind in dem dargestellten Beispiel Clients für den Server 104. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere nicht gezeigte Einheiten enthalten.
-
In dem dargestellten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 für eine weltweite Sammlung von Netzwerken und Gateways steht, welche die Protokoll-Suite Transmission Control Protocol/Internet Protocol (TCP/IP) für den Datenaustausch untereinander verwenden. Das Kernstück des Internets ist ein Backbone von Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten oder Host-Computern, die aus Tausenden von gewerblichen, behördlichen, schulischen und anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann das verteilte Datenverarbeitungssystem 100 auch so umgesetzt werden, dass es eine Anzahl von verschiedenen Typen von Netzwerken enthält, wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) oder dergleichen. Wie oben ausgeführt, soll 1 als Beispiel dienen, nicht als architekturbedingte Einschränkung für verschiedene Ausführungsformen des offenbarten Erfindungsgegenstands, und daher sollten die in 1 gezeigten speziellen Elemente hinsichtlich der Umgebungen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können, als nicht einschränkend betrachtet werden.
-
Unter folgender Bezugnahme auf 2 wird ein Blockschaubild eines beispielhaften Datenverarbeitungssystems gezeigt, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel der Client 110 in 1, in dem sich durch einen Computer verwendbarer Code oder verwendbare Anweisungen befinden kann bzw. können, der bzw. die die Prozesse für veranschaulichende Ausführungsformen der Offenbarung umsetzen.
-
Unter folgender Bezugnahme auf 2 wird ein Blockschaubild eines Datenverarbeitungssystems gezeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel der Server 104 oder der Client 110 in 1, in dem sich durch einen Computer verwendbarer Programmcode oder verwendbare Anweisungen befinden kann bzw. können, der bzw. die die Prozesse für die veranschaulichenden Ausführungsformen umsetzen. In diesem veranschaulichenden Beispiel umfasst das Datenverarbeitungssystem 200 eine Datenübertragungsstruktur 202, die Datenübertragungen zwischen einer Prozessoreinheit 204, einem Arbeitsspeicher 206, einem permanenten Speicher 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe- (E/A) Einheit 212 und einer Anzeige 214 bereitstellt.
-
Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Software, die in den Arbeitsspeicher 206 geladen werden kann. Die Prozessoreinheit 204 kann eine Gruppe von einem oder mehreren Prozessoren oder ein Mehrprozessorkern sein, was von der jeweiligen Umsetzung abhängt. Ferner kann die Prozessoreinheit 204 unter Verwendung von einem oder mehreren heterogenen Prozessorsystemen umgesetzt werden, in denen ein Hauptprozessor mit sekundären Prozessoren auf einem einzelnen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann die Prozessoreinheit 204 ein symmetrisches Multiprozessor- (SMP) System sein, das mehrere Prozessoren desselben Typs enthält.
-
Der Arbeitsspeicher 206 und der permanente Speicher 208 sind Beispiele für Speichereinheiten. Eine Speichereinheit ist jedes Hardware-Element, das fähig ist, Informationen entweder auf temporärer Grundlage und/oder auf permanenter Grundlage zu speichern. Der Arbeitsspeicher kann beispielsweise in diesen Beispielen ein Direktzugriffsspeicher oder jede andere geeignete flüchtige oder nicht flüchtige Speichereinheit sein. Der permanente Speicher 208 kann abhängig von der jeweiligen Umsetzung verschiedene Formen annehmen. Zum Beispiel kann der permanente Speicher 208 eine oder mehrere Komponenten oder Einheiten enthalten. Zum Beispiel kann der permanente Speicher 208 eine Festplatte, ein Flash-Speicher, ein wiederbeschreibbares optisches Plattenlaufwerk, ein wiederbeschreibbares Magnetband oder eine beliebige Kombination des Vorgenannten sein. Die von dem permanenten Speicher 208 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 208 verwendet werden.
-
Die Datenübertragungseinheit 210 sorgt in diesen Beispielen für Datenübertragungen mit anderen Datenverarbeitungssystemen oder -einheiten. In diesen Beispielen ist die Datenübertragungseinheit 210 eine Netzwerk-Schnittstellenkarte. Die Datenübertragungseinheit 210 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
-
Die E/A-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden sein können. Zum Beispiel kann die Eingabe/Ausgabe-Einheit 212 eine Verbindung für Benutzereingaben über eine Tastatur und eine Maus bereitstellen. Ferner kann die Eingabe/Ausgabe-Einheit 212 Ausgaben an einen Drucker senden. Die Anzeige 214 stellt einen Mechanismus zum Anzeigen von Informationen für einen Benutzer bereit.
-
Anweisungen für das Betriebssystem und Anwendungen oder Programme befinden sich auf dem permanenten Speicher 208. Diese Anweisungen können zur Ausführung durch die Prozessoreinheit 204 in den Arbeitsspeicher 206 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 unter Verwendung von durch einen Computer umgesetzten Anweisungen ausgeführt werden, die sich in einem Arbeitsspeicher wie beispielsweise dem Arbeitsspeicher 206 befinden können. Diese Anweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der durch einen Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Der Programmcode in den verschiedenen Ausführungsformen kann auf verschiedenen physischen oder konkreten durch einen Computer lesbaren Medien verkörpert sein, wie zum Beispiel auf dem Arbeitsspeicher 206 oder dem permanenten Speicher 208.
-
Ein Programmcode 216 befindet sich in einer funktionalen Form auf durch einen Computer lesbaren Medien 218, die selektiv entfernbar sind, und zur Ausführung durch die Prozessoreinheit 204 auf das Datenverarbeitungssystem 200 geladen oder übertragen werden können. Der Programmcode 216 und die durch einen Computer lesbaren Medien 218 bilden in diesen Beispielen ein Computerprogrammprodukt 220. In einem Beispiel können die durch einen Computer lesbaren Medien 218 in konkreter Form vorliegen, wie zum Beispiel als optische oder Magnetplatte, die in ein Laufwerk oder eine andere Einheit eingeschoben oder eingelegt wird, das bzw. die Teil des permanenten Speichers 200 für einen Transfer auf eine Speichereinheit ist, wie beispielsweise ein Festplattenlaufwerk, das Teil des permanenten Speichers 208 ist. In einer konkreten Form können die durch einen Computer lesbaren Medien 218 auch die Form eines permanenten Speichers annehmen, wie zum Beispiel eine Festplatte, ein Thumb-Laufwerk oder ein Flash-Speicher, der mit dem Datenverarbeitungssystem 200 verbunden ist. Die konkrete Form von durch einen Computer lesbaren Medien 218 wird auch als durch einen Computer aufzeichnungsfähige Speichermedien bezeichnet. In einigen Beispielen sind die durch einen Computer aufzeichnungsfähigen Medien 218 möglicherweise nicht entfernbar.
-
Alternativ kann der Programmcode 216 von den durch einen Computer lesbaren Medien 218 über eine Datenübertragungsverbindung zur Datenübertragungseinheit 210 und/oder durch eine Verbindung zur Eingabe/Ausgabe-Einheit 212 auf das Datenverarbeitungssystem 200 übertragen werden. Die Datenübertragungsverbindung und/oder die Verbindung können in den veranschaulichenden Beispielen physisch oder drahtlos sein. Die durch einen Computer lesbaren Medien können auch die Form von nicht konkreten Medien annehmen wie zum Beispiel Datenübertragungsverbindungen oder drahtlose Übertragungen, die den Programmcode enthalten. Die verschiedenen für das Datenverarbeitungssystem 200 veranschaulichten Komponenten sind nicht als architekturbezogene Einschränkungen der Art und Weise aufzufassen, in der verschiedene Ausführungsformen umgesetzt werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt werden, das Komponenten zusätzlich zu oder anstelle von denjenigen umfasst, die für das Datenverarbeitungssystem 200 veranschaulicht sind. Andere in 2 gezeigte Komponenten können von den gezeigten veranschaulichenden Beispielen abweichen. Zum Beispiel ist eine Speichereinheit in dem Datenverarbeitungssystem 200 jede Hardware-Vorrichtung, die Daten speichern kann. Der Arbeitsspeicher 206, der permanente Speicher 208 und die durch einen Computer lesbaren Medien 218 sind Beispiele für Speichereinheiten in einer konkreten Form.
-
In einem weiteren Beispiel kann ein Bussystem verwendet werden, um die Datenübertragungsstruktur 202 umzusetzen, und kann aus einem oder mehreren Bussen bestehen, wie zum Beispiel einem Systembus oder einem Eingabe/Ausgabe-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes geeigneten Architekturtyps umgesetzt werden, der eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten ermöglicht, die mit dem Bussystem verbunden sind. Außerdem kann eine Datenübertragungseinheit eine oder mehrere Einheiten umfassen, die zum Übertragen und Empfangen von Daten verwendet werden, wie zum Beispiel ein Modem oder ein Netzwerkadapter. Ferner kann ein Arbeitsspeicher zum Beispiel ein Arbeitsspeicher 206 oder ein Cache, wie zum Beispiel in einer Schnittstelle zu finden, und ein Controller-Hub eines Arbeitsspeichers sein, der in der Datenübertragungsstruktur 202 vorhanden sein kann.
-
Ein Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java™, Smalltalk, C++, C#, Objective-C oder dergleichen und herkömmliche prozedurale Programmsprachen. Der Programmcode kann 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-Dienstea nbieters).
-
Fachleuten wird klar sein, dass die Hardware in 1 bis 2 je nach Umsetzung unterschiedlich sein kann. Weitere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertiger nicht flüchtiger Arbeitsspeicher oder optische Plattenlaufwerke und dergleichen können zusätzlich zu oder anstelle der Hardware verwendet werden, die in 1 bis 2 dargestellt ist. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Mehrfachprozessor-Datenverarbeitungssystem als das vorher erwähnte SMP-System angewendet werden, ohne von dem Schutzumfang des offenbarten Erfindungsgegenstands abzuweichen.
-
Wie zu ersehen ist, können die hierin beschriebenen Techniken in Verbindung mit dem standardmäßigen Client-Server-Paradigma arbeiten, wie in 1 veranschaulicht, in dem Client-Maschinen mit einem über das Internet zugänglichen, auf dem Web beruhenden Portal Daten austauschen können, das auf einer Gruppe von einer oder mehreren Maschinen ausgeführt wird. Endbenutzer betätigen über das Internet verbindbare Einheiten (z.B. Desktop-Computer, Notebook-Computer, internetfähige mobile Einheiten oder dergleichen), die fähig sind, auf das Portal zuzugreifen und mit diesem zu interagieren. In der Regel ist jede Client- bzw. Server-Maschine ein Datenverarbeitungssystem wie in 2 veranschaulicht, das Hardware und Software aufweist, und diese Entitäten tauschen untereinander über ein Netzwerk Daten aus, wie zum Beispiel das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung. Ein Datenverarbeitungssystem umfasst in der Regel einen oder mehrere Prozessoren, ein Betriebssystem, eine oder mehrere Anwendungen und ein oder mehrere Dienstprogramme. Die Anwendungen auf dem Datenverarbeitungssystem stellen nativen Support für Web-Dienste bereit, einschließlich unter anderem unbegrenzten Support für HTTP, SOAP, XML, WSDL, UDDI und WSFL. Informationen in Bezug auf SOAP, WSDL, UDDI und WSFL stehen über das World Wide Web Consortium (W3C) zur Verfügung, das für die Entwicklung und Verwaltung dieser Standards zuständig ist; weitere Informationen in Bezug auf HTTP und XML stehen über die Internet Engineering Task Force (IETF) zur Verfügung. Vertrautheit mit diesen Standards wird vorausgesetzt.
-
Cloud-Computing-Modell
-
Ein aufstrebendes Bereitstellungsmodell in der Informationstechnologie (IT) ist Cloud Computing, über das gemeinsam genutzte Ressourcen, Software und Informationen über das Internet für Computer und andere Einheiten nach Bedarf bereitgestellt werden. Durch Cloud Computing können IT-Kosten und komplexe Zusammenhänge signifikant reduziert und damit Arbeitslastoptimierung und Servicebereitstellung verbessert werden. Mit diesem Ansatz kann eine Anwendungsinstanz gehostet und von auf dem Internet beruhenden Ressourcen zur Verfügung gestellt werden, auf die durch einen herkömmlichen Web-Browser über HTTP zugegriffen werden kann. Eine beispielhafte Anwendung könnte eine sein, die einen allgemeinen Satz von Funktionen zur Nachrichtenübermittlung bereitstellt, wie zum Beispiel eMail, Kalendererstellung, Kontaktverwaltung und Instant-Messaging. Ein Benutzer würde dann über das Internet direkt auf den Dienst zugreifen. Unter Verwendung dieses Dienstes würde ein Unternehmen seine eMail-, Kalender- und/oder Zusammenarbeits-Infrastruktur in die Cloud stellen, und ein Endbenutzer würde einen entsprechenden Client verwenden, um auf seine eMail zuzugreifen oder eine Kalender-Operation auszuführen.
-
Cloud-Computing-Ressourcen befinden sich in der Regel in großen Server-Farmen, die üblicherweise unter Verwendung einer virtualisierten Architektur eine oder mehrere Netzwerk-Anwendungen ausführen, wobei Anwendungen in virtuellen Servern oder so genannten „virtuellen Maschinen“ (VMs) ausgeführt werden, die physischen Servern in einer Rechenzentrumseinrichtung zugeordnet sind. Die virtuellen Maschinen werden in der Regel auf einem Hypervisor ausgeführt, der ein Steuerprogramm ist, das den virtuellen Maschinen physische Ressourcen zuweist.
-
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, Arbeitsspeicher, 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, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen, wie insbesondere in „Draft NIST Working Definition of Cloud Computing“ von Peter Mell und Tim Grance, mit Datum vom 7. Oktober 2009 beschrieben und definiert wird.
-
Typische Eigenschaften sind insbesondere 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). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Es gibt die folgenden typischen Dienstmodelle:
- Software as a Service (SaaS): Die dem 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).
-
Es gibt die folgenden typischen Nutzungsmodelle:
- 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 aufweist. Ein repräsentativer Cloud-Computing-Knoten sieht wie oben in 2 veranschaulicht aus. Insbesondere ist in einem Cloud-Computing-Knoten ein Computersystem/Server vorhanden, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen von Universal- oder Sonder-Datenverarbeitungssystemen betriebsbereit ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit einem Computersystem/Server geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt. Das Computersystem/der Server kann in dem allgemeinen Kontext von Anweisungen beschrieben werden, die durch ein Computersystem ausführbar sind, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Arbeitsspeicher-Speichereinheiten enthalten.
-
Unter folgender Bezugnahme auf 3 wird als zusätzlicher Hintergrund ein Satz von funktionalen Abstraktionsschichten gezeigt, die von einer Cloud Computing-Umgebung bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 3 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 300 enthält Hardware- und Software-Komponenten. Beispiele für Hardware-Komponenten umfassen Mainframes, in einem Beispiel zSeries®-Systeme von IBM®; Server auf Grundlage von RISC- (Reduced Instruction Set Computer) Architektur, in einem Beispiel pSeries®-Systeme von IBM; xSeries®-Systeme von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten; Netzwerke und vernetzte Komponenten. Zu Beispielen für Software-Komponenten zählen Software für Netzwerk-Anwendungssoftware, in einem Beispiel WebSphere®-Anwendungsserver-Software von IBM; und Datenbank-Software, in einem Beispiel DB2®-Datenbanksoftware von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind eingetragene Marken der International Business Machines Corporation, die weltweit unter vielen Gerichtsbarkeiten registriert sind).
-
Eine Virtualisierungsschicht 302 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
-
In einem Beispiel kann die Verwaltungsschicht 304 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen und weitere Ressourcen bereit, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung stellen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. 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 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 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 306 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Beispiele für Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, umfassen: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; unternehmensspezifische Funktionen in einer privaten Cloud; und gemäß dieser Offenbarung eine sichere PSI-Datenerfassungstechnik 308.
-
Es sollte von vornherein klar sein, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, dass eine Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der offenbarten Technik in Verbindung mit jedem beliebigen anderen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden. Diese umfassen eigenständige Datenverarbeitungsumgebungen (z.B. eine lokale Desktop-Maschine), Architekturen auf Grundlage von Client/Server und dergleichen.
-
Somit weist eine repräsentative Cloud-Computing-Umgebung einen Satz von funktionalen Komponenten höchster Ebene auf, die einen Frontend Identity Manager, eine Funktionskomponente für Unternehmensunterstützungsdienste (BSS), eine Funktionskomponente für Betriebsunterstützungsdienste (OSS) und die Compute-Cloud-Komponente umfassen. Der Identity Manager ist für die Schnittstellenbildung mit anfordernden Clients zuständig, um eine Identitätsverwaltung bereitzustellen, und diese Komponente kann mit einem oder mehreren bekannten Systemen umgesetzt werden wie zum Beispiel dem Tivoli Federated Identity Manager (TFIM), der von der IBM Corporation in Armonk, New York, erhältlich ist. Unter entsprechenden Umständen kann TFIM zum Bereitstellen von föderiertem Single-Sign-On (F-SSO) für andere Cloud-Komponenten verwendet werden. Die Komponente für Unternehmensunterstützungsdienste stellt bestimmte administrative Funktionen wie beispielsweise Abrechnungsunterstützung bereit. Die Komponente für Betriebsunterstützungsdienste wird für die Bereitstellung und Verwaltung der anderen Cloud-Komponenten verwendet, wie zum Beispiel Instanzen von virtuellen Maschinen (VM). Die Cloud-Komponente stellt die Haupt-Datenverarbeitungsressourcen dar, die in der Regel eine Mehrzahl von virtuellen Maschinen-Instanzen sind, die zum Ausführen einer Zielanwendung verwendet werden, wobei der Zugriff über die Cloud zur Verfügung gestellt wird. Eine oder mehrere Datenbanken werden zum Speichern von Verzeichnis-, Protokoll- und anderen Arbeitsdaten verwendet. Alle diese Komponenten (einschließlich der Frontend Identity Manager) befinden sich „innerhalb“ der Cloud, doch ist dies keine Erfordernis. In einer alternativen Ausführungsform kann der Identity Manager außerhalb der Cloud betrieben werden. Der Dienstanbieter kann ebenfalls außerhalb der Cloud betrieben werden.
-
Einige Clouds beruhen auf nicht traditionellen IP-Netzwerken. Damit kann eine Cloud zum Beispiel auf zweistufigen CLOS-basierten Netzwerken mit speziellem Einzelschicht-IP-Routing beruhen, das Hashwerte von MAC-Adressen verwendet. Die hierin beschriebenen Techniken können in derartigen nicht traditionellen Clouds verwendet werden.
-
Verallgemeinernd sorgt die Cloud-Computing-Infrastruktur für eine Hosting-Umgebung für virtuelle Maschinen, die Host-Maschinen aufweist (z.B. Server oder ähnliche physische Maschinen-Datenverarbeitungseinheiten), die über ein Netzwerk und einen oder mehrere Verwaltungsserver verbunden sind. In der Regel sind die physischen Server jeweils so angepasst, dass sie unter Verwendung von Virtualisierungstechnologie, wie zum Beispiel VMware ESX/ESXi, eine oder mehrere virtuelle Maschinen bereitstellen. Mehrere VMs können in eine einzelne Host-Maschine gestellt werden und CPU, Arbeitsspeicher und andere Ressourcen der Host-Maschine gemeinsam nutzen, wodurch die Auslastung des Rechenzentrums einer Organisation verbessert wird. Neben anderen Aufgaben überwacht der Verwaltungsserver die Infrastruktur und bearbeitet die VM-Platzierung nach Bedarf, z.B. durch Verschieben von virtuellen Maschinen zwischen Hosts.
-
In einer nicht einschränkenden Umsetzung sind repräsentative Plattform-Technologien ohne Einschränkung System x®-Server von IBM mit VMware vSphere 4.1 Update 1 und 5.0
-
In einer Ausführungsform wird die Technik dieser Offenbarung in Verbindung mit einer Cloud-Computing-Infrastruktur (IBM Cloud) umgesetzt, die kognitive Dienste unterstützt, wie zum Beispiel Watson™ Assistant von IBM® (vormals Watson Conversation). Der Watson Assistant kann in Verbindung mit der Cloud-Anwendung eines Unternehmens umgesetzt werden, die in einer Cloud-Computing-Infrastruktur unterstützt wird, wie oben unter Bezugnahme auf 3 beschrieben wird. 4 stellt eine repräsentative Umsetzung dar. In diesem Beispiel interagieren Benutzer 400 mit einer Cloud-Anwendung 402 über eine Benutzerschnittstelle 404, z.B. ein einfaches Chat-Fenster, eine mobile App, einen Roboter mit einer Sprachschnittstelle usw. Die Anwendung 402 sendet die Benutzereingabe an einen Watson-Assistant-Dienst 406. Die Anwendung 402 verbindet sich anschließend mit einem Arbeitsbereich 408, der ein Container für Dialogfluss und Schulungsdaten ist. Der Dienst 406 interpretiert die Benutzereingabe, steuert den Fluss der Konversation und sammelt benötigte Informationen. Weitere Watson-Dienste 410, wie beispielsweise Tone Analyzer oder Speech-to-Text, können nach Bedarf zum Analysieren der Benutzereingabe verbunden werden. Außerdem kann die Anwendung 402 auch mit Backend-Systemen 412 des Unternehmens interagieren, z.B. auf Grundlage der Absicht des Benutzers und zusätzlicher Informationen. Unter Verwendung der Architektur kann das Unternehmen Multiturn-Dialog programmieren und Antwortvariationen auf Grundlage verschiedener Bedingungen bereitstellen, Informationen sammeln und validieren, Handler für nicht zum Thema gehörende Anfragen hinzufügen, Benutzern das Durchsuchen eines Katalogs von bereits konfigurierten Kundenservice- und Branchen-Inhaltspaketen ermöglichen, um Zeit zu sparen und schneller zu starten, Analysen und Empfehlungen bereitstellen, die Erkenntnisse aus Konversationen aufdecken und die Schulung des Watson-Dienstes des Unternehmens abstimmen, generierte Erkenntnisse schützen und dergleichen.
-
In diesem Ansatz setzt das Unternehmen eine Konversation (mit Watson) durch Konfigurieren eines Arbeitsbereichs unter Verwendung einer grafischen Umgebung um. Während dieses Prozesses richtet das Unternehmen Schulungsdaten und Dialog für die Konversation ein. Die Schulungsdaten umfassen in der Regel Artefakte, insbesondere Absichten (Ziele, die Benutzer beim Interagieren mit dem Dienst haben) und Entitäten (ein Begriff oder Objekt, der bzw. das Kontext für eine Absicht bereitstellt). Beim Hinzufügen von Schulungsdaten wird dem Arbeitsbereich automatisch ein Klassifizierer natürlicher Sprache hinzugefügt, und dieser wird geschult, die Typen von Anforderungen zu verstehen, auf die der Dienst achten und antworten soll. Unter Verwendung eines Dialog-Werkzeugs kann das Unternehmen einen Dialogfluss aufbauen, der Absichten und Entitäten integriert. In der Regel wird der Dialogfluss in dem Werkzeug grafisch als Baum dargestellt. Nach der Konfiguration wird der Arbeitsbereich bereitgestellt, indem er mit einer Frontend-Benutzerschnittstelle, sozialen Medien oder einem Nachrichtenkanal verbunden wird.
-
Die oben beschriebene gewerbliche Umsetzung ist nicht als einschränkend aufzufassen, sondern ist nur eine repräsentative Ausführungsform einer Client-Anwendung, die in einer Cloud-Computing-Umgebung unterstützt wird und die mit einem kognitiven Dienst interagiert.
-
Private Set Intersection
-
Ein Private Set Intersection- (PSI) Protokoll ermöglicht es zwei Parteien, jede mit einem privaten Satz von Daten, die Schnittmenge ihrer Datensätze sicher zu berechnen. Dieser Protokolltyp ermöglicht es wechselseitig nicht vertrauenswürdigen Parteien, die Schnittmenge ihrer privaten Eingabesätze gemeinsam zu berechnen. Die meisten PSI-Schemas sind Einzelausgaben, was bedeutet, dass eine der Parteien die Ausgabe der Schnittmenge empfängt, die andere hingegen nicht; andere PSI-Schemas sind wechselseitig, wobei die Schnittmenge an beide Parteien ausgegeben wird. PSI-Protokolle wurden in verschiedenen Anwendungsfällen wie beispielsweise Online-Empfehlungsdiensten umgesetzt.
-
Repräsentative PSI-Protokollumsetzungen können auf einem oder mehreren kryptografischen Protokollen beruhen. Zu diesen gehören ohne Einschränkung Yaos verstümmelte Schaltungen und teilweise homomorphe Verschlüsselung.
-
Sicherer regulierter Datenschutz unter Verwendung eines kryptografischen PSI-Protokolls
-
Vor dem Hintergrund des Vorgenannten wird im Folgenden der Erfindungsgegenstand dieser Offenbarung beschrieben.
-
Wie oben angemerkt, beschreibt diese Offenbarung ein Verfahren und ein System zum Schützen von Daten, die in Verbindung mit einer Cloud-Computing-Umgebung ausgeführt werden, wobei die Cloud-Computing-Umgebung einen Datenspeicher aufweist, in dem eine Sammlung von Informationen empfangen und gespeichert wird. Das Verfahren beginnt mit einem Identifizieren eines ersten Satzes von Daten, die der Sammlung von Informationen zugehörig und für die Cloud-Computing-Umgebung privat sind. Der Begriff des Identifizierens sollte im weitesten Sinn als Generieren, Empfangen, Erhalten oder anderweitiges Erstellen des ersten Satzes von Daten aufgefasst werden. Der erste Satz von Daten kann im Voraus oder im laufenden Betrieb in Reaktion auf ein bestimmtes Vorkommnis generiert werden, wie zum Beispiel einen Empfang einer Anforderung. Gemäß dem Verfahren und nach Empfang einer Anforderung von einer Entität wird anschließend eine Erfassungstechnik umgesetzt. Die Entität weist einen zweiten Satz von Daten auf, und dabei ist der zweite Satz von Daten für die Entität von Interesse und für die Entität privat. Manchmal wird der zweite Satz von Daten als die „sensiblen Daten“ der Entität bezeichnet. Ein beispielhafter Satz von Daten kann eine geheime Liste von Wörtern oder Ausdrücken sein. Der erste Satz von Daten ist für den Anbieter privat, wogegen der zweite Satz von Daten für die Entität privat ist; anders ausgedrückt kennt die Entität in der Regel den ersten Satz von Daten nicht, und der Anbieter kennt den zweiten Satz von Daten nicht. Dennoch führen die Parteien gemeinsam ein kryptografisches Protokoll aus, um in dem ersten Satz von Daten ein Vorhandensein von allen Daten des zweiten Satzes zu erfassen, die für die Entität von Interesse sind. Das kryptografische Protokoll wird ausgeführt, indem eine bestimmte kryptografische Funktion über den ersten und den zweiten Satz von privaten Daten ausgewertet wird, ohne der Entität Zugriff auf die Sammlung von Informationen oder den ersten Satz von privaten Daten zu ermöglichen. Bevorzugt ist das kryptografische Protokoll ein Private Set Intersection (PSI), das der Anbieter gemeinsam mit der Entität ausführt, z.B. unter Verwendung einer verstümmelten Schaltung, die unter Verwendung einer kryptografischen Oblivious-Transfer-Primitiven als die bestimmte kryptografische Funktion umgesetzt wird. Nach einem Erfassen aller Daten des zweiten Satzes in dem ersten Satz von Daten, die für die Entität von Interesse sind, wird eine bestimmte Maßnahme ergriffen. Die bestimmte Maßnahme ist in der Regel eines von Folgendem: Bereitstellen einer Warnmeldung, Kennzeichnen der erfassten Informationen, Anwenden eines Tokens auf die erfassten Informationen und Redigieren der erfassten Informationen.
-
5 stellt die zugrunde liegende Technik dieser Offenbarung dar. In dieser beispielhaften Ausführungsform weist eine Cloud-Computing-Infrastruktur 500 einen Datenspeicher 502 auf, der ein Sammlungs-Repository hostet, in der Regel mit Zugriffskontrollen. Der Cloud-Anbieter führt ein Private Set Intersection- (PSI) Werkzeug 504 in Verbindung mit einem Antwortdienst 506 aus, der Reaktionsmaßnahmen bereitstellt, wie zum Beispiel eines oder mehreres von Folgendem: Warnmeldung, Redigierung, Tokenisierung, Kennzeichnung, Sandboxing und dergleichen. Bevorzugt und wie beschrieben speichert der Datenspeicher 502 einen kompletten Inhaltssatz (Informationen), obwohl das Werkzeug 504 selbst nur einen Index dieses Inhaltssatzes bearbeitet. Eine Datenverarbeitungsumgebung 508 des Unternehmens, die in der Regel in einem privaten Netzwerk des Unternehmens gehostet wird, weist eine Datenbank 510 mit sensiblen Daten (z.B. PII, PHI oder dergleichen) sowie Instanzen sowohl eines PSI-Werkzeugs 512 als auch eines Antwortdienstes 514 auf. Ressourcen auf Unternehmensgrundlage tauschen mit Ressourcen auf Cloud-Anbietergrundlage über Datenübertragungen auf Client-Server-Grundlage Daten aus, wie oben in 1 beschrieben. Jede Seite der Datenübertragungsverbindung wird in einem oder mehreren Datenverarbeitungssystemen umgesetzt, wie in 1 beschrieben und dargestellt. Die Cloud-Computing-Infrastruktur kann wie in 3 beschrieben umgesetzt werden, und sie kann einen oder mehrere Dienste, wie zum Beispiel den Watson Assistant, in der in 4 beschriebenen Art und Weise nutzen. Die Client-PSI-Werkzeuge (504 und 512) wirken zusammen, um einen PSI-Protokollaustausch umzusetzen, wobei das Werkzeug auf Cloud-Grundlage den Index des in dem Cloud-Datenspeicher gespeicherten Inhaltssatzes auswertet. Die Antwortdienste 506 und 514 werden in der Regel als Software (ein oder mehrere Computersysteme, Programme, Prozesse usw.) ausgeführt, die in Hardware oder virtuellen Maschinen ausgeführt werden.
-
Wie oben angemerkt, ermöglicht das Private Set Intersection-Protokoll, das eine Form von sicherer Mehrparteien-Berechnung (MPC) ist, dass zwei Parteien (auf der einen Seite der Cloud-Anbieter und auf der anderen Seite das Unternehmen) erkennen können, ob sie einen Teil von Informationen gemeinsam haben, und zwar so, dass keine der Parteien die verglichenen Informationen für die andere Partei aufdecken muss. Bei diesem Ansatz wird der Index einer beliebig großen Sammlung 502 in der Cloud-Computing-Umgebung 500 bevorzugt automatisch untersucht, und der bzw. die Antwortdienste 506 und 514 kennzeichnen oder redigieren alles, was sich in der vollständigen endgültigen Liste sensibler Daten 510 des Clients befindet (z.B. Patientennamen und Datensatznummern oder jeder andere Teil von Informationen, die vom Client als sensibel eingestuft werden), ohne für den Dienstanbieter irgendwelche neuen Informationen aufzudecken, die nicht bereits auf der Cloud vorhanden sind. Tatsächlich sorgt dieser Ansatz damit für einen Nachweis auf Grundlage von „Null Kenntnis“ in Bezug darauf, ob sensible Daten auf der Cloud vorhanden sind (mit anderen Worten, im Index), und zwar ohne Offenlegung derartiger Informationen, um den Auswertungsprozess selbst zu vereinfachen.
-
In diesem Ansatz verlassen die sensiblen Daten bevorzugt niemals die Räumlichkeiten 508 des Clients; stattdessen verbindet sich die Datenbank 510, die die sensiblen Daten enthält, mit dem clientseitigen Agent 512, der ein Private Set Intersection (PSI) interaktiv mit dem von der Cloud unterstützten PS-Agent 504 ausführt (der, wie oben erwähnt, bevorzugt seinen Index von Informationen untersucht, die in der Cloud gespeichert sind, statt den gesamten Satz von Informationen selbst zu untersuchen), wobei zum Beispiel erfasst wird, ob sensible Datenfelder oder irgendein API-Feld, das Benutzer im Unternehmen über eine Client-Anwendung (nicht gezeigt) aus der clientseitigen Datenbank 510 auffüllen, in irgendeinem Dokument oder einem anderen Objekt vorhanden sind, auf das ein Zugriff des Cloud-Anbieters erlaubt oder zulässig ist.
-
In einer bevorzugten Ausführungsform verbindet sich das PSI-Werkzeug (der Agent) 504 des Cloud-Anbieters mit dem Sammlungs-Repository 502, das eine indexierte Sammlung enthält. Das PSI-Protokoll wird anschließend an den Inhalten des Index ausgeführt. Diese Operation kann entweder nur eine Sammlung, die für einen bestimmten Client spezifisch ist, oder eine breiter angelegte Sammlung umfassen, auf die der Client zur Erfassung von sensiblen Informationen Zugriff hat. Diese Ausführungsform ermöglicht es Clients, zu bestimmen, ob ihre sensiblen Informationen, selbst in einer Sammlung, auf die sie keinen vollständigen (oder sogar überhaupt keinen) Zugriff haben, in einer dem Anbieter eigenen oder zusammengestellten Sammlung vorhanden sind. Wie unter Bezugnahme auf 4 beschrieben, wird in dieser Ausführungsform der PSI-Agent 504 auf Grundlage des Cloud-Anbieters direkt mit den kognitiven Dienst-APIs integriert, die PSI mit dem PSI-Agent des Clients in Echtzeit ausführen, um das Übergeben von sensiblen Informationen in Textfeldern zu erfassen, wenn Informationen in das System gelangen. Diese Ausführungsform ermöglicht den APIs (z.B. kognitive Dienst-APIs) damit, eine Echtzeitangabe für einen offensichtlichen Eintrag von sensiblen Daten bereitzustellen, sodass die Client-Anwendung den Antwortdienst 506 (oder dergleichen) verwenden kann, um den Client oder den Endbenutzer zu warnen und/oder die Daten zu redigieren, bevor sie in der Cloud gespeichert werden.
-
In einer alternativen Ausführungsform wird die PSI-Interaktion zwischen dem Cloud-Anbieter und einer vertrauenswürdigen dritten Partei ausgeführt (z.B. Strafverfolgungsbehörden, ein Nachrichtendienst, eine beauftragte Sicherheitsorganisation, Wirtschaftsprüfer, autorisierte Partner usw.), wobei die vertrauenswürdige Partei ein legitimes Interesse an einem Erfassen des Vorhandenseins von bestimmten sensiblen Informationen hat, z.B. in einem kognitiven System, in der Regel im Auftrag des Kunden. In diesem Szenario wird der dritten Partei bevorzugt kein vollständiger Zugriff auf die Sammlung oder API gewährt, wobei aber immer noch ein legitimes Interesse am Erfassen von beispielsweise sensiblen Daten (z.B. die Namen von Personen von Interesse) in dem kognitiven System besteht. Somit können, wie hierin verwendet, die Zugriffskontrollen im Repository geändert werden und hängen von der Art der Zugriffsbeschränkung ab. Zugriffskontrollen können auf Rollen, Benutzern oder sonstigem beruhen.
-
In einer bestimmten Ausführungsform setzt das PSI-Werkzeug auf jeder Seite (d.h. auf der Cloud und an der Entität) ein kryptografisches Protokoll um, das als verstümmelte Schaltung bekannt ist. Eine verstümmelte Schaltung bietet eine Möglichkeit, ein Programm in ein Paar von Programmen zu kompilieren, von denen jedes eine große Anzahl von Logikgattern aufweist. Die beiden Programme sind konfiguriert, um sich miteinander zu verbinden, z.B. über ein Netzwerk, und eine gemeinsame Berechnung zum Generieren einer Ausgabe (Antwort) auszuführen. In der Regel werden die Gatter, aus denen sich das Programm zusammensetzt, unter Verwendung einer kryptografischen Primitiven gebildet, wie beispielsweise Oblivious Transfer, die unter Verwendung einer asymmetrischen Kryptografie erstellt werden kann, z.B. das Rivest-Shamir-Adelman-(RSA) Kryptosystem. In der Kryptografie ist ein Oblivious-Transfer- (OT) Protokoll ein Protokolltyp, in dem ein Sender einen von potenziell vielen Teilen von Informationen zu einem Empfänger überträgt, der Sender aber in Unkenntnis darüber bleibt, welcher Teil (sofern überhaupt) übertragen worden ist. In einer repräsentativen Umsetzung wird jedes verstümmelte Schaltungsprogramm in einem Arbeitsspeicher eines Datenverarbeitungssystems ausgeführt, und zwar in einem ersten Datenverarbeitungssystem in der Cloud (5, 500) und in einem zweiten Datenverarbeitungssystem, das der privaten Entität (5, 508) zugehörig ist. Mit der Verwendung dieses Ansatzes ist das Endergebnis ein Gesamtprogramm, das gleichzeitig in zwei Hälften und so ausgeführt wird, dass kein Umfang eines Überprüfens der Inhalte des Arbeitsspeichers in beiden Datenverarbeitungssystemen eine Bestimmung ermöglicht, welchen Logikpfad oder Datenwert das Programm zu jedem Zeitpunkt verwendet, bis zu dem Punkt, an dem das Programm eine endgültige Antwort an eine oder beide Parteien ausgibt.
-
Die Technik dieser Offenbarung bietet erhebliche Vorteile. Wie beschrieben, stellt der Ansatz hierin eine Möglichkeit zum Erfassen bereit, ob spezielle sensible Daten eines Clients in einer Cloud-Computing-Infrastruktur so vorhanden sind, dass Daten nicht mit dem Cloud-Anbieter geteilt werden müssen oder dass der Cloud-Anbieter den Client-Zugriff auf alle (oder sogar beliebige) Daten in der Cloud bereitstellt. Der Ansatz ermöglicht eine Erfassung von sensiblen Daten, für die weder eine Unterstützung von DLP oder anderen komplexen Systemen in dem Unternehmen noch die Schulung eines statistischen Klassifizierers erforderlich ist. Der Ansatz auf PSI-Grundlage ist extrem sicher, rechnerisch effizient und stellt sicher, dass die Erfassung sensibler Daten in Bezug auf diejenigen Entitäten vereinfacht wird, die über autorisierte Befugnisse verfügen, für die Datenerfassung auf die Client-Datenbank zuzugreifen. Zu diesem Zweck, und wie beschrieben wurde, führt jede Datenübertragungsseite bevorzugt einen PSI-Agent (Werkzeug) aus, der sich problemlos in Software umsetzen lässt.
-
Wie hierin verwendet, wird ein PSI-Agent in der Regel in Software umgesetzt, z.B. als ein Satz von Computerprogrammanweisungen, die von einem oder mehreren Hardware-Prozessoren ausgeführt werden. Ein spezielles Werkzeug kann eine beliebige Anzahl von Programmen, Prozessen, Ausführungs-Threads und dergleichen zusammen mit entsprechenden Schnittstellen und Datenbanken aufweisen, um Daten zu unterstützen, die von dem Werkzeug verwendet oder erstellt werden. Das Werkzeug kann mit einem Frontend auf Web-Grundlage über eine Befehlszeile oder dergleichen konfiguriert oder verwaltet werden. Das Werkzeug kann eine oder mehrere Funktionen umfassen, die programmgestützt umgesetzt werden, oder die mit anderen Datenverarbeitungsentitäten oder Software-Systemen über eine Anwendungsprogrammierschnittstelle (API) oder jedes zweckmäßige Protokoll für Anforderung/Antwort zusammenwirken.
-
Wie oben angemerkt, wird der Ansatz hierin bevorzugt in Verbindung mit verschiedenen erweiterten Diensten umgesetzt, wie beispielsweise einem kognitiven Dienst. Ein repräsentativer kognitiver Dienst ist IBM Watson, wie beschrieben wurde.
-
Verallgemeinernd sorgt ein kognitiver Dienst dieses Typs für eine Verarbeitung von unstrukturierten Datenquellen, wobei in der Regel ein Frage-und-Antwort- (Q&A) System verwendet wird wie zum Beispiel eine Lernmaschine künstlicher Intelligenz (AI) auf Grundlage einer natürlichen Sprachverarbeitung (NLP). Eine Maschine dieses Typs kann natürliche Sprachverarbeitung, Maschinenlernen und Generierung und Auswertung von Hypothesen kombinieren; sie empfängt Anfragen und stellt direkte Antworten auf Konfidenzgrundlage auf solche Fragen bereit. Eine Q&A-Lösung wie beispielsweise IBM Watson kann auf der Cloud beruhen, wobei die Q&A-Funktion, die „as-a-service“ (SaaS) bereitgestellt wird, Anfragen auf NLP-Grundlage empfängt und entsprechende Antworten zurückgibt.
-
Ein repräsentatives Q&A-System, wie beispielsweise in der
U.S.-Patentschrift 8 275 803 beschrieben, stellt Antworten auf Fragen auf Grundlage jeder beliebigen Sammlung von Daten bereit. Das an dieser Stelle beschriebene Verfahren vereinfacht das Generieren einer Anzahl von Kandidatenpassagen aus der Sammlung, die eine eingegebene Anfrage beantworten, und findet die korrekte sich daraus ergebende Antwort, indem unterstützende Nachweise aus den mehreren Passagen gesammelt werden. Durch paralleles Analysieren aller abgerufenen Passagen und der Metadaten dieser Passage wird eine ausgegebene Mehrheit von Datenstrukturen generiert, die Kandidatenantworten auf Grundlage des Analyseschritts umfassen. Anschließend werden durch jedes von einer Mehrzahl von parallel arbeitenden Modulen Abrufoperationen von unterstützenden Passagen an dem Satz von Kandidatenantworten ausgeführt; für jede Kandidatenantwort wird die Datensammlung durchquert, um zusätzlich zu Abfragebegriffen diejenigen Passagen mit einer Kandidatenantwort zu finden. Alle Kandidatenantworten erhalten automatisch eine Punktebewertung, was durch eine Mehrzahl von bewertenden Modulen, die jeweils eine Modulbewertung erzeugen, zu den unterstützenden Passagen führt. Die Modulbewertungen werden verarbeitet, um eine oder mehrere Antworten auf eine Abfrage zu bestimmen; und eine Abfrageantwort wird zur Bereitstellung für einen Benutzer auf Grundlage der einen oder der mehreren Abfrageantworten generiert.
-
In einer alternativen Ausführungsform kann das Q&A-System unter Verwendung von LanguageWare von IBM umgesetzt werden, einer Verarbeitungstechnologie für natürliche Sprache, die es Anwendungen ermöglicht, Text in natürlicher Sprache zu verarbeiten. LanguageWare weist einen Satz von Java-Bibliotheken auf, die verschiedene NLP-Funktionen bereitstellen wie zum Beispiel Sprachidentifizierung, Textsegmentierung und -tokenisierung, Normalisierung, Entitäts- und Beziehungsextraktion und semantische Analyse.
-
Der beschriebene Ansatz beruht bevorzugt auf Web oder Cloud, wodurch herkömmliche Probleme bei Installation und Bereitstellung vermieden werden, die DLP-Systeme oft begleiten. Die Techniken sorgen dafür, dass eine kompakte Werkzeugausrüstung (das PSI-Werkzeug auf Client-Server-Grundlage) mit der Sammlung (auf Cloud-Grundlage) und der Datenbank (auf Client-Grundlage) interagiert, um einen potenziellen Verlust von sensiblen Daten zu erfassen. Der Ansatz fördert somit eine einfache und effiziente organisationsübergreifende Zusammenarbeit mit ausreichendem Datenschutz, um Sicherheitsbedenken zu mindern oder abzufedern.
-
Wie angemerkt, dienen hierin die Referenzen auf ein oder mehrere käufliche Produkte oder Dienste zu Beispielzwecken und sollten nicht so aufgefasst werden, dass sie die offenbarte Technik einschränken, die in jedem System, jeder Einheit, jeder Vorrichtung (oder allgemeiner ausgedrückt Maschine) mit den allgemeinen Merkmalen und der Betriebsfunktionalität umgesetzt werden kann, die beschrieben wurde.
-
Dieser Erfindungsgegenstand kann in Form von „As-a-Service“ umgesetzt werden. Wie vorher angemerkt und ohne Einschränkung kann der Erfindungsgegenstand in oder in Verbindung mit einem System oder einer Vorrichtung einer Cloud-Bereitstellungsplattform oder unter Verwendung jedes anderen Typs von Bereitstellungssystemen, Produkten, Einheiten, Programmen oder Prozessen umgesetzt werden. Wie beschrieben wurde, können das PSI-Werkzeug und eine damit zusammenhängende Antwortsystem-Funktionalität als eine eigenständige Funktion bereitgestellt werden, oder sie können eine Funktionalität von anderen Produkten und Diensten nutzen.
-
Eine repräsentative Cloud-Anwendungsplattform, mit der die Technik umgesetzt werden kann, umfasst ohne Einschränkung jedes Cloud-unterstützte Anwendungs-Framework, jedes Produkt oder jeden Dienst.
-
Verallgemeinernd können die Techniken hierin als eine Verwaltungslösung, ein Dienst, ein Produkt, eine Vorrichtung, eine Einheit, ein Prozess, ein Programm, ein Ausführungs-Thread oder dergleichen umgesetzt werden. In der Regel werden die Techniken in Software, als ein oder mehrere Computerprogramme, die in Hardware-Verarbeitungselementen ausgeführt werden, in Verbindung mit Daten umgesetzt, die in einer oder mehreren Datenquellen wie beispielsweise einer Datenbank für Probleme gespeichert sind. Einige oder alle beschriebenen Verarbeitungsschritte können automatisiert werden und autonom in Verbindung mit anderen Systemen arbeiten. Die Automatisierung kann vollständig oder teilweise sein, und die Operationen (insgesamt oder in Teilen) können synchron oder asynchron, auf Bedarfsgrundlage oder auf andere Weise erfolgen.
-
Diese oben beschriebenen Komponenten werden in der Regel jeweils als Software umgesetzt, d.h. als ein Satz von Computerprogrammanweisungen, die in einem oder mehreren Hardware-Prozessoren ausgeführt werden. Die Komponenten sind als eigenständig gezeigt, doch ist dies keine Erfordernis, da die Komponenten auch insgesamt oder in Teilen miteinander integriert sein können. Eine oder mehrere der Komponenten kann bzw. können in einer dedizierten Position oder entfernt von einander angeordnet ausgeführt werden. Eine oder mehrere der Komponenten kann bzw. können Unterkomponenten haben, die zum Bereitstellen der Funktionalität zusammen ausgeführt werden. Es besteht keine Anforderung, dass spezielle Funktionen des Generatordienstes von einer speziellen Komponente wie oben genannt ausgeführt werden müssen, da die Funktionalität hierin (oder jeder Aspekt davon) in anderen Komponenten oder Systemen umgesetzt werden kann.
-
Die Werkzeug- und Antwortfunktionalität kann mit Sicherheitsanalysesystemen oder -diensten interagieren oder zusammenwirken.
-
Wie beschrieben wurde, kann die oben beschriebene Funktionalität als ein eigenständiger Ansatz umgesetzt werden, z.B. kann bzw. können eine oder mehrere Funktionen auf Software-Grundlage durch einen oder mehrere Hardware-Prozessoren ausgeführt werden, oder sie kann als verwalteter Dienst (einschließlich eines Web-Dienstes über eine SOAP/XML-Schnittstelle) zur Verfügung stehen. Die speziellen Umsetzungsdetails für Hardware und Software, die hierin beschrieben wurden, dienen allein zu veranschaulichenden Zwecken und sollen den Schutzumfang des beschriebenen Erfindungsgegenstands nicht einschränken.
-
Allgemeiner ausgedrückt sind Datenverarbeitungseinheiten im Kontext des offenbarten Erfindungsgegenstands jeweils ein Datenverarbeitungssystem (wie beispielsweise in 2 gezeigt), das Hardware und Software aufweist, und diese Entitäten tauschen über ein Netzwerk untereinander Daten aus, wie zum Beispiel das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung. Die Anwendungen auf dem Datenverarbeitungssystem stellen nativen Support für Web- und andere bekannte Dienste und Protokolle bereit, einschließlich unter anderem unbegrenzten Support für HTTP, FTP, SMTP, SOAP, XML, WSDL, UDDI und WSFL. Informationen in Bezug auf SOAP, WSDL, UDDI und WSFL stehen über das World Wide Web Consortium (W3C) zur Verfügung, das für die Entwicklung und Verwaltung dieser Standards zuständig ist; weitere Informationen in Bezug auf HTTP, FTP, SMTP und XML stehen von der Internet Engineering Task Force (IETF) zur Verfügung.
-
Wie angemerkt und zusätzlich zu der Umgebung auf Cloud-Grundlage können die hierin beschriebenen Techniken in oder in Verbindung mit verschiedenen serverseitigen Architekturen umgesetzt werden, einschließlich einfachen n-stufigen Architekturen, Web-Portalen, föderierten Systemen und dergleichen.
-
Noch allgemeiner kann der hierin beschriebene Erfindungsgegenstand die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform oder einer Ausführungsform annehmen, die sowohl Software- als auch Hardware-Elemente enthält. In einer bevorzugten Ausführungsform wird der Erfassungsdienst für sensible Daten (oder jede Komponente davon) in Software umgesetzt, wozu Firmware, residente Software, Mikrocode und dergleichen gehören, aber nicht darauf beschränkt sind. Ferner können die Download- und Lösch-Schnittstellen und -Funktionalität die Form eines Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren oder durch einen Computer lesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung durch einen oder in Verbindung mit einem Computer oder jedem Anweisungsausführungssystem bereitstellt. Für die Zwecke dieser Beschreibung kann ein durch einen Computer verwendbares oder durch einen Computer lesbares Speichermedium jede Vorrichtung sein, die das Programm zur Verwendung durch ein oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann. Das Medium kann ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (oder -Vorrichtung oder -Einheit) sein. Beispiele für ein durch einen Computer lesbares Medium umfassen einen Halbleiter- oder Solid-State-Arbeitsspeicher, ein Magnetband, eine entfernbare Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen Festplattenspeicher und ein optisches Plattenlaufwerk. Aktuelle Beispiele für optische Plattenlaufwerke umfassen CD-ROM (Compact Disk - Read Only Memory), CD-R/W (Compact Disk - Read/Write) und DVD. Das durch einen Computer lesbare Medium ist ein konkretes, nicht flüchtiges Element.
-
Das Computerprogramm kann ein Produkt mit Programmanweisungen (oder Programmcode) zum Umsetzen von einer oder mehreren der beschriebenen Funktionen sein. Diese Anweisungen bzw. dieser Code können bzw. kann in einem durch einen Computer lesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert werden, nachdem sie bzw. er über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurden. Oder diese Anweisungen bzw. dieser Code können bzw. kann in einem durch einen Computer lesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert und angepasst werden, um über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem zur Verwendung in einem durch einen Computer lesbaren Speichermedium in dem entfernt angeordneten System heruntergeladen zu werden.
-
In einer repräsentativen Ausführungsform werden die Techniken in einer Sonderplattform für Datenverarbeitung umgesetzt, bevorzugt in Software, die durch einen oder mehrere Prozessoren ausgeführt wird. Die Software wird in einem oder mehreren Datenspeichern oder Arbeitsspeichern verwaltet, die dem einen oder den mehreren Prozessoren zugehörig sind, und die Software kann als ein oder mehrere Computerprogramme umgesetzt werden. Diese Sonderzweck-Hardware und -Software weist gemeinsam die oben beschriebene Funktionalität auf.
-
Während das Vorgenannte eine spezielle Reihenfolge von Operationen beschreibt, die von bestimmten Ausführungsformen der Erfindung ausgeführt werden, sollte klar sein, dass eine derartige Reihenfolge beispielhaft ist, da alternative Ausführungsformen die Operationen in einer anderen Reihenfolge ausführen, bestimmte Operationen kombinieren, bestimmte Operationen überlappen können oder dergleichen. Verweise in der Patentschrift auf eine bestimmte Ausführungsform geben an, dass die beschriebene Ausführungsform ein spezielles Merkmal, eine spezielle Struktur oder Eigenschaft umfassen kann, aber nicht jede Ausführungsform das spezielle Merkmal, die spezielle Struktur oder Eigenschaft notwendigerweise umfassen muss.
-
Während bestimmte Komponenten des Systems separat beschrieben worden sind, wird einem Fachmann letztlich klar sein, dass einige der Funktionen in bestimmten Anweisungen, Programmsequenzen, Codeabschnitten und dergleichen kombiniert oder gemeinsam genutzt werden können.
-
Das Protokoll der verstümmelten Schaltung (z.B. unter Verwendung von Oblivious Transfer) wie hierin beschrieben soll nicht als einschränkend aufgefasst werden. Jedes kryptografische Protokoll kann verwendet werden, das eine sichere Zweiparteien-Berechnung ermöglicht, in der zwei sich potenziell misstrauende Parteien gemeinsam eine Funktion über ihre privaten Eingaben ohne das Vorhandensein einer vertrauenswürdigen dritten Partei auswerten können.
-
Ferner ist Private Set Intersection nur ein repräsentatives kryptografisches Protokoll. Ein privates Suchprotokoll kann als Alternative verwendet werden. In dieser Ausführungsform ist die Sammlung auf der Cloud indexiert, und eine Prüfung wird ausgeführt, um zu bestimmen, ob ein oder mehrere Begriffe von Interesse für einen anfordernden Client in dem Index sind.
-
Die Techniken hierin sorgen für Verbesserungen einer weiteren Technologie oder eines weiteren technischen Gebiets, nämlich Werkzeuge und Systeme für Sicherheitsanalysen der Datenerfassung und Systeme auf Cloud-Grundlage sowie Verbesserungen an der Funktionsweise von Werkzeugen und Verfahren zur automatisierten Erfassung von sensiblen Daten.
-
Nach der Beschreibung der Erfindung wird Folgendes beansprucht.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-