-
HINTERGRUND
-
Die Erfindung bezieht sich allgemein auf das Gebiet von auf einem Computer implementierten Verfahren und Systemen zum Bereitstellen von verschleierten Daten für Benutzer, z.B. zum Durchführen von Analysen auf Grundlage solcher Daten. Im Besonderen bezieht sie sich auf Verfahren, die sich auf Verschleierungsalgorithmen stützen, die Verschleierungsstufen erzielen, die mit Berechtigungsstufen von Benutzern kompatibel sind, die solche Daten anfordern.
-
Analysen beziehen sich auf die systematische rechnerische Auswertung von Daten und weisen insbesondere die Erfassung und Interpretation von in Daten verborgenen Mustern auf. Analysen von Daten können folglich einen Wert aus Daten erstellen. Unternehmen können zum Beispiel Analysen auf Daten anwenden, um solche Muster zu verstehen und Geschäftsentwicklungen vorherzusagen und/oder die Leistungsfähigkeit des Geschäfts zu verbessern.
-
Allerdings schränken Probleme im Zusammenhang mit Dateneigentum, Datenschutz, behördlichen Anforderungen und Diskriminierung die tatsächlichen Möglichkeiten für Analysen ein. Beispielsweise bestehen zahlreiche Datenschutzbedenken, die aus dem Datenschutzrecht (allgemeinen Datenschutzverordnungen), Betriebsgeheimnissen, vertraulichen Informationen usw. herrühren. Infolgedessen ist nur ein kleiner Teil von Daten für Analysen verfügbar, der mit Sorgfalt behandelt werden muss.
-
KURZDARSTELLUNG
-
Gemäß einem Aspekt wird die vorliegende Erfindung als auf einem Computer implementiertes Verfahren zum Bereitstellen von verschleierten Daten für Benutzer verkörpert. Zunächst wird eine Benutzeranforderung zum Zugreifen auf Daten empfangen. Eine der empfangenen Anforderung zugehörige Berechtigungsstufe wird erkannt. Als Nächstes wird in einer geschützten Enklave auf verschleierte Daten zugegriffen, die der empfangenen Anforderung entsprechen. Bei den Daten, auf die zugegriffen wird, handelt es sich um Daten, die mit einem Verschleierungsalgorithmus verschleiert worden sind, der eine Verschleierungsstufe erzielt, die mit der erkannten Berechtigungsstufe kompatibel ist. Abschließend werden dem Benutzer von der geschützten Enklave aus die verschleierten Daten, auf die zugegriffen wird, bereitgestellt.
-
Nachdem die verschleierten Daten dem Benutzer bereitgestellt worden sind, führt Letzterer typischerweise Analysen (oder sonstige kognitive Operationen) auf Grundlage der verschleierten Daten durch.
-
Bei dem vorliegenden Ansatz werden alle kritischen Operationen (beginnend mit der Verschleierung) bevorzugt in einer geschützten Enklave durchgeführt. Auf diese Weise kann die Sicherheit in einem Ökosystem aufrechterhalten werden, in dem zahlreiche Benutzer mit einer großen Menge an Daten interagieren können, die verschiedenen Zugriffsrechten unterliegen. Der vorliegende Ansatz macht es gemäß bevorzugten Ausführungsformen möglich, dass Benutzern ermöglicht wird, Analysen auf Grundlage von massiv, z.B. in einem Data Lake (Datensee), verfügbaren Daten durchzuführen, wobei Datennutzungsberechtigungen (wie z.B. durch die Dateneigner festgelegt) erhalten bleiben und sonstige potenzielle Anforderungen (rechtliche, behördliche, vertragliche usw.) eingehalten werden. Infolgedessen können verschiedene Benutzer möglicherweise Zugriff auf dieselben Daten, aber mit unterschiedlichen Verschleierungsstufen erhalten. Solche Stufen stellen Zwischenstufen der Zugänglichkeit zwischen öffentlich verfügbaren Daten und vollständig privaten Daten dar.
-
Bei Ausführungsformen weist das Verfahren des Weiteren vor dem Bereitstellen der verschleierten Daten ein Verschlüsseln der verschleierten Daten, auf die zugegriffen wird, mit einem Benutzerschlüssel in der geschützten Enklave auf. Der Benutzerschlüssel wird dem Benutzer letztendlich zusätzlich zu den verschlüsselten, verschleierten Daten bereitgestellt. Auf diese Weise werden sämtliche Daten, die die geschützte Enklave verlassen, mit Ausnahme des Benutzerschlüssels (aus Sicherheitsgründen) verschlüsselt; der Benutzer kann die bereitgestellten verschlüsselten Daten mithilfe dieses Benutzerschlüssels entschlüsseln.
-
Das Verfahren weist bevorzugt des Weiteren ein Bereitstellen (von der geschützten Enklave aus) einer verschlüsselten Version des Benutzerschlüssels für den Benutzer zusätzlich zu einer unverschlüsselten Version davon auf. Zu einem späteren Zeitpunkt kann der Benutzer gegebenenfalls trotzdem noch ein erneutes Empfangen des Benutzerschlüssels (in unverschlüsselter Form) durch Bereitstellen der verschlüsselten Version des Schlüssels für das System anfordern.
-
Bei bevorzugten Ausführungsformen steht die geschützte Enklave in Datenaustausch mit einem Schlüsselverwaltungssystem, und das Verfahren weist des Weiteren ein Erzeugen des Benutzerschlüssels, der zum nachfolgenden Verschlüsseln der verschleierten Daten verwendet wird, in dem Schlüsselverwaltungssystem auf.
-
Die geschützte Enklave steht bevorzugt mit einer ersten Datenbank in Datenaustausch, die unverschleierte Daten in verschlüsselter Form speichert. In diesem Fall wird auf die verschleierten Daten wie folgt zugegriffen (wiederum in der geschützten Enklave). Zunächst werden verschlüsselte Daten von der ersten Datenbank bezogen, wobei die Daten noch nicht verschleiert sind. Bei den von der ersten Datenbank bezogenen Daten handelt es sich um Daten, die Daten entsprechen, wie sie in der empfangenen Anforderung angefordert wurden. Anschließend werden die von der ersten Datenbank bezogenen, verschlüsselten Daten entschlüsselt. Die entschlüsselten Daten werden abschließend mithilfe des Verschleierungsalgorithmus verschleiert. D.h., Daten werden aus Daten, die aus einem sicheren Speicher stammen, nach Bedarf verschleiert.
-
Bei Ausführungsformen weist das Verfahren des Weiteren ein fortlaufendes Verschlüsseln von Daten in einer geschützten Enklave und ein fortlaufendes Speichern der resultierenden verschlüsselten Daten in der ersten Datenbank auf. Die erste Datenbank ist bevorzugt als Data Lake konfiguriert.
-
Bei bevorzugten Ausführungsformen steht die geschützte Enklave mit einer zweiten Datenbank in Datenaustausch, die verschleierte Daten in verschlüsselter Form speichert. Der Zugriff auf die verschleierten Daten kann dann ein Prüfen aufweisen, ob die Daten, wie sie in der empfangenen Anforderung angefordert wurden, bereits in der zweiten Datenbank verfügbar sind. Wenn ja, werden die verschlüsselten (und verschleierten) Daten, die den angeforderten Daten entsprechen, von der zweiten Datenbank bezogen. Die bezogenen verschlüsselten, verschleierten Daten werden anschließend entschlüsselt, um in der Lage zu sein, nachfolgend die entschlüsselten, verschleierten Daten dem Benutzer bereitzustellen. Wie oben erwähnt, werden die bereitgestellten Daten bevorzugt (bevor sie exportiert werden) erneut verschlüsselt, allerdings mit einem anderen Schlüssel. Anderenfalls, wenn die angeforderten Daten nicht bereits in der zweiten Datenbank verfügbar sind, werden verschlüsselte Daten, die den angeforderten Daten entsprechen, von der ersten Datenbank bezogen, wie oben beschrieben.
-
Das Verfahren weist bevorzugt des Weiteren ein Verschlüsseln der verschleierten Daten in der geschützten Enklave mit einem Verwaltungsschlüssel und ein Speichern der entsprechend verschlüsselten, verschleierten Daten in der zweiten Datenbank auf. Auf diese Weise wird die zweite Datenbank gewissermaßen als Cache verwendet, um die Effizienz des Systems zu verbessern.
-
Wie bereits erwähnt, kann die geschützte Enklave in Datenaustausch mit einem Schlüsselverwaltungssystem stehen. Daher weist das Verfahren bevorzugt des Weiteren ein Erzeugen des Verwaltungsschlüssels, der zum Verschlüsseln der verschleierten Daten verwendet wird, in dem Schlüsselverwaltungssystem auf.
-
Bei Ausführungsformen gibt die empfangene Anforderung eine bestimmte Verschleierungsstufe an. In diesem Fall wird nur dann auf die verschleierten Daten zugegriffen, wenn die bestimmte Verschleierungsstufe mit der erkannten Berechtigungsstufe kompatibel ist.
-
Bei Varianten kann die Anforderung ein Ziel angeben, das mit den Daten, auf die in der Anforderung Bezug genommen wird, erreicht werden soll. In diesem Fall handelt es sich bei den verschleierten Daten, auf die zugegriffen wird, um Daten, die mit einem Verschleierungsalgorithmus verschleiert worden sind, der in Übereinstimmung mit dem Ziel ausgewählt worden ist, vorausgesetzt, dass die resultierende Verschleierungsstufe mit der erkannten Berechtigungsstufe kompatibel ist.
-
Bei sonstigen Varianten kann die Anforderung einen Verschleierungsalgorithmus angeben. In dem Fall werden die verschleierten Daten mit dem angegebenen Verschleierungsalgorithmus verschleiert, das Verfahren weist jedoch des Weiteren ein Auswählen einer Verschleierungsstufe auf, die durch diesen Algorithmus erzeugt wird, damit diese Verschleierungsstufe mit der erkannten Berechtigungsstufe kompatibel ist.
-
Alle solche Varianten (d.h., die eine bestimmte Verschleierungsstufe, ein Ziel oder den Verschleierungsalgorithmus selbst angeben) können möglicherweise als Optionen in der Benutzeroberfläche vorgeschlagen werden.
-
Es können verschiedene Verschleierungsalgorithmen in Betracht gezogen werden. Der Verschleierungsalgorithmus kann sich zum Beispiel auf eines oder mehrere der Folgenden stützen: naive Anonymisierung, K-Anonymität, differentielle Privatsphäre, homomorphe Verschlüsselung, Datenzusammenfassung und Datenerhebung.
-
Gemäß einem weiteren Aspekt wird die Erfindung als durch einen Computer unterstütztes System verkörpert. Das System weist ein Anforderungsverarbeitungsmodul und eine geschützte Enklave auf, die z.B. jeweils in einem Server bereitgestellt werden. In Übereinstimmung mit den vorliegenden Verfahren ist das Anforderungsverarbeitungsmodul so konfiguriert, dass es eine Benutzeranforderung zum Zugreifen auf Daten empfängt und eine Berechtigungsstufe erkennt, die einer empfangenen Benutzeranforderung zugehörig ist. Darüber hinaus ist dieses Modul dazu geeignet, Daten (über die geschützte Enklave) mit einem oder mehreren Verschleierungsalgorithmen zu verschleiern, wobei Letztere unterschiedliche Verschleierungsstufen erzielen. Darüber hinaus ist dieses Modul so ausgestaltet, dass es auf verschleierte Daten zugreift, die Benutzeranforderungen entsprechen, wobei die Daten mit einem oder mehreren der Verschleierungsalgorithmen verschleiert werden, um eine Verschleierungsstufe zu erzielen, die mit einer Berechtigungsstufe kompatibel ist, die beim Empfangen einer Anforderung erkannt wird. Abschließend kann dieses Modul als Reaktion auf Benutzeranforderungen verschleierte Daten bereitstellen, auf die über die geschützte Enklave zugegriffen wird.
-
Das Anforderungsverarbeitungsmodul ist des Weiteren bevorzugt so konfiguriert, dass es in der geschützten Enklave verschleierte Daten, auf die es zugreift, mit einem Benutzerschlüssel verschlüsselt und dem Benutzer als Reaktion auf eine Benutzeranforderung zusätzlich zu den verschlüsselten, verschleierten Daten einen solchen Benutzerschlüssel bereitstellt.
-
Bei Ausführungsformen weist das System des Weiteren ein Schlüsselverwaltungssystem auf, das dazu geeignet ist, einen solchen Benutzerschlüssel zu erzeugen. Es kann ansonsten in Datenaustausch mit einem solchen Schlüsselverwaltungssystem stehen.
-
Das System weist des Weiteren bevorzugt eine erste Datenbank, die unverschleierte Daten in verschlüsselter Form speichert, und eine zweite Datenbank auf, die verschleierte Daten in verschlüsselter Form speichert, wie zuvor erörtert.
-
Gemäß einem weiteren Aspekt wird die Erfindung als Computerprogrammprodukt zum Bereitstellen von verschleierten Daten für Benutzer verkörpert. Das Computerprogrammprodukt weist ein durch einen Computer lesbares Speichermedium auf, in dem Programmanweisungen verkörpert sind. Die Programmanweisungen sind durch einen oder mehrere Prozessoren ausführbar, um zu bewirken, dass Schritte gemäß den vorliegenden Verfahren implementiert werden.
-
Durch einen Computer unterstützte Systeme, Verfahren und Computerprogrammprodukte, die die vorliegende Erfindung verkörpern, werden im Folgenden mithilfe von nichtbeschränkenden Beispielen und unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
-
Figurenliste
-
Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung lediglich als Beispiel und unter Bezugnahme auf die folgenden Zeichnungen beschrieben. Gleiche Bezugszeichen beziehen sich überall in den einzelnen Ansichten auf übereinstimmende oder funktional ähnliche Elemente:
- 1 stellt schematisch ausgewählte Komponenten eines Systems gemäß Ausführungsformen der vorliegenden Erfindung dar;
- 2 ist ein Schaubild, in dem gemäß bevorzugten Ausführungsformen der vorliegenden Erfindung ausgewählte Komponenten des Systems zusammen mit in dem System durchgeführten Basisoperationen dargestellt werden; und
- 3 ist ein ausführlicher Ablaufplan, der Schritte eines bevorzugten Verfahrens zum Bereitstellen von verschleierten Daten für Benutzer gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht.
-
Die beigefügten Zeichnungen zeigen vereinfachte Darstellungen von Einheiten und Teilen davon, wie sie in Ausführungsformen beinhaltet sind. Ähnlichen oder funktional ähnlichen Elementen in den Figuren sind dieselben Bezugszeichen zugewiesen worden, sofern nichts anderes angegeben wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Unter allgemeiner Bezugnahme auf 1 bis 3 wird im Folgenden eine erste Ausführungsform der Erfindung beschrieben, die ein auf einem Computer implementiertes Verfahren zum Bereitstellen von verschleierten Daten für Benutzer betrifft.
-
Zur Veranschaulichung wird der folgende Kontext angenommen. Dateneigner 5 speichern S200 Daten, die sie erzeugen oder auf andere Weise besitzen, in einem Datenspeichermittel 25, das zum Beispiel als Data Lake konfiguriert sein kann. Solche Daten werden typischerweise verschlüsselt gespeichert, z.B. über einen Verschlüsselungs-Server 20. Daneben möchten einige Benutzer 10 möglicherweise Analysen an solchen Daten durchführen. Zu diesem Zweck interagieren die Benutzer 10 mit einem Server 30, der einen Teil eines durch einen Computer unterstützten Ökosystems 1 bildet, wie in 1 dargestellt. Es ist zu beachten, dass es sich bei solchen Benutzern um eine beliebige Entität (menschlich, juristisch und/oder durch einen Computer unterstützt, z.B. um einen automatisierten Prozess) handeln kann. In allen Fällen werden die Benutzeranforderungen jedoch über eine durch einen Computer unterstützte Entität vermittelt. Das heißt, es werden durch einen Computer unterstützte Interaktionen angenommen.
-
Die vorliegenden Verfahren schlagen vor, Anforderungen von Benutzern 10 auf Grundlage von Berechtigungsstufen der Benutzer zu verarbeiten. Als Reaktion auf solche Anforderungen werden dem Benutzer Daten in verschleierter (d.h., veränderter) Form geliefert, wobei die Verschleierungsstufe der bereitgestellten Daten von den Berechtigungsstufen der Benutzer abhängt. Im vorliegenden Zusammenhang bedeutet Verschleierung, dass die ursprünglichen Daten so verändert werden, dass nicht alle in den ursprünglichen Daten enthaltenen Informationen erhalten bleiben. D.h., die ursprünglichen Informationen gehen zumindest zum Teil verloren, um möglicherweise verschiedene Anforderungen zu erfüllen, die zum Beispiel aus durch die Eigner festgelegten Berechtigungen, dem Datenschutzrecht und den behördlichen Anforderungen stammen. Es ist zu beachten, dass Daten, die an die Benutzer 10 zurückgegeben werden, niemals dazu gedacht sind, gesetzliche Bestimmungen zu verletzen oder zu umgehen.
-
Im Detail wird angenommen, dass eine Anforderung S10, S12 zum Zugreifen auf Daten von einem Benutzer 10 empfangen wird, z.B. an einem Anforderungsverarbeitungsmodul, das in einem Server 30 implementiert ist. Anschließend wird eine der Anforderung zugehörige Berechtigungsstufe erkannt S10, um Maßnahmen zu ergreifen, um diese Anforderung zu erfüllen (falls möglich). Es ist zu beachten, dass diese Berechtigungsstufe beim Empfangen der Anforderung oder als Teil der Anforderung selbst oder sogar vor dem Empfangen der Anforderung erkannt werden kann. Ein beliebiger Berechtigungsprüfungsmechanismus kann in Betracht gezogen werden.
-
Als Nächstes wird in einer geschützten Enklave 32 auf verschleierte Daten zugegriffen S30 bis S50, wobei es sich bei den Daten um Daten handelt, die in der empfangenen Anforderung angesprochenen Daten entsprechen. Bei den Daten, auf die zugegriffen wird, handelt es sich um Daten, die mit einem geeigneten Verschleierungsalgorithmus verschleiert S50 werden oder worden sind. D.h., dieser Algorithmus muss eine Verschleierungsstufe erzielen, die mit der zuvor erkannten S10 Berechtigungsstufe kompatibel ist S12, S14. Ein Kernprinzip der vorliegenden Verfahren besteht folglich darin, eine Datenzugriffsberechtigung mit der Stärke des Datenverschleierungsalgorithmus zu verknüpfen, der zum Verschleiern der Daten verwendet wird. Beispiele für Verschleierungsalgorithmen werden im Folgenden erörtert.
-
Abschließend werden die verschleierten Daten, auf die in den Schritten S30 bis S50 zugegriffen worden ist, von der geschützten Enklave 32 aus dem anfordernden Benutzer 10 bereitgestellt S82. Nachdem sie die verschleierten Daten 36 empfangen S82 haben, können die Benutzer 10 zum Beispiel Analysen, Auswertungen oder eine beliebige Art von kognitiven Operationen auf Grundlage der bereitgestellten S82 verschleierten Daten 35 durchführen S100.
-
Bei einer geschützten Enklave handelt es sich um ein durch einen Computer unterstütztes Gebiet mit eingeschränktem Zugriff. Eine solche Enklave kann zum Beispiel einfach aus einem oder mehreren privaten (und bevorzugt verschlüsselten) Bereichen des Speichers eines durch einen Computer unterstützten Systems bestehen, die z.B. dank eines Satzes von Anweisungen einer Zentraleinheit (central processing unit), CPU, zugeordnet sind. D.h., solche Anweisungen ermöglichen es einem Code auf Benutzerebene, private (und bevorzugt verschlüsselte) Speicherbereiche zuzuordnen, die vor Prozessen geschützt sind, die selbst auf höheren Berechtigungsstufen ausgeführt werden. Ein sicherer Boot-Server mit Speicherverschlüsselung ist, wenn er ausschließlich für eine einzelne Anwendung mit strenger Zugriffskontrolle und begrenzter Netzwerksichtbarkeit verwendet wird, ein Beispiel für eine geschützte Enklave.
-
Eine geschützte Enklave kann des Weiteren so konfiguriert sein, dass ein Netzwerkzugriff durch diese Enklave eingeschränkt ist. Beispielsweise kann eine Netzwerkenklave von dem sie umgebenden Netzwerk getrennt sein, um einen Zugriff darauf auf ausgewählte Entitäten, Anwendungen oder Dienste des umgebenden Netzwerks zu beschränken. Allgemeiner ausgedrückt, die spezifischen Ressourcen der geschützten Enklave können so ausgestaltet sein, dass sie Interaktionen mit externen Entitäten oder Netzwerken einschränken. Der Zugriff kann ansonsten dank Mitteln zur sicheren Zugriffssteuerung, darunter z.B. dedizierte Ressourcen wie interne Firewalls und Mittel zur Netzwerk-Zugangssteuerung, eingeschränkt sein.
-
Die geschützte Enklave kann insbesondere als virtualisierte, vorintegrierte, dienstorientierte Architektur(service-oriented architecture, SOA)-Plattform implementiert sein. Dennoch kann diese Plattform möglicherweise ein Hosting für vertrauenswürdige Anwendungen bereitstellen und ihnen ermöglichen, mit Benutzern und sonstigen externen Systemen zu interagieren, allerdings in einer gesteuerten und sicheren Weise.
-
Im Allgemeinen kann eine beliebige geschützte Enklave, wie sie hier verwendet wird, zum Beispiel in Hardware (z.B. in einem sicheren Boot-Server mit ausschließlicher Verwendung) oder in Software (z.B. auf Grundlage von Intel® Software Guard Extensions SGX) oder zSeries Secure Service Containers (SSC) implementiert sein. Intel ist eine eingetragene Marke der Intel Corporation oder ihrer Tochtergesellschaften in den USA und anderen Ländern.
-
Im vorliegenden Fall werden alle kritischen Operationen (beginnend mit dem Verschleierungsschritt S50) in einer geschützten Enklave durchgeführt. Auf diese Weise kann die Sicherheit in einem Ökosystem aufrechterhalten werden, in dem zahlreiche Benutzer mit einer großen Menge an Daten interagieren können, deren Zugriff verschiedenen Typen und Stufen von Berechtigungen unterliegt.
-
Bei einfachen Implementierungen fordert S12 ein Benutzer 10 an, auf Daten auf einer bestimmten Verschleierungsstufe zuzugreifen. Die der Anforderung zugehörige Berechtigungsstufe (d.h., die Berechtigungsstufe des Benutzers) wird erkannt S10 (vor oder nach dem Erkennen S10 der gewünschten Verschleierungsstufe), wie in 3 angenommen. Und wenn die bestimmte erkannte S10 Verschleierungsstufe mit der erkannten S12 Berechtigungsstufe kompatibel ist, wird auf Verschleierte zugegriffen S30 bis S50, wie zuvor beschrieben, und sie werden an den Benutzer geliefert S82.
-
Bei sonstigen, anspruchsvolleren Implementierungen kann der Benutzer seine Ziele angeben (z.B. in Bezug auf Analysen, die an solchen Daten durchgeführt werden sollen), in welchem Fall das System automatisch einen geeigneten Algorithmus oder eine durch den Algorithmus erzeugte Verschleierungsstufe auswählt, wie im Folgenden ausführlich erörtert wird.
-
Man kann die Berechtigungsstufe durch Vereinbarung so definieren, dass die höchste Berechtigungsstufe einen Zugriff auf Daten mit einer beliebigen Verschleierungsstufe ermöglicht. Ähnlich wie bei den Berechtigungsstufen in dem Anweisungssatz intel x86 kann die Berechtigungsstufe z.B. von 0 (mit den meisten Berechtigungen) bis n > 0 reichen, wobei n über weniger Berechtigungen als n - 1 verfügt, was über weniger Berechtigungen als n - 2 verfügt, usw. Auf diese Weise wäre jede Ressource, die für die Stufe n verfügbar ist, auch für die Berechtigungsstufen 0 bis n verfügbar. Die Verschleierungsstufe kann folglich in ähnlicher Weise von 0 (entsprechend einer niedrigen Veränderungsstufe) bis m > 1 (entsprechend einer höheren Veränderungsstufe) codiert sein. Bei einer gewünschten Datenverschleierungsstufe / und einer für den Anforderer erkannten Datenzugriffs-Berechtigungsstufe k wird ein Zugriff auf die angeforderten Daten folglich nur ermöglicht, wenn die Berechtigungsstufe höher (im Sinne eines Privilegs) als oder gleich wie die Datenverschleierungsstufe ist, d.h., wenn / ≤ k. Folglich kann ein berechtigter Benutzer mit einer hohen Berechtigungsstufe (z.B. ein Dateneigner) typischerweise auf Daten mit einer beliebigen Verschleierungsstufe zugreifen.
-
Da die schließlich gelieferten S82 Daten 36 verschleiert sind, können alle Rechte, die mit den gelieferten S82 Daten verbunden sind, unter Berücksichtigung der Berechtigungsstufe des Anforderers beachtet werden.
-
Wie die Erfinder der vorliegenden Erfindung erkannt haben, macht es der vorliegende Ansatz möglich, dass Benutzern ermöglicht wird, Analysen auf Grundlage von massiv, z.B. in einem Data Lake, verfügbaren Daten durchzuführen, wobei die Datennutzungsberechtigungen, wie durch die Dateneigner festgelegt, erhalten bleiben und/oder sonstige Anforderungen eingehalten werden. All dies wird im Folgenden unter Bezugnahme auf jeweilige Ausführungsformen der Erfindung ausführlich beschrieben.
-
Zunächst könnten unter Bezugnahme auf 3 die vorliegenden Verfahren des Weiteren ein Verschlüsseln S64 der verschleierten Daten, auf die zugegriffen wird, mit einem Benutzerschlüssel in der geschützten Enklave 32 aufweisen. Schritt S64 wird ausgeführt, bevor die verschleierten Daten dem Benutzer bereitgestellt S82 werden. Der Benutzerschlüssel wird dem Benutzer 10 zusätzlich zu den verschlüsselten, verschleierten Daten bereitgestellt (d.h., geliefert) S82. Auf diese Weise werden alle Daten 36, die die geschützte Enklave verlassen, aus Sicherheitsgründen verschlüsselt (mit Ausnahme des Benutzerschlüssels); der Benutzer kann die bereitgestellten Daten dennoch mithilfe des bereitgestellten Benutzerschlüssels entschlüsseln.
-
Bei Ausführungsformen kann dem Benutzer 10 (von der geschützten Enklave 32 aus) des Weiteren zusätzlich zu einer unverschlüsselten Version des Schlüssels eine verschlüsselte Version des Benutzerschlüssels bereitgestellt S82 werden. Auf diese Weise kann der Benutzer die bereitgestellten Daten zunächst auf Grundlage des bereitgestellten (unverschlüsselten) Benutzerschlüssels entschlüsseln und anschließend diesen Schlüssel (aus Sicherheitsgründen) löschen. Zu einem späteren Zeitpunkt kann der Benutzer gegebenenfalls trotzdem noch ein erneutes Empfangen des Benutzerschlüssels (in unverschlüsselter Form) durch Bereitstellen der verschlüsselten Version des Schlüssels anfordern (ein symmetrisches Verschlüsselungsschema wird hier in Betracht gezogen).
-
Bei dem Benutzerschlüssel handelt es sich um einen Chiffrierschlüssel, der für den Benutzer erzeugt wird, z.B. über ein Schlüsselverwaltungssystem (key management system, KMS). Wie in 1 zu sehen, kann die geschützte Enklave 32 zum Beispiel in Datenaustausch mit einem KMS 40 stehen. Auf diese Weise kann darauf vertraut werden, dass Letztere den Benutzerschlüssel erzeugt S62, der in der geschützten Enklave 32 empfangen und nachfolgend zum Verschlüsseln S64 der verschleierten Daten verwendet wird. Bei dem KMS kann es sich möglicherweise um ein hierarchisches Schlüsselverwaltungssystem (HKMS) handeln: Der Benutzerschlüssel kann zum Beispiel ein Schlüssel auf Benutzerebene sein, der auf einer bestimmten hierarchischen Stufe des HKMS gemäß per se bekannten Verfahren erzeugt wird.
-
Bei Ausführungsformen steht die geschützte Enklave 32 mit einer ersten Datenbank 25 (z.B. einem Data Lake) in Datenaustausch, die unverschleierte Daten in verschlüsselter Form speichert. In diesem Fall können zunächst verschlüsselte Daten aus dieser Datenbank 25 bezogen S22 werden, und anschließend kann in der geschützten Enklave 32 auf diese zugegriffen werden, wobei die verschlüsselten Daten entsprechen, wie sie in der empfangenen S10 Anforderung angefordert worden sind. Als Nächstes werden die bezogenen S22 verschlüsselten Daten entschlüsselt S40, S42 bis S44 (weiterhin in der geschützten Enklave 32), und die entschlüsselten Daten werden anschließend mithilfe eines in geeigneter Weise ausgewählten Verschleierungsalgorithmus verschleiert S50. D.h., Daten werden aus Daten, die aus einem sicheren Speicher 25 stammen, nach Bedarf verschleiert. Der Entschlüsselungsprozess S40 kann erneut in vorteilhafter Weise ein KMS einbeziehen, d.h., die Entschlüsselung S44 kann zunächst ein Zugreifen S42 auf einen Schlüssel (z.B. einen Hauptschlüssel) aus dem KMS erfordern.
-
Wie in 1 und 2 dargestellt, können die Daten fortlaufend durch die Dateneigner 5 erzeugt S200 und somit fortlaufend verschlüsselt S15 (z.B. dank eines dedizierten Servers 20) und in der ersten Datenbank 25 gespeichert werden. Es ist zu beachten, dass der Verschlüsselungsschritt S15 bevorzugt ebenfalls in einer geschützten Enklave 22 durchgeführt wird, die nicht unbedingt der in dem Server 30 bereitgestellten Enklave 32 entspricht. Vielmehr kann die Enklave 22 in einem dedizierten Verschlüsselungs-Server 20 bereitgestellt werden, der zum Speichern von Eignerdaten in dem Speicher 25 verwendet wird.
-
Wie zuvor angedeutet, kann die erste Datenbank 25 zum Beispiel als Data Lake, d.h., als Speicherdatenablage, konfiguriert sein, der eine große Menge an Roh- oder optimierten Daten in einem nativen Format enthält. Ein Data Lake stützt sich typischerweise auf einen Hadoop-kompatiblen Objektspeicher, dem entsprechend Daten einer Organisation in eine Hadoop-Plattform geladen werden. Anschließend können Geschäftsanalyse- und Datenfilterungswerkzeuge möglicherweise auf die Daten angewendet werden, wo sie sich in dem Hadoop-Verbund befinden. Jedoch können Data Lakes auch ohne Einbinden von Hadoop abhängig von den Bedürfnissen und Zielen der Organisation wirksam verwendet werden. Allgemeiner ausgedrückt, bei einem Data Lake handelt es sich um einen großen Daten-Pool, bei dem das Schema und die Datenanforderungen typischerweise nicht definiert sind, bis die Daten abgefragt werden.
-
Im vorliegenden Kontext können die Dateneigner zum Beispiel die erforderlichen Verschleierungsstufen als Funktion der Vertrauensstufen der Datenbenutzer angeben. Infolgedessen können verschiedene Benutzer möglicherweise Zugriff auf dieselben Daten, aber mit unterschiedlichen Verschleierungsstufen erhalten. Solche Stufen stellen Zwischenstufen der Zugänglichkeit zwischen öffentlich verfügbaren Daten und vollständig privaten Daten dar.
-
Weiterhin unter Bezugnahme auf 1 und 3 steht die geschützte Enklave 32 bevorzugt in Datenaustausch mit einer zweiten Datenbank 35. Letztere speichert Daten, die bereits verschleiert S50 worden sind (z.B. als Reaktion auf vorherige Abfragen), in verschlüsselter Form. In diesem Fall wird auf die verschleierten Daten typischerweise zugegriffen S30 bis S50, indem zunächst geprüft S18 wird, ob die angeforderten Daten bereits in der zweiten Datenbank 35 verfügbar sind. Wenn ermittelt wird, dass die angeforderten Daten tatsächlich bereits in der Datenbank 35 verfügbar sind (S18: Ja), werden verschlüsselte Versionen solcher verschleierten Daten aus dieser Datenbank 35 bezogen S21 (sie werden in die geschützte Enklave geladen). Die bezogenen S21 Daten werden anschließend entschlüsselt S30, S32 bis S34 (z.B. durch Beziehen S32 eines Schlüssels von einem KMS, z.B. eines Hauptschlüssels) und nachfolgend dem Benutzer 10 bereitgestellt S60, S82. Anderenfalls, wenn in Schritt S18 ermittelt wird, dass die angeforderten Daten nicht bereits in der zweiten Datenbank 35 verfügbar sind, werden die angeforderten Daten von der ersten Datenbank 25 bezogen und entschlüsselt, bevor sie verschleiert und an den Benutzer weitergegeben werden, wie zuvor beschrieben.
-
Um das System effizienter zu machen, werden Daten, die verschleiert S50 werden müssen, anschließend in der zweiten Datenbank 35 gespeichert, die gewissermaßen als Cache arbeitet, wie in dem Ablaufplan von 3 zu sehen. Das heißt, Daten, die kürzlich verschleiert S50 worden sind, können zunächst (in der geschützten Enklave 32) mithilfe eines Verwaltungsschlüssels (der sich von den Benutzerschlüsseln unterscheidet) verschlüsselt S70, S72 bis S74 und anschließend in der zweiten Datenbank 35 gespeichert S90 werden. Wiederum können die durch ein KMS 40 bereitgestellten Schlüssel verwendet werden. D.h., der Verwaltungsschlüssel, der zum Verschlüsseln S74 der verschleierten Daten verwendet wird, kann von einem KMS zur Verwendung in der geschützten Enklave 32 bezogen werden S72. Nachdem sie in der zweiten Datenbank gespeichert S90 worden sind, sind die verschleierten Daten für nachfolgende, ähnliche Abfragen leicht verfügbar (S10 bis S18: Ja, S21).
-
Wie in 3 angenommen, kann die empfangene S12 Anforderung bereits eine bestimmte, gewünschte Verschleierungsstufe angeben. In diesem Fall wird auf die verschleierten Daten nur dann zugegriffen S30 bis S50, wenn die angegebene Verschleierungsstufe mit der in Schritt S10 erkannten Berechtigungsstufe kompatibel ist (S14: Ja).
-
Bei anspruchsvolleren Ansätzen kann die empfangene Anforderung ein Ziel angeben, das mit den Daten, auf die in der Anforderung Bezug genommen wird, erreicht werden soll (z.B. im Hinblick auf Analysen). In diesem Fall kann das System den Verschleierungsalgorithmus in Schritt S50 (in Übereinstimmung mit dem Ziel) automatisch auswählen oder auf zwischengespeicherte Daten zugreifen, die zuvor mit einem geeigneten Algorithmus verschleiert worden sind. In allen Fällen stellt das System sicher, dass es sich bei den Daten, auf die zugegriffen S30 bis S50 wird, um Daten handelt, die mit einem Verschleierungsalgorithmus verschleiert S50 worden sind, der in Übereinstimmung mit dem Ziel ausgewählt worden ist, vorausgesetzt, dass die resultierende Verschleierungsstufe mit der erkannten Berechtigungsstufe kompatibel ist.
-
Die empfangene Anforderung kann insbesondere ein Ziel angeben, das im Hinblick auf mit solchen Daten durchzuführenden Analysen erreicht werden soll, und der Verschleierungsalgorithmus wird in Übereinstimmung mit dem Ziel ausgewählt. Beispielsweise möchte der Benutzer möglicherweise Entwicklungen aus Datenbereichsabfragen, Zählungen usw. aufdecken. In diesem Fall kann die erzeugte Verschleierung gleichbedeutend mit anonymisierten Histogrammen/auf Skizzen beruhenden Zählschemata usw. sein.
-
Bei sonstigen Ansätzen kann die empfangene Anforderung den gewünschten Verschleierungsalgorithmus selbst angeben. In diesem Fall werden die verschleierten Daten, auf die zugegriffen wird S30 bis S50, mit dem angegebenen Verschleierungsalgorithmus verschleiert, das System wählt jedoch eine Verschleierungsstufe aus, die durch den Algorithmus erzeugt wird, damit diese Stufe mit der zuvor erkannten Berechtigungsstufe kompatibel ist (wenn dies nicht möglich ist, wird eine Fehlermeldung zurückgegeben). Es kann zum Beispiel ein Standardsatz von Verschleierungsalgorithmen verfügbar sein, in welchem Fall der Benutzer aufgefordert wird, einen bestimmten Algorithmus auszuwählen.
-
Es ist zu beachten, dass die Benutzeroberfläche oder das Programm, das dazu verwendet wird, Benutzerabfragen zu ermöglichen, Benutzern mehrere Optionen bereitstellen kann, einschließlich der oben genannten, wodurch Benutzer somit entweder eine Verschleierungsstufe auswählen, ein Ziel oder den Verschleierungsalgorithmus selbst angeben können.
-
Zu solchen Algorithmen können insbesondere Algorithmen zur naiven Anonymisierung, K-Anonymitätsalgorithmen, Algorithmen für die differentielle Privatsphäre, Eigenschaften erhaltende Algorithmen zur homomorphen Verschlüsselung, Datenzusammenfassungsalgorithmen und/oder Datenerhebungsalgorithmen usw. zählen. Alle derartigen Algorithmen modifizieren die ursprüngliche Information auf unterschiedliche Weisen und möglicherweise mit unterschiedlichen Intensitäten. D.h., es können somit verschiedene Zwischenstufen der Zugänglichkeit bereitgestellt werden. In allen Fällen wird Zugriff jedoch nur gewährt, wenn der angegebene Algorithmus mit der Zugriffsebene des Benutzers kompatibel ist.
-
Unter besonderer Bezugnahme auf 1 und 2 wird im Folgenden eine weitere Ausführungsform der Erfindung beschrieben, die ein durch einen Computer unterstütztes System 1 betrifft. Bestimmte Merkmale eines solchen Systems sind bereits implizit unter Bezugnahme auf die vorliegenden Verfahren beschrieben worden und werden im Folgenden nur kurz beschrieben. Ein solches System 1 enthält zumindest ein Anforderungsverarbeitungsmodul, das typischerweise in Software auf einem Server 30 implementiert ist.
-
Das System (z.B. der Server 30) ist ansonsten so ausgestaltet, dass es eine geschützte Enklave 32 in Hardware und/oder Software bereitstellt (d.h., ausbildet). In allen Fällen ist das Anforderungsverarbeitungsmodul so konfiguriert, dass es die zuvor beschriebenen Schritte durchführt, d.h., Empfangen von Benutzeranforderungen zum Zugreifen auf Daten, Erkennen von solchen Anforderungen zugehörigen Berechtigungsstufen und Durchführen kritischer Operationen S30 bis S70, wie zuvor erörtert. Das heißt, das Anforderungsverarbeitungsmodul ist dazu geeignet, Daten (über die geschützte Enklave 32) mit einem oder mehreren Verschleierungsalgorithmen zu verschleiern, um unterschiedliche Verschleierungsstufen bereitzustellen. Dieses Modul ist ansonsten so konfiguriert, dass es auf verschleierte Daten zugreift, die Benutzeranforderungen entsprechen.
-
Wie zuvor erörtert, können verschleierte Daten möglicherweise zwischengespeichert werden. In allen Fällen sind oder müssen die Daten jedoch mit einem oder mehreren der Verschleierungsalgorithmen verschleiert worden sein, um eine Verschleierungsstufe zu erzielen, die mit für die Benutzer erkannten Berechtigungsstufen kompatibel ist. Abschließend stellt das Modul als Reaktion auf Benutzeranforderungen verschleierte Daten bereit, wie über die geschützte Enklave 32 auf sie zugegriffen wird.
-
Wie erörtert, kann das Anforderungsverarbeitungsmodul des Weiteren so konfiguriert sein, dass es die verschleierten Daten mit Benutzerschlüsseln verschlüsselt, bevor es Benutzerschlüssel zusätzlich zu den verschlüsselten, verschleierten Daten an Benutzer weitergibt. Das System 1 kann insbesondere ein KMS 40 aufweisen (oder so ausgestaltet sein, dass es Daten mit diesem austauscht), das dazu geeignet ist, solche Benutzerschlüssel sowie einen beliebigen Schlüssel zu erzeugen, der durch das System beim Durchführen von zuvor unter Bezugnahme auf die Schritte S30, S40, S60 und S70 beschriebenen Operationen benötigt wird.
-
Darüber hinaus weist das System 1 bevorzugt eine erste Datenbank 25 (in der unverschleierte Daten in verschlüsselter Form gespeichert werden) und eine zweite Datenbank 35 auf, die bereits verschleierte Daten (in verschlüsselter Form) speichert, wobei Letztere als Cache dient.
-
Gemäß einer weiteren Ausführungsform kann die Erfindung als Nächstes des Weiteren als Computerprogrammprodukt zum Bereitstellen von verschleierten Daten für Benutzer verkörpert sein. Das Computerprogrammprodukt weist ein durch einen Computer lesbares Speichermedium auf, in dem Programmanweisungen verkörpert sind. Die Programmanweisungen sind durch einen oder mehrere Prozessoren (z.B. des Servers 30) ausführbar, um zu bewirken, dass Schritte implementiert werden, wie sie zuvor unter Bezugnahme auf die vorliegenden Verfahren beschrieben worden sind.
-
Bei der vorliegenden Erfindung kann es sich dementsprechend um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen Integrationsgrad technischer Details handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, 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 zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatten-Festwertspeicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-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 daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel 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 Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, 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 werden, 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 letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwenden eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsdaten der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen implementiert 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, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zum Implementieren der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes 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 Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte umsetzen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder des Ablaufplans sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle auf Hardware beruhende Systeme implementiert werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die vorliegende Erfindung ist zwar unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen, Varianten und die beigefügten Zeichnungen beschrieben worden, für Fachleute ist jedoch ersichtlich, dass verschiedene Änderungen vorgenommen werden können und gleichartige Elemente ausgetauscht werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Im Besonderen kann ein (einheitenähnliches oder verfahrensähnliches) Merkmal, das bei einer bestimmten Ausführungsform, Variante erwähnt worden ist oder in einer Zeichnung dargestellt worden ist, mit einem weiteren Merkmal in einer weiteren Ausführungsform, Variante oder Zeichnung kombiniert oder durch dieses ersetzt werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Verschiedene Kombinationen der Merkmale, die im Hinblick auf jegliche der obigen Ausführungsformen oder Varianten beschrieben worden sind, können dementsprechend in Betracht gezogen werden, die innerhalb des Umfangs der beigefügten Ansprüche bleiben. Darüber hinaus können zahlreiche kleinere Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne von ihrem Umfang abzuweichen. Daher soll die vorliegende Erfindung nicht auf die bestimmten offenbarten Ausführungsformen beschränkt sein, sondern die vorliegende Erfindung soll alle Ausführungsformen enthalten, die in den Umfang der beigefügten Ansprüche fallen. Darüber hinaus können zahlreiche andere Varianten als die oben ausdrücklich erwähnten in Betracht gezogen werden.