DE112018003077T5 - Ein cluster von sicheren ausführungsplattformen - Google Patents

Ein cluster von sicheren ausführungsplattformen Download PDF

Info

Publication number
DE112018003077T5
DE112018003077T5 DE112018003077.6T DE112018003077T DE112018003077T5 DE 112018003077 T5 DE112018003077 T5 DE 112018003077T5 DE 112018003077 T DE112018003077 T DE 112018003077T DE 112018003077 T5 DE112018003077 T5 DE 112018003077T5
Authority
DE
Germany
Prior art keywords
sep
key
data
cluster
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018003077.6T
Other languages
English (en)
Inventor
Danny Harnik
Paula Kim Ta-Shma
Yaron Weinsberg
Moshik Hershcovitch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018003077T5 publication Critical patent/DE112018003077T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Human Computer Interaction (AREA)

Abstract

Ein Computerprogrammprodukt und ein System, das aufweist: ein Cluster von sicheren Ausführungsplattformen (SEPs), die Anschlussmöglichkeiten an einen Datenspeicher haben, wobei jede SEP des Clusters so konfiguriert wird, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung eines Schlüssels bewahrt; wobei der Schlüssel unter den SEPs des Clusters gemeinsam genutzt wird, wobei der Schlüssel durch das Cluster oder einen Teil davon automatisch erzeugt wird und einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung steht; wobei der Datenspeicher verschlüsselte Daten, die unter Verwendung des Schlüssels verschlüsselt werden, aufbewahrt; wobei eine erste SEP des Clusters so konfiguriert wird, dass sie Client-Daten unter Verwendung des Schlüssels verschlüsselt, um verschlüsselte Client-Daten zu erhalten, und die verschlüsselten Client-Daten in dem Datenspeicher speichert; und wobei eine zweite SEP des Clusters so konfiguriert wird, dass sie verschlüsselte gespeicherte Daten aus dem Datenspeicher abruft, die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels entschlüsselt, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft die Datensicherheit im Allgemeinen und sichere Ausführungsplattformen im Besonderen.
  • HINTERGRUND
  • Heute werden vertrauliche oder private Daten, die allgemein als sensible Daten bezeichnet werden, oftmals in zentralisierten Datenspeichern aufbewahrt. Die Quelle solcher sensibler Daten kann variieren. Ob sie von einem Unternehmen, das seine Handelsgeheimnisse dem Datenspeicher anvertraut, von einem privaten Bürger, der von Gesetzes wegen biologische Proben bereitstellen muss, oder von einer beliebigen anderen Quelle empfangen werden, die Vertraulichkeit der gespeicherten Daten muss bewahrt werden.
  • Der Datenspeicher kann als Reaktion auf eine Client-Abfrage durch einen Server zugänglich sein und dadurch eine moderate und begrenzte Nutzung der sensiblen Daten erlauben. In einigen Fällen stellt der Server sicher, dass der Client die Berechtigung hat, eine solche Abfrage durchzuführen, und dass seine Vorgehensweise mit der Rolle des Client konsistent ist. Der Server kann die Informationen anonymisieren, während er sie verarbeitet, und im Gegenzug anonyme Daten bereitstellen.
  • Jedoch verarbeitet der Server immer noch die sensiblen Daten und hat selbst Zugriff auf die Rohdaten. Folglich kann es wichtig sein, sicherzustellen, dass es innerhalb des Servers keine mögliche Leckstelle gibt. In einigen Fällen werden Administratoren solcher Server sorgfältig ausgewählt und einer strengen Überprüfung unterzogen, bevor sie Zugang zu dem Server erhalten. Die Administratoren können unbeschränkten Zugriff auf die innerhalb des Servers aufbewahrten Daten und folglich unbegrenzten Zugriff auf alle in dem zentralisierten Datenspeicher aufbewahrten sensiblen Daten haben.
  • KURZDARSTELLUNG
  • Eine einzelne beispielhafte Ausführungsform des offenbarten Gegenstands ist ein System, das aufweist: ein Cluster von sicheren Ausführungsplattformen (SEPs, Secure Execution Platforms), die Anschlussmöglichkeiten an einen Datenspeicher haben, wobei jede SEP des Clusters so konfiguriert wird, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung eines Schlüssels bewahrt, wobei der Schlüssel unter den SEPs des Clusters gemeinsam genutzt wird, wobei der Schlüssel durch das Cluster oder einen Teil davon automatisch erzeugt wird und einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung steht; wobei der Datenspeicher verschlüsselte Daten, die unter Verwendung des Schlüssels verschlüsselt werden, aufbewahrt; wobei eine erste SEP des Clusters so konfiguriert wird, dass sie Client-Daten unter Verwendung des Schlüssels verschlüsselt, um verschlüsselte Client-Daten zu erhalten, und die verschlüsselten Client-Daten in dem Datenspeicher speichert; und wobei eine zweite SEP des Clusters so konfiguriert wird, dass sie verschlüsselte gespeicherte Daten aus dem Datenspeicher abruft, die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels entschlüsselt, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten.
  • Eine weitere beispielhafte Ausführungsform des offenbarten Gegenstands ist ein Computerprogrammprodukt, das ein nicht flüchtiges, durch einen Computer lesbares Speichermedium aufweist, welches Anweisungen aufbewahrt, die von einer sicheren Ausführungsplattform (SEP) innerhalb einer computerunterstützten Umgebung ausgeführt werden sollen, wobei die computerunterstützte Umgebung ein Cluster von SEPs aufweist, die Anschlussmöglichkeiten an einen Datenspeicher haben, wobei der Datenspeicher verschlüsselte Daten aufbewahrt, die unter Verwendung eines Schlüssels verschlüsselt werden, wobei der Schlüssel unter den SEPs des Clusters gemeinsam genutzt wird, wobei der Schlüssel durch das Cluster oder einen Teil davon automatisch erzeugt wird und einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung steht, wobei das Cluster die SEP aufweist, wobei jede SEP des Clusters so konfiguriert wird, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels bewahrt, wobei die Anweisungen, wenn sie von der SEP ausgeführt werden, die SEP veranlassen, die Schritte durchzuführen: als Reaktion auf den Empfang von ersten Client-Daten über einen sicheren Übertragungskanal von einer ersten Client-Einheit Verschlüsseln der ersten Client-Daten unter Verwendung des Schlüssels, um verschlüsselte Client-Daten zu erhalten, und Speichern der verschlüsselten Client-Daten in dem Datenspeicher, wodurch die in dem Datenspeicher aufbewahrten ersten Client-Daten durch eine beliebige nicht computerunterstützte Entität nicht beschaffbar sind; als Reaktion auf den Empfang einer Zugriffsanforderung von einer zweiten Client-Einheit, die Zugriff auf die aufbewahrten Daten benötigt, Abrufen einer verschlüsselten Form der aufbewahrten Daten aus dem Datenspeicher, Entschlüsseln der verschlüsselten Form unter Verwendung des Schlüssels, um die zweiten Client-Daten zu erhalten, und Bereitstellen einer Antwort an die zweite Client-Einheit über einen sicheren Übertragungskanal, wobei die Antwort auf den zweiten Client-Daten beruht.
  • Figurenliste
  • Der vorliegende offenbarte Gegenstand lässt sich anhand der folgenden ausführlichen Beschreibung in Zusammenschau mit den Zeichnungen, in denen entsprechende oder gleiche Zahlen oder Zeichen entsprechende oder gleiche Komponenten angeben, vollständiger verstehen und als vorteilhaft erkennen. Sofern nichts anderes angegeben ist, stellen die Zeichnungen beispielhafte Ausführungsformen oder Aspekte der Offenbarung bereit und schränken den Umfang der Offenbarung nicht ein. In den Zeichnungen:
    • 1 zeigt ein Blockschaubild eines Systems gemäß einigen beispielhaften Ausführungsformen des offenbarten Gegenstands;
    • die 2A bis D zeigen Ablaufpläne von Verfahren gemäß einigen beispielhaften Ausführungsformen des offenbarten Gegenstands; und
    • 3 zeigt eine schematische Darstellung eines Systems gemäß einigen beispielhaften Ausführungsformen des offenbarten Gegenstands.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein technisches Problem, mit dem sich der offenbarte Gegenstand befasst, besteht darin, die Vertraulichkeit von Daten während deren Verarbeitung zu bewahren.
  • Viele Anwendungen und Programme schließen gegebenenfalls die Verarbeitung von und den Umgang mit sensiblen Daten ein. Die sensiblen Daten sollten vor unbefugtem Zugriff oder einer Änderung durch Rogue-Software, die auf höheren Berechtigungsstufen läuft, geschützt werden. Die Vertraulichkeit und Integrität der sensiblen Daten muss gegebenenfalls gewahrt werden, ohne die Möglichkeit von legitimen Softwareprogrammen oder Benutzern, zu den sensiblen Daten gehörende Plattformressourcen zu nutzen oder deren Verwendung zu verwalten, zu unterbrechen.
  • In einigen beispielhaften Ausführungsformen können die sensiblen Daten so aufbewahrt werden, dass die legitime Software oder die legitimen Benutzer Zugriff darauf haben können, die Möglichkeit haben können, neue Daten hinzuzufügen, ohne die Vertraulichkeit der vorhandenen Daten zu beeinträchtigen, die vorhandenen Daten bei der Bereitstellung von verschiedenen Diensten verwenden können, o.ä. In einigen beispielhaften Ausführungsformen kann es erwünscht sein, nicht vertrauenswürdige Anwendungen und Benutzer am Zugriff auf die sensiblen Daten, sei es, um sie zu lesen oder zu aktualisieren, zu hindern.
  • Ein weiteres technisches Problem, mit dem sich der offenbarte Gegenstand befasst, besteht darin, das von anfälligen, nicht computerunterstützten Entitäten, wie beispielsweise menschlichen Administratoren oder Benutzern, wahrgenommene Risiko zu verringern.
  • Viele mit sensiblen Daten verbundene Anwendungen und Dienste können sich darauf verlassen, dass eine zentralisierte vertrauenswürdige Partei sie verwaltet und ausführt. In einigen Fällen kann eine vertrauenswürdige Partei, wie beispielsweise ein Administrator, die sensiblen Daten missbrauchen oder schlecht verwalten, was zu einer Verletzung der Sicherheit führt. Als Beispiel kann die vertrauenswürdige Partei zur Handhabung einer Datenbank verwendet werden, die sichere persönliche Gesundheitsdaten aufbewahrt. Als ein weiteres Beispiel kann der Administrator eine sichere biometrische Datenbank verwalten. Als noch ein weiteres Beispiel kann der Datenspeicher Finanzdaten speichern, wie beispielsweise im Falle eines Systems, das von Brokerfirmen durchgeführte geschäftliche Transaktionen abwickelt, Auktionen durchführt und Gebote entgegennimmt o.ä. Der offenbarte Gegenstand kann auch zur Hinterlegung von Informationen, für Bioinformatik-Datenplattformen, Gesundheitsdienstleistungsplattformen o.ä. verwendet werden.
  • In einigen Fällen können Hacker, skrupellose Mitarbeiter o.ä. die Sicherheit der sensiblen Daten gefährden, indem sie privilegierte Konten knacken, auf die sensiblen Daten zugreifen, die sensiblen Daten kopieren oder durchstechen o.ä., wie zum Beispiel beim Snowden-Leck.
  • Noch ein weiteres technisches Problem, mit dem sich der offenbarte Gegenstand befasst, besteht darin, eine computerunterstützte Plattform bereitzustellen, die Daten vor menschlichen Benutzern vollkommen verbirgt und keiner menschlichen Autorität unterliegt, sobald sie betriebsbereit ist.
  • Daten vor ungeschützten computerunterstützten Entitäten oder Benutzern verborgen zu halten, ist eines der schwierigsten Probleme bei der praktischen sicheren Ausführung. Gewöhnlich werden Ausführungsplattformen von einem menschlichen Benutzer verwaltet. Selbst wenn Ausführungsplattformen einen Verschlüsselungsschlüssel zur Verschlüsselung von verarbeiteten Daten nutzen, ist ein solcher Schlüssel einem menschlicher Benutzer bekannt oder von einem menschlichen Benutzer beschaffbar, etwa, falls der Server zusammenbricht und ein neuer Server ausgeführt werden muss, um ihn zu ersetzen, und dieser den Schlüssel benötigt, um die sensiblen Daten zu entschlüsseln. Ein Angreifer, der den Schlüssel beschafft, kann ursprüngliche Daten aus den verschlüsselten Daten wiederherstellen und sie böswillig verwenden oder verbreiten. Der Angreifer kann den Schlüssel von der menschlichen Entität beschaffen, die den Schlüssel kennt, beispielsweise, indem er ihn stiehlt, durch Zahlung von Bestechungsgeld, menschliche Fehler Social Engineering o.ä. Zusätzlich oder alternativ kann der Angreifer den Schlüssel beschaffen, indem er einen auf der Ausführungsplattform auszuführenden böswilligen Softwareagenten einschleust. Der böswillige Softwareagent kann, beispielsweise durch den Einsatz von Social Engineering, mit Administratorrechten ausgestattet werden und folglich mit allen Informationen vertraut sein, die für den Administrator der Plattform zugänglich sind.
  • Eine technische Lösung besteht darin, durch ein Cluster von sicheren Ausführungsplattformen (SEPs) einen Schlüssel automatisch zu erzeugen. Der Schlüssel kann genutzt werden, um die Vertraulichkeit von Daten während deren Verarbeitung zu bewahren. Der Schlüssel darf nur den SEPs des Clusters zur Verfügung stehen. Andere computerunterstützte Entitäten, die nicht Mitglieder des Clusters sind, wie beispielsweise Server, SEPs, computerunterstützte Vorrichtungen o.ä. dürfen keinen Zugriff auf den Schlüssel haben und dürfen nicht in der Lage sein, den Schlüssel zu beschaffen. Darüber hinaus können Agenten, wie beispielsweise in Software, Firmware, Hardware, einer Kombination daraus ausgeführte Agenten, die von dem SEP ausgeführt werden, von dem Zugriff auf den Schlüssel ausgeschlossen werden, wenn die Agenten nicht als „berechtigt“ betrachtet werden. In einigen Fällen kann die SEP berechtigte und nicht berechtigte Agenten gleichzeitig ausführen und Zugriff auf den Schlüssel nur berechtigten Agenten gestatten, die ein Protokoll gemäß dem offenbarten Gegenstand befolgen. In einigen beispielhaften Ausführungsformen können die berechtigten Agenten, die von der SEP ausgeführt werden, die einzigen Agenten sein, die den Schlüssel beschaffen können, sensible Daten unter Verwendung des Schlüssels entschlüsseln können, sensible Daten unter Verwendung des Schlüssels verschlüsseln können und die entschlüsselten Daten verarbeiten können. Zusätzlich oder alternativ können die berechtigten Agenten die einzigen Agenten sein, die den Schlüssel an andere Agenten oder SEPs weiterleiten können.
  • In einigen beispielhaften Ausführungsformen kann das Cluster der SEPs mit einem Datenspeicher verbunden sein, der so konfiguriert wird, dass er die sensiblen Daten aufbewahrt. Der Datenspeicher kann eine verschlüsselte Form der Daten aufbewahren, die unter Verwendung des Schlüssels verschlüsselt werden. Auf die in dem Datenspeicher gespeicherten Daten kann durch die berechtigten Agenten zugegriffen werden, die von den SEPs des Clusters ausgeführt werden, welche in der Lage sein können, die Verschlüsselung zu entschlüsseln. Die Daten können unter Verwendung des Schlüssels wiederhergestellt werden und auf der verschlüsselten Form der Daten beruhen.
  • In einigen beispielhaften Ausführungsformen können die berechtigten Agenten der SEPs so konfiguriert werden, dass sie die Daten unter Verwendung des Schlüssels entschlüsseln und jedweden Zugriff auf die entschlüsselten Daten verhindern, selbst wenn solche Daten für Berechnungen verwendet werden. Die entschlüsselten Daten können von der SEP in einem sicheren Container aufbewahrt werden, der für die gesamte privilegierte Software, die von der SEP ausgeführt wird (z.B. Kernel, Hypervisor usw.), mit Ausnahme der berechtigten Agenten, die die Verarbeitung selbst durchführen, unzugänglich ist, und folglich haben nur die berechtigten Agenten Zugriff auf die sensiblen Daten in ihrer entschlüsselten Form.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel unter den SEPs des Clusters gemeinsam genutzt werden. Jede SEP des Clusters kann so konfiguriert werden, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels bewahrt.
  • In einigen beispielhaften Ausführungsformen können SEPs des Clusters so konfiguriert werden, dass sie Daten unter Verwendung des Schlüssels verschlüsseln, um verschlüsselte Daten zu erhalten. Die SEPs des Clusters können die verschlüsselten Daten dann in dem Datenspeicher speichern. SEPs des Clusters können des Weiteren so konfiguriert werden, etwa, indem sie berechtigte Agenten ausführen, dass sie verschlüsselte Daten aus dem Datenspeicher abrufen und die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels entschlüsseln, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten. In einigen Fällen können die SEPs so konfiguriert werden, dass sie Client-Abfragen von Client-Einheiten bedienen und auf den Datenspeicher zugreifen, um solche Abfragen zu erfüllen.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel von einer der SEPs, einer Kombination von mehreren SEPs o.ä. autonom erzeugt werden. Das Cluster kann sich unter Verwendung eines Konsensprotokolls wie beispielsweise PAXOS, des Chandra-Toueg-Konsensalgorithmus, raft o.ä. auf den Schlüssel einigen. In einigen beispielhaften Ausführungsformen kann das Konsensprotokoll genutzt werden, um einen Anführer auszuwählen, der den Schlüssel selbst erzeugt. Zusätzlich oder alternativ können mehrere SEPs zufällige Werte erzeugen, die kombiniert werden, um den Schlüssel zu erstellen. Der von dem Cluster verwendete Schlüssel darf nie einem menschlichen Benutzer angezeigt oder anderweitig an einen menschlichen Benutzer ausgegeben werden und er kann von einer Weitergabe an eine beliebige andere computergestützte Einheit, die nicht Teil des Clusters ist, oder an einen beliebigen nicht berechtigten Agenten ausgeschlossen werden, selbst wenn ein solcher Agent von einer SEP des Clusters ausgeführt wird. Somit darf kein menschlicher Benutzer oder eine andere nicht berechtigte Entität Kenntnis von dem Schlüssel haben und eine solche Entität darf, falls beeinträchtigt, die Sicherheit der sensiblen Daten nicht beeinträchtigen.
  • In einigen beispielhaften Ausführungsformen kann das Cluster so konfiguriert werden, dass es Replikate erstellt und während des Betriebs neue SEPs zu dem Cluster hinzufügt. In einigen Fällen werden, falls eine Anzahl von SEPs in dem Cluster einen vorher festgelegten Schwellenwert unterschreitet, neue SEPs zu dem Cluster hinzugefügt und berechtigte Agenten werden in jeder neuen SEP gestartet. Die neuen SEPs können den Schlüssel von einer SEP empfangen, die bereits Mitglied des Clusters ist. In einigen beispielhaften Ausführungsformen kann das Cluster eine minimale Größe behalten, um einen möglichen Verlust des Schlüssels und damit den Verlust der sensiblen Daten zu vermeiden.
  • In einigen beispielhaften Ausführungsformen können die SEPs des Clusters mit verschiedenen Aufgaben und Berechtigungen versehen werden. In einigen beispielhaften Ausführungsformen können einige SEPs in der Lage sein, Daten in den Datenspeicher zu schreiben, während einige SEPs in der Lage sein können, Daten aus dem Datenspeicher zu lesen. Zusätzlich oder alternativ können einige SEPs in der Lage sein, neue SEPs zu dem Cluster hinzuzufügen. In einigen beispielhaften Ausführungsformen können neuen SEPs, die erstellt werden, bestimmte Aufgaben (z.B. schreiben, lesen o.ä.) gegeben werden. Den neuen SEPs kann eine vorher festgelegte Lebensdauer wie beispielsweise ein Tag, eine Stunde o.ä. gegeben werden. Am Ende der vorher festgelegten Lebensdauer kann die neue SEP das Cluster automatisch verlassen. In einigen beispielhaften Ausführungsformen kann die neue SEP an der Weitergabe des Schlüssels an andere Einheiten, darunter an andere SEPs, gehindert werden, wodurch das mögliche Risiko des Hinzufügens von neuen SEPs zu dem Cluster gemindert wird.
  • Eine technische Wirkung der Nutzung des offenbarten Gegenstands besteht im Schutz gegen ein Datenleck, welches das Ergebnis von Insiderangriffen, skrupellosen Mitarbeitern, des Hackens von Einheiten von privilegierten Benutzern, Social Engineering seitens des Administrators o.ä. ist.
  • In einigen beispielhaften Ausführungsformen dient das Cluster als ein alleiniges wirksames Gateway zu den sensiblen Daten, wodurch ein mögliches Datenleck an dem zentralisierten Datenspeicher begrenzt wird.
  • In einigen beispielhaften Ausführungsformen sieht der offenbarte Gegenstand eine autonome computerunterstützte Entität vor, die fähig ist, ohne menschlichen Eingriff zu arbeiten, und in der Lage ist, einen geheimen Schlüssel von Systemen, die durch einen Menschen gesteuert werden, darunter durch Benutzer, die Zugriff auf die Hardware selbst haben, zu verwahren und über Rootberechtigungen in dem Betriebssystem zu verfügen, das dadurch ausgeführt wird.
  • Eine weitere technische Wirkung kann darin bestehen, einen Verlust von sensiblen Daten wirksam zu vermeiden. Bei Verwendung eines Clusters von SEPs, im Gegensatz zu einer einzelnen SEP, ist die Wahrscheinlichkeit geringer, dass alle SEPs gleichzeitig betriebsunfähig werden, und der Schlüssel, der nur ihnen bekannt ist, somit verloren geht. Wenn der Schlüssel verloren geht, werden die verschlüsselten Daten gegebenenfalls nutzlos.
  • Noch eine weitere technische Wirkung kann darin bestehen, eine autonome Datenverwaltung vorzusehen - wobei die Verantwortung für Daten von Administratoren an sichere Hardware übertragen wird. Die autonome Datenverwaltung kann durch eine beliebige externe Partei nicht beeinflusst oder geprüft werden. Die zentrale Eigenschaft der autonomen Datenverwaltung ist, dass sie nur das tut, wofür sie programmiert wurde.
  • Der offenbarte Gegenstand kann eine oder mehrere technische Verbesserungen gegenüber einem beliebigen bereits bestehenden technischen Verfahren bzw. einem technischen Verfahren vorsehen, das zuvor Routine oder gebräuchlich in der Technik wurde.
  • Ein(e) zusätzliche(s) technische(s) Problem, Lösung und Wirkungen sind für einen Fachmann angesichts der vorliegenden Offenbarung gegebenenfalls offensichtlich.
  • Unter Bezugnahme auf 1 ist eine Abbildung eines Systems gemäß einigen beispielhaften Ausführungsformen des offenbarten Gegenstands gezeigt.
  • In einigen beispielhaften Ausführungsformen kann das System 100 ein Cluster 120 von SEPs 122, 124, 126 und 128 aufweisen. Das Cluster 120 kann eine beliebige Anzahl von SEPs aufweisen und 1 hat lediglich Beispielcharakter. Jede SEP kann auf einer vertrauenswürdigen Hardware-Ausführungsplattform wie beispielsweise Intel™'s Software Guard Extensions™ (SGX™) beruhen, einem Server mit einer Trusted Execution Technology (TXT), einer computerunterstützten Vorrichtung, einem Trusted Platform Module (TPM), IBM™'s Secure Blue++™, AMD™'s Secure Memory Encryption™ (SME™) o.ä.
  • Als Beispiel kann SGX™ ein Satz von Hardware-/Software-Erweiterungen der Intel™-Architektur sein, der darauf abzielt, einer sicherheitssensiblen Verarbeitung, die auf einem Computer durchgeführt wird, wo alle privilegierten Softwareprogramme (wie beispielsweise Kernel, Hypervisor o.ä.) möglicherweise böswillig sind, Integritäts- und Vertraulichkeitsgarantieren bereitzustellen. Die vertrauenswürdige Hardware kann einen sicheren Container festlegen und ein Benutzer eines fernen Verarbeitungsdienstes kann die gewünschte Verarbeitung und Daten in den sicheren Container hochladen. Die vertrauenswürdige Hardware kann die Vertraulichkeit und Integrität der Daten schützen, während die Verarbeitung auf ihr durchgeführt wird. Bestätigungsbeweise von Benutzern, die mit einer bestimmten Softwarekomponente Daten austauschen, die in einem sicheren Container ausgeführt wird, der von der vertrauenswürdigen Hardware gehostet wird, werden ebenfalls von dem SGX™-Produkt bereitgestellt.
  • In einigen beispielhaften Ausführungsformen können die SEPs integrierte sichere Ausführungsplattformen sein, die so konfiguriert werden, dass sie eine sichere und stabile Verarbeitung und Ausführung von Software vorsehen und sich gegen softwarebasierte Angriffe verteidigen, die darauf abzielen, auf sensible Daten zuzugreifen, indem sie System-, Basic Input/Output System- (BlOS-)Code beschädigen, die Konfiguration der Plattform ändern o.ä.
  • Jede SEP des Clusters 120 kann einen Schlüssel 130 aufbewahren. Der Schlüssel 130 kann unter den SEPs des Clusters 120 gemeinsam genutzt werden. Der Schlüssel 130 kann einer beliebigen Nicht-Cluster-Einheit nicht zur Verfügung stehen. Es ist anzumerken, dass eine SEP des Clusters 120 berechtigte und nicht berechtigte Agenten ausführen kann. Nur von der SEP des Clusters 120 ausgeführte, berechtigte Agenten dürfen als Cluster-Entitäten betrachtet werden.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel 130 von dem Cluster 120 oder einem Teil davon automatisch erzeugt werden. Der Schlüssel 130 kann an alle SEPs des Clusters 120 weitergeleitet werden. Jede SEP des Clusters 120 kann so konfiguriert werden, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels 130 bewahrt. Der Schlüssel 130 kann von den SEPs genutzt werden, um eine funktionale Ausgabe eines Verschlüsselungsalgorithmus festzustellen, der die Daten oder eine Darstellung davon verschlüsselt. Als Beispiel kann der Schlüssel 130 eine Umwandlung von einer Klartext-Darstellung der Daten in eine Geheimtext-Darstellung davon, und umgekehrt, für Entschlüsselungsalgorithmen angeben. Der Schlüssel 130 kann Umwandlungen in andere Verschlüsselungsalgorithmen wie beispielsweise digitale Signaturschemata, Nachrichtenauthentifizierungscodes o.ä. angeben.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel 130 als ein symmetrischer Schlüssel erzeugt werden, der sowohl für die Verschlüsselung als auch die Entschlüsselung von Daten verwendet werden soll. Zusätzlich oder alternativ kann der Schlüssel 130 ein asymmetrischer Schlüssel sein, der ein Paar von Schlüsseln aufweist, einen, der zur Verschlüsselung verwendet werden soll, und den anderen, der zur Entschlüsselung verwendet werden soll.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel 130 durch eine bestimmte SEP des Clusters 120, wie beispielsweise die SEP 126, erzeugt werden. Die SEP 126 kann so konfiguriert werden, dass sie den Schlüssel 130 an andere SEPs 122, 126 und 128 weitergibt. Die SEP 126 kann ein Verschlüsselungssystem nutzen, um den Schlüssel 130 zu erzeugen.
  • In einigen beispielhaften Ausführungsformen kann das Cluster 120 als Reaktion auf die Erzeugung des Schlüssels 130 so konfiguriert werden, dass es ein Konsensprotokoll einsetzt, um sich auf den Schlüssel 130 zu einigen. In einigen beispielhaften Ausführungsformen kann die SEP 126 die Funktion eines Anführers des Clusters 120 übernehmen. Der Anführer kann durch Vorbestimmung ausgewählt, beruhend auf einer vordefinierten Reihenfolge zwischen den SEPs festgelegt, vom Cluster 120 dynamisch ausgewählt werden o.ä. Der Anführer kann so konfiguriert werden, dass er den Schlüssel 130 erzeugt, und sein erzeugter Schlüssel wird verwendet. Zusätzlich oder alternativ kann es einen Wettlauf zwischen verschiedenen SEPs geben, in dem jede SEP den Schlüssel 130 erzeugen kann. Das Cluster 120 kann dann auswählen, welcher der erzeugten Schlüssel als Schlüssel 130 des Clusters 120 verwendet wird, beispielsweise durch Verwendung eines Konsensprotokolls. Zusätzlich oder alternativ können mehrere SEPs den Schlüssel 130 zusammen erzeugen, beispielsweise, indem jede verschiedene Teile des Schlüssels 130 festlegt. Als Beispiel kann jede SEP 256 Bits erzeugen und der Schlüssel 130 kann aus vier Sätzen von 256 Bits zusammengesetzt werden.
  • In einigen beispielhaften Ausführungsformen kann das System 100 einen Datenspeicher 110 aufweisen. Der Datenspeicher 110 kann ein durch einen Computer lesbaren Speicher aufweisen, der zur Aufbewahrung von Daten fähig ist. In einigen beispielhaften Ausführungsformen kann der Datenspeicher 110 eine redundante Anordnung unabhängiger Festplatten (RAID, Redundant Array of Independent Disks), ein an das Netzwerk angeschossener Speicher (NAS, Network Attached Storage), ein Speicherbereichsnetzwerk (SAN, Storage Area Network), eine NoSQL- oder SQL-Datenbank, ein Objektspeicher o.ä. sein. Der Datenspeicher 110 kann so konfiguriert werden, dass er verschlüsselte Daten aufbewahrt, die unter Verwendung des Schlüssels 130 verschlüsselt werden. In einigen beispielhaften Ausführungsformen wird die Verschlüsselung von den SEPs des Clusters 120 und nicht von dem Datenspeicher 110 durchgeführt.
  • Als Beispiel kann der Datenspeicher 110 eine biometrische Datenbank mit einer digitalen Darstellung von Fingerabdrücken von Bürgern eines Landes vorhalten. Die Daten in dem Datenspeicher 110 können bei der Erstellung von biometrisch überprüfbaren Personalausweisen und Reisepässen, bei der Durchführung von staatlicher Forschung, bei der Feststellung der Identität von Einzelpersonen und bei der Identifizierung von Personen, die möglicherweise eine Straftat begangen haben, o.ä. genutzt werden.
  • In einigen beispielhaften Ausführungsformen kann ein Administrator des Datenspeichers 110 den Datenspeicher 110 verwalten. Der Administrator kann unbeschränkten Zugriff auf den Datenspeicher 110 haben. Zusätzlich oder alternativ kann der Administrator Datensätze in dem Datenspeicher 110 erstellen, abrufen und aktualisieren. Bei Nichtvorhandensein des Schlüssels 130 kann der Administrator jedoch nicht auf die sensiblen Daten in ihrer entschlüsselten Form zugreifen. Als Beispiel kann die biometrische Datenbank von einem Administrator verwaltet werden, der ein Mitarbeiter einer Behörde zur Verwaltung einer nationalen biometrischen Datenbank ist. Der Administrator kann in der Lage sein, die biometrische Datenbank zu verwalten, Datensätze zu aktualisieren, neue Datensätze zu erstellen, Datensätze zu löschen o.ä., ohne über den Schlüssel 130 zu verfügen. Als Beispiel kann der Administrator unbeschränkten Zugriff auf einen Berater haben, der verwendet wird, um Structured Query Language(SQL-)Befehle an die Datenbank auszugeben. Da der Administrator jedoch nicht über den Schlüssel 130 verfügt, ist er nicht in der Lage, im Datenspeicher 110 aufbewahrte verschlüsselte Daten zu entschlüsseln. In einigen beispielhaften Ausführungsformen ist der Administrator möglicherweise nicht in der Lage, neue verschlüsselte Daten, die unter Verwendung des Schlüssels 130 entschlüsselbar wären, in den Datenspeicher 110 einzuführen, ohne dass er Zugriff auf den Schlüssel 130 hat.
  • Jede SEP in dem Cluster 120 kann mit dem Datenspeicher 110 verbunden sein. Einige SEPs können so konfiguriert werden, dass sie Daten in den Datenspeicher 110 schreiben, Daten aus dem Datenspeicher 110 lesen, Daten aus dem Datenspeicher 110 lesen und in den Datenspeicher 110 schreiben, o.ä. In einigen beispielhaften Ausführungsformen kann nur SEPs, die in dem Cluster 120 enthalten sind, gestattet werden, aus dem Datenspeicher 110 zu lesen und in den Datenspeicher 110 zu schreiben, und der Datenspeicher 110 kann so konfiguriert werden, dass er jedweden versuchten Zugriff zurückweist, der nicht von Mitgliedern des Clusters 120 vorgenommen wird.
  • In einigen beispielhaften Ausführungsformen kann ein von der SEP 122 ausgeführter berechtigter Agent so konfiguriert werden, dass er Client-Daten unter Verwendung des Schlüssels 130 verschlüsselt, um verschlüsselte Client-Daten zu erhalten. Der von der SEP 122 ausgeführte berechtigte Agent kann die verschlüsselten Client-Daten im Datenspeicher 110 speichern. Die in dem Datenspeicher 110 aufbewahrten Client-Daten dürfen nicht durch eine beliebige Nicht-Cluster-Entität beschaffbar sein. Die SEP 122, die nur Schreibzugriff auf den Datenspeicher 110 hat, kann als Schreiber-SEP bezeichnet werden.
  • In einigen beispielhaften Ausführungsformen kann ein von der SEP 122 ausgeführter berechtigter Agent so konfiguriert werden, dass er die Client-Daten als Reaktion auf den Empfang der Client-Daten von einer Client-Einheit 140 verschlüsselt. Die verschlüsselten Client-Daten dürfen durch die Client-Einheit 140 nicht direkt beschaffbar sein. Zusätzlich oder alternativ stellt die Client-Einheit 140 möglicherweise nur einen Teil der in dem Datenspeicher 110 aufbewahrten sensiblen Daten bereit. Folglich ist ein mögliches Informationsleck an der Client-Einheit 140 ein begrenztes Risiko und es stellt keine Gefahr dar, dass auf die ganze Datenbank von nicht berechtigten Entitäten zugegriffen wird.
  • In einigen beispielhaften Ausführungsformen kann ein von der SEP 124 ausgeführter berechtigter Agent so konfiguriert werden, dass er verschlüsselte gespeicherte Daten aus dem Datenspeicher 110 abruft. Der von der SEP 124 ausgeführte berechtigte Agent kann so konfiguriert werden, dass er die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels 130 entschlüsselt, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten. Die SEP 124, die nur Lesezugriff auf den Datenspeicher 110 hat, kann als Leser-SEP bezeichnet werden.
  • In einigen beispielhaften Ausführungsformen kann ein von der SEP 124 ausgeführter berechtigter Agent so konfiguriert werden, dass er die verschlüsselten gespeicherten Daten als Reaktion auf den Empfang einer Zugriffsabfrage aus einer Client-Einheit 140 abruft und entschlüsselt. Die Client-Einheit 140 benötigt gegebenenfalls Zugriff auf in dem Datenspeicher 110 aufbewahrte Daten. Da die Client-Einheit 140 keine Berechtigung für einen direkten Zugriff auf den Datenspeicher 110 hat, muss die Client-Einheit 140 gegebenenfalls auf einen bestimmten Teil der in dem Datenspeicher 110 gespeicherten verschlüsselten Daten zugreifen, indem sie die Abfrage an das Cluster 120 oder direkt an eine SEP in dem Cluster 120, wie beispielsweise die SEP 124, überträgt. Der von der SEP 124 ausgeführte berechtigte Agent kann die verschlüsselte Form der relevanten aufbewahrten Daten aus dem Datenspeicher 110 abrufen, die verschlüsselte Form unter Verwendung des Schlüssels 130 entschlüsseln und die nicht verschlüsselten Daten der Client-Einheit 140 bereitstellen, ohne dass die Client-Einheit 140 Zugriff auf den Datenspeicher 110 hat. Es dürfte klar sein, dass selbst unter der Annahme, dass eine Client-Einheit einen Zugriff auf den Datenspeicher 110 hat, die Client-Einheit möglicherweise nicht in der Lage ist, die gespeicherten Daten zu entschlüsseln, da die Client-Einheit den Schlüssel 130 nicht haben kann.
  • In einigen beispielhaften Ausführungsformen kann die gleiche SEP wie eine beispielhafte SEP 122 genutzt werden, um sowohl eine Verschlüsselung als auch eine Entschlüsselung der Daten durchzuführen. Zusätzlich oder alternativ können einige SEPs, wie beispielsweise die SEP 122, eine Nur-Schreiben-Zugriffsberechtigung auf den Datenspeicher 110 haben und andere, wie beispielsweise die SEP 124, können eine Nur-Lesen-Zugriffsberechtigung auf den Datenspeicher 110 haben.
  • In einigen beispielhaften Ausführungsformen kann die Client-Einheit 140 eine Nicht-SEP-Einheit wie beispielsweise ein Personal Computer, ein Laptop, eine mobile Einheit o.ä. sein. Die Client-Einheit 140 kann von einem menschlichen Benutzer für den Zugriff auf den Datenspeicher 110 verwendet werden, beispielsweise unter Verwendung von Abfragen, unter Verwendung einer dedizierten Benutzerschnittstelle o.ä. In einigen beispielhaften Ausführungsformen kann die Client-Einheit 140 ein Server sein, der eine webbasierte Benutzerschnittstelle bereitstellt, um auf einer Benutzereingabe beruhende Abfragen zu erzeugen, und so konfiguriert wird, dass er die Abfragen an das Cluster 120 ausgibt.
  • Es dürfte klar sein, dass die Client-Einheit 140 mit der SEP 122 oder einer anderen SEP direkt verbunden sein kann oder auch nicht direkt verbunden sein kann. In einigen beispielhaften Ausführungsformen kann die Client-Einheit 140 eine Abfrage ausgeben, die von einer Gateway-Einheit (nicht gezeigt) des Clusters 120 empfangen wird. Die Gateway-Einheit kann als Reaktion darauf eine SEP des Clusters 120 auswählen, um die Abfrage zu bearbeiten, beispielsweise beruhend auf Lastausgleichsbetrachtungen, Zugriffsberechtigungen der SEPs, Art der Abfrage o.ä. In einigen Fällen können einige SEPs a priori zur Bearbeitung von bestimmten Arten von Abfragen bestimmt werden und das Cluster 120 kann so konfiguriert werden, dass es die Abfrage an eine entsprechende SEP weiterleitet.
  • Unter Bezugnahme auf das Beispiel mit der biometrischen Datenbank würde Mitarbeitern des Innenministeriums die Befugnis erteilt, biometrische Identifizierungsdaten von den Bürgern zu erfassen und die Daten an eine biometrische Datenbank (z.B. 110) zu übertragen. Mitarbeiter des Innenministeriums können Einheiten, wie beispielsweise die Client-Einheit 140, verwenden, um Aktualisierungs- oder Einfügeabfragen auszugeben, die Daten zu der biometrischen Datenbank hinzufügen. Die Abfrage kann von der SEP 122 empfangen werden, die die Daten unter Verwendung des Schlüssels 130 verschlüsseln und die verschlüsselten Daten in der biometrischen Datenbank speichern kann. Sobald die Daten verschlüsselt sind, sind die Mitarbeiter gegebenenfalls nicht in der Lage, der biometrischen Datenbank die Daten zu entnehmen, da ihnen der Schlüssel 130 nie offengelegt wird.
  • Andererseits können in der biometrischen Datenbank gespeicherte Daten verwendet werden, um Ausweisdokumente von Einwohnern auszustellen, die Identität einer Einzelperson zu überprüfen, o.ä. Berechtigte Mitglieder, wie beispielsweise Polizeibeamte, Mitarbeiter von Sicherheitsdiensten o.ä. müssen die biometrischen Identifikationsdaten einer Einzelperson gegebenenfalls nachprüfen. Dazu können sie die Client-Einheit 140 verwenden und aufgrund ihrer Berechtigungen können sie in der Lage sein, eine Zugriffsabfrage an eine SEP des Clusters 120, wie beispielsweise 124, zu senden. Die SEP verfügt gegebenenfalls über den Schlüssel 130 und kann folglich in der Lage sein, die relevanten verschlüsselten biometrischen Identifikationsdaten der Einzelperson abzurufen, die verschlüsselten biometrischen Identifikationsdaten der Einzelperson zu entschlüsseln, die biometrischen Identifikationsdaten zu verarbeiten und dem berechtigten Mitglied über die Client-Einheit 140 ein verarbeitetes Ergebnis bereitzustellen, ohne dass das berechtigte Mitglied den Schlüssel 130 kennt oder einen direkten Zugang zu der biometrischen Datenbank hat. Beruhend auf den Berechtigungen der Benutzer sind sie in einigen beispielhaften Ausführungsformen gegebenenfalls auf die Durchführung von bestimmten Arten von Abfragen, den Empfang von Daten unterschiedlicher Granularität o.ä. beschränkt. Als Beispiel können einige Beamte in der Lage sein, nur neue Daten einzufügen, während andere berechtigt sein können, personalisierte Daten in Bezug auf bestimmte Leute abzurufen. Noch andere Beamte haben gegebenenfalls Zugang zu einem Überprüfungsprozess, der die Richtigkeit von biometrischen Informationen überprüft, ohne dem Beamten die biometrischen Informationen selbst offenzulegen, beispielsweise, indem er die biometrischen Messwerte erhält, sie an die SEP überträgt, die sie wiederum mit den gespeicherten biometrischen Daten abgleicht. Noch andere Beamte sind gegebenenfalls berechtigt, eine begrenzte Anzahl von Abfragen auszugeben.
  • In einigen beispielhaften Ausführungsformen dürfen die SEPs des Clusters 120 den Schlüssel 130 gegebenenfalls nicht an eine beliebige Nicht-Cluster-Entität, wie beispielsweise andere SEPs, die nicht Teil des Clusters 120 sind, oder an beliebige andere Vorrichtungen, weiterleiten. Die SEPs können so programmiert werden, dass sie den Schlüssel 130 nicht in ihrer Benutzerschnittstelle anzeigen oder menschlichen Benutzern auf andere Weise den Schlüssel 130 zur Verfügung stellen. Benutzer von SEPs des Clusters 120 und andere damit ausgeführte berechtigte Agenten sind gegebenenfalls nicht in der Lage, den Schlüssel 130 zu erhalten, obgleich sie Zugriff auf die SEPs haben.
  • In einigen beispielhaften Ausführungsformen kann die SEP so konfiguriert werden, dass sie neue SEPs, wie beispielsweise die neue SEP 129, zu dem Cluster 120 hinzufügt. Ein Erweitertes Cluster 120b kann definiert werden. Die SEP 128 kann so konfiguriert werden, dass sie den Schlüssel 130 als Teil des Prozesses des Hinzufügens der neuen SEP 129 zum Cluster 120, wenn das Erweiterte Cluster 120b gebildet wird, über einen sicheren Übertragungskanal an die neue SEP 129 weiterleitet. Die SEP 128 kann als Erweiterungs-SEP bezeichnet werden.
  • In einigen beispielhaften Ausführungsformen kann eine beliebige SEP, die den Schlüssel 130 an eine andere Entität, wie beispielsweise die Erweiterungs-SEP, weiterleitet, unter Verwendung einer Bestätigung überprüfen, ob die neue SEP tatsächlich eine SEP ist, die einen berechtigten Agenten ausführt, bevor sie den Schlüssel weiterleitet. Die neue SEP kann unter Verwendung einer Bestätigung überprüfen, ob die Erweiterungs-SEP tatsächlich eine SEP ist, die einen berechtigten Agenten ausführt, bevor sie den gesendeten Schlüssel akzeptiert.
  • In einigen beispielhaften Ausführungsformen kann die neue SEP 129 an der Weiterleitung des Schlüssels 130 an eine beliebige computerunterstützte Vorrichtung gehindert werden. In einigen beispielhaften Ausführungsformen kann die neue SEP 129 selbst keine Erweiterungs-SEP sein und wäre daher nicht in der Lage, den Umfang des Erweiterten Clusters 120b weiterhin zu vergrößern.
  • In einigen beispielhaften Ausführungsformen kann die SEP 128 so konfiguriert werden, dass sie eine vorher festgelegte Lebensdauer, wie beispielsweise wenige Minuten, eine Stunde, einen Tag o.ä., für die neue SEP 129 setzt. Die neue SEP 129 kann so konfiguriert werden, dass sie am Ende der vorher festgelegten Lebensdauer aus dem Cluster 120b entfernt wird. Die neue SEP kann so konfiguriert werden, dass sie das Cluster automatisch selbst verlässt, aus dem Erweiterten Cluster 120b durch eine andere Einheit, wie beispielsweise die SEP 128 oder eine andere Verwaltungseinheit (nicht gezeigt) des Clusters 120, entfernt wird o.ä. In einigen beispielhaften Ausführungsformen kann die neue SEP 129 so konfiguriert werden, dass sie die Kopie des Schlüssels 130 löscht oder eliminiert, den sie beim Verlassen des Erweiterten Clusters 120b behält.
  • In einigen beispielhaften Ausführungsformen kann die SEP 128 so konfiguriert werden, dass sie die neue SEP 129 als Reaktion darauf, dass eine Anzahl von SEPs in dem Cluster 120 einen vorher festgelegten Schwellenwert, wie beispielsweise zwei, drei, zehn o.ä., unterschreitet, zu dem Cluster 120 hinzufügt. In einigen beispielhaften Ausführungsformen kann es erwünscht sein, eine minimale Anzahl von SEPs beizubehalten, etwa, um eine Wahrscheinlichkeit, alle Kopien des Schlüssels 130 zu verlieren, zu verringern. Wenn die Anzahl der SEPs einen minimalen Schwellenwert erreicht, können Erweiterungs-SEPs so konfiguriert werden, dass sie anfangen, neue SEPs zu generieren, die zu dem Cluster 120 hinzugefügt werden, um sicherzustellen, dass eine ausreichende Anzahl von Kopien des Schlüssels 130 gleichzeitig vorhanden ist.
  • Zusätzlich oder alternativ kann die SEP 128 so konfiguriert werden, dass sie die neue SEP 129 als Reaktion darauf, dass die SEP 122 oder die SEP 124 betriebsunfähig wird, zum Cluster 120 hinzufügt. Die neue SEP 129 kann so konfiguriert werden, dass sie die betriebsunfähige SEP ersetzt. In einigen beispielhaften Ausführungsformen kann die Lebensdauer der neuen SEP 129 auf eine vorher festgelegte Lebensdauer begrenzt werden, die als ausreichend geschätzt wird, bis die betriebsunfähige SEP wieder betriebsfähig wird.
  • Es dürfte klar sein, dass in einigen Fällen andere SEPs wie beispielsweise die SEP 122, die SEP 124 oder die SEP 126 in der Lage sein können, neue SEPs zu dem Cluster 120 oder dem Cluster 120b hinzuzufügen. Neuen SEPs, wie beispielsweise der neuen SEP 129, kann es standardmäßig untersagt werden, neue SEPs zu dem Erweiterten Cluster 120b hinzuzufügen. In einigen Fällen jedoch kann ein Administrator des Clusters 120 eine Berechtigung zum Hinzufügen von neuen Mitgliedern zu einer neuen SEP 129 erteilten, wie beispielsweise, wenn sie Teil eines Backbones des Erweiterten Clusters 120b wird, eine Erweiterungs-SEP betriebsunfähig wird, o.ä. In einigen beispielhaften Ausführungsformen kann der Administrator die Berechtigung haben, eine Lebensdauer einer SEP über ihre ursprüngliche vorher festgelegte Lebensdauer hinaus zu verlängern.
  • Unter Bezugnahme auf 2A ist ein Ablaufplan eines Verfahrens gemäß einigen beispielhaften Ausführungsformen des Gegenstands gezeigt.
  • Im Schritt 210 können die Client-Daten empfangen werden. In einigen beispielhaften Ausführungsformen können die Client-Daten von einer SEP, wie beispielsweise 122 von 1, innerhalb einer computerunterstützten Umgebung empfangen werden. Die SEP kann ein Mitglied eines Clusters von SEPs, wie beispielsweise 120 von 1, sein, das Anschlussmöglichkeiten an einen Datenspeicher, wie beispielsweise 110 von 1, hat. Der Datenspeicher kann verschlüsselte Daten aufbewahren, die unter Verwendung eines Schlüssels verschlüsselt werden. Der Schlüssel kann unter den SEPs des Clusters gemeinsam genutzt werden. Jede SEP des Clusters kann so konfiguriert werden, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels bewahrt.
  • In einigen beispielhaften Ausführungsformen können die Client-Daten sensible Daten wie Patientenprofile, medizinische Informationen, Daten über die nationale Sicherheit, Daten über gesicherte Zahlungsverfahren, Finanzunterlagen, vertrauliche Daten o.ä. aufweisen. Es kann erwünscht sein, die sensiblen Daten innerhalb eines sicheren Datenspeichers zur zukünftigen Verwendung vertraulich zu speichern.
  • In einigen beispielhaften Ausführungsformen können die Client-Daten von einer Client-Einheit, wie beispielsweise 140 von 1, empfangen werden. Bei der Client-Einheit kann es sich um eine Nicht-SEP-Einheit wie beispielsweise einen Server, eine computerunterstützte Vorrichtung o.ä. handeln. Die Client-Einheit kann von einem menschlichen Benutzer bedient oder auch nicht bedient werden. Die Client-Einheit kann es einem Benutzer ermöglichen, eine auszugebende Abfrage zu definieren. Die Abfrage kann eine Schreibabfrage sein, die neue Daten in den Datenspeicher einführt oder vorhandene Datensätze in dem Datenspeicher aktualisiert. Die Abfrage kann unter Verwendung eines nativen, von der Client-Einheit ausgeführten Programms, eines Programms, das, wenn es von einer Benutzereinheit ausgeführt wird, eine grafische Benutzeroberfläche (GUI, Graphical User Interface) anzeigt und die Abfrage an die Client-Einheit weiterleitet, einer webbasierten Schnittstelle, die von der Client-Einheit ausgeführt wird und auf die der Benutzer unter Verwendung einer Benutzereinheit, wie beispielsweise eines Computers, der einen Webbrowser ausführt, zugreifen kann, o.ä. definiert werden. Die Client-Einheit darf weder Zugriff auf den Schlüssel haben noch diesen Schlüssel aufbewahren. In einigen beispielhaften Ausführungsformen darf die Client-Einheit keinen direkten Zugriff auf den Datenspeicher haben.
  • In einigen beispielhaften Ausführungsformen kann die Client-Einheit die Client-Daten direkt der SEP bereitstellen. Zusätzlich oder alternativ kann die Client-Einheit ein Gateway des Clusters kontaktieren, das die Mitteilung von der Client-Einheit an (eine) Ziel-SEP(s) zur Verarbeitung leiten kann.
  • Im Schritt 215 können die Client-Daten unter Verwendung des Schlüssels verschlüsselt werden, um verschlüsselte Client-Daten zu erhalten. Die Client-Daten können so codiert werden, dass nur SEPs, die über den Schlüssel verfügen, sie entschlüsseln können. In einigen beispielhaften Ausführungsformen kann der Schritt 215 von einem berechtigten Agenten durchgeführt werden, der von der SEP ausgeführt wird.
  • In einigen beispielhaften Ausführungsformen können die Client-Daten unter Verwendung eines Verschlüsselungsalgorithmus verschlüsselt werden. Der Schlüssel kann Teil des Verschlüsselungsalgorithmus, ein Parameter des Verschlüsselungsalgorithmus o.ä. sein. Eine SEP kann in der Lage sein, die verschlüsselten Client-Daten unter Verwendung des Schlüssels zu entschlüsseln.
  • Im Schritt 220 können die verschlüsselten Client-Daten in dem Datenspeicher gespeichert werden.
  • Unter Bezugnahme auf 2B ist ein Ablaufplan eines Verfahrens gemäß einigen beispielhaften Ausführungsformen des Gegenstands gezeigt.
  • Im Schritt 230 kann eine Client-Abfrage von einer SEP, wie beispielsweise 124 von 1, empfangen werden. Die SEP kann ein Mitglied eines Clusters von SEPs, wie beispielsweise 120 von 1, sein, die Anschlussmöglichkeiten an einen Datenspeicher haben. Der Datenspeicher kann verschlüsselte Daten aufbewahren, die unter Verwendung eines Schlüssels verschlüsselt werden, wie beispielsweise im Schritt 220 gespeicherte, verschlüsselte Client-Daten.
  • In einigen beispielhaften Ausführungsformen kann die Abfrage einen Teil der gespeicherten Daten definieren, die von einer Client-Einheit, wie beispielsweise 140 von 1, beschafft werden sollen. Zusätzlich oder alternativ kann die Abfrage einen Teil der gespeicherten Daten definieren, die von der SEP zur Verarbeitung beschafft werden sollen, bevor sie der Client-Einheit ein darauf beruhendes Ergebnis bereitstellt.
  • Im Schritt 235 kann durch die SEP auf den Datenspeicher zugegriffen werden. In einigen beispielhaften Ausführungsformen kann auf den Datenspeicher nur durch SEPs des Clusters zugegriffen werden. Die SEP kann verschlüsselte Daten abrufen, die für das Erfüllen der Abfrage relevant sind.
  • Im Schritt 240 können aus dem Datenspeicher abgerufene verschlüsselte Daten von der SEP unter Verwendung des Schlüssels entschlüsselt werden. Die verschlüsselten Daten können zuvor von der SEP oder einer anderen SEP aus dem Cluster unter Verwendung des Schlüssels verschlüsselt werden. Eine nicht verschlüsselte Form der verschlüsselten Daten kann durch die Entschlüsselung erhalten werden. In einigen beispielhaften Ausführungsformen kann der Schritt 240 von einem berechtigten Agenten durchgeführt werden, der von der SEP ausgeführt wird.
  • Im Schritt 245 kann die Abfrage erfüllt werden. Die SEP kann die nicht verschlüsselte Form der verschlüsselten Daten nutzen, um die Abfrage zu erfüllen und der Client-Einheit die relevanten Informationen bereitzustellen. In einigen beispielhaften Ausführungsformen kann die Abfrage das Verarbeiten von sensiblen Daten erforderlich machen, das SEP-intern, etwa durch den berechtigten Agenten, durchgeführt wird, ohne die sensiblen Daten selbst der Client-Einheit offenzulegen. Sobald die Verarbeitung abgeschlossen ist, kann die Abfrage erfüllt werden, indem ein Ergebnis der Verarbeitung (z.B. ein GUT-/SCHLECHT-Ergebnis) zurückgeschickt wird. Zusätzlich oder alternativ kann die Abfrage das Bereitstellen eines Teils der sensiblen Daten erforderlich machen, wie beispielsweise des Inhalts von einigen Feldern eines Datensatzes, der sensible Daten aufbewahrt. In einem solchen Fall kann der Client-Einheit schließlich ein Teil der in dem Datenspeicher aufbewahrten sensiblen Daten bereitgestellt werden. Die Abfrage kann erfüllt werden, ohne dass die Client-Einheit einen direkten Zugriff auf den Datenspeicher oder eine unabhängige Art und Weise der Entschlüsselung von darin aufbewahrten verschlüsselten Daten hat.
  • Unter Bezugnahme auf 2C ist ein Ablaufplan eines Verfahrens gemäß einigen beispielhaften Ausführungsformen des Gegenstands gezeigt.
  • Im Schritt 250 kann ein Schlüssel automatisch erzeugt werden. In einigen beispielhaften Ausführungsformen kann der Schlüssel von einem Cluster von SEPS erzeugt werden.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel von einer oder mehreren SEPs des Clusters erzeugt werden. Als Beispiel kann eine Vielzahl von SEPs den Schlüssel zusammen erzeugen, indem jede einen anderen Teil davon erzeugt, die miteinander kombiniert werden können, beispielsweise, indem die verschiedenen Teile verknüpft werden, um den Schlüssel zu erstellen. Als ein weiteres Beispiel kann eine einzelne SEP den Schlüssel erzeugen.
  • Im Schritt 255 kann ein Konsensprotokoll durch das Cluster eingesetzt werden, um sich auf den Schlüssel zu einigen. Das Konsensprotokoll kann es den verschiedenen SEPs ermöglichen, sich auf einen gemeinsamen Schlüssel zu einigen. In einigen beispielhaften Ausführungsformen können die SEPs jeweils einen möglichen Wert des Schlüssels erzeugen (z.B. im Schritt 250), miteinander Daten austauschen und sich auf einen einzigen Konsenswert für den Schlüssel einigen. Zusätzlich oder alternativ kann das Konsensprotokoll auf einem einzigen, im Schritt 250 erzeugten möglichen Schlüssel eingesetzt und iterativ wiederholt werden, um bei jeder Iteration einen neuen möglichen Schlüssel zu erzeugen, bis ein Konsenswert erreicht ist.
  • In einigen beispielhaften Ausführungsformen kann das Konsensprotokoll angewendet werden, um sich auf eine Anführer-SEP zu einigen, die den Schlüssel für das Cluster festlegt. Zusätzlich oder alternativ kann das Konsensprotokoll auf einer Mehrheit oder einem anderen Quorum der SEPs beruhen, die sich auf den Schlüssel einigen.
  • In einigen beispielhaften Ausführungsformen kann das Konsensprotokoll von einem oder mehreren Administratoren, die keine SEPs sind, ausgeführt und den SEPs nach der Konfiguration bereitgestellt werden.
  • In einigen beispielhaften Ausführungsformen kann sich das Cluster beruhend auf einem Konsensvotum auf einen von dem Cluster zu verwendenden Schlüssel einigen. In einigen beispielhaften Ausführungsformen kann die Entscheidung unwiderruflich sein. Zusätzlich oder alternativ kann das Cluster in regelmäßigen Abständen entscheiden, den Schlüssel zu ändern, indem es sich auf einen zweiten Schlüssel einigt. Die sensiblen Daten können unter Verwendung des Schlüssels entschlüsselt und unter Verwendung des zweiten Schlüssels verschlüsselt werden, bevor sie wieder gespeichert werden.
  • Im Schritt 260 kann der Schlüssel an alle Mitglieder des Clusters weitergegeben werden. In einigen beispielhaften Ausführungsformen kann der Schlüssel an die Mitglieder durch eine Anführer-SEP oder als Teil der Anwendung des Konsensprotokolls weitergegeben werden. Die Anführer-SEP kann so konfiguriert werden, dass sie den Schlüssel an jede SEP des Clusters weiterleitet, die den Schlüssel noch nicht aufbewahrt. In einigen beispielhaften Ausführungsformen ist keine Weitergabe erforderlich, da die SEPs während des Konsensprotokolls bereits über den Schlüssel informiert werden.
  • Im Schritt 265 kann der Schlüssel verwendet werden, um die Vertraulichkeit von Daten zu bewahren. Der Schlüssel kann von den SEPs des Clusters genutzt werden, um die Vertraulichkeit von Daten während deren Verarbeitung zu bewahren. Der Schlüssel darf einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung stehen und die SEPs können daran gehindert werden, ihn an eine beliebige Nicht-SEP-Einheit und an SEP-Einheiten, die keine neuen Mitglieder des Clusters sind, weiterzugeben.
  • In einigen beispielhaften Ausführungsformen kann der Schlüssel verwendet werden, um Daten vor der Speicherung in einem Datenspeicher zu verschlüsseln und um die verschlüsselten Daten vor ihrer Verwendung zu entschlüsseln.
  • Unter Bezugnahme auf 2D ist ein Ablaufplan eines Verfahrens gemäß einigen beispielhaften Ausführungsformen des Gegenstands gezeigt.
  • Im Schritt 270 wird gegebenenfalls festgestellt, dass die Anzahl der Mitglieder des Clusters einen vorher festgelegten Schwellenwert unterschreitet. Der vorher festgelegte Schwellenwert kann zum Beispiel ca. 2, ca. 3, ca. 10 o.ä. sein. In einigen beispielhaften Ausführungsformen kann der vorher festgelegte Schwellenwert bezogen auf eine Zielgröße eines Clusters, wie beispielsweise etwa 40% der gewünschten optimalen Größe, sein. In einigen beispielhaften Ausführungsformen kann der vorher festgelegte Schwellenwert eine Kombination aus minimaler absoluter Größe und minimaler relativer Größe sein.
  • In einigen beispielhaften Ausführungsformen kann sich der Schwellenwert auf ein mögliches Risiko einer Katastrophe beziehen, die dazu führen würde, dass bei allen SEPs des Clusters eine Störung auftritt und sie den Schlüssel möglicherweise verlieren. In einigen beispielhaften Ausführungsformen kann der Schwellenwert eine gewünschte Redundanz der SEPs vorsehen. Zusätzlich oder alternativ kann es der Schwellenwert erforderlich machen, dass SEPs an verschiedenen geographischen Orten, wie beispielsweise an mindestens drei verschiedenen Standorten, verteilt sind. Zusätzlich oder alternativ kann sich der Schwellenwert auf Risikofaktoren beziehen, die das Risiko mindern, dass bei allen SEPs gleichzeitig eine Störung auftritt.
  • Zusätzlich oder alternativ kann die Feststellung eine Feststellung sein, dass eine SEP des Clusters betriebsunfähig wurde. Folglich kann es erwünscht sein, eine neue SEP hinzuzufügen, um den Platz der betriebsunfähigen SEP in dem Cluster einzunehmen.
  • Im Schritt 275 kann ein neues Mitglied zu dem Cluster hinzugefügt werden. Das neue Mitglied kann eine SEP sein. In einigen beispielhaften Ausführungsformen kann die neue SEP eine SEP vom gleichen Typ wie die SEPs sein, die bereits in dem Cluster vorhanden sind.
  • In einigen beispielhaften Ausführungsformen kann das neue Mitglied von einer Erweiterungs-SEP zu dem Cluster hinzugefügt werden. Die Erweiterungs-SEP kann ein Mitglied des Clusters sein, die so konfiguriert wird, dass sie neue Mitglieder zu dem Cluster hinzufügt. Die Erweiterungs-SEP kann so konfiguriert werden, dass sie als Reaktion auf die Feststellung des Schritts 270 neue Mitglieder hinzufügt. Die Erweiterungs-SEP kann eine auf die neue SEP zu ladende Software senden, die von der neuen SEP verwendet werden soll, wenn sie Teil des Clusters ist. Es dürfte klar sein, dass die Erweiterungs-SEP zusätzlich zu der Aufgabe, neue Mitglieder hinzuzufügen, so konfiguriert werden kann, dass sie Daten verarbeitet, während sie das Schreiben in, das Lesen aus dem Datenspeicher oder eine Kombination daraus durchführt.
  • Zusätzlich oder alternativ kann das neue Mitglied durch ein beliebiges ursprüngliches Mitglied des Clusters hinzugefügt werden. Ein ursprüngliches Mitglied des Clusters kann eine SEP sein, die zu dem Cluster hinzugefügt wurde, als das Cluster anfangs erzeugt wurde. Die ursprünglichen Mitglieder können eine Berechtigung zum Hinzufügen von neuen Mitgliedern zu dem Cluster haben, die den Schlüssel an neue SEPs weiterleiten, o.ä. SEPs, die keine ursprünglichen SEPs sind, wie beispielsweise das neue Mitglied, darf das Hinzufügen von neuen Mitgliedern gestattet werden oder auch nicht gestattet werden.
  • In einigen beispielhaften Ausführungsformen kann das neue Mitglied ein vorübergehendes Mitglied sein. Die Erweiterungs-SEP kann so konfiguriert werden, dass sie eine vorher festgelegte Lebensdauer für das neue Mitglied setzt. Das neue Mitglied kann so konfiguriert werden, dass es am Ende der vorher festgelegten Lebensdauer aus dem Cluster entfernt wird. Die vorher festgelegte Lebensdauer kann auf zehn Minuten, eine Stunde, zehn Stunden, einen Tag o.ä. gesetzt werden. Die vorher festgelegte Lebensdauer kann aufgrund des Hinzufügens des neuen Mitglieds gesetzt werden, als Beispiel, falls das neue Mitglied hinzugefügt wurde, um eine bestimmte Aufgabe durchzuführen, wie beispielsweise das Hinzufügen von neuen Daten während eines Anstiegs der Arbeitslast, kann die vorher festgelegte Lebensdauer so gesetzt werden, dass sie für das Hinzufügen der neuen Daten durch die neue SEP ausreichend ist. Als ein weiteres Beispiel kann die vorher festgelegte Lebensdauer, falls die neue SEP hinzugefügt wird, um eine betriebsunfähige SEP zu ersetzen, auf einer voraussichtlichen Wiederherstellungsdauer der betriebsunfähigen SEP beruhen.
  • Im Schritt 280 kann der Schlüssel an das neue Mitglied weitergeleitet werden. Das neue Mitglied kann so konfiguriert werden, dass es die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels bewahrt. Das neue Mitglied kann daran gehindert werden, den Schlüssel an eine beliebige Nicht-Cluster-Entität auszugeben oder den Schlüssel an eine beliebige Einheit weiterzuleiten, die nicht Teil des Clusters ist.
  • In einigen beispielhaften Ausführungsformen kann das Mitglied von einem Administrator des Clusters hinzugefügt werden. Die Erweiterungs-SEP kann so konfiguriert werden, dass sie dem neuen Mitglied den Schlüssel bereitstellt.
  • In einigen beispielhaften Ausführungsformen kann die Erweiterungs-SEP so konfiguriert werden, dass sie überprüft, ob das neue Mitglied eine berechtigte SEP ist, deren Hinzufügung zu dem Cluster zulässig ist, bevor sie den Schlüssel weiterleitet. Die Erweiterungs-SEP kann prüfen, ob das neue Mitglied den berechtigten Agenten ausführt. Zusätzlich oder alternativ kann das neue Mitglied so konfiguriert werden, dass es überprüft, beispielsweise beruhend auf einer Bestätigung, ob die Erweiterungs-SEP eine SEP ist, die den berechtigten Agenten ausführt, bevor es den Schlüssel akzeptiert.
  • In einigen beispielhaften Ausführungsformen kann das neue Mitglied so konfiguriert werden, dass es beruhend auf der von der Erweiterungs-SEP, dem Administrator des Clusters oder einer beliebigen anderen SEP, die das neue Mitglied hinzugefügt hat, bereitgestellten Berechtigung den Schlüssel verwendet, beispielsweise zum Schreiben in oder zum Lesen aus dem mit dem Cluster verbundenen Datenspeicher. Das neue Mitglied kann so konfiguriert werden, dass es Client-Daten unter Verwendung des Schlüssels verschlüsselt, um verschlüsselte Client-Daten zu erhalten, und die verschlüsselten Client-Daten in dem Datenspeicher speichert. Zusätzlich oder alternativ kann das neue Mitglied so konfiguriert werden, dass es verschlüsselte gespeicherte Daten aus dem Datenspeicher abruft, die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels entschlüsselt, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten. Es ist anzumerken, dass das neue Mitglied auf die Durchführung einer bestimmten Aktivität beschränkt sein kann, beispielsweise, indem es über eine Nur-Schreib- oder eine Nur-Lese-Zugriffsberechtigung auf den Datenspeicher verfügt, o.ä.
  • Im Schritt 285 wird gegebenenfalls festgestellt, dass die vorher festgelegte Lebensdauer des neuen Mitglieds erreicht wurde. In einigen beispielhaften Ausführungsformen kann die Feststellung durch die Erweiterungs-SEP vorgenommen werden. Zusätzlich oder alternativ kann die Feststellung durch das neue Mitglied vorgenommen werden.
  • Im Schritt 290 kann das neue Mitglied aus dem Cluster entfernt werden. In einigen beispielhaften Ausführungsformen kann das neue Mitglied als Reaktion darauf, dass das neue Mitglied im Schritt 285 feststellt, dass die vorher festgelegte Lebensdauer erreicht wurde, den Schlüssel löschen und das Cluster verlassen. Anstatt sich darauf zu verlassen, dass das neue Mitglied den Schlüssel löscht, kann in einigen beispielhaften Ausführungsformen ein alternativer Schlüssel festgelegt und verwendet werden, wie beispielsweise mit Bezug auf 2C abgebildet ist.
  • Eine Ausführungsform
  • Eine Ausführungsform des offenbarten Gegenstands wurde ausgeführt. Bei der Ausführungsform werden alle sensiblen Daten mit einem Schlüssel verschlüsselt, der nur Software bekannt ist, die innerhalb von Intel™'s SGX™-Enklaven ausgeführt wird. Enklaven sind spezielle Berechnungsmodi in Skylake™-Prozessoren von Intel, die alle Berechnungen an verschlüsselten Daten ausführen. Gekoppelt mit einer Fernbestätigungsfunktion (einem Code- und Plattformüberprüfungsmechanismus) können die Enklaven als der gewünschte Roboter zur Ausführung aller datenbezogenen Operationen dienen. Die Ausführungsform stellt sicher, dass sich der Schlüssel zu den verschlüsselten Daten nur in einem berechtigten Agenten befindet, der in einer Enklave ausgeführt wird, und die verschlüsselten Daten daher nur von Nutzen sein können, wenn über die Enklave auf sie zugegriffen wird. Die Ausführungsform ersetzt gewissermaßen den privilegierten Administrator und die Softwareumgebung durch Automatikcode, der in einer sicheren Ausführungsumgebung ausgeführt wird.
  • In der Ausführungsform werden die Daten nutzlos, wenn der Verschlüsselungsschlüssel aufgrund von einem dauerhaften Hardwarefehler verloren geht. Die Ausführungsform führt ein Cluster von Agenten aus, die nicht eine einzelne Enklave, sondern denselben geheimen Verschlüsselungsschlüssel gemeinsam nutzen. Dies stellt die Dauerhaftigkeit des Schlüssels sicher und trägt auch dazu bei, Skalierbarkeit des Datendienstes zu erreichen.
  • Unter Bezugnahme auf 4 ist eine schematische Darstellung der Ausführungsform gezeigt.
  • Die Ausführungsform weist eine Gruppe von Enklavenagenten auf, die einen geheimen Schlüssel, der als „AE-Key“ bezeichnet wird, gemeinsam nutzen. Agenten, wie beispielsweise 410, 412, 414, können im Allgemeinen entweder in den eigenen Räumen oder in der Cloud ausgeführt werden. Die Tatsache, dass sie in Enklaven ausgeführt werden, gewährleistet - ob sie in einer vertrauenswürdigen oder in einer nicht vertrauenswürdigen Umgebung ausgeführt werden - ihre Sicherheit. Die Ausführungsform kategorisiert diese Agenten in Kernagenten („C“, wie beispielsweise 410), Leser („R“, wie beispielsweise 414) und Schreiber („W“, wie beispielsweise 412). Die Kernagenten sind dafür verantwortlich, den AE-Key zu bewahren und diesen Schlüssel Lesern und Schreibern bereitzustellen. Somit empfiehlt es sich, die Kerne über mehrere physische Orte oder Rechenzentren zu verteilen, üblicherweise mit einer kleinen Anzahl von Kernagenten an jedem Ort. Die Leser und Schreiber sollten nach Bedarf erstellt werden, um die vorhandene Arbeitslast zu bewältigen. Somit wird davon ausgegangen, dass die Anzahl der Kernagenten gleich und ausgewogen bleibt, während die Leser und Schreiber entsprechend der Arbeitslastcharakteristik schwanken. 4 zeigt ein Beispiel eines empfohlenen Einsatzes von Agenten über 3 verschiedene physische Orte 420, 422, 424.
  • Die Ausgestaltung der Ausführungsform versucht, in den Agentenenklaven durchgeführte Aktionen zu minimieren und Verantwortlichkeiten wann immer möglich auf nicht sichere Berechnungsknoten zu übertragen. Der Speicher 430 ist ein gutes Beispiel dafür, bei dem die Agenten die verschlüsselten Daten in den gemeinsam genutzten Speicher schreiben, der Verfügbarkeit und Zuverlässigkeit über die verschiedenen Einsatzorte hinweg bietet. Dies kann Objektspeicher oder ein Clusterdateisystem mit integrierter Replikation, eine NoSQL-Datenbank oder eine Standarddatenbank mit Replikation sein.
  • Der Attestation Service (Bestätigungsdienst) 440 ist ein Vermittler zwischen dem Enklavencode und den verschiedenen Entitäten in dem System sowie dem Intel™ Attestation Service (IAS™), wo die SGX™-Hardwareüberprüfung eigentlich durchgeführt wird. Die Ausgestaltung der Ausführungsform macht es erforderlich, dass, sobald eine Enklave erstellt ist, eine Fernbestätigung an ihr durchgeführt wird, die einen öffentlich überprüfbaren Bericht (der die durch den Wert von MRENCLAVE dargestellte Enklavenidentität enthält) und die bestimmten öffentlichen Schlüssel der Enklave zur Authentifizierung und Übertragung erzeugt. Sobald dieser überprüfte Bericht öffentlich gemacht wird, dient er verschiedenen Entitäten als Mittel, um die Gültigkeit der Enklave zu überprüfen und neue sichere Übertragungskanäle damit zu erstellen.
  • Das Management 450 ist für die Orchestrierung des ganzen Clusters zuständig, darunter die Erstellung (und Stilllegung) der Agentenknoten sowohl für die anfängliche Konzeption des Clusters als auch für die Skalierung des Clusters hinsichtlich Verfügbarkeit und Dauerhaftigkeit. Es gibt zwei wesentliche Unterkomponenten, die das Management 450 bilden: Die Unterkomponente Orchestrator 452 ist für die Steuerung der eigentlichen Operationen zuständig, darunter die Erstellung neuer Agenten und die Stilllegung von redundanten oder nicht funktionierenden Agenten. Obgleich diese Operationen manuell gehandhabt werden können, ist in der Ausführungsform ein automatisierter DevOps-Mechanismus in den Agenten ausgeführt. Sobald neue Agenten erstellt sind, werden sie erst voll funktionsfähig, wenn sie von mehr als einem einzigen Administrator genehmigt wurden und eingetragen sind. Die Eintragung erfolgt in der zweiten Unterkomponente - dem Bulletin-Board 454, bei dem es sich um eine authentifizierte Registry handelt, die als der definitive Zustand des Clusters dient. Diese Agenteninformationen in dem Bulletin-Board 454 werden zur Nutzung sowohl durch öffentliche Clients als auch durch die eigentlichen Agentenenklaven veröffentlicht. Zu den wesentlichen Daten in dem Bulletin-Board 454 gehören die Clusterkonfiguration, darunter eine Liste der verschiedenen Agenten, ihre Rollen, öffentliche Schlüssel und Bestätigungsberichte.
  • Client Identity Management (IdM) 460 ist eine Verwaltungskomponente, die sich mit der Frage befasst, wie IT-Organisationen Benutzeridentitäten und ihre Zugriffsrechte definieren. In unserem System ist die IdM 460 dafür verantwortlich, Client-Entitäten zu definieren und zu definieren, welche Berechtigungen oder Zugriffsrechte eine Entität besitzt. In dem Anwendungsfall mit der biometrischen DB können Clients Grenzkontrollpersonal oder - kioske sein. In einem zugriffskontrollorientierten Anwendungsfall wie bei den Gesundheitsdienstleistungen könnten dies die Berechtigungsnachweise von Mitarbeitern im Gesundheitswesen zusammen mit einer strengen Richtlinie, welche Informationen jeder Mitarbeiter berechtigterweise abrufen darf, sein. Die Rolle von Lesern und Schreibern besteht darin, die von der IdM 460 angegebenen Richtlinien durchzusetzen. Man beachte, dass die IdM 460 in einem solchen Szenario ein schwaches Glied in der Kette wird und anfällig für Angriffe sein kann. Die Ausgestaltung der Ausführungsform versucht, eine Situation zu schaffen, in der, selbst wenn ein Administrator über die Werkzeuge verfügt, um frei auf Daten zuzugreifen, dieser Datenzugriff nicht unentdeckt bleibt und es zumindest eine Protokollaufzeichnung darüber gibt.
  • In der Einstellung kann man zusätzliche Maßnahmen ergreifen, um die IdM 460 zu schützen. Zum Beispiel: In Fällen, in denen die Liste der Clients und Eigenschaften nicht sehr dynamisch ist, können sie den Agenten auf sichere Weise bereitgestellt und dort vor ihrer Verwendung geprüft werden. Auch können einige wichtige Berechtigungsnachweise fest in den Agentencode codiert werden, um eine Manipulation dieser Informationen zu verhindern. Schließlich können einige feste Regeln eingeführt und immer durchgesetzt werden, zum Beispiel, um die Datenmenge, die ein Einzelner an einem einzigen Tag entnehmen kann, fest zu begrenzen (und auffälliges Verhalten durch ansonsten privilegierte Benutzer zu kennzeichnen).
  • Die Clients 470 sind die Benutzer der Daten, die durch die Ausführungsform verwaltet werden (z.B. die Grenzkontrollkioske oder die Ärzte/Labore in dem Gesundheitswesen-Szenario). Die Clients 470 interagieren mit den Lesern und Schreibern über einen sicheren Übertragungskanal (z.B. Secure Sockets Layer (SSL)), der auf den öffentlichen Schlüsseln des Agenten beruht. Es gibt keine Beschränkung dahingehend, wie sie eingesetzt werden, auf welchem System und in welcher Sprache sie ausgeführt werden.
  • In einem in Ausführung befindlichen Cluster werden die Clients 470 von Leser- und Schreiberagenten (z.B. 414, 412) bedient, wobei auf eine Liste dieser Agenten über das Bulletin-Board 454 zugegriffen werden kann. Ein Client, der die Identität des Lesers/Schreibers näher überprüfen möchte (anstatt dem Bulletin-Board 454 zu vertrauen), kann dies tun, indem er den Bestätigungsbericht der entsprechenden Enklave überprüft, der auf dem Bulletin-Board 454 veröffentlicht wird. Die Clients 470 öffnen dann eine SSL-Sitzung (oder einen alternativen sicheren Übertragungskanal) mit einem Leser/Schreiber und senden darüber ihre Eingabe. Die Agenten bestehen aus einem sicheren und einem unsicheren Teil. Der unsichere Teil, der als Standardprozess ausgeführt wird, wickelt alle Übertragungen mit dem sicheren Teil ab, der in einer Enklave ausgeführt wird. Bei jeder Interaktion mit einem Client besteht der erste Schritt in der Überprüfung, ob dieser Client über ausreichend Berechtigungen für die Durchführung der erforderlichen Aufgabe verfügt. Diese Überprüfung beruht auf Informationen aus der IdM 460.
  • Sobald Berechtigungen festgelegt wurden, kann der Leser oder Schreiber seine jeweiligen Aufgaben durchführen und eine Antwort über den sicheren Kanal zurückschicken. Man beachte, dass die Antwortlogik ziemlich komplex sein und differenzierte Zugriffssteuerungsrichtlinien enthalten kann. Zum Beispiel kann ein Leser nur auf X-Abfragen (für einen Parameter X) oder nur, wenn eine datenabhängige Rolle erfüllt ist, antworten.
  • Leser und Schreiber werden von dem Orchestrator 452 nach Bedarf erzeugt. Sie werden bestätigt und in das Bulletin-Board 454 eingefügt. Sobald sie im Bulletin-Board 454 sichtbar sind, werden sie gestartet, ihre Rolle wird gemäß dem Bulletin-Board 454 überprüft und sie empfangen den geheimen Schlüssel, AE-Key, von einem der Kernagenten (z.B. 410). Während der Initialisierung speichern sie ein Zeitlimit, das ihre Zeit-Leasedauer definiert (hierfür kann die im Intel™ SGX™ SDK bereitgestellte sgx_get_trusted_time-Funktion verwendet werden). Leser und Schreiber sind zeitbegrenzt und nach Ablauf ihrer Leasedauer sollten sie sich entweder selbst zerstören (und den AE-Key löschen) oder ihre Leasedauer erneuern. Im Allgemeinen sollte die Erneuerung der Leasedauer eines Lesers von dem unsicheren Teil eines Agenten gesteuert werden, da der sichere Teil passiv ist und keine taktbasierten Operationen steuern kann. Da diesem Code jedoch nicht vertraut werden kann, fügt die Ausführungsform einen Leasedauer-Prüfschritt in dem Anforderungsbediencode eines Clients hinzu, mittels dem die Enklave den lokalen Takt prüft, um festzustellen, ob ihre Leasedauer abgelaufen ist, und weitere Anforderungen, sofern vorhanden, abweist. Wenn der unsichere Teil korrekt arbeitet, weist eine Enklave Abfragen aufgrund von Zeitbeschränkungen nicht zurück. Es gibt mehrere Optionen, das Erneuern einer Zeit-Leasedauer auszuführen, wobei die einfachste Option die ist, in dem Verwaltungs-Bulletin-Board zu prüfen, ob der Leser/Schreiber-Agent immer noch gültig ist, und, wenn ja, eine neue Leasedauer in dem sicheren Teil des Agenten zu konfigurieren.
  • Die Konzeption eines Clusters ist eine der gefährdetsten Phasen, anfällig für verschiedene Angriffe wie beispielsweise das Einschleusen von fehlerhaftem Code, das Erstellen von aufgespaltenen Clustern oder Schattenenklaven. Aufgrund dieser Empfindlichkeit folgt die Ausführungsform bei der Cluster-Konzeption einem vorsichtigen Ansatz, bei dem nur eine vollkommen erfolgreiche Konfiguration akzeptabel ist und jedweder Fehler zu einem vollständigen Abbruch des Prozesses und einem kompletten Neustart führt. Das Cluster geht nur für Schreib- und Leseoperationen in Betrieb und wird mit Daten gefüllt, nachdem dieser Prozess abgeschlossen ist und von dem führenden Kernagenten überprüft wurde. Anstatt einen komplexen Anführerwahl-Code in den Agentenenklaven auszuführen, wird dieser Prozess auf der Verwaltungsebene ausgeführt und in dem Bulletin-Board 454 öffentlich gemacht. Das Management 450 einigt sich auf eine Clusterkonfiguration, die eine Liste der Kernagenten und einen benannten Anführer enthält, und leitet die Konfiguration in den folgenden Phasen ein:
    • (1) Erstellen von Agentenenklaven: Auf jeden Knoten, der einen Agenten hostet, wird der Agentencode hochgeladen und die Enklave wird erzeugt. In dieser Phase erhält der Agent einige wichtige öffentliche Schlüssel, die für seine Fähigkeit, die Informationen, die er nutzen wird, zu überprüfen, entscheidend sind. Insbesondere wird der Intel™ Report Signing Public Key verwendet, um alle Bestätigungsberichte zu überprüfen, und der öffentliche Schlüssel des Managements 450 wird verwendet, um aus dem Verwaltungs-Bulletin-Board 454 gelesene Informationen zu überprüfen.
    • (2) Versiegelung und Bestätigung von Agenten: Sobald die Enklaven erzeugt werden, besteht der erste Schritt darin, eine standardmäßig Versiegelungs- und Bestätigungsphase zu beginnen. In dieser Phase wird ein Bericht erstellt, der eine Prüfung der Agentenenklave durch den Bestätigungsdienst von Intel enthält. Diese Phase wird von dem Attestation Service 440 verwaltet. Die erzeugten Berichte enthalten den Messwert des Codes des Agenten und eine Verschränkung der Enklave mit ihrem neu erzeugten öffentlichen Schlüssel. Dieser öffentliche Schlüssel ist das Mittel für den gesamten externen Datenaustausch mit dem Agenten (sowohl für die Verschlüsselung des Datenaustauschs als auch für seine Authentifizierung). Als Teil der Bestätigungsphase ist es für die Agentenenklave erforderlich, einen Messwert ihres eigenen Codes zu erstellen. Dieser Schritt wird auch verwendet, um den Messwert des Agenten (mit AE - MR bezeichnet) zu erfassen, der später zur Überprüfung der anderen Agenten in einer beliebigen zukünftigen Interaktion verwendet wird.
    • (3) Füllen des Verwaltungs-Bulletin-Boards: Das Management 450 kann nun sein Bulletin-Board 454 konfigurieren und es mit der Liste aller Agenten, die das Cluster bilden, füllen. Jeder Eintrag sollte die Rolle des Agenten (Kern/Leser/Schreiber), seine IP-Adresse, seinen öffentlichen Schlüssel und einen vollständigen Bestätigungsbericht enthalten, der den Code-Messwert des Agenten und seinen öffentlichen Schlüssel verschränkt.
    • (4) Agenteninitialisierung: Die verschiedenen Agenten können nun mit der Ansicht des Clusters initialisiert werden. Dies geschieht, indem die Clusterliste aus dem Bulletin-Board 454 gelesen wird (und die Gültigkeit der Liste überprüft wird). Dies ist das Mittel, mit dem die Agenten ihre jeweilige Rolle in dem Cluster übernehmen können.
    • (5) Handshake- und Schlüsselerstellungsphase der Kernagenten: In dieser Phase erzeugt der benannte führende Kernagent den Hauptschlüssel (AE-Key). Die restlichen Kernagenten sollten den führenden Agenten kontaktieren und unter Verwendung des nachstehend erörterten Core-to-Agent-Schlüsselübergabeprotokolls AK-Key abrufen. Aufgrund der Empfindlichkeit der Konfigurationsphase und als ein Mittel, um verschiedene Angriffe, aufgespaltene Cluster zu erstellen, zu vermeiden, bestätigt der führende Kernagent den Erfolg dieses Schrittes nur, wenn er AE-Key erfolgreich an alle anderen Kernagenten (alternativ an einen vorher festgelegten Schwellenwert der Kernagenten) übergibt. Falls dies nicht innerhalb eines bestimmten Zeitschwellenwerts stattfindet, wird der Prozess abgebrochen und vom Schritt 1 aus neu gestartet. Ein erfolgreicher Prozess endet andererseits damit, dass der führende Kernagent eine „read to go“-Nachricht erzeugt und sie auf dem Bulletin-Board 454 veröffentlicht (diese Nachricht kann unter Verwendung des öffentlichen Schlüssels des führenden Kernagenten überprüft werden). Erst nachdem diese Nachricht veröffentlicht wurde, wird das Cluster für E/A-Operationen aktiv. Man beachte, dass die Rolle des führenden Kernagenten nur für das Starten eines neuen Clusters relevant ist und ein Fehler des führenden Kernknotens (entweder vorübergehend oder dauerhaft) nur für einen kurzen Zeitzyklus ein Problem darstellt. Ein solcher Fehler führt dazu, dass der Prozess abgebrochen und mit einem neuen Satz von Agenten gestartet wird.
    • (6) Konfiguration von Schreiber- und Leser-Agenten: Sobald der Kern des Clusters gesetzt ist, kann dieselbe Handshake- und Schlüsselbereitstellung zwischen Schreiber- und Leser-Agenten sowie Kernagenten erfolgen. Diese Interaktion folgt demselben Protokoll wie bei dem Core-to-Agent-Schlüsselübergabeprotokoll.
  • Das Core-to-Agent-Schlüsselübergabeprotokoll der Ausführungsform: Wie vorstehend erwähnt wurde, leitet ein neuer Agent eine Anforderung für den AE-Key ein, indem er einen Kernagenten aus dem Bulletin-Board 454 kontaktiert. Üblicherweise kann ein geografisch in der Nähe liegender gewählt werden, diese Wahl und die Einleitung der Übergabe erfolgt durch den unsicheren Teil des Agenten. Der Ablauf des Übergabeprozesses schließt einen gegenseitigen Bestätigungstest der beiden beteiligten Agenten ein. Man beachte, dass die Schlüsselübergabe eine kritische Operation ist und sich nicht auf das Management 450 verlassen kann. Vielmehr stellt ein Kernagent den Schlüssel nur einem Agenten bereit, der genau denselben Code-Messwert wie sein Code hat. Auf diese Weise wird, selbst wenn der neue Agent böswillig erstellt wird, sichergestellt, dass er in einer echten Enklave ausgeführt wird und nur legale Operationen durchführt, ganz gleich, wer seine Erstellung eingeleitet hat und wo sie eingeleitet wurde. Die entgegengesetzte Richtung ist gleichermaßen wichtig, die Sicherstellung, dass eine neue Enklave keinen Schlüssel von einer böswilligen Partei empfängt (die möglicherweise das ganze Cluster mit einem kompromittierten Schlüssel arbeiten lässt).
  • Man beachte, dass der Messwert (MRENCLAVE) eines legalen Agenten den Agenten selbst bekannt sein muss, damit sie in der Lage sind, zu überprüfen, ob sie mit einem ordnungsgemäßen Agenten Daten austauschen. Dieser Messwert kann jedoch nicht fest in den Code codiert werden, da ein beliebiger Teil des Codes in dem Messwert selbst enthalten ist (der Messwert ändert sich, sobald er fest codiert ist). Eine Option, dies zu lösen, besteht darin, den Messwert im Bulletin-Board 454 veröffentlichen zu lassen und ihn kurz vor Beginn der Bestätigung abzulesen (er kann zusammen mit dem öffentlichen Schlüssel zu den Benutzerdaten hinzugefügt werden, so dass er im Bestätigungsbericht der Enklave überprüft werden kann). Bei diesem Verfahren kann man eine Liste von verschiedenen Messwerten haben, einen für den Kernagenten und andere für die Leser- und Schreiberagenten. Das Problem ist, dass man dabei stark von dem Bulletin-Board 454 abhängig ist. Stattdessen nutzt die Ausführungsform eine Lösung, bei der alle Agenten genau denselben Code haben und den Schlüssel nur mit einer Enklave gemeinsam nutzen, die genau denselben Code ausführt. Diese Praxis unterliegt während möglicher Software-Aktualisierungen des Codes Einschränkungen, hat aber einen starken Sicherheitsvorteil, da die Eigenschaft der Schlüsselgeheimhaltung allein von der korrekten Ausführung des Codes abhängig ist (die öffentlich überprüft werden kann) und nicht durch eine Kompromittierung des Managements 450 beeinflusst werden kann.
  • Der Orchestrator 452 steuert die Konzeption des Clusters, ist aber auch für den fortlaufenden Betrieb des Clusters zuständig. Er ist für das Hinzufügen von Kernagenten im Falle eines Knotenfehlers und für das Hinzufügen (oder Einstellen des Hinzufügens) von Lesern und Schreibern verantwortlich, um eine hohe Verfügbarkeit des Dienstes bei zunehmender oder abnehmender Arbeitslast sicherzustellen. Eine jede solche Operation erfordert zwei Hauptarten von Aktionen: die erste sind direkte Operationen an dem Agenten, darunter seine Erstellung, das Starten seiner Bestätigung und das Starten seines Betriebs, und die zweite ist seine Eintragung in dem Bulletin-Board 454.
  • Hinsichtlich der betrieblichen Aspekte verwendet die Ausführungsform Dockerized-Enklaven und nutzt Verwaltungswerkzeuge wie beispielsweise Kubernetes™ oder Marathon™. Diese Verwaltungsoperationen können von einer nicht vertrauenswürdigen Entität ausgeführt werden, da die Enklaven keine Aktion beginnen, ohne das Bulletin-Board 454 einzusehen. Somit kann das Fehlverhalten einer Orchestrierungsaktion zu einem Fehler oder einer Zugangsbehinderung (denial of service) führen, beeinflusst jedoch nicht unsere Hauptsicherheitsziele. Bevor sie eingetragen werden, machen neue Einträge die Zustimmung einer Mindestanzahl k von Administratoren erforderlich, wobei kein konfigurierbarer Parameter ist, der von dem Betrieb selbst abhängig ist. Zum Beispiel das Hinzufügen von einem Leser oder Schreiber, die verhältnismäßig häufig sind.
  • Die Rolle des Bulletin-Boards 454 besteht darin, eine zentrale und definitive Liste der Live-Agenten zu bilden, die gerade ausgeführt werden. Das Bulletin-Board 454 ist ein von mehreren Administrator-Entitäten verwalteter verteilter Dienst. Der Dienst sollte die folgenden Haupteigenschaften erreichen: 1) Konsistenz - im Bulletin-Board 454 dargestellte Daten sind für jeden Betrachter gleich. 2) Authentifizierung und Lebendigkeit - vom Bulletin-Board 454 gelesene Daten können nicht gefälscht werden und veraltete Daten können erkannt werden (dies dient zur Vermeidung von Man-in-the-Middle-Angriffen).
  • Die Ausführungsform nutzt zwei alternative Ausführungen für das Bulletin-Board 454.
  • (1) Bulletin-Board-Enklave: Bei dieser Ausführung wird eine spezielle Enklave zur Verwaltung des Bulletin-Boards 454 erstellt. Diese Enklave nimmt neue Einträge von Administratoren auf, prüft ihre Signaturen und trägt sie ein. Sie bedient auch Abfragen von den verschiedenen Komponenten und antwortet mit dem aktuellen definitiven Clusterzustand. Sie signiert die Informationen unter Verwendung eines geheimen Schlüssels, der nur der Bulletin-Board-Enklave bekannt ist. Eine weitere Eigenschaft ist, dass die Bulletin-Board-Enklave leicht ein Prüfprotokoll erzeugen kann, das aus allen Operationen besteht, die auf ihr erschienen sind. Dies stellt sicher, dass ein böswilliger Angreifer einen Agenten nicht eintragen und schnell entfernen kann, ohne bemerkt zu werden.
  • Die Konsistenz-Eigenschaft legt fest, dass nur eine einzige Enklave der Funktionalität des Bulletin-Boards dient. Dies bedeutet, dass im Falle eines dauerhaften Fehlers an dieser Enklave ihr geheimer Schlüssel durch das Management 450 abrufbar sein muss. Da diese Informationen äußerst sensibel sind, kann die Verantwortung für sie an die leitenden Board-Mitglieder übertragen werden (z.B. kann dies eine verhältnismäßig große Gruppe von Administratoren und hochrangigen Führungskräften sein). Nach der Konzeption des Clusters wird die Bulletin-Board-Enklave erstellt und ausgeführt. Ihr erster Schritt besteht in der Erzeugung eines aus öffentlichem und geheimem Schlüssel bestehenden Schlüsselpaares für das Bulletin-Board 454. Der öffentliche Schlüssel wird veröffentlicht und dann fest in den Code des Agenten codiert. Aus dem geheimen Schlüssel erstellt die Enklave geheime Teile für ein ℓ-aus-n-Geheimnisteilungsschema (z.B. Shamir-Geheimnisteilung) und sendet die Teile über sichere Kanäle an eine Liste der führenden Board-Mitglieder (die Liste ist fest in die Bulletin-Board-Enklave codiert). Diese Informationen werden auch von der Bulletin-Board-Enklave als ein Mittel zur Behebung eines vorübergehenden Fehlers versiegelt. Im Falle eines dauerhaften Fehlers der Maschine, die die Enklave ausführt, wird eine neue Bulletin-Board-Enklave erstellt, anstatt jedoch einen neuen Schlüssel zu erzeugen, nimmt sie eine Neuerzeugung des Schlüssels aus den von den führenden Board-Mitgliedern gesendeten Teilen vor.
  • (2) Practical Byzantine Fault Tolerant (PBFT): Eine alternative Ausführungsform des Bulletin-Boards 454 beruht auf der Ausführung eines Practical Byzantine Fault Tolerant-(PBFT-)Clusters, das ein verteiltes fehlertolerantes Schema ausführt. Dieser Dienst wurde im Projekt „Fabric of Hyperledger“ als Teil des Open-Source-Versuchs für Blockchain-Technologien ausgeführt. Das Erfordernis für Fehlertoleranz gegenüber byzantinischen Fehlern im Gegensatz zu regulären Fehlern geht auf das vorhandene Bedrohungsmodell zurück: die Möglichkeit, dass ein skrupelloser Administrator das Bulletin-Board durch das Einschleusen von böswilligen Nachrichten beeinflussen könnte. Man beachte, dass das Bulletin-Board 454 keine große Verkehrslast bewältigen muss und auf einem kleinen Cluster beruhen kann, und folglich sind die Performanzeinschränkungen beim Ausführen eines umfangreichen PBFT unwesentlich. Bei dieser Ausführungsform sind Übertragungen etwas komplexer, sie hat aber angesichts eines Fehlers oder eines Versuchs, eine Zugangsbehinderung zu verursachen, den Vorteil einer hohen Verfügbarkeit.
  • In beiden Fällen kann die Lebendigkeit von Daten getestet werden, indem das Bulletin-Board 454 mit einer Nonce abgefragt wird und man die Enklave oder das PBFT die Nonce in die Signatur aufnehmen lässt.
  • Das Unveränderliche an der Ausgestaltung der Ausführungsform ist, dass die einzigen Male, die AE-Key je übertragen wird, eine Übertragung an Enklaven mit genau demselben Agentencode ist, eine Tatsache, die der Schlüsselgeheimhaltungsgarantie der Ausführungsform zugrunde liegt. Dies macht Code-Aktualisierungen problematisch und erfordert einen speziellen Mechanismus für den Umgang mit solchen Szenarien. Anstatt eine Prüfung durch eine kleine Anzahl von Administratoren erforderlich zu machen, ist in einem solch sensiblen Fall eine Zustimmung von den leitenden Board-Mitgliedern notwendig (in Abhängigkeit vom Anwendungsfall kann dies ein Board von hochrangigen Einzelpersonen sein). Öffentliche Aktualisierungsschlüssel zur Überprüfung eines solchen Prozesses werden während der Codeerstellung fest codiert. Sobald eine Aktualisierung begonnen hat, wird der Messwert der neuen Codebasis im Bulletin-Board 454 veröffentlicht und der alte Satz der Kern-Enklaven übergibt AE-Key den neuen Kernen, solange eine Prüfung des neuen MRENCLAVE zweckmäßig ist. Am Ende des Prozesses werden die alten Enklaven stillgelegt.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert 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 ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene 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, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines 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 ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder 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 der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der 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 Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die hierin verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben, und sollte nicht als Einschränkung der Erfindung verstanden werden. Die Singular-Formen „ein“, „eine“ und „der“, „die“, „das“ sollen in der Verwendung hierin auch die Pluralformen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Es wird des Weiteren darauf hingewiesen, dass die Begriffe „aufweist“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente von allen Mitteln beziehungsweise Schritt-plus-Funktion-Elementen (step plus function elements) in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedwede Aktion zur Ausführung der Funktion in Verbindung mit weiteren beanspruchten Elementen, die im Einzelnen beansprucht werden, mit einschließen. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, soll aber nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Viele Modifikationen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.

Claims (20)

  1. System, das aufweist: ein Cluster von sicheren Ausführungsplattformen (SEPs), die Anschlussmöglichkeiten an einen Datenspeicher haben, wobei jede SEP des Clusters so konfiguriert wird, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung eines Schlüssels bewahrt; wobei der Schlüssel unter den SEPs des Clusters gemeinsam genutzt wird, wobei der Schlüssel von dem Cluster oder einem Teil davon automatisch erzeugt wird und einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung steht; wobei der Datenspeicher verschlüsselte Daten aufbewahrt, die unter Verwendung des Schlüssels verschlüsselt werden; wobei eine erste SEP des Clusters so konfiguriert wird, dass sie Client-Daten unter Verwendung des Schlüssels verschlüsselt, um verschlüsselte Client-Daten zu erhalten, und die verschlüsselten Client-Daten in dem Datenspeicher speichert; und wobei eine zweite SEP des Clusters so konfiguriert wird, dass sie verschlüsselte gespeicherte Daten aus dem Datenspeicher abruft, die verschlüsselten gespeicherten Daten unter Verwendung des Schlüssels entschlüsselt, um eine nicht verschlüsselte Form der verschlüsselten gespeicherten Daten zu erhalten.
  2. System nach Anspruch 1, wobei die zweite SEP so konfiguriert wird, dass sie die verschlüsselten gespeicherten Daten als Reaktion auf eine Abfrage von einer Client-Einheit abruft, wobei die nicht verschlüsselte Form der verschlüsselten gespeicherten Daten genutzt wird, um eine Antwort auf die Abfrage bereitzustellen, wodurch die Abfrage erfüllt wird, ohne dass die Client-Einheit auf die Speicherdaten zugreift.
  3. System nach Anspruch 1, wobei die erste SEP und die zweite SEP eine gleiche SEP sind.
  4. System nach Anspruch 1, wobei die erste SEP Nur-Schreib-Zugriffsberechtigung auf den Datenspeicher hat und wobei die zweite SEP Nur-Lese-Zugriffsberechtigung auf den Datenspeicher hat.
  5. System nach Anspruch 1, wobei eine dritte SEP des Clusters so konfiguriert wird, dass sie eine neue SEP zu dem Cluster hinzufügt, wobei die dritte SEP so konfiguriert wird, dass sie den Schlüssel über einen sicheren Übertragungskanal an die neue SEP weiterleitet.
  6. System nach Anspruch 5, wobei die dritte SEP so konfiguriert wird, dass sie die Richtigkeit eines Codes und einer Plattform der neuen SEP unter Verwendung eines Bestätigungsmechanismus überprüft, bevor sie den Schlüssel über einen sicheren Kanal weiterleitet.
  7. System nach Anspruch 5, wobei die neue SEP so konfiguriert wird, dass sie die Richtigkeit eines Codes und einer Plattform der dritten SEP unter Verwendung eines Bestätigungsmechanismus überprüft, bevor sie den Schlüssel von der dritten SEP akzeptiert.
  8. System nach Anspruch 5, wobei die dritte SEP so konfiguriert wird, dass sie ein Bulletin-Board beachtet, um zu überprüfen, ob die neue SEP den Schlüssel empfangen darf, bevor sie den Schlüssel über einen sicheren Kanal weiterleitet.
  9. System nach Anspruch 5, wobei das Bulletin-Board unter Verwendung eines verteilten fehlertoleranten Schemas ausgeführt wird.
  10. System nach Anspruch 5, wobei das Bulletin-Board unter Verwendung einer eigens dafür vorgesehenen SEP ausgeführt wird.
  11. System nach Anspruch 5, wobei die dritte SEP so konfiguriert wird, dass sie überprüft, ob beachtete Informationen in dem Bulletin-Board von einer Anzahl von Administratoren signiert sind, die größer als ein Schwellenwert ist.
  12. System nach Anspruch 4, wobei die neue SEP an der Weiterleitung des Schlüssels gehindert wird.
  13. System nach Anspruch 4, wobei die dritte SEP so konfiguriert wird, dass sie eine vorher festgelegte Lebensdauer für die neue SEP setzt, wobei die neue SEP so konfiguriert wird, dass sie am Ende der vorher festgelegten Lebensdauer aus dem Cluster entfernt wird.
  14. System nach Anspruch 4, wobei die dritte SEP so konfiguriert wird, dass sie als Reaktion darauf, dass eine Anzahl von SEPs in dem Cluster einen vorher festgelegten Schwellenwert unterschreitet, die neue SEP zu dem Cluster hinzufügt.
  15. System nach Anspruch 4, wobei die dritte SEP so konfiguriert wird, dass sie als Reaktion darauf, dass die erste SEP oder die zweite SEP betriebsunfähig werden, die neue SEP zu dem Cluster hinzufügt, wodurch die neue SEP so konfiguriert wird, dass sie eine betriebsunfähige SEP ersetzt.
  16. System nach Anspruch 4, wobei es sich bei der dritten SEP um eine SEP handelt, die gleich der ersten SEP oder der zweiten SEP ist.
  17. System nach Anspruch 1, wobei der Schlüssel von einer dritten SEP des Clusters erzeugt wird, wobei die dritte SEP so konfiguriert wird, dass sie den Schlüssel an andere SEPs in dem Cluster weitergibt.
  18. System nach Anspruch 1, wobei das Cluster so konfiguriert wird, dass es als Reaktion auf die Erzeugung des Schlüssels ein Konsensprotokoll einsetzt, um sich auf den Schlüssel zu einigen.
  19. System nach Anspruch 1, wobei ein Administrator des Clusters oder des Datenspeichers nicht über den Schlüssel verfügt.
  20. Computerprogrammprodukt, das ein nicht flüchtiges, durch einen Computer lesbares Speichermedium aufweist, das durch eine sichere Ausführungsplattform (SEP) auszuführende Anweisungen innerhalb einer computerunterstützten Umgebung aufbewahrt, wobei die computerunterstützte Umgebung ein Cluster von SEPs aufweist, die Anschlussmöglichkeiten an einen Datenspeicher haben, wobei der Datenspeicher verschlüsselte Daten aufbewahrt, die unter Verwendung eines Schlüssels verschlüsselt werden, wobei der Schlüssel unter den SEPs des Clusters gemeinsam genutzt wird, wobei der Schlüssel von dem Cluster oder einem Teil davon automatisch erzeugt wird und einer beliebigen Nicht-Cluster-Entität nicht zur Verfügung steht, wobei das Cluster die SEP aufweist, wobei jede SEP des Clusters so konfiguriert wird, dass sie die Vertraulichkeit von Daten während deren Verarbeitung unter Verwendung des Schlüssels bewahrt, wobei die Anweisungen, wenn sie von der SEP ausgeführt werden, die SEP veranlassen, die Schritte durchzuführen: als Reaktion auf den Empfang von ersten Client-Daten über einen sicheren Übertragungskanal von einer ersten Client-Einheit Verschlüsseln der ersten Client-Daten unter Verwendung des Schlüssels, um verschlüsselte Client-Daten zu erhalten, und Speichern der verschlüsselten Client-Daten in dem Datenspeicher, wodurch die in dem Datenspeicher aufbewahrten ersten Client-Daten durch eine beliebige nicht computerunterstützte Einheit nicht beschaffbar sind; als Reaktion auf den Empfang einer Zugriffsabfrage von einer zweiten Client-Einheit, die Zugriff auf aufbewahrte Daten benötigt, Abrufen einer verschlüsselten Form der aufbewahrten Daten aus dem Datenspeicher, Entschlüsseln der verschlüsselten Form unter Verwendung des Schlüssels, um die zweiten Client-Daten zu erhalten, und Bereitstellen einer Antwort an die zweite Client-Einheit über einen sicheren Übertragungskanal, wobei die Antwort auf den zweiten Client-Daten beruht.
DE112018003077.6T 2017-07-18 2018-07-05 Ein cluster von sicheren ausführungsplattformen Pending DE112018003077T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/652,314 US10567359B2 (en) 2017-07-18 2017-07-18 Cluster of secure execution platforms
US15/652,314 2017-07-18
PCT/IB2018/054958 WO2019016641A1 (en) 2017-07-18 2018-07-05 CLUSTER OF SECURE EXECUTION PLATFORMS

Publications (1)

Publication Number Publication Date
DE112018003077T5 true DE112018003077T5 (de) 2020-03-05

Family

ID=65016362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018003077.6T Pending DE112018003077T5 (de) 2017-07-18 2018-07-05 Ein cluster von sicheren ausführungsplattformen

Country Status (6)

Country Link
US (2) US10567359B2 (de)
JP (1) JP7015904B2 (de)
CN (1) CN110892691B (de)
DE (1) DE112018003077T5 (de)
GB (1) GB2579490B (de)
WO (1) WO2019016641A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567359B2 (en) * 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US20190095910A1 (en) * 2017-09-25 2019-03-28 Intel Corporation Secure cryptocurrency exchange
US11025493B2 (en) * 2017-11-14 2021-06-01 Volkan Sevindik Smallcell network deployment, optimization and management based on blockchain technology
CN112005230B (zh) 2018-04-30 2024-05-03 谷歌有限责任公司 通过统一的安全区接口管理安全区创建
EP4155996A1 (de) * 2018-04-30 2023-03-29 Google LLC Enklavewechselwirkungen
EP3776323A1 (de) 2018-04-30 2021-02-17 Google LLC Sichere zusammenarbeit zwischen prozessoren und verarbeitungsbeschleunigern in enklaven
US10904322B2 (en) * 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US11218313B1 (en) * 2018-12-27 2022-01-04 Equinix, Inc. Decentralized verification of devices using distributed ledger technology
CN110800258B (zh) 2019-03-18 2022-04-22 创新先进技术有限公司 用于结束视图更改协议的系统和方法
SG11201908887XA (en) 2019-03-18 2019-10-30 Alibaba Group Holding Ltd System and method for ending view change protocol
JP2020522034A (ja) 2019-03-26 2020-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 複数の鍵ペア署名を使用したプログラム実行およびデータ証明スキーム
KR102194077B1 (ko) * 2019-04-26 2020-12-23 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 신뢰 실행 환경을 위한 분산 키 관리
US11044080B2 (en) * 2019-06-24 2021-06-22 International Business Machines Corporation Cryptographic key orchestration between trusted containers in a multi-node cluster
US11436517B2 (en) 2019-08-26 2022-09-06 Bank Of America Corporation Quantum-tunneling-enabled device case
CN110727731B (zh) 2019-09-05 2021-12-21 创新先进技术有限公司 区块链网络中加入节点的方法和区块链系统
CN110730204B (zh) 2019-09-05 2022-09-02 创新先进技术有限公司 区块链网络中删除节点的方法和区块链系统
US11569989B2 (en) 2019-10-23 2023-01-31 Bank Of America Corporation Blockchain system for hardening quantum computing security
US10997521B1 (en) * 2019-10-23 2021-05-04 Bank Of America Corporation Quantum-resilient computer cluster
US11251946B2 (en) 2019-10-31 2022-02-15 Bank Of America Corporation Quantum key synchronization within a server-cluster
US11468356B2 (en) 2019-10-31 2022-10-11 Bank Of America Corporation Matrix-based quantum-resilient server-cluster
CN111092727B (zh) * 2020-03-18 2020-07-17 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
US11308234B1 (en) * 2020-04-02 2022-04-19 Wells Fargo Bank, N.A. Methods for protecting data
WO2021213691A1 (en) * 2020-04-23 2021-10-28 NEC Laboratories Europe GmbH Tee-based mining pools for pow-cryptocurrencies
SG11202103081RA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Distributed storage of custom clearance data
SG11202103063PA (en) * 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Managing user authorizations for blockchain-based custom clearance services
WO2020169127A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. User management of blockchain-based custom clearance service platform
CN111868725B (zh) 2020-06-08 2024-05-24 支付宝实验室(新加坡)有限公司 基于区块链处理进口海关清关数据
SG11202102583UA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based document registration for custom clearance
CN111989663A (zh) 2020-06-08 2020-11-24 支付宝实验室(新加坡)有限公司 基于区块链的智能合约池
US11601262B2 (en) * 2020-10-15 2023-03-07 Dell Products L.P. Distributed key management system
US11650800B2 (en) * 2020-12-24 2023-05-16 Intel Corporation Attestation of operations by tool chains
CN113065134B (zh) * 2020-12-28 2024-03-12 上海零数众合信息科技有限公司 一种区块链代码和数据安全计算方法
US12021861B2 (en) * 2021-01-04 2024-06-25 Bank Of America Corporation Identity verification through multisystem cooperation

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
EP1385311B1 (de) * 2002-07-23 2008-05-28 Matsushita Electric Industrial Co., Ltd. Endgerät, Kommunikationsmethode und -system zur Authentifizierung von Benutzern in einer Benutzergruppe im Netzwerk
JP4610169B2 (ja) * 2002-07-23 2011-01-12 パナソニック株式会社 通信方法および通信システム
US7231664B2 (en) * 2002-09-04 2007-06-12 Secure Computing Corporation System and method for transmitting and receiving secure data in a virtual private group
US7444514B2 (en) * 2003-10-15 2008-10-28 International Business Machines Corporation Group key exchanges with failures
US8473754B2 (en) 2006-02-22 2013-06-25 Virginia Tech Intellectual Properties, Inc. Hardware-facilitated secure software execution environment
US7818567B2 (en) * 2006-09-27 2010-10-19 Lenovo (Singapore) Pte. Ltd. Method for protecting security accounts manager (SAM) files within windows operating systems
US8767964B2 (en) * 2008-03-26 2014-07-01 International Business Machines Corporation Secure communications in computer cluster systems
US8230253B2 (en) * 2008-07-21 2012-07-24 International Business Machines Corporation Byzantine fault tolerant dynamic quorum using a trusted platform module
US9317708B2 (en) 2008-08-14 2016-04-19 Teleputers, Llc Hardware trust anchors in SP-enabled processors
WO2010140194A1 (ja) 2009-06-05 2010-12-09 富士通株式会社 情報処理システムの管理方法、情報処理システム、記録媒体、管理プログラム
JP2013528872A (ja) 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
CN102761521B (zh) * 2011-04-26 2016-08-31 上海格尔软件股份有限公司 云安全存储及共享服务平台
US9129283B1 (en) * 2012-01-10 2015-09-08 Intuit Inc. Accessing confidential data securely using a trusted network of mobile devices
US20140052877A1 (en) * 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9143442B2 (en) * 2012-12-12 2015-09-22 Cisco Technology, Inc. Flexible and scalable virtual network segment pruning
US9747456B2 (en) 2013-03-15 2017-08-29 Microsoft Technology Licensing, Llc Secure query processing over encrypted data
GB2515047B (en) 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9245140B2 (en) * 2013-11-15 2016-01-26 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
US9722945B2 (en) * 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources
JP6277827B2 (ja) 2014-03-31 2018-02-14 富士通株式会社 情報処理装置、スケール管理方法およびプログラム
US9613190B2 (en) * 2014-04-23 2017-04-04 Intralinks, Inc. Systems and methods of secure data exchange
US9424063B2 (en) * 2014-04-29 2016-08-23 Vmware, Inc. Method and system for generating remediation options within a cluster of host computers that run virtual machines
US11087006B2 (en) * 2014-06-30 2021-08-10 Nicira, Inc. Method and apparatus for encrypting messages based on encryption group association
US10212585B2 (en) 2014-07-03 2019-02-19 Huawei Technologies Co., Ltd. System and method for wireless network access protection and security architecture
US9705849B2 (en) 2014-09-30 2017-07-11 Intel Corporation Technologies for distributed detection of security anomalies
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9733849B2 (en) * 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
US20180107503A1 (en) 2015-05-07 2018-04-19 Nec Corporation Computer procurement predicting device, computer procurement predicting method, and recording medium
US20160350534A1 (en) * 2015-05-29 2016-12-01 Intel Corporation System, apparatus and method for controlling multiple trusted execution environments in a system
US10387181B2 (en) * 2016-01-12 2019-08-20 International Business Machines Corporation Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment
US10708067B2 (en) * 2016-06-18 2020-07-07 Intel Corporation Platform attestation and registration for servers
KR101704540B1 (ko) * 2016-08-03 2017-02-09 성결대학교 산학협력단 M2m 환경의 다중 디바이스 데이터 공유를 위한 그룹키 관리 방법
US10437985B2 (en) * 2016-10-01 2019-10-08 Intel Corporation Using a second device to enroll a secure application enclave
CN106778326A (zh) * 2016-11-28 2017-05-31 福建升腾资讯有限公司 一种实现移动存储设备保护的方法及系统
CN106682531A (zh) * 2017-01-23 2017-05-17 济南浪潮高新科技投资发展有限公司 一种基于生物信息授权的机密数据加密方法
US10740455B2 (en) * 2017-05-11 2020-08-11 Microsoft Technology Licensing, Llc Encave pool management
US10567359B2 (en) * 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms

Also Published As

Publication number Publication date
US20190026234A1 (en) 2019-01-24
CN110892691A (zh) 2020-03-17
US20200053067A1 (en) 2020-02-13
WO2019016641A1 (en) 2019-01-24
JP2020527791A (ja) 2020-09-10
JP7015904B2 (ja) 2022-02-03
US11057361B2 (en) 2021-07-06
GB202001762D0 (en) 2020-03-25
GB2579490B (en) 2022-03-16
CN110892691B (zh) 2022-07-19
GB2579490A (en) 2020-06-24
US10567359B2 (en) 2020-02-18

Similar Documents

Publication Publication Date Title
DE112018003077T5 (de) Ein cluster von sicheren ausführungsplattformen
DE60218615T2 (de) Verfahren und Architektur zur durchdringenden Absicherung von digitalen Gütern
Michalas et al. Security aspects of e-health systems migration to the cloud
DE112015004500T5 (de) Automatisierte Verwaltung von vertraulichen Daten in Cloud-Umgebungen
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112011103580B4 (de) Verfahren, sichere Einheit, System und Computerprogrammprodukt für das sichere Verwalten des Benutzerzugriffs auf ein Dateisystem
DE102009054128A1 (de) Verfahren und Vorrichtung zum Zugriff auf Dateien eines sicheren Fileservers
DE10146361B4 (de) Verteiltes System
Caballero Information security essentials for information technology managers: Protecting mission-critical systems
Himmel et al. Security on distributed systems: Cloud security versus traditional IT
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE112021005862T5 (de) Selbstprüfende blockchain
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
TWI381285B (zh) 電子檔案權限控管系統
EP3373545A1 (de) Sicherheitseinheit insbesondere ein für iot-gerät und verfahren zur ausführung einer oder mehrerer applikationen zum gesicherten datenaustausch mit einem oder mehrere web-dienste bereitstellenden servern
DE112022000963T5 (de) Verbindungsbeständige mehrfaktorauthentifizierung
DE112022003983T5 (de) Berechtigte, sichere datenverschiebung
DE112019003808B4 (de) Zweckspezifische Zugriffssteuerung auf Grundlage einer Datenverschlüsselung
DE112022000340T5 (de) Attributgestützte verschlüsselungsschlüssel als schlüsselmaterial zum authentifizieren und berechtigen von benutzern mit schlüssel-hash-nachrichtenauthentifizierungscode
Dahshan Data security in cloud storage services
Akter et al. Information security in cloud computing

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R084 Declaration of willingness to licence