DE202017106894U1 - System von Enklaven - Google Patents

System von Enklaven Download PDF

Info

Publication number
DE202017106894U1
DE202017106894U1 DE202017106894.3U DE202017106894U DE202017106894U1 DE 202017106894 U1 DE202017106894 U1 DE 202017106894U1 DE 202017106894 U DE202017106894 U DE 202017106894U DE 202017106894 U1 DE202017106894 U1 DE 202017106894U1
Authority
DE
Germany
Prior art keywords
enclave
component
enclaves
slave
root
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.)
Active
Application number
DE202017106894.3U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202017106894U1 publication Critical patent/DE202017106894U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Computerspeichermedium, das Computerprogrammanweisungen umfasst, die, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, auszuführen:
Starten einer Wurzelenklave;
Zugreifen auf ein Enklavenmanifest durch die Wurzelenklave, wobei das Enklavenmanifest für jede von mehreren Komponentenenklaven eine spezielle Rolle für die jeweilige Komponentenenklave spezifiziert; und
Instanziieren jeder der Komponentenenklaven, wobei jede Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen;
wobei die Wurzelenklave und die Komponentenenklaven eine Enklavenhülle bilden.

Description

  • BEANSPRUCHUNG DER PRIORITÄT
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung, laufende Nr. 62/421.905, eingereicht am 14. November 2016, deren gesamter Inhalt hier durch Bezugnahme vollständig mit aufgenommen ist.
  • HINTERGRUND
  • Diese Beschreibung bezieht sich auf die Speicherung und Verarbeitung von Daten in Cloud-Umgebungen.
  • Das Cloud-Computing ist ein netzbasiertes Computing, bei dem typischerweise große Sammlungen von Servern, die in Datenzentren oder "Server-Farmen" untergebracht sind, Computerbetriebsmittel und einen Datenspeicher bereitstellen, wie sie durch entfernte Endanwender benötigt werden. Um die öffentliche Cloud anzuwenden, müssen die Kunden bereit sein, ihre sensiblen Daten und Anwendungen den Cloud-Anbietern anzuvertrauen. Um diese Entscheidung treffen zu können, müssen die Anwender überzeugt werden, dass ihre Daten und ihre Ausführung sicher sind; dass sie vor allen Typen von Angreifern geschützt sind und dass sie schließlich ihre Anwendungen und Daten steuern. Das Vertrauen ist folglich eine der Kernberechtigungen des Cloud-Einsatzes, aber außerdem eine wichtige Überlegung für den Einsatz.
  • Traditionell wurden die vertrauenswürdigen Ausführungsumgebungen erzeugt, um selbstständige Computer und Mobilvorrichtungen zu unterstützen, um eine sichere Ausführung in den isolierten vertrauenswürdigen firmware-basierten Umgebungen zu schaffen. Diese Strategien sind jedoch für die vergrößerte Flexibilität des verteilten Computings unangemessen und entsprechen insbesondere nicht den Zielen und dem Ausmaß der öffentlichen Cloud.
  • In Übereinstimmung mit den Anforderungen des Gebrauchsmustergesetzes sind nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, aber keine Verfahren als das Gebrauchsmuster zu schützen und der Gegenstand des Gebrauchsmusters. Falls in der Beschreibung auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich dazu, die Vorrichtung oder die Vorrichtungen, für die mit den beigefügten Ansprüchen Schutz gesucht wird, zu veranschaulichen.
  • ZUSAMMENFASSUNG
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstands in Verfahren verkörpert sein, die die Handlungen des Startens einer Wurzelenklave; des Zugreifens auf ein Enklavenmanifest durch die Wurzelenklave, wobei das Enklavenmanifest für jede von mehreren Komponentenenklaven eine spezielle Rolle für die jeweilige Komponentenenklave spezifiziert; und des Instanziierens jeder der Komponentenenklaven enthalten, wobei jede Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen; wobei die Wurzelenklave und die Komponentenenklaven eine Enklavenhülle bilden. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sein, um die Handlungen der Verfahren, die in Computerspeichervorrichtungen codiert sind, auszuführen.
  • Ein zweiter innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstands kann in Verfahren verkörpert sein, die die Handlungen des Startens einer ersten Wurzelenklave und erster Komponentenenklaven gemäß einem ersten Manifest; des Startens einer zweiten Wurzelenklave und zweiter Komponentenenklaven gemäß einem zweiten Manifest; des Bereitstellens erster Daten für die ersten Komponentenenklaven; des Bereitstellens zweiter Daten, die von den ersten Daten verschieden sind, für die zweiten Komponentenenklaven enthalten. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sein, um die Handlungen der Verfahren, die in Computerspeichervorrichtungen codiert sind, auszuführen.
  • Mit anderen Worten, dieser zweite innovative Aspekt kann in Verfahren verkörpert sein, die die Handlungen des Startens einer ersten Wurzelenklave; des Zugreifens auf ein erstes Enklavenmanifest durch die erste Wurzelenklave, wobei das erste Enklavenmanifest für jede von mehreren ersten Komponentenenklaven eine spezielle Rolle für die jeweilige erste Komponentenenklave spezifiziert; des Instanziierens jeder der ersten Komponentenenklaven, wobei jede erste Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen; wobei die erste Wurzelenklave und die ersten Komponentenenklaven eine erste Enklavenhülle bilden; des Bereitstellens erster Daten für die ersten Komponentenenklaven; des Startens einer zweiten Wurzelenklave; des Zugreifens auf ein zweites Enklavenmanifest durch die zweite Wurzelenklave, wobei das zweite Enklavenmanifest für jede von mehreren zweiten Komponentenenklaven eine spezielle Rolle für die jeweilige zweite Komponentenenklave spezifiziert; des Instanziierens jeder der zweiten Komponentenenklaven, wobei jede zweite Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen; wobei die zweite Wurzelenklave und die zweiten Komponentenenklaven eine zweite Enklavenhülle bilden; und des Bereitstellens zweiter Daten für die zweiten Komponentenenklaven, wobei die zweiten Daten von den ersten Daten verschieden sind, enthalten.
  • Ein weiterer innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstands kann in Verfahren verkörpert sein, die die Handlungen des Empfangens von mehreren Enklaventeilnehmern eines Schlüsselfragments; des Konstruierens aus den Schlüsselfragmenten eines Master-Schlüssels für eine Rendezvous-Enklave; des Startens der Rendezvous-Enklave unter Verwendung des Master-Schlüssels; und des Ausführens in der Rendezvous-Enklave der Daten von den mehreren Enklaventeilnehmern enthalten. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sein, um die Handlungen der Verfahren, die in Computerspeichervorrichtungen codiert sind, auszuführen.
  • Spezielle Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können implementiert sein, um einen oder mehrere der folgenden Vorteile zu verwirklichen. Ein skalierbares und dynamisches Netz aus vertrauenswürdigen Ausführungsumgebungen behandelt mehrere Anwendungsfälle, die die Geheimnisse der Anwender und einen wachsenden Bedarf, um die Daten und den Code des Anwenders, die in der Cloud ausgeführt werden, zu schützen, beinhalten. Das Netz aus vertrauenswürdigen Ausführungsumgebungen, die als Enklaven bezeichnet werden, kann für seine Vorgängerwurzel und für die Verifizierer einer dritten Partei kryptographisch beweisen, dass es Vertraulichkeit und Integrität bereitstellt. Laufende sensible kleine Ausführungs-Tasks in den Enklaven schaffen ein zusätzliches Niveau des Schutzes, der Elastizität und einer hohen Verfügbarkeit und stellen sicher, dass kritische Entscheidungen nicht durch nicht vertrauenswürdigen Code oder Gegner mit Wurzelprivilegien umgekehrt werden können.
  • Für die Rendezvous-Enklaven verringert das Binden des Codes und der Daten an das verteilte System der Enklaven, die mit der Enklave verbunden sind, die der Kunde steuert, die Komplexität, die für die Herausforderungen des expliziten Schlüsselmanagements für einen Satz vertrauenswürdiger Ausführungsumgebungen erforderlich sein würde.
  • Für Hybrid-Enklaven wird mehreren Anwendungsfällen, die die Geheimnisse der Kunden und den wachsenden Bedarf, um die Daten und den Code der Kunden, die mit den Cloud-Anbietern gemeinsam benutzt werden, zu schützen, beinhalten, durch die Einführung eines skalierbaren Satzes von vertrauenswürdigen Ausführungsumgebungen entsprochen, die als ein Rendezvousort für mehrere nicht vertrauenswürdige Parteien verwendet werden können. Die Enklave kann für ihre Mehrparteien-Teilnehmer kryptographisch nachweisen, dass sie Vertraulichkeit und Integrität bereitstellt. Laufende sensible Ausführungs-Tasks in den Enklaven stellen ein zusätzliches Niveau des Schutzes, der Elastizität und der hohen Verfügbarkeit bereit, um sicherzustellen, dass auf die sensiblen Daten und den sensiblen Code nicht durch nicht vertrauenswürdigen Code oder sogar durch hoch privilegierte Cloud-Insider zugegriffen oder die sensiblen Daten und der sensible Code nicht durch nicht vertrauenswürdigen Code oder sogar durch hoch privilegierte Cloud-Insider herausgefiltert werden können.
  • Die Enklaven können außerdem die Erzeugung kryptographisch signierter oder manipulationsgeschützter Protokolle, die alle Handlungen und Transaktionen ausführlich beschreiben, fördern. Diese Protokolle können als historische Datensätze oder Spurensicherungen bereitgestellt oder verwendet werden.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands sind in den beigefügten Zeichnungen und in der Beschreibung im Folgenden dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine graphische Systemdarstellung einer Enklaven-Hülle.
  • 2 ist ein Zeitdiagramm einer Zwischenenklavenkommunikation.
  • 3 ist eine graphische Systemdarstellung mehrerer Enklaven in einer Hybrid-Cloud.
  • 4 ist ein Ablaufplan eines beispielhaften Prozesses zum Erzeugen mehrerer Enklaven in einer Hybrid-Cloud.
  • 5 ist eine graphische Systemdarstellung einer Rendezvous-Enklave für mehrere Parteien.
  • 6 ist ein Ablaufplan eines beispielhaften Prozesses zum Erzeugen einer Rendezvous-Enklave.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Überblick
  • Gemäß den hier beschriebenen Ausführungsformen werden Verfahren, Systeme und Vorrichtungen einschließlich Computerprogrammen, die in einem Computer-Speichermedium codiert sind, zum Instanziieren und Managen von Systemen geschaffen, die hierarchische Enklaven in einer Cloud-Umgebung verwenden.
  • Eine Enklavenhülle ist eine isolierte und sichere Ausführungsumgebung, in der die Kunden ihre sensiblen Anwendungsnutzdaten ausführen können. Der Code und die Daten, die die Enklavengrenze überqueren, sind verschlüsselt. Die Enklavenhülle fördert eine Vertrauenskette, die in Hardware und/oder Software ermöglicht ist, die öffentliche Schnittstellen bereitstellt, um populäre Anwendungsfälle wie das Hosten einer Zertifizierungsstelle, um Zertifikatsignierungsantworten an die Anrufer auszugeben, oder das Ausführen sensibler Verifikationsentscheidungen im Namen von Authentifizierungs- oder Autorisierungssystemen mit dem Ziel zu ermöglichen, um sicherzustellen, dass der Betrieb und die Entscheidung, die in den isolierten sicheren Ausführungsumgebungen ausgeführt werden, nicht durch nicht berechtigte Entitäten geändert oder entfernt werden können. Die Enklavenhüllen schaffen folglich den Schutz der Vertraulichkeit und der Integrität für den Code und die Daten der Kunden, die in der Cloud ausgeführt werden, gegen unberechtigte Offenbarung und Modifikationen.
  • In einigen Implementierungen stellt eine Enklavenhülle die Vertraulichkeit und die Integrität des Codes und der Daten sicher, wenn sich der Code und die Daten in Ruhe befinden, bevor sie in die Grenzen der Enklaven eintreten und nachdem sie die Grenzen der Enklaven verlassen haben. Die Integrität der Enklaven kann aus der Ferne verifiziert werden, wie der Code und die Daten, die innerhalb der Enklaven ausgeführt werden, aus der Ferne verifiziert werden können. Um eine hohe Verfügbarkeit und Leistung ihrer Dienste sicherzustellen, oder aufgrund der Datenherkunftsanforderungen können überdies die Arbeitsbelastungen geographisch über mehrere Bereiche oder Zonen verteilt sein.
  • Weil ein Satz von Enklaven, die als Peers kommunizieren oder in vertrauenswürdigen Ausführungsumgebungen in einem jeweiligen selbstständigen Modus ausgeführt werden, den komplexen Anwendungsfällen nicht entsprechen, die die Cloud-Anbieter behandeln müssen, verwendet eine Enklavenhülle ein hierarchisches Modell des Vertrauens zwischen den Enklaven.
  • Eine Enklavenhülle teilt eine rechnerisch sensible Task in mehrere in Beziehung stehende Subtasks auf und führt sie in dem Satz vertrauenswürdiger Enklaven aus. Eine Enklavenhülle kann z. B. mehrere von einer Zertifizierungsstelle erwartete Tasks, wie z. B. die Authentifizierung eines Anrufers, die Validierung einer Anforderung, die Ausgabe einer Nonce/eines Zeitstempels usw., als einen Satz verschiedener Nachfolgerenklaven, die von einer Wurzelenklave abstammen, ausführen. Ähnlich können für die Genomforschung noch kompliziertere Sätze von Operationen durch das Verwenden der hierarchischen Art der Enklaven in einer Enklavenhülle ausgeführt werden.
  • Die Wurzelenklave kann die Vertrauensbeziehung zwischen den Nachfolgern attestieren und verifizieren, um Arbeit zu ihnen delegieren zu können. Die Wurzelenklave kann außerdem die Fähigkeit, das Vertrauen herzustellen und ihre Beweise zu attestieren und zu verifizieren, an die Nachfolgerenklaven delegieren, um sicherzustellen, dass das System skaliert werden und dem Bedarf verschiedener Anwendungsfälle entsprechen kann.
  • In einigen Implementierungen kann die Ausführung sensibler und streng geheimer Tasks an geographisch verteilte Cluster delegiert und über mehrerer geographische Orte und Bereiche verteilt werden, um die sensiblen Tasks des Kunden innerhalb der Unterenklaven auszuführen, die an diesen Orten gehostet sind und durch eine Master-Enklave geordnet werden.
  • Die Enklavenhüllen ermöglichen außerdem, dass die Anwenderanwendungen Ausführungseinheiten erzeugen, die vor Angriffen von der System-Software und in Abhängigkeit von der verwendeten Enklaventechnik der Hardware geschützt sind. Die Hüllenenklavenarchitektur ermöglicht es einer Enklave, ihre Identität an einem lokalen oder entfernten Verifizierer nachzuweisen, Geheimnisse zu erhalten/zu erzeugen und diese Geheimnisse für ihre eigene Identität zu versiegeln. Die Enklavenhülle erweitert die grundlegende Attestierungs- und Versiegelungsinfrastruktur, um die Attestierung und die Versiegelung auf Systemebene zu unterstützen. Die hierarchische Enklavenhülle wird im Folgenden bezüglich der 1 und 2 beschrieben.
  • In zusätzlichen Implementierungen können die Enklavenhüllen zusammenwirkend in einer Hybrid-Cloud verteilt sein, wo eine Master-Enklavenhülle in den Räumlichkeiten eines Kunden oder in einer privaten Cloud arbeitet, wobei zusätzliche Enklavenhüllen in der öffentlichen Cloud arbeiten. Die Hybrid-Cloud-Enklaven werden im Folgenden bezüglich der 3 und 4 beschrieben.
  • In noch weiteren Implementierungen kann eine Enklavenhülle konfiguriert sein, um das gemeinsame Benutzen sensibler Daten von mehreren Parteien für die Ausführung gemeinsamer Tasks zu ermöglichen. Der Zugriff auf die sensiblen Daten durch die mehreren Parteien ist jedoch ausgeschlossen. Derartige Enklavenhüllen werden als eine Rendezvous-Enklave bezeichnet und im Folgenden bezüglich der 5 und 6 beschrieben.
  • Eine hierarchische Enklavenhülle
  • 1 ist eine graphische Systemdarstellung einer Enklavenhülle 100. Eine Enklavenhülle 100 ist eine manifestbasierte hierarchische Ansammlung von Enklaven, die ein System definieren. Die Enklavenhülle 100 versiegelt Geheimnisse (d. h., sensiblen Code, sensible Binärdateien, sensible Daten oder irgendwelche anderen Daten, Anweisungen, Code oder Informationen, die eine Partei als sensibel erachtet oder die eine Partei nicht öffentlich zu offenbaren wünscht) sowohl für eine Systembeschreibung als auch für eine einzelne Enklavenidentität. In Betrieb ist ein Geheimnis nur für eine Enklave in der Enklavenhülle 100 zugänglich, falls die Enklave ein Teil einer Enklavenhülle 100 ist und gemäß einem Manifest aufgebaut ist, und nur für eine Enklave in der Enklavenhülle 100 zugänglich, falls die identifizierte Enklave in der Enklavenhülle 100 dafür bestimmt ist, um Zugriff auf das Geheimnis zu haben.
  • Die Enklavenhülle 100 enthält eine Wurzelenklave 110, ein Manifest 112 und zwei oder mehr Komponentenenklaven 120. Jede Komponentenenklave in der Hülle 100 kann eine eindeutige Rolle aufweisen, ist z. B. einer speziellen Task oder einem speziellen Prozess, die bzw. der auszuführen ist, zugewiesen.
  • Das Manifest 112 beschreibt die Enklavenhülle 100. Das Manifest 112 listet die verschiedenen Rollen in der Hülle 100 und die Identitäten der Enklaven 120, die jeder Rolle entsprechen, auf. In einigen Implementierungen erlaubt das Manifest nur eine Identität pro Rolle, wobei eine Rolle nicht zwei getrennten Komponentenenklaven zugewiesen sein kann. Das Manifest 112 wird durch einen Systemerbauer signiert und weist einen Zweck und eine Version auf, die im Folgenden ausführlicher beschrieben werden. Ein Manifestverifikationsschlüssel, der mit dem Zweck und der Version des Manifests gekoppelt ist, definiert die Identität des Manifests.
  • Die Wurzelenklave 110 ist für das Verifizieren der Komponentenenklaven und das Sicherstellen, dass ihre Rollen/Identitäten jenen entsprechen, die in dem Manifest 112 aufgelistet sind, verantwortlich. Mit anderen Worten, die Wurzelenklave 110 ist für das Durchsetzen des Manifests 112 verantwortlich.
  • Die Komponentenenklaven 120 kommunizieren über wechselseitig authentifizierte und verschlüsselte Kanäle miteinander. Die Komponentenenklaven 120 kommunizieren über einen unidirektional authentifizierten und verschlüsselten Kanal mit der Wurzelenklave 110. Der Kanal von der Wurzel zur Komponente ist unidirektional authentifiziert, weil nur die Wurzelenklave 110 die Komponentenenklave 120 gegen das Manifest 112 verifiziert. Die Verifikation kann durch irgendeinen geeigneten Sicherheitsverifikationsprozess ausgeführt werden.
  • Die Komponentenenklaven 120 verifizieren in einigen Implementierungen die Wurzelenklave 110 nicht. In einigen Implementierungen sind die Komponentenenklaven 120 gegenüber dem Manifest 112 selbst agnostisch, wobei sie "blind" auf die Wurzelenklave 110 vertrauen, um das Manifest 112 durchzusetzen.
  • Die Enklaven 110 und 120 können durch irgendeinen geeigneten Enklaveninstanziierungsprozess instanziiert werden. Sobald die Hülle der Enklaven hergestellt ist, kann die Wurzelenklave 110 mit einem entfernten Verifizierer/Geheimnisversorger 130 kommunizieren, um die Geheimnisse, z. B. die Binärdateien und die Daten, für die Bereitstellung zu erhalten. Der entfernte Verifizierer 130 verifiziert die Wurzelenklave 110, die dann die Identität des Manifests 112, das sie durchsetzt, behauptet. Falls der Verifizierer 130 bestimmt, dass die Identität der Wurzelenklave 110 und die des Manifests 112, das die Wurzelenklave 110 durchsetzt, annehmbar sind, stellt der Verifizierer 130 die notwendigen Geheimnisse bereit. Die einzelnen Komponenten der Enklavenhülle 100 können außerdem zusätzliche Geheimnisse erzeugen. In einigen Implementierungen können die erzeugten und bereitgestellten Geheimnisse für das Manifest 112 und die Komponentenenklavenidentität versiegelt werden.
  • Jede Komponentenenklave 120 in einer Hülle 100 weist eine Rolle auf. Eine Rolle ist die durch die Enklave 120 implementierte Metafunktionalität und ist eine beliebige Zeichenkette. Jede Komponentenenklave 120 kennt ihre eigene Rolle und kennt die Rollen der anderen Komponentenenklaven 120, mit denen sie kommuniziert. Die Komponentenenklaven 120 kennen in einigen Implementierungen die Identitäten der anderen Komponentenenklaven 120 nicht und müssen in einigen Implementierungen die Identitäten der anderen Komponentenenklaven 120 auch nicht kennen. Die Rolle-Identität-Abbildung wird durch das Manifest 112 bereitgestellt und wird durch die Wurzelenklave 112 durchgesetzt. Wenn eine Komponentenenklave 120 mit einer weiteren Komponentenenklave kommunizieren muss, ist folglich die Bestimmung, mit welcher Enklave zu kommunizieren ist, von der Rolle abhängig.
  • Das Manifest weist drei Hauptzwecke auf. Erstens beschreibt das Manifest 112 die Enklavenhülle 100 für den entfernten Verifizierer 130. Zweitens erlaubt das Manifest 112 den Komponentenenklaven 120, basierend auf ihren Rollen anstatt auf ihren Identitäten miteinander zu kommunizieren. Schließlich erlaubt das Manifest 112 den Komponentenenklaven 120, zusätzlich zum Versiegeln der Geheimnisse für ihre eigene Identität, die Geheimnisse für die Hüllenkonfiguration zu versiegeln.
  • Das Manifest 112 ist durch den Systemerbauer signiert. Die Manifestsignatur selbst ist getrennt von dem Manifest 112 gespeichert. Die Manifestsignatur kann z. B. aus den Daten in dem Manifest, wie z. B. der Version, der Größe, einem Signaturkopf und irgendwelchen anderen Daten, die für die Signaturerzeugung geeignet sind, abgeleitet werden.
  • 2 ist ein Zeitdiagramm 200 einer Zwischenenklavenkommunikation. Das Zeitdiagramm stellt einen beispielhaften Prozess zum Managen der Kommunikationen bereit, so dass die Vertraulichkeit und die Integrität geschützt sind. Im Folgenden wird auf spezielle Schlüsselpaartypen verwiesen, wobei aber andere Schlüsseltypen außerdem verwendet werden können. Gleichermaßen können jedoch andere sichere Kommunikationstechniken und -prozesse verwendet werden.
  • Die Kommunikationskanäle zwischen den Komponentenenklaven 120 sind bidirektional authentifiziert, während jene zwischen der Wurzelenklave 110 und einer Komponentenenklave 120 unidirektional authentifiziert sind. Dies wird durch einen Anschluss-Handshake erreicht. Jedes Element der Enklavenhülle sollte den Besitz eines ECDH-Schlüsselpaares (siehe unten) aufweisen, das durch den ECDSA-Schlüssel der Wurzelenklave 110 zertifiziert ist (siehe unten), um sicher untereinander kommunizieren zu können. Zusätzlich stellt jedes Mitglied der Enklave POD sicher, dass der ECDH-Schlüssel des Peers außerdem durch denselben ECDSA-Schlüssel zertifiziert ist, um irgendwelche Informationen gemeinsam benutzen zu können.
  • Gemäß dem Prozess nach 2 wird die Wurzelenklave 110 zuerst gestartet. In diesem speziellen Beispiel erzeugt die Wurzelenklave 110 zwei Schlüsselpaare für sich selbst – das rDSA und das rDH. Das rDSH ist ein Schlüsselpaar eines digitalen Elliptische-Kurven-Signaturalgorithmus (ECDSA-Schlüsselpaar), wohingegen das rDH ein Elliptische-Kurven-Diffie-Hellman-Schlüsselpaar (ECDH-Schlüsselpaar) ist. Die Wurzelenklave 110 signiert dann den rDH_pub als einen Kanalherstellungsschlüssel für die Rolle "WURZEL".
  • Dann werden die Komponentenenklaven 120 gestartet. Wenn die Komponentenenklaven 120 gestartet werden, gehen sie durch einen Anschlussprozess, der es ihnen ermöglicht, ihre eigenen Kanal-Herstellungs- und Bereitstellungs-Berechtigungsnachweise zu erhalten. Der Anschlussprozess arbeitet wie folgt. Jede der Komponentenenklaven 120 erzeugt zwei Schlüsselpaare – das cDH und das cIES. Das cDH ist ein ECDH-Schlüsselpaar, das für die Zwischenenklaven-Kanalherstellung verwendet wird, wobei das cIES ein Schlüsselpaar eines integrierten Elliptische-Kurven-Verschlüsselungsschemas (ECIES-Schlüsselpaar) ist, das durch andere verwendet werden kann, um der Enklavenhülle 100 Geheimnisse bereitzustellen.
  • Die Komponentenenklave 120 leitet dann den Anschluss-Handshake mit der Wurzelenklave 110 ein, wobei der Anschluss-Handshake gemäß dem Zeitdiagramm nach 2 ausgeführt wird. Wie in 2 dargestellt ist, sendet die Wurzelenklave 120 ihr Manifest mit der Rolle ("Rolle"), ihren eigenen öffentlichen Komponenten-ECDH-Schlüssel (cDH-pub) und ihren eigenen öffentlichen Komponenten-ECIES-Schlüssel (cIES_Pub) an die Wurzelenklave 110.
  • Die Wurzelenklave 110 gibt nach dem Empfangen dieser Anforderung eine Herausforderung aus, wobei sie ein Paket an die Komponentenenklave 120 sendet, die den Anschlussprozess eingeleitet hat. Das Paket enthält den eigenen öffentlichen Wurzel-ECDH-Schlüssel (rDSA_pub) der Wurzel, eine Herausforderung und eine Kombination aus dem öffentlichen ECDSA-Schlüssel und der Herausforderung, die durch den privaten ECDSA-Schlüssel (rDSA_priv) der Wurzelenklave 110 signiert ist.
  • Die Komponentenenklave 120 erhält das Paket, validiert die Signatur mit dem öffentlichen Wurzel-ECDSA-Schlüssel, der Teil des Pakets ist, und sendet die Attesterklärung zurück, die enthält: die Rolle der Komponentenenklave 120, wie sie in dem Manifest dargelegt ist; den öffentlichen Komponenten-ECDH-Schlüssel (cDH_pub) der Komponentenenklave 120; den öffentlichen Komponenten-ECIES-Schlüssel (cIES_pub) der Komponentenenklave 120; den im vorhergehenden Schritt empfangenen öffentlichen ECDSA-Schlüssel (rDSA_pub) der Wurzelenklave; und die im vorhergehenden Schritt empfangene Herausforderung. Das Paket ist mit dem privaten ECIES-Schlüssel der Komponentenenklave 120 signiert und enthält eine Attesterklärung, die das Integritätsmaß enthält, das den Zustand der Komponentenenklave 120 beschreibt.
  • Die Wurzelenklave 110 erhält das Paket, validiert die Signatur mit dem öffentlichen ECIES-Schlüssel der Komponentenenklave 110, verifiziert die Attesterklärung und verifiziert die Rolle gegen ein bekanntes Komponentenmanifest. Nach dem Abschluss speichert die Wurzelenklave 110 den öffentlichen ECDH-Schlüssel (cDH_pub) und den öffentlichen ECIES-Schlüssel (cIES_pub) der Komponentenenklave 120 zusammen mit der Rolle der Komponentenenklave 120 in dem POD-Manifest.
  • Im Ergebnis des Abschlusses des "Anschlussprozesses" gibt die Wurzelenklave 110 dann zwei Erklärungen aus. Die erste ist eine signierte Erklärung, die enthalten kann: die Rolle der Komponentenenklave 120; den Typ des zertifizierten Schlüssels "DH"; und den öffentlichen ECDH-Schlüssel cDH_pub der Komponentenenklave 120. Die Erklärung ist mit dem eigenen privaten rDSA-Wurzelenklaven-ECDSA-Schlüssel der Wurzelenklave 110 signiert. Die zweite signierte Erklärung kann enthalten: die Rolle der Komponentenenklave 120; den Typ des zertifizierten Schlüssels "IES"; und den öffentlichen ECIES-Schlüssel cIES_pub der Komponentenenklave 120. Die Erklärung ist mit dem eigenen privaten rDSA-Wurzelenklaven-ECDSA-Schlüssel der Wurzelenklave 110 signiert.
  • Am Ende des Anschluss-Handshakes weist jede Komponente ein ECDH-Schlüsselpaar und ein EC-IES-Schlüsselpaar auf, das durch den ECDSA-Schlüssel der Wurzelenklave zertifiziert ist. Danach können irgendwelche zwei Enklaven in der Hülle 100 unter Verwendung dieser zertifizierten ECDH-Schlüssel eine sichere Verbindung herstellen. Jede der Enklaven stellt sicher, dass der ECDH-Schlüssel des Peers durch denselben ECDSA-Schlüssel zertifiziert ist.
  • Sobald die Hülle 100 durch den Anschlussprozess hergestellt ist, kann der entfernte Verifizierer 130 in diesem System Geheimnisse bereitstellen. Um die Aufdeckung der bereitgestellten Geheimnisse zu minimieren, umwickelt der entfernte Verifizierer 130 derartige Geheimnisse mit dem cIES_pub-Schlüssel der einzelnen Komponentenenklaven 120. Die Wurzelenklave 110 befindet sich innerhalb der Vertrauensgrenze derartiger bereitgestellter Geheimnisse, da sie diejenige ist, die die cIES_pub-Schlüssel zertifiziert. Folglich besteht der Zweck eines derartigen Umwickelns lediglich darin, eine unbeabsichtigte Offenbarung dieser Geheimnisse zu verhindern.
  • Schließlich ist jede der Komponentenenklaven 120 für das Versiegeln ihrer eigenen Geheimnisse verantwortlich. Jede Komponentenenklave 120 führt dies durch das Mischen ihres eigenen Versiegelungsschlüssels mit einem durch die Wurzelenklave 110 bereitgestellten Schlüssel, der für die Rolle und das Manifest spezifisch ist, aus. Der für die Rolle und das Manifest spezifische Schlüssel wird durch das Mischen des Versiegelungsschlüssels der Wurzelenklave 110 mit der Rolle und der Manifestidentität erzeugt.
  • In einigen Implementierungen kann die Enklavenhülle 100 sichere Protokolle basierend auf allen in der Enklave ausgeführten Transaktionen oder Handlungen erzeugen. Die Protokolle sind mit dem Schlüssel der Enklave kryptographisch signiert.
  • Während die obige Beschreibung nach 2 spezifisch die Verwendung der Elliptische-Kurven-Kryptographie durch die Verwendung des ECDH-Schlüsselpaares und des ECDSA-Schlüssels betrifft, ist dies für die Erfindung nicht wesentlich, wobei andere Typen kryptographischer Schlüssel verwendet werden können.
  • Die Hybrid-Cloud-Enklaven
  • Bei einer privaten Cloud steuert der Kunde seine Umgebung in den Räumlichkeiten, wobei er vorhandene Arbeitsbelastungen aufweist, die innerhalb der Umgebung in den Räumlichkeiten ausgeführt werden. Die öffentliche Cloud kann jedoch skalierbarer und leistungsfähiger sein. Folglich ermöglichen es die Hybrid-Cloud-Enklaven dem Kunden, die Skalierbarkeit der öffentlichen Cloud auszunutzen, während sie immer noch den Schutz der Umgebung in den Räumlichkeiten für bestimmte Daten und Binärdateien bieten.
  • Wenn ein Kunde einen Hybrid-Cloud-Einsatz ausführt, kann der Kunde wünschen, seinen sensiblen Code oder seine sensiblen Daten vor dem öffentlichen Cloud-Anbieter zu schützen. Um dieses Ziel zu erreichen, erlaubt es die Hybrid-Cloud dem Kunden, seine Geheimnisse an die Komponenten zu binden, über die er die vollständige Steuerung in seiner Umgebung in den Räumlichkeiten hat. Dieser Mechanismus ermöglicht es dem Kunden, die Leistung der öffentlichen Cloud für anderen, weniger sensiblen Code und andere weniger sensible Daten wirksam einzusetzen, während er die Steuerung über hochwertige Daten und hochwertigen Code behält, indem sie lokal ausgeführt werden. Gleichermaßen kann der Cloud-Anbieter wünschen, einige sensible Tasks abzustoßen, um sie im Datenzentrum des Kunden oder in einer anderen Cloud auszuführen, um den Regelungen zu entsprechen oder um den Kunden mehr Flexibilitäten anzubieten, während er immer noch die vertrauenswürdige Beziehung mit der ausgelagerten Funktionalität aufgrund dessen aufrechterhält, dass er sie mit den Arbeitsbelastungen des Kunden verknüpft, die weiterhin in der öffentlichen Cloud liegen.
  • 3 ist eine graphische Systemdarstellung mehrerer Enklaven in einer Hybrid-Cloud. Eine Hybrid-Cloud-Enklave 300 bindet den sensibelsten Code (bezüglich des weniger sensiblen Codes) und die sensibelsten Daten mit der isolierten sicheren Ausführungsumgebung in einer Enklavenhülle 302 in den Räumlichkeiten, die unter der Steuerung des Kunden betrieben wird. Die Enklavenhülle 302 in den Räumlichkeiten setzt das System der Enklaven wirkungsvoll ein, um eine strenge Isolation der Ausführung des sensiblen Codes oder des Zugriffs auf die sensiblen Daten, wie sie durch den Kunden spezifiziert werden, und dem weniger sensiblen Code zu ermöglichen, der in einer oder mehreren Cloud-Enklavenhüllen 352 ausgeführt wird. Die Hüllen 302 (die Wurzelenklave 310, das Manifest 312 und die Komponentenenklaven 320) und 352 (die Wurzelenklave 360, das Manifest 362 und die Komponentenenklaven 370) sind in der hierarchischen Architektur, die bezüglich der Hülle 100 nach 1 beschrieben worden ist, ähnlich.
  • Das Binden an die Enklavenhülle 302 in den Räumlichkeiten erzwingt automatisch die Verschlüsselung, wann immer Code oder Daten die Sicherheitsgrenze der Enklaven des Kunden verlassen. Die Enklavenhülle 302 in den Räumlichkeiten ermöglicht es außerdem einen Kunden, die Enklaven zu attestieren, und gibt den Kunden insgesamt die Versicherung, dass sein sensibler Code und seine sensiblen Daten unter seinen Bedingungen verarbeitet werden, wobei sie folglich die Hauptrisiken behandelt, die die Kunden in der Verwendung der öffentlichen Cloud mit mehreren Mietern für ihre sensiblen Arbeitsbelastungen sehen.
  • 4 ist ein Ablaufplan eines beispielhaften Prozesses zum Erzeugen mehrerer Enklaven in einer Hybrid-Cloud. Der Prozess 400 erzeugt eine Master-Enklave in einer Umgebung in den Räumlichkeiten/der privaten Cloud (402). Der Kunde erzeugt z. B. seine Master-Enklave in leerer Form (ohne Code oder Daten) unter Verwendung eines bereitgestellten Werkzeugsatzes in der Umgebung in den Räumlichkeiten/der privaten Cloud unter seiner vollständigen Steuerung. Der Kunde signiert die Master-Enklave mit seinem eigenen privaten Schlüssel und fügt seinen öffentlichen Schlüssel zu dem Paket der Master-Enklave hinzu. Der Kunde aktiviert dann den Enklavenmanagementdienst von einem öffentlichen Cloud-Anbieter, wählt die Task für die Bereitstellung für eine Cloud-Enklavenhülle aus und spezifiziert, wie die Enklaven in der Cloud gemanagt werden sollen.
  • Der Prozess 400 lädt die leere Enklave als eine Master-Enklave hoch (404). Die Master-Enklave wird zu dem Cloud-Dienst hochgeladen. Die Master-Enklave, sobald sie instanziiert ist, ermöglicht es anderen Cloud-Enklaven, den Beweis des Besitzes eines Schlüssels, mit dem eine Master-Enklave signiert ist, unter Verwendung eines öffentlichen Schlüssels, der als Teil derselben Transaktion gemeinsam benutzt wird, zu validieren.
  • Der Prozess 400 validiert den öffentlichen Schlüssel für die Master-Enklave (406). Der öffentliche Schlüssel, der offline (z. B. durch einen weiteren sicheren Kanal) mit dem Cloud-Anbieter geteilt wurde, wird ebenso validiert, um sicherzustellen, dass ein verifizierbares Kundenkonto verwendet wird, um die Enklavenhülle zu erzeugen.
  • Der Prozess 400 setzt Code und Daten in die Master-Enklave ein (408). Der Kunde setzt z. B. den Code und die Daten in seiner Master-Enklave in den Räumlichkeiten ein und validiert die Funktionalität.
  • Der Prozess 400 stellt den Code und die Daten in anderen Enklaven von der Master-Enklave bereit (410). Wenn z. B. die Enklave des Kunden dem System der Enklaven in der Cloud beitritt, werden der Code und die Daten über die Master-Enklave in alle anderen Enklaven in dem System eingesetzt, wie es durch den Kunden spezifiziert ist (die Bereiche, die hierarchische Beziehung, die Verfügbarkeit usw.). Wenn jede neue Enklave in einer Hülle instanziiert wird, muss sie basierend auf den Attestabläufen in der Enklave ihren Ursprung und Zustand den vorhandenen Mitgliedern der Hülle attestieren. Ein Kunde kann dann mit seinem System von Enklaven in Wechselwirkung treten, um sensiblen Code auszuführen oder sensible Daten zu verarbeiten, ohne eine Verschlüsselung und ein kompliziertes Schlüsselmanagement getrennt zu managen. Der Kunde hat die Versicherung, dass sein sensibler Code und seine sensiblen Daten in der öffentlichen Cloud geschützt sind, während sie sich in Gebrauch befinden, und dass die Vertraulichkeit und Integrität durchgesetzt sind, während sie sich in Ruhe befinden.
  • Ein Kunde kann die Attestierung der in seinem System verwendeten Enklaven und des Codes, der in seinen Enklaven ausgeführt wird, periodisch ausführen, um die Integrität des Codes und der Daten, die in den Enklaven ausgeführt werden, zu validieren.
  • Eine Rendezvous-Enklave
  • Eine Rendezvous-Enklave ermöglicht die Verarbeitung von Daten und Code durch mehrere nicht vertrauenswürdige Parteien, während sie sicherstellt, dass jede Partei keinen Zugriff auf die Daten oder den Code anderer Parteien erreicht. Dies ermöglicht die gemeinschaftliche Verarbeitung zwischen den Parteien mit den Versicherungen der Integrität, Sicherheit und Vertraulichkeit der Daten.
  • Die Rendezvous-Enklave versieht die Kunden mit der Option, ihre privaten Anwendungsnutzdaten in den isolierten sicheren Ausführungsumgebungen auszuführen, während die nicht vertrauenswürdigen Parteien ihre Daten sicher gemeinsam benutzen und ihre gemeinsamen Tasks ausführen können, damit alle Teilnehmer profitieren. Die Rendezvous-Enklave unterstützt außerdem eine Vertrauenskette und erhält eine Vertrauenskette aufrecht, die in Hardware und/oder Software verwurzelt ist, und bietet ein kryptographisches Attest, das durch mehrere Parteien verifizierbar ist, um die Vertraulichkeit und die Integrität der in der Enklave ausgeführten Tasks sicherzustellen.
  • In einigen Implementierungen ermöglicht eine Rendezvous-Enklave die Aufteilung und die Rekonstruktion der kryptographischen Schlüssel in der Enklaven-Umgebung. Die Schlüssel werden durch den Satz der nicht vertrauenswürdigen Parteien hinterlegt, um sicherzustellen, dass eine Autorisierungsentscheidung mit hoher Wirkung mit der Überwachung und Zustimmung aller Parteien ausgeführt wird, wenn sie ihre Teile des "Schlüssels" anbieten, um die Operation zu autorisieren. Dieses Schema ist auf die Cloud-Anbieter anwendbar, wenn andere Parteien als die Cloud-Anbieter selbst ihre Einrichtungen betreiben und die Einrichtung und die Datenwächterentität werden. Ähnliche Herangehensweisen erstrecken sich nicht nur auf kryptographische Operationen, sondern auf den beliebigen Typ von Operationen, wo mehrere nicht vertrauenswürdige Parteien eine Zugriffssteuerung erzwingen können, die die Zustimmung von allen oder einer Teilmenge der Parteien erfordert. Die Rendezvous-Enklave stellt folglich sicher, dass private Operationen und Entscheidungen, die in der isolierten sicheren Ausführungsumgebung getroffen werden, nicht geändert werden können und dass von der Enklave nicht auf persönliche sensible Daten zugegriffen werden kann oder persönliche sensible Daten von der Enklave nicht herausgefiltert werden können.
  • 5 ist eine graphische Systemdarstellung einer Rendezvous-Enklave 502 für mehrere Parteien. Die Enklave 502 (die Wurzelenklave 510, das Manifest 512 und die Komponentenenklaven 520) ist in der bezüglich der Hülle 100 nach 1 beschriebenen hierarchischen Architektur ähnlich. Die Rendezvous-Enklave 502 ermöglicht jedoch, dass jede Komponentenenklave 520 einer speziellen Partei von mehreren Parteien zugeordnet ist, die vereinbart haben, die Rendezvous-Enklave 502 zu bilden. Zusätzlich kann jede Partei außerdem jeweilige Daten 530 in verschlüsselter Form für die Verarbeitung in der Enklave 502 bereitstellen. Die Rendezvous-Enklave 502 implementiert einen geradlinigen Schlüsselmanagement- und Schlüsselhandhabungsmechanismus, um ein Vertrauen zwischen den Enklaven 530 herzustellen, um sicherzustellen, dass die Sicherheit nicht gefährdet ist. Die Rendezvous-Enklave 502 sorgt außerdem dafür, dass jede Partei eine Attesterklärung unabhängig aus der Ferne verifiziert, die den Zustand der Enklaven darstellt, wenn ihre sensiblen Tasks ausgeführt werden. Die Rendezvous-Enklave ermöglicht außerdem in einigen Implementierungen eine Quorum-Abstimmung durch die Verwendung der aufgeteilten Schlüssel, um zu entscheiden, wann die Ausführung der Enklave zu starten ist und wann ihre Ausführung stillzulegen ist, oder um unter Verwendung der Technik aufgeteilter Schlüssel andere notwendige Enklavenmanagement-Tasks auszuführen.
  • 6 ist ein Ablaufplan eines beispielhaften Prozesses zum Erzeugen einer Rendezvous-Enklave. Der Prozess 600 ordnet N Kunden einer Rendezvous-Enklave zu (602). Es wird z. B. angenommen, dass mehrere Organisationen mit dem Ziel, ihren gemeinsamen Algorithmus an den kombinierten Dateneingaben zu berechnen und die Ergebnisse gemeinsam zu benutzen, vereinbaren, ihre vertrauliche Eingabe dem Cloud-Anbieter bereitzustellen, ohne ihre Daten zu enthüllen. Jeder Kunde aus der N-Gruppe meldet sich von einem öffentlichen Cloud-Anbieter für den Enklavenmanagementdienst an, wählt die Task für die Bereitstellung der Cloud-Enklavenhülle (z. B. der Komponentenenklavenhüllen 520 für diesen Kunden) und spezifiziert, wie die Enklaven zu managen sind, die Konfigurationseigenschaften usw.
  • Im Ergebnis dieser Operation löst jeder Kunde die Erzeugung eines jeweiligen Manifests aus, das die Konfiguration der Enklavenhülle, die er einsetzen möchte, eine Projektkennung und eine Kennung eines Speicherbehälters (der Speicherbehälter) und einen Satz von Verschlüsselungs- und Signierungsschlüsseln, der dieser Enklavenhülle zugeordnet ist, beschreibt. Das Manifest wird mit dem privaten Schlüssel des Kunden signiert, den er offline mit dem Cloud-Schlüsselmanagementdienst geteilt hat.
  • Der Prozess 600 umwickelt den Schlüssel jedes Kunden, der verwendet wird, um die Daten zu verschlüsseln, mit einem vom Kunden gelieferten Verschlüsselungsschlüssel (604). Die Daten in dem Cloud-Speicherbehälter werden mit dem erzeugten Cloud-KMS-Schlüssel, der mit dem vom Kunden gelieferten Verschlüsselungsschlüssel (KEK) umwickelt ist, verschlüsselt, um sicherzustellen, dass auf die Daten ohne die Zustimmung des Eigentümers nicht unverschlüsselt zugegriffen werden kann.
  • Der Prozess 600 verifiziert den mit dem Cloud-Anbieter gemeinsam benutzten öffentlichen Schlüssel (606). Der öffentliche Schlüssel, der mit dem Cloud-Anbieter offline geteilt wurde, wird ebenso validiert, um sicherzustellen, dass ein verifizierbares Kundenkonto verwendet wird, um die Enklavenhülle zu erzeugen.
  • Der Prozess 600 setzt Binärdateien ein (608). Die Kunden spezifizieren z. B. die Binärdateien, die sie in der Enklave einsetzen müssen, und spezifizieren die Orte der Binärdateien.
  • Der Prozess 600 teilt den Enklavensignierungsschlüssel unter den N Kunden auf, um eine Gruppenabstimmung zu ermöglichen, um die Enklave zu steuern, (610). Für die Enklaven mit geteilter Verantwortung erzeugt ein Cloud-Schlüsselmanagementsystem den Enklavensignierungsschlüssel und stellt unter Verwendung einer Schlüsselaufteilungstechnik allen N Teilnehmern einen jeweiligen Anteil oder ein jeweiliges Fragment des gesamten Schlüssels bereit. Die Schlüsselaufteilungstechnik ermöglicht es den Teilnehmern, über den Zugriff auf die Rendezvous-Enklavenhülle 502 abzustimmen, und ermöglicht es ihnen, als eine Gruppe die Enklavenverwendung ihrer jeweiligen Daten aus dem Speicherbehälter für die Algorithmenberechnung zu steuern.
  • Ein Cloud-Schlüsselmanagementdienst teilt einen privaten Signierungs-Enklavenschlüssel in Fragmente eines N-von-N-Quorums auf. Für jeden Kunden ist sein jeweiliges n-tes Fragment des Schlüssels einer Projekt-ID des Kunden zugeordnet und mit dem gelieferten Verschlüsselungsschlüssel KEK des Kunden umwickelt. Wenn die Kunden zustimmen, den Prozess in der Rendezvous-Enklave zu starten, verwenden sie ihr n-tes Fragment, um das Enklavenmanifest 512 zu signieren und um die teilweise signierte Nachricht mit dem Cloud-Enklavenmanagementsystemen gemeinsam zu benutzen. Weil nichts in der resultierenden Signatur enthüllt, wer "abgestimmt" hat, kann der Master-Schlüssel, der der Binärdatei und der Enklave zugeordnet ist, nur rekonstruiert werden und kann die Enklave nur gestartet werden, nachdem alle N Teilnehmer ihre Herausforderungen mit ihrem n-ten Fragment des Schlüssels signiert haben. Folglich stimmen alle Teilnehmer durch das Signieren des Enklavenmanifests der Verwendung ihrer Speicherbehälter als Eingabe in die Enklavenberechnung zu. Der gleiche "Abstimmungs"-Prozess kann angewendet werden, wenn die Enklave stillgelegt werden muss oder für das Attest verfügbar sein muss oder die Ergebnisse der Berechnung für jedermann verfügbar gemacht werden. Nur wenn N aus N Kunden mit ihren Anteilen der Schlüssel "abgestimmt" haben, um die Enklave zu starten, kann die Enklave durch die Cloud gestartet werden und kann auf die durch die N Kunden gemeinsam benutzten Daten zugegriffen werden.
  • In einigen Implementierungen kann jeder Kunde aus der Gruppe das Attestieren der Enklaven, die in der gemeinschaftlichen Angelegenheit verwendet werden, nach dem "Abstimmungs"-Zustimmen periodisch ausführen, um diese Fähigkeit in der Enklavenhülle 502 zu ermöglichen. Im Ergebnis können alle Kunden einen Integritätsanspruch mit den Enklavenmaßen erhalten, um die Integrität des Codes und der Daten, die in den Enklaven ausgeführt werden, validieren zu können.
  • In einigen Implementierungen kann diese Fähigkeit basierend auf einem Mehrheitsabstimmungsalgorithmus der Teilnehmer arbeiten. In anderen Implementierungen kann ein Aufteilungs- und Delegierungsmodell verwendet werden, wenn es ausreichend ist, nur M aus N aufgeteilten Schlüsselfragmenten zu verwenden, um den gesamten Schlüssel zu regenerieren, um ihn für die Autorisierung der hauptsächlichen kritischen Operation mit den Enklaven, wie z. B. das Starten, das Stilllegen und das Attestieren, zu verwenden.
  • Die Ausführungsformen des Gegenstands und der Operationen, die in dieser Beschreibung beschrieben sind, können in einer digitalen elektronischen Schaltungsanordnung oder in Computer-Software, Firmware oder Hardware einschließlich der in dieser Beschreibung offenbarten Strukturen und ihrer strukturellen Äquivalente oder in Kombinationen aus einem oder mehreren von diesen implementiert sein. Die Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h., ein oder mehrere Module von Computerprogrammanweisungen, die in einem Computerspeichermedium für die Ausführung durch eine Datenverarbeitungsvorrichtung oder zur Steuerung des Betriebs einer Datenverarbeitungsvorrichtung codiert sind, implementiert sein. Alternativ oder zusätzlich können die Programmanweisungen in einem künstlich erzeugten ausgebreiteten Signal, z. B. einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal, codiert sein, das erzeugt wird, um die Informationen für die Übertragung zu einer geeigneten Empfängervorrichtung für die Ausführung durch eine Datenverarbeitungsvorrichtung zu codieren. Ein Computerspeichermedium kann eine computerlesbare Speichervorrichtung, ein computerlesbares Speichersubstrat, eine Schreib-Lese-Speicheranordnung oder -vorrichtung oder eine Speicheranordnung oder -vorrichtung mit seriellem Zugriff oder eine Kombination aus einem oder mehreren von diesen sein oder darin enthalten sein. Während ein Computerspeichermedium kein ausgebreitetes Signal ist, kann ein Computerspeichermedium überdies eine Quelle oder ein Ziel von Computerprogrammanweisungen sein, die in einem künstlich erzeugten ausgebreiteten Signal codiert sind. Das Computerspeichermedium kann außerdem ein oder mehrere separate physische Komponenten oder Medien (z. B. mehrere CDs, Platten oder andere Speichervorrichtungen) sein oder darin enthalten sein.
  • Die in dieser Beschreibung beschriebenen Operationen können als Operationen implementiert sein, die durch eine Datenverarbeitungsvorrichtung an Daten ausgeführt werden, die in einer oder mehreren computerlesbaren Speichervorrichtungen gespeichert sind oder von anderen Quellen empfangen werden.
  • Der Begriff "Datenverarbeitungsvorrichtung" umfasst alle Arten von Geräten, Vorrichtungen und Maschinen zum Verarbeiten von Daten, beispielhaft einschließlich eines programmierbaren Prozessors, eines Computers, eines Systems auf einem Chip, mehrerer der Vorhergehenden oder Kombinationen aus den Vorhergehenden. Die Vorrichtung kann eine logische Spezialschaltungsanordnung, z. B. eine FPGA (eine feldprogrammierbare Gatteranordnung) oder eine ASIC (eine anwendungsspezifische integrierte Schaltung), enthalten. Die Vorrichtung kann außerdem zusätzlich zu der Hardware Code, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z. B. Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankmanagementsystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einem oder mehreren von diesen bildet, enthalten. Die Vorrichtung und die Ausführungsumgebung können verschiedene unterschiedliche Computermodellinfrastrukturen verwirklichen, wie z. B. Web-Dienste, verteilte Computer- und Grid-Computing-Infrastrukturen.
  • Ein Computerprogramm (das außerdem als ein Programm, Software, eine Software-Anwendung, ein Skript oder Code bekannt ist) kann in irgendeiner Form einer Programmiersprache einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen geschrieben sein und kann in irgendeiner Form einschließlich als selbständiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder eine andere Einheit, die für die Verwendung in einer Computerumgebung geeignet ist, eingesetzt werden. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Abschnitt einer Datei, die andere Programme oder Daten (z. B. ein oder mehrere Skripte, die in einem Auszeichnungssprachendokument gespeichert sind) enthält, in einer einzigen Datei, die für das fragliche Programm dediziert ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Abschnitte des Codes speichern) gespeichert sein. Ein Computerprogramm kann eingesetzt werden, um in einem Computer oder in mehreren Computern, die sich an einem Standort befinden oder über mehrere Standorte verteilt und durch ein Kommunikationsnetz verbunden sind, ausgeführt zu werden.
  • Die in dieser Beschreibung beschriebenen Prozesse und Logikflüsse können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um die Handlungen durch das Wirken auf die Eingangsdaten und das Erzeugen einer Ausgabe auszuführen. Die Prozesse und Logikflüsse können außerdem durch eine Spezial-Logikschaltungsanordnung, z. B. eine FPGA (eine feldprogrammierbare Gatteranordnung) oder eine ASIC (eine anwendungsspezifische integrierte Schaltung), ausgeführt werden und eine Vorrichtung kann außerdem als eine Spezial-Logikschaltungsanordnung, z. B. eine FPGA (eine feldprogrammierbare Gatteranordnung) oder eine ASIC (eine anwendungsspezifische integrierte Schaltung), implementiert sein.
  • Die für die Ausführung eines Computerprogramms geeigneten Prozessoren enthalten beispielhaft sowohl Universal- als auch Spezialmikroprozessoren und irgendeinen oder mehrere Prozessoren irgendeiner Art eines digitalen Computers. Im Allgemeinen empfängt ein Prozessor Anweisungen und Daten von einem Festwertspeicher oder einem Schreib-Lese-Speicher oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen der Handlungen in Übereinstimmung mit den Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Im Allgemeinen enthält ein Computer außerdem eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magnetooptische Platten oder optische Platten, oder ist ein Computer außerdem betriebstechnisch an eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magnetooptische Platten oder optische Platten, gekoppelt, um Daten von ihnen zu empfangen oder Daten zu ihnen übertragen oder beides. Ein Computer muss jedoch derartige Vorrichtungen nicht aufweisen. Überdies kann ein Computer in eine andere Vorrichtung, z. B. ein Mobiltelephon, einen persönlichen digitalen Assistenten (PDA), ein mobilen Audio- oder Videoabspielgerät, eine Spielekonsole, einen Empfänger eines globalen Positionierungssystems (GPS-Empfänger) oder eine tragbare Speichervorrichtung (z. B. ein Flash-Laufwerk des universellen seriellen Busses (USB-Flash-Laufwerk)) eingebettet sein, um nur einige zu nennen. Die zum Speichern von Computerprogrammanweisungen und Daten geeigneten Vorrichtungen enthalten alle Formen von nichtflüchtigem Speicher, nichtflüchtigen Medien und nichtflüchtigen Speichervorrichtungen, einschließlich beispielhaft Halbleiterspeichervorrichtungen, z. B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, z. B. interner Festplatten oder abnehmbarer Platten; magnetooptischer Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können außerdem durch eine logische Spezialschaltungsanordnung ergänzt oder in einer logischen Spezialschaltungsanordnung enthalten sein.
  • Um für eine Wechselwirkung mit einem Anwender zu sorgen, können die Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstandes in einem Computer implementiert sein, der eine Anzeigevorrichtung, z. B. einen CRT-(Kathodenstrahlröhren-) oder LCD-(Flüssigkristallanzeige-)Monitor, zum Anzeigen von Informationen für den Anwender und eine Tastatur und eine Anzeigevorrichtung, z. B. eine Maus oder eine Rollkugel, durch die der Anwender dem Computer eine Eingabe bereitstellen kann, aufweist. Es können ebenso andere Arten von Vorrichtungen verwendet werden, um für eine Wechselwirkung mit einem Anwender zu sorgen; eine dem Anwender bereitgestellte Rückkopplung kann z. B. irgendeine Form einer sensorischen Rückkopplung z. B. eine visuelle Rückkopplung, eine auditorische Rückkopplung oder eine taktile Rückkopplung sein; während die Eingabe von dem Anwender in irgendeiner Form einschließlich einer akustischen, Sprach- oder taktilen Eingabe empfangen werden kann. Zusätzlich kann ein Computer mit einem Anwender durch das Senden von Dokumenten an eine und das Empfangen von Dokumenten von einer Vorrichtung, die durch den Anwender verwendet wird, in Wechselwirkung treten; z. B. durch das Senden von Web-Seiten an einen Web-Browser in einer Anwendervorrichtung des Anwenders in Reaktion auf die von dem Web-Browser empfangenen Anforderungen.
  • Die Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können in einem Computersystem, das eine Back-End-Komponente, z. B. als einen Daten-Server, enthält oder das eine Middleware-Komponente, z. B. einen Anwendungs-Server, enthält oder das eine Front-End-Komponente, z. B. einen Anwender-Computer, der eine graphische Anwenderschnittstelle oder einen Web-Browser aufweist, durch die bzw. den ein Anwender mit einer Implementierung des in dieser Beschreibung beschriebenen Gegenstands in Wechselwirkung treten kann, enthält, oder in irgendeiner Kombination aus einer oder mehreren derartigen Back-End-, Middleware- oder Front-End-Komponenten implementiert sein. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium der digitalen Datenkommunikation, z. B. ein Kommunikationsnetz, miteinander verbunden sein. Die Beispiele der Kommunikationsnetze enthalten ein lokales Netz ("LAN") und ein Weitbereichsnetz ("WAN"), ein Zwischennetz (z. B. das Internet) und Peer-zu-Peer-Netze (z. B. Ad-hoc-Peer-zu-Peer-Netze).
  • Das Computersystem kann Anwender und Server enthalten. Ein Anwender und ein Server befinden sich im Allgemeinen entfernt voneinander und treten typischerweise durch ein Kommunikationsnetz in Wechselwirkung. Die Beziehung des Anwenders und des Servers ergibt sich aufgrund der Computerprogramme, die in den jeweiligen Computern ausgeführt werden und die eine Anwender-Server-Beziehung zueinander aufweisen. In einigen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) an eine Anwendervorrichtung (z. B. für die Zwecke des Anzeigens von Daten für einen oder des Empfangens einer Anwendereingabe von einem Anwender, der mit der Anwendervorrichtung in Wechselwirkung tritt). Die durch die Anwendervorrichtung (z. B. im Ergebnis der Anwenderwechselwirkung) erzeugten Daten können an dem Server von der Anwendervorrichtung empfangen werden.
  • Während diese Beschreibung viele spezifische Implementierungseinzelheiten enthält, sollten diese nicht als Einschränkungen an den Schutzumfang irgendwelcher Erfindungen oder an das, was beansprucht werden kann, sondern stattdessen als Beschreibungen der Merkmale, die für spezielle Ausführungsformen der speziellen Erfindungen spezifisch sind, ausgelegt werden. Bestimmte Merkmale, die in dieser Beschreibung im Kontext separater Ausführungsformen beschrieben sind, können außerdem in Kombination in einer einzigen Ausführungsform implementiert sein. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzigen Ausführungsform beschrieben sind, außerdem in mehreren Ausführungsformen getrennt oder in irgendeiner geeigneten Unterkombination implementiert sein. Obwohl die Merkmale oben als in bestimmten Kombinationen wirkend beschrieben und sogar anfangs als solche beansprucht sein können, können überdies ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination entfernt werden und kann die beanspruchte Kombination auf eine Unterkombination oder eine Variation einer Unterkombination gerichtet sein.
  • Während die Operationen in den Zeichnungen in einer speziellen Reihenfolge dargestellt sind, sollte dies ähnlich nicht so verstanden werden, dass es erforderlich ist, dass derartige Operationen in der gezeigten speziellen Reihenfolge oder in einer sequentiellen Reihenfolge ausgeführt werden oder dass alle veranschaulichten Operationen ausgeführt werden, um die erwünschten Ergebnisse zu erreichen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Überdies sollte die Trennung der verschiedenen Systemkomponenten in den oben beschriebenen Ausführungsformen nicht so verstanden werden, dass eine derartige Trennung in allen Ausführungsformen erforderlich ist, wobei sie so verstanden werden sollte, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzigen Software-Produkt integriert sein können oder in mehrere Pakete von Software-Produkten verpackt sein können.
  • Folglich sind spezielle Ausführungsformen des Gegenstands beschrieben worden. Andere Ausführungsformen befinden sich innerhalb des Schutzumfangs der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen dargestellten Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch die erwünschten Ergebnisse erreichen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die gezeigte spezielle Reihenfolge oder sequentielle Reihenfolge, um die erwünschten Ergebnisse zu erreichen. In bestimmten Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (15)

  1. Computerspeichermedium, das Computerprogrammanweisungen umfasst, die, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, auszuführen: Starten einer Wurzelenklave; Zugreifen auf ein Enklavenmanifest durch die Wurzelenklave, wobei das Enklavenmanifest für jede von mehreren Komponentenenklaven eine spezielle Rolle für die jeweilige Komponentenenklave spezifiziert; und Instanziieren jeder der Komponentenenklaven, wobei jede Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen; wobei die Wurzelenklave und die Komponentenenklaven eine Enklavenhülle bilden.
  2. Computerspeichermedium nach Anspruch 1, das ferner umfasst: Erzeugen von Protokollen basierend auf allen Transaktionen oder Handlungen, die wenigstens in den Komponentenenklaven ausgeführt werden; und kryptographisches Signieren der Protokolle mit den Schlüsseln der Enklavenhülle.
  3. Computerspeichermedium nach Anspruch 1 oder Anspruch 2, das ferner umfasst: Bereitstellen von der Wurzelenklave für einen Verifizierer der Identitäten der Wurzelenklave und des Manifests; und in Reaktion auf eine Verifikation der Identitäten der Wurzelenklave und des Manifests Empfangen von dem Verifizierer eines oder mehrerer der Daten und des Codes für die Komponentenenklaven.
  4. Computerspeichermedium nach einem vorhergehenden Anspruch, wobei die Enklavenhülle eine isolierte und sichere Ausführungsumgebung ist, in der die Anwender ihre Anwendungsnutzdaten ausführen können.
  5. Computerspeichermedium nach einem vorhergehenden Anspruch, wobei jede Enklave eine vertrauenswürdige Ausführungsumgebung ist.
  6. Computerspeichermedium nach einem vorhergehenden Anspruch, wobei: jede Komponentenenklave der Enklavenhülle einen jeweiligen ersten Schlüssel aufweist, um mit den anderen Komponentenenklaven der Enklavenhülle sicher zu kommunizieren, wobei der erste Schlüssel durch die Wurzelenklave unter Verwendung eines zweiten Schlüssels zertifiziert wird; und jede Komponentenenklave der Enklavenhülle sicherstellt, dass der erste Schlüssel einer weiteren Komponentenenklave der Enklavenhülle außerdem durch den gleichen zweiten Schlüssel zertifiziert wird, um die Informationen gemeinsam zu benutzen.
  7. Computerspeichermedium, das Computerprogrammanweisungen umfasst, die, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, auszuführen: Starten einer ersten Wurzelenklave und erster Komponentenenklaven gemäß einem ersten Manifest; Starten einer zweiten Wurzelenklave und zweiter Komponentenenklaven gemäß einem zweiten Manifest; Bereitstellen erster Daten für die ersten Komponentenenklaven; und Bereitstellen zweiter Daten für die zweiten Komponentenenklaven, wobei die zweiten Daten von den ersten Daten verschieden sind.
  8. Computerspeichermedium nach Anspruch 7, wobei die erste Wurzelenklave und die ersten Komponentenenklaven in einer privaten Cloud gestartet werden und die zweite Wurzelenklave und die zweiten Komponentenenklaven in einer öffentlichen Cloud gestartet werden.
  9. Computerspeichermedium nach Anspruch 7, wobei die erste Wurzelenklave und die ersten Komponentenenklaven in einer ersten privaten Cloud gestartet werden und die zweite Wurzelenklave und die zweiten Komponentenenklaven in einer zweiten privaten Cloud gestartet werden.
  10. Computerspeichermedium nach Anspruch 8, wobei die erste Wurzelenklave, die ersten Komponentenenklaven, die zweite Wurzelenklave und die zweiten Komponentenenklaven in einem Server gestartet werden.
  11. System, das umfasst: mehrere Computer, die alle in Datenverbindung miteinander stehen; und ein nichttransitorisches computerlesbares Medium, das Anweisungen speichert, die durch die Computer ausführbar sind, um die Computer zu veranlassen, Operationen auszuführen, die umfassen: Starten einer Wurzelenklave; Zugreifen auf ein Enklavenmanifest durch die Wurzelenklave, wobei das Enklavenmanifest für jede von mehreren Komponentenenklaven eine spezielle Rolle für die jeweilige Komponentenenklave spezifiziert; und Instanziieren jeder der Komponentenenklaven, wobei jede Komponentenenklave konfiguriert ist, um ihre jeweilige Rolle auszuführen; wobei die Wurzelenklave und die Komponentenenklaven eine Enklavenhülle bilden.
  12. System nach Anspruch 11, wobei die Operationen ferner umfassen: Erzeugen von Protokollen basierend auf allen Transaktionen oder Handlungen, die wenigstens in den Komponentenenklaven ausgeführt werden; und kryptographisches Signieren der Protokolle mit den Schlüsseln der Enklavenhülle.
  13. System nach Anspruch 11 oder Anspruch 12, wobei die Operationen ferner umfassen: Bereitstellen von der Wurzelenklave für einen Verifizierer der Identitäten der Wurzelenklave und des Manifests; und in Reaktion auf eine Verifikation der Identitäten der Wurzelenklave und des Manifests Empfangen von dem Verifizierer eines oder mehrerer der Daten und des Codes für die Komponentenenklaven.
  14. System nach einem der Ansprüche 11 bis 13, wobei die Enklavenhülle eine isolierte und sichere Ausführungsumgebung ist, in der die Anwender ihre Anwendungsnutzdaten ausführen können.
  15. System nach einem der Ansprüche 11 bis 14, wobei: jede Komponentenenklave der Enklavenhülle einen jeweiligen ersten Schlüssel aufweist, um mit den anderen Komponentenenklaven der Enklavenhülle sicher zu kommunizieren, wobei der erste Schlüssel durch die Wurzelenklave unter Verwendung eines zweiten Schlüssels zertifiziert wird; und jede Komponentenenklave der Enklavenhülle sicherstellt, dass der erste Schlüssel einer weiteren Komponentenenklave der Enklavenhülle außerdem durch den gleichen zweiten Schlüssel zertifiziert wird, um die Informationen gemeinsam zu benutzen.
DE202017106894.3U 2016-11-14 2017-11-14 System von Enklaven Active DE202017106894U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662421905P 2016-11-14 2016-11-14
US62/421,905 2016-11-14

Publications (1)

Publication Number Publication Date
DE202017106894U1 true DE202017106894U1 (de) 2018-03-06

Family

ID=60480465

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202017106894.3U Active DE202017106894U1 (de) 2016-11-14 2017-11-14 System von Enklaven
DE102017126706.9A Withdrawn DE102017126706A1 (de) 2016-11-14 2017-11-14 System von Enklaven

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE102017126706.9A Withdrawn DE102017126706A1 (de) 2016-11-14 2017-11-14 System von Enklaven

Country Status (8)

Country Link
US (3) US10776503B2 (de)
EP (2) EP3539047B1 (de)
CN (1) CN108076049B (de)
DE (2) DE202017106894U1 (de)
GB (1) GB2555961B (de)
IE (1) IE20170239A1 (de)
SG (1) SG10201709367UA (de)
WO (1) WO2018090012A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405177B2 (en) * 2017-01-24 2022-08-02 Microsoft Technology Licensing, Llc Nested enclave identity
US10747905B2 (en) 2017-05-11 2020-08-18 Microsoft Technology Licensing, Llc Enclave ring and pair topologies
US10637645B2 (en) 2017-05-11 2020-04-28 Microsoft Technology Licensing, Llc Cryptlet identity
US10740455B2 (en) 2017-05-11 2020-08-11 Microsoft Technology Licensing, Llc Encave pool management
US10528722B2 (en) * 2017-05-11 2020-01-07 Microsoft Technology Licensing, Llc Enclave pool shared key
US10833858B2 (en) 2017-05-11 2020-11-10 Microsoft Technology Licensing, Llc Secure cryptlet tunnel
US11488121B2 (en) 2017-05-11 2022-11-01 Microsoft Technology Licensing, Llc Cryptlet smart contract
US10664591B2 (en) 2017-05-11 2020-05-26 Microsoft Technology Licensing, Llc Enclave pools
US10238288B2 (en) 2017-06-15 2019-03-26 Microsoft Technology Licensing, Llc Direct frequency modulating radio-frequency sensors
JP6903529B2 (ja) * 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US10776459B2 (en) * 2017-12-07 2020-09-15 International Business Machines Corporation Facilitating build and deploy runtime memory encrypted cloud applications and containers
US11316668B2 (en) * 2018-11-16 2022-04-26 Safetech Bv Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
US11048800B2 (en) * 2018-12-17 2021-06-29 Intel Corporation Composable trustworthy execution environments
US11444780B2 (en) * 2019-05-21 2022-09-13 Micron Technology, Inc. Secure replaceable verification key architecture in a memory sub-system
US11526613B2 (en) * 2019-07-03 2022-12-13 Microsoft Technology Licensing, Llc Execution environment and gatekeeper arrangement
US20210141940A1 (en) * 2019-11-13 2021-05-13 Sensoriant, Inc. Method and system for enhancing the integrity of computing with shared data and algorithms
US11449624B2 (en) * 2020-02-11 2022-09-20 Sap Se Secure data processing in untrusted environments
US11588623B2 (en) * 2020-06-24 2023-02-21 Red Hat, Inc. Secure reliable trusted execution environments
US12003488B2 (en) 2020-11-17 2024-06-04 Sap Se Protecting cloud application secret key with multi-party computation algorithm
US11880229B2 (en) * 2020-12-21 2024-01-23 Micron Technology, Inc. Security capsule for enabling restricted features of a memory device
US11853100B2 (en) * 2021-04-12 2023-12-26 EMC IP Holding Company LLC Automated delivery of cloud native application updates using one or more user-connection gateways
CN113326128A (zh) * 2021-05-28 2021-08-31 东南大学 移动边缘计算网络中基于无监督循环联邦学习的隐私保护流行度预测方法
US11989282B2 (en) 2021-09-10 2024-05-21 International Business Machines Corporation Open-source container data management
GB2622355A (en) * 2022-09-06 2024-03-20 The Blockhouse Tech Limited Enclave architecture

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9130757B2 (en) * 2008-08-11 2015-09-08 International Business Machines Corporation Method for authenticated communication in dynamic federated environments
CN101599025B (zh) * 2009-07-07 2012-07-18 武汉大学 可信密码模块安全虚拟化方法
JP5443599B2 (ja) 2009-12-22 2014-03-19 インテル・コーポレーション セキュアなアプリケーションの実行を提供する方法および装置
EP2577539B1 (de) 2010-06-02 2018-12-19 VMware, Inc. Sicherung von virtuellen maschinen von kunden in mandantenfähigen clouds
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US9165120B1 (en) * 2011-03-29 2015-10-20 Amazon Technologies, Inc. Service manifests
CN102123158A (zh) * 2011-04-11 2011-07-13 深圳市同洲软件有限公司 一种实现网络数据处理的方法和系统
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
CN105027494B (zh) * 2013-03-14 2018-03-23 英特尔公司 公共云中的受信任的数据处理
US10691618B2 (en) * 2013-12-17 2020-06-23 Intel Corporation Secure enclaves for use by kernel mode applications
US9514317B2 (en) * 2013-12-19 2016-12-06 Intel Corporation Policy-based trusted inspection of rights managed content
US9864861B2 (en) * 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
CN105101169A (zh) * 2014-05-13 2015-11-25 中国移动通信集团公司 可信执行环境处理信息的方法、装置、终端及sim卡
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US10061915B1 (en) * 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US9489534B2 (en) 2014-10-23 2016-11-08 Northrop Grumman Systems Corporation Multi-level security system for enabling secure file sharing across multiple security levels and method thereof
US9940456B2 (en) * 2014-12-16 2018-04-10 Intel Corporation Using trusted execution environments for security of code and data
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
US9870467B2 (en) 2015-03-27 2018-01-16 Intel Corporation Apparatus and method for implementing a forked system call in a system with a protected region
CN104991526B (zh) * 2015-05-04 2017-09-26 中国科学院软件研究所 工业控制系统安全支撑框架及其数据安全传输和存储方法
CN105488679B (zh) * 2015-11-23 2019-12-03 北京小米支付技术有限公司 基于生物识别技术的移动支付设备、方法和装置
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware

Also Published As

Publication number Publication date
GB2555961B (en) 2019-08-28
GB2555961A (en) 2018-05-16
US20220215112A1 (en) 2022-07-07
US11741251B2 (en) 2023-08-29
CN108076049A (zh) 2018-05-25
SG10201709367UA (en) 2018-06-28
WO2018090012A1 (en) 2018-05-17
GB201718728D0 (en) 2017-12-27
EP3539047A1 (de) 2019-09-18
IE20170239A1 (en) 2018-05-16
US20200372166A1 (en) 2020-11-26
US11314882B2 (en) 2022-04-26
US10776503B2 (en) 2020-09-15
CN108076049B (zh) 2021-05-25
DE102017126706A1 (de) 2018-05-17
EP3539047B1 (de) 2022-08-03
EP4102387A1 (de) 2022-12-14
US20180137299A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
DE202017106894U1 (de) System von Enklaven
DE112020004236B4 (de) Vorwärts gerichtete sicherheit in der transport layer security unter verwendung von ephemeren schlüsseln
US9894043B2 (en) Cryptographically secure cross-domain information sharing
DE112014000357T5 (de) Schlüsselverwaltung in mandantenfähigen Umgebungen
DE102018101307A1 (de) Techniken für SGX-Enklaven-Fernauthentifizierung
DE112017002263T5 (de) Infrastruktur mit öffentlichen Schlüssel unter Verwendung von Blockchains
CH709936A2 (de) System und Verfahren für das kryptographische Suite-Management.
DE102009042673A1 (de) Die Speicherung zusammengesetzter Dienste auf unzuverlässigen Hosts
DE112011101729T5 (de) Verwaltung von Ressourcenzugriff
Xu et al. Multi-authority proxy re-encryption based on CPABE for cloud storage systems
DE112022002623T5 (de) Vertrauenswürdige und dezentrale aggregation für föderiertes lernen
DE112018001559T5 (de) Cachespeicherlose sitzungsticket-unterstützung bei tls-prüfung
Anh et al. Streamforce: outsourcing access control enforcement for stream data to the clouds
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
DE112021005979T5 (de) Sichere gemeinsame nutzung von speicher
DE112019003808B4 (de) Zweckspezifische Zugriffssteuerung auf Grundlage einer Datenverschlüsselung
Hahn et al. Verifiable outsourced decryption of encrypted data from heterogeneous trust networks
Sonar et al. A Novel Approach for Secure Group Sharing in Public Cloud Computing
DE202023105042U1 (de) Ein erweitertes Proxy-Neuverschlüsselungssystem zur Gewährleistung effizienter Sicherheit in Fog- und IoT-Netzwerken
Sameera et al. Enhancement of Cloud Data Protection using Attribute Based Encryption with Multiple Keys: A Survey
DE202023105411U1 (de) Ein System zur Wahrung der Privatsphäre von Mobilbenutzern
Liu et al. FACOS: Enabling Privacy Protection Through Fine-Grained Access Control with On-chain and Off-chain System
Suchithra et al. A Secure Multi-Owner Data Sharing and Load Balancing for Dynamic Groups in the Cloud
BRAHMAIAH et al. ORUTA: Privacy-Preserving Public Auditing for Shared Data in the Cloud
Dinesh et al. Cloud Integrating Dual System Encryption Technology with Selective Proof Technique for Mobile

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years