DE102021130909A1 - Bereitstellen von sicheren/verschlüsselten virtuellen maschinen in einer cloud-infrastruktur - Google Patents

Bereitstellen von sicheren/verschlüsselten virtuellen maschinen in einer cloud-infrastruktur Download PDF

Info

Publication number
DE102021130909A1
DE102021130909A1 DE102021130909.3A DE102021130909A DE102021130909A1 DE 102021130909 A1 DE102021130909 A1 DE 102021130909A1 DE 102021130909 A DE102021130909 A DE 102021130909A DE 102021130909 A1 DE102021130909 A1 DE 102021130909A1
Authority
DE
Germany
Prior art keywords
tee
cloud
procedure
computer
calculation
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
DE102021130909.3A
Other languages
English (en)
Inventor
Guerney D.H. Hunt
Dimitrios Pendarakis
Kenneth Alan Goldman
Elaine R. Palmer
Ramachandra Pai
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 DE102021130909A1 publication Critical patent/DE102021130909A1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/602Providing cryptographic facilities or services
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Verfahren, ein System und eine Vorrichtung zum Erzeugen einer Berechnung, die in einer vertrauenswürdigen Zielausführungsumgebung (targeted trusted execution environment, TEE) ausgeführt wird, umfassen Auswählen der Ziel-TEE, Erzeugen einer Berechtigung, die von einer TEE erfüllt wird, Zuordnen der Berechtigung zu der Berechnung, die in der berechtigten TEE ausgeführt wird, und Erzeugen der Berechnung mit der zugehörigen Berechtigung.

Description

  • HINTERGRUND
  • Die Erfindung bezieht sich auf eine Ausführungsform eines Verfahrens, einer Vorrichtung und eines Systems für sichere/verschlüsselte virtuelle Maschinen und insbesondere, jedoch nicht einschränkend, auf ein Verfahren, eine Vorrichtung und ein System zum Bereitstellen von sicheren/verschlüsselten virtuellen Maschinen in einer Cloud-Infrastruktur.
  • Cloud-Computing ist ein wichtiger Aspekt der Infrastruktur eines Unternehmens. Cloud-Infrastrukturen können entweder privat, öffentlich oder hybrid sein. Eine der größten Herausforderungen für hybride und öffentliche Clouds besteht darin, dass das Unternehmen eine Vertrauensgrenze (trust boundary) auf den Cloud-Anbieter und sein Personal anwendet. Cloud-Computing nimmt zwar in erheblichem Maße zu, doch Vertrauen ist eines der Haupthindernisse. Bei den meisten Cloud-Infrastrukturen wird davon ausgegangen, dass der Cloud-Anbieter und seine Mitarbeiter vertrauenswürdig sind.
  • Ein wesentliches Hindernis für eine Einführung von Cloud-Computing ist daher die Sicherheit. Somit besteht die Notwendigkeit, eine sicherere Cloud-Computing-Plattform bereitzustellen, die effizient zu implementieren und kostengünstig ist. Darüber hinaus besteht die Notwendigkeit, eine Reihe von Protokollen bereitzustellen, die Sicherheit im Cloud-Computing bieten, ohne dass man dem Cloud-Anbieter vertrauen muss.
  • KURZDARSTELLUNG
  • In Anbetracht der vorgenannten Probleme sowie weiterer Probleme, Nachteile und Beeinträchtigungen des oben genannten Standes der Technik stellt ein beispielhafter Aspekt der offenbarten Erfindung ein Verfahren, eine Vorrichtung und ein System zum Bereitstellen von sicheren/verschlüsselten virtuellen Maschinen in einer Cloud-Infrastruktur bereit.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren zum Erzeugen einer Berechnung, die in einer vertrauenswürdigen Zielausführungsumgebung (targeted trusted execution environment, TEE) ausgeführt wird, Auswählen der Ziel-TEE, Erzeugen einer Berechtigung, die von einer TEE erfüllt wird, Zuordnen der Berechtigung zu der Berechnung, die in der berechtigten TEE ausgeführt wird, und Erzeugen der Berechnung mit der zugehörigen Berechtigung.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung umfasst ein System einen Speicher, der Computeranweisungen speichert, und einen Prozessor, der so konfiguriert ist, dass er die Computeranweisungen ausführt, um eine Ziel-TEE auszuwählen, eine Berechtigung zu erzeugen, die von einer TEE erfüllt wird, die Berechtigung der Berechnung zuzuordnen, die in der berechtigten TEE ausgeführt wird, und die Berechnung mit der zugehörigen Berechtigung zu erzeugen.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung umfasst ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen, wobei die Programmanweisungen von einem Computer gelesen und ausgeführt werden können, um den Computer zu veranlassen, ein Verfahren durchzuführen, zu dem Auswählen einer Ziel-TEE, Erzeugen einer Berechtigung, die von einer TEE erfüllt wird, Zuordnen der Berechtigung zu der Berechnung, die in der berechtigten TEE ausgeführt wird, und Erzeugen der Berechnung mit der zugehörigen Berechtigung gehört.
  • Damit die ausführliche Beschreibung der Erfindung besser verstanden und der vorliegende Beitrag zur Technik besser gewürdigt werden können, wurden einige Ausführungsformen der Erfindung in groben Zügen umrissen. Es gibt selbstverständlich noch weitere Ausführungsformen der Erfindung, die im Folgenden beschrieben werden und die Gegenstand der hier beigefügten Ansprüche sind.
  • Es versteht sich, dass die Erfindung in ihrer Anwendung nicht auf die Einzelheiten des Aufbaus und die Anordnungen der in der folgenden Beschreibung aufgeführten oder in den Zeichnungen dargestellten Komponenten beschränkt ist. Die Erfindung kann zusätzlich zu den beschriebenen Ausführungsformen noch Ausführungsformen enthalten und auf verschiedene Art und Weise durchgeführt werden. Es versteht sich ferner, dass die hier verwendete Ausdrucksweise und Terminologie sowie die Zusammenfassung zum Zweck der Beschreibung dienen und nicht als einschränkend angesehen werden sollten.
  • Für Fachleute ist daher offensichtlich, dass das Konzept, auf dem diese Offenbarung beruht, ohne Weiteres als Grundlage für die Gestaltung anderer Strukturen, Verfahren und Systeme zum Durchführen der verschiedenen Zwecke der vorliegenden Erfindung verwendet werden kann. Es ist daher wichtig, dass die Ansprüche unter dem Aspekt betrachtet werden, dass sie diesen äquivalenten Aufbau umfassen, ohne vom Gedanken und Anwendungsbereich der vorliegenden Erfindung abzuweichen.
  • Figurenliste
  • Die beispielhaften Aspekte der Erfindung sind anhand der folgenden ausführlichen Beschreibung der beispielhaften Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnungen besser verständlich.
    • 1 veranschaulicht ein Beispiel einer TEE (vertrauenswürdige Ausführungsumgebung), wie sie in der vorliegenden Erfindung verwendet wird.
    • 2A veranschaulicht einen beispielhaften Ablaufplan einer Ausführungsform der vorliegenden Erfindung.
    • 2B veranschaulicht einen beispielhaften Ablaufplan einer Ausführungsform der vorliegenden Erfindung.
    • 3 veranschaulicht einen Ablaufplan für „Keep your own key“ für ein alternatives Sicherheitsmodell einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur.
    • 4 veranschaulicht einen Ablaufplan zum Überprüfen des Zielsystems (d.h. des Systems der geschützten Ausführungseinrichtung (protected execution facility, PEF)) für das „Keep your own key“-Modell einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur.
    • 5 veranschaulicht ein Verfahren zum Bereitstellen in einer Ausführungsform der vorliegenden Erfindung.
    • 6 veranschaulicht ein Layout des ESM-Operanden (ESM = enter secure mode).
    • 7A veranschaulicht Werte, die in dem PCR 6 (platform configuration register = Plattformkonfigurationsregister 6) zum Validieren der Hardware-Konfiguration in einer Ausführungsform der vorliegenden Erfindung abgelegt werden.
    • 7B veranschaulicht Validieren der Berechnung in einer Ausführungsform der vorliegenden Erfindung.
    • 8 veranschaulicht ein Beispiel einer geschützten Ausführungseinrichtung (PEF) einer Ausführungsform der vorliegenden Erfindung.
    • 9A veranschaulicht ein alternatives Sicherheitsmodell, das ein SM einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur verwendet.
    • 9B veranschaulicht den Ablaufplan zum Überprüfen des Zielsystems (d.h. des Systems der geschützten Ausführungseinrichtung (PEF)) für das alternative Modell, das ein SM einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur verwendet.
    • 10A veranschaulicht ein alternatives Sicherheitsmodell, das ein SM verwendet, um eine TEE in einem AMD-Prozessor (AMD = ADVANCED MICRO DEVICES) einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur bereitzustellen.
    • 10B veranschaulicht den Ablaufplan zum Überprüfen des Zielsystems (d.h. des Systems der geschützten Ausführungseinrichtung (PEF)) für eine TEE in einem AMD-Prozessor (AMD = ADVANCED MICO DEVICES) für das alternative Modell, das ein SM einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur verwendet.
    • 11 veranschaulicht ein beispielhaftes Hardware-/Informationsverarbeitungssystem zum Integrieren der beispielhaften Ausführungsform der vorliegenden Erfindung.
    • 12 veranschaulicht ein signaltragendes Speichermedium zum Speichern von maschinenlesbaren Anweisungen eines Programms, das das Verfahren gemäß der beispielhaften Ausführungsform der vorliegenden Erfindung implementiert.
    • 13 zeigt einen Cloud-Computing-Knoten gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
    • 14 zeigt eine Cloud-Computing-Umgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
    • 15 zeigt Abstraktionsmodellschichten gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Erfindung wird im Folgenden mit Bezug auf die gezeichneten Figuren beschrieben, in denen sich gleiche Bezugsziffern durchgehend auf gleiche Teile beziehen. Es wird darauf hingewiesen, dass die verschiedenen Merkmale der Zeichnung wie in der Praxis üblich nicht unbedingt maßstabsgetreu sind. Die Abmessungen der verschiedenen Merkmale können aus Gründen der Übersichtlichkeit vielmehr beliebig vergrößert oder verkleinert werden. Nachstehend werden beispielhafte Ausführungsformen zur Veranschaulichung bereitgestellt, die die Ansprüche nicht einschränken. Darüber hinaus sei darauf hingewiesen, dass die Schritte in unterschiedlicher Reihenfolge, kombiniert oder gleichzeitig durchgeführt werden können. Darüber hinaus kann jede der gezeigten Strukturen und Ausführungsformen verändert oder kombiniert werden.
  • Wie bereits erwähnt, ist ein wesentliches Hindernis für die Einführung von Cloud-Computing die Sicherheit. Der Cloud-Anbieter hat Zugriff auf alle Informationen, die in einem laufenden Container oder einer VM (virtuelle Maschine) verwendet werden. Verschiedene Hersteller von CPUs (central processing unit = Zentraleinheit) haben daraufhin ihre Architekturen geändert, sodass private Berechnungen erzeugt und ausgeführt werden können. Die Änderungen der Architektur können allgemein als vertrauenswürdige Ausführungsumgebung (TEE) bezeichnet werden. Diese Erfindung unterstützt ebenfalls eine TEE, die Teil eines Cloud-Knotens oder einer Cloud-Infrastruktur ist, jedoch nicht in eine bestimmte CPU-Architektur integriert ist.
  • Die Hersteller von Prozessoren stellen Cloud-Anbietern Mittel bereit, um die Vertrauenslücke zu schließen, indem vertrauenswürdige Ausführungsumgebungen (TEEs) geschaffen werden, die eine Hardware-Unterstützung für eine sichere Ausführung bereitstellen. TEEs unterteilen einen Prozessor oder Prozess in sichere und nichtsichere Bereiche. Eine TEE kann nach ihrer „Granularität“ eingestuft werden, d.h. entweder grobgranular oder feingranular sein. Grobgranulare TEEs arbeiten zum Beispiel auf der Ebene einer VM (virtuelle Maschine) oder eines Prozessors, während feingranulare TEEs nur einen Prozess oder einen einzelnen Ausführungsstrang schützen. Zu grobgranularen Beispielen gehören IBM Secure Service Containers™, ARM (Advanced RISC (Reduced Instruction Set Computer) Machines) TrustZone™ (manche betrachten dies nicht als TEE), IBM™ Protected Execution Facility (PEF) und AMD™ Secure Encrypted Virutalization (SEV). Intel™ Software Guard Extension (SGX) ist ein Beispiel für eine feingranulare TEE. Intel hat die Absicht angekündigt, grobgranulare Unterstützung bereitzustellen. Alle TEEs sind vertrauenswürdig, da der Code, der in der sicheren Partition ausgeführt wird, hardwaretechnischen Anforderungen unterliegt und der Benutzer die Möglichkeit hat, die Korrektheit der Hardware zu überprüfen.
  • Die meisten TEEs bieten auch eine Form der Beglaubigung. Das Fehlen einer Beglaubigung und einiger anderer Merkmale ist der Grund dafür, dass die derzeit vorhandene ARM TrustZone™ als TEE ausgeschlossen wird. Ein ARM-Prozessor kann jedoch mit einem externen TPM verwendet werden, das eine Form der Beglaubigung bereitstellen kann. Die Verfahren und Stellen zum Bereitstellen einer Beglaubigung sind unterschiedlich. Durch eine Beglaubigung kann eine entfernt angeordnete Partei sicherstellen, dass die Attribute des TEE überprüft werden; dazu gehört, dass ermittelt wird, welche Software derzeit in der TEE ausgeführt wird, und/oder dass die Firmware/Software-Grundlage der TEE überprüft wird. Mit einer Beglaubigung kann ein TEE-Benutzer kritische Eigenschaften der Umgebung überprüfen, in der sein Code oder seine geheimen Informationen ausgeführt werden. Bei der Entwicklung von TEEs wird davon ausgegangen, dass ein Angreifer das System/die Einheit/den PC mit dem darin befindlichen Prozessor physisch besitzen, kontrollieren oder darauf zugreifen kann. Ziel ist es, eine vertrauliche oder sichere Berechnung im Fall eines Zugriffs oder der Kontrolle durch einen Angreifer zu ermöglichen. Die durch die TEE eingeführten architektonischen Änderungen stellen einen Schutz vor unbefugten Zugriffen bereit.
  • Da viele Cloud-Infrastrukturen die Vertrauenswürdigkeit des Anbieters voraussetzen, stellt die Nutzung einer TEE zum Bereitstellen einer vertraulichen Datenverarbeitung selbst mit diesen Fähigkeiten noch eine Herausforderung dar.
  • Die vorliegende Erfindung ermittelt neben anderen Merkmalen einen Satz von Protokollen und Komponenten, die, wenn sie in einer Cloud-Infrastruktur aktiviert und verwendet werden, es dem Kunden der Cloud-Infrastruktur ermöglichen, die Infrastruktur zu nutzen, ohne seine geheimen Informationen mit dem Cloud-Anbieter zu teilen. Die vorliegende Erfindung stellt einen Satz von Protokollen bereit, die es dem Benutzer ermöglichen, die geschützte Ausführungseinrichtung oder andere grobgranulare TEEs zu nutzen, ohne dem Cloud-Anbieter vertrauen zu müssen.
  • Die vorliegende Erfindung wird anhand der geschützten Ausführungseinrichtung (PEF) einer TEE beschrieben. Die PEF unterstützt sichere Berechnungen, die als sichere virtuelle Maschinen (SVMs) bezeichnet werden. Alle SVMs beginnen die Ausführung als normale VM. Während ihrer Initialisierung führen sie einen ESM-Aufruf (ESM = enter secure mode) eines ULTRAVISOR aus, bei dem es sich um eine Anforderung handelt, von einer normalen virtuellen Maschine in eine sichere virtuelle Maschine überzugehen. Die PEF setzt voraus, dass eine fachgerecht konfigurierte Plattform über ein TPM verfügt und mit aktiviertem sicheren und vertrauenswürdigen Booten ausgeführt wird.
  • Das in der vorliegenden Ausführungsform verwendete TPM stellt eine Hardware dar, die dazu verwendet wird, um Messwerte für eine Beglaubigungsfunktion zu speichern. Die Beglaubigungsfunktion kann in einen Prozessor integriert oder extern in die Prozessorarchitektur implementiert werden. Es wird dabei von einem TPM-PCR gesprochen, das einen vertrauenswürdigen Mechanismus zum Aufzeichnen von Messwerten darstellt.
  • Die vorliegende Erfindung nutzt ein TPM (Trusted Platform Module = Vertrauenswürdiges Plattformmodul) und eine TEE-Hardware, die in einer Cloud-Infrastruktur implementiert werden. Es gibt zwei Modelle, um eine TEE in einer Cloud-Infrastruktur zu nutzen: BYOK (Bring Your Own Key) oder KYOK (Keep Your Own Key). Für BYOK ist ein Schlüsseltresor unter der Kontrolle eines Cloud-Benutzers erforderlich, z.B. ein SM (Sicherheitsmodul) 866 in der Cloud-Infrastruktur, damit der Benutzer seinen Schlüssel nicht dem Cloud-Anbieter preisgeben muss. Zu Beispielen für die Sicherheitsmodule 866 gehören HSMs (Hardware-Sicherheitsmodule) wie der IBM 4769 Cryptographic Coprocessor™, IBM Hyper Protect™, IBM Z Secure Service Container™, IBM Z Secure Execution™, eine TEE oder sogar ein TPM. Die sensiblen Informationen können in einem vom Benutzer kontrollierten Schlüsseltresor aufbewahrt werden. Für KYOK ist es dagegen erforderlich, dass die Cloud dem Cloud-Benutzer detaillierte Informationen über ihre Infrastruktur bereitstellt.
  • Cloud-Computing ist ein wichtiger Aspekt der Infrastruktur eines Unternehmens. Cloud-Infrastrukturen können entweder privat, öffentlich oder hybrid sein. Eine der größten Herausforderungen für hybride und öffentliche Clouds besteht wie bereits erwähnt darin, dass das Unternehmen seine Vertrauensgrenze auf den Cloud-Anbieter und sein Personal anwendet. Cloud-Computing nimmt zwar in erheblichem Maße zu, doch Vertrauen ist eines der Haupthindernisse. Bei den meisten Cloud-Infrastrukturen wird davon ausgegangen, dass der Cloud-Anbieter und seine Mitarbeiter vertrauenswürdig sind.
  • 1 veranschaulicht ein Beispiel einer TEE, wie sie in der vorliegenden Erfindung verwendet wird. Eine TEE kann auf verschiedene Weise implementiert werden, z.B. als Änderung der CPU-Architektur, als eine externe Komponente, die an eine periphere Schnittstelle angeschlossen wird, oder als vollständig separater Prozessor mit entsprechenden Schnittstellen und Isolationshardware. In dieser Ausführungsform wird eine TEE als einzelnes System beschrieben. Diese Erfindung funktioniert jedoch auch, wenn eine TEE einen fachgerecht konfigurierten Satz von Systemen darstellt. Die Verwendung einer TEE bezieht sich auf ein oder mehrere fachgerecht konfigurierte Systeme. Im Softwarebereich 130 des Systems 100 befindet sich die TEE 102, die die Hardware 120 und die Software 130 umfasst. Bei vertrauenswürdigen Anwendungen handelt es sich um Software, die in der TEE ausgeführt wird. Die APIs 112 der TEE, die häufig in Firmware und/oder Hardware implementiert sind, stellen Schnittstellen zu der Software bereit, die in der TEE ausgeführt wird, sowie Schnittstellen zu Software außerhalb der TEE, die durch Ausführen in der TEE sicher werden soll. Der Prozessor B 114 in der vertrauenswürdigen Hardware ist der vertrauenswürdige Teil des Prozessors, auf dem die vertrauenswürdige Anwendung und die APIs der TEE ausgeführt werden. Dabei kann es sich um einen vollständig unabhängigen Prozessor oder den vertrauenswürdigen Zustand eines einzelnen Prozessors handeln. Der Speicher 116 in der TEE ist vertrauenswürdig, die vertrauenswürdige Software 104 befindet sich in dem vertrauenswürdigen Speicher 116 in der TEE 102. Die TEE enthält auch eine Beglaubigungsfunktion 122. In einer bevorzugten Ausführungsform wird die Beglaubigungsfunktion von einem TPM bereitgestellt. Allerdings kann jede Hardware, die zum sicheren Speichern von Firmware- und/oder Software-Messwerten verwendet wird, die Beglaubigungsfunktion bereitstellen.
  • Die vertrauenswürdige Software in der TEE kann ein komplettes Betriebssystem enthalten, das von dem nichtvertrauenswürdigen Betriebssystem 108 außerhalb der TEE 102 getrennt ist. Wenn die TEE feingranular ist, wird das Betriebssystem in der TEE häufig als Shim bezeichnet.
  • Außerhalb der TEE befinden sich ein Betriebssystem 108 und Anwendungen 106 sowie ein Speicher 116 und eine Verarbeitungsfunktionalität 110. Die vertrauenswürdige Software 104 vertraut keiner dieser Komponenten implizit. Die Schnittstellen zwischen den beiden müssen sorgfältig implementiert werden, um die Vertrauenswürdigkeit nicht zu gefährden.
  • 2A veranschaulicht einen beispielhaften Ablaufplan zum Bereitstellen einer Berechnung in einer TEE als eine Ausführungsform der vorliegenden Erfindung. Für Fachleute ist offensichtlich, dass die Vorbereitung einer Berechtigung für eine Berechnung, die in einer TEE ausgeführt werden soll, in einer vertrauenswürdigen Umgebung durchgeführt werden sollte, jedoch überall durchgeführt werden kann. Bereitstellen einer Berechnung in einer TEE beginnt damit, dass die Ziel-TEE ausgewählt wird (204). Zum Auswählen einer Ziel-TEE muss ein System ausgewählt werden, das eine TEE enthält, die die sichere Berechnung ausführen kann. Die 3, 4, 9A, 9B, 10A und 10B sind ein Beispiel dafür, wie eine Ziel-TEE ausgewählt wird und welche Attribute überprüft werden können. In der bevorzugten Ausführungsform wird davon ausgegangen, dass die erwarteten Attribute der TEE vor dem Auswählen bekannt sind. Für Fachleute ist jedoch offensichtlich, dass die erwarteten Attribute auch eine Funktion der ausgewählten TEE sein können. Wenn zum Beispiel eine Berechnung bereitgestellt wird, die auf mehreren Architekturen ausgeführt werden kann, hängt das erforderliche Attribut wahrscheinlich von der Zielarchitektur ab. Die Berechtigung 206 kann die Berechnung auf eine bestimmte TEE oder auf eine Reihe von TEEs beschränken, die bestimmte Kriterien erfüllen. In jedem Fall müssen die bestimmte TEE und/oder die zum Validieren der TEE verwendeten Kriterien vor dem Erzeugen der Berechtigung bekannt sein. In Schritt 204 werden die Ziel-TEE ausgewählt und die Kriterien identifiziert. Für Fachleute ist offensichtlich, dass es sich dabei auch um zwei Schritte handeln kann.
  • In Schritt 206 wird die Berechtigung erzeugt. Die Berechtigung schränkt im Allgemeinen die Reihe von TEEs ein, die berechtigt sind, die sichere Berechnung auszuführen. In der bevorzugten Ausführungsform handelt es sich bei der Berechtigung wie in 6 dargestellt um einen geschützten symmetrischen Startwert (seed). In der bevorzugten Ausführungsform hat jede TEE ein Schlüsselpaar. Der bevorzugte Schutzmechanismus besteht darin, den Startwert mit einem öffentlichen Schlüssel zu verschlüsseln, der der Ziel-TEE zugehörig ist. Nur eine berechtigte TEE hat Zugriff auf den privaten Schlüssel. Der private Schlüssel kann in einem TPM oder in einem anderen hardwaregeschützten Mechanismus enthalten sein. In der TPM-Spezifikation werden das Verschlüsseln mit einem öffentlichen Schlüssel als Versiegelungsvorgang, die Ergebnisse der Versiegelung als versiegelte Daten und das Entschlüsseln von versiegelten Daten mit einem privaten Schlüssel als ein Entsiegelungsvorgang definiert. Die Berechtigung kann eine Kennung enthalten, die angibt, für welche TEE die Berechtigung gilt. Wenn ihre Kennung vorhanden ist, validiert die TEE die Berechtigung.
  • In der bevorzugten Ausführungsform wird ein TPM verwendet, um den privaten Schlüssel sicher zu speichern. In der bevorzugten Ausführungsform ist der private Schlüssel im TPM enthalten, und ein Duplizieren ist nicht zulässig. Eine Alternative besteht darin, dass der Schlüssel im TPM enthalten ist, und ein Duplizieren nur mit einem Kennwort möglich ist. Für Fachleute ist jedoch offensichtlich, dass das Kennwort sehr sicher verwaltet werden muss, wenn mehreren Maschinen eine einzige geheime Information bereitgestellt wird. Für Fachleute ist offensichtlich, dass der private Schlüssel auch an einem anderen Ort aufbewahrt werden kann, der durch eine Hardware-Vertrauensbasis geschützt ist. Wird ein TPM verwendet, kann die Richtlinie, die der Möglichkeit zugehörig ist, auf den privaten Schlüssel zuzugreifen, um den symmetrischen Schlüssel zu entsiegeln, den Satz von Systemen oder die Konfiguration der Systeme beschränken, die berechtigt sind, die sichere Berechnung auszuführen. In der bevorzugten Ausführungsform kann es für den Zugriff auf den öffentlichen Schlüssel zum Beispiel erforderlich sein, dass ein PCR mit einem bestimmten Wert wie in 7A dargestellt übereinstimmt. Die dargestellte Einschränkung wird in 7A erläutert. Für Fachleute ist offensichtlich, dass Berechtigungen beliebig komplex gestaltet werden können. Die Berechtigung kann in die versiegelten Daten integriert werden oder als separate Metadaten vorliegen.
  • Die Berechtigung wird einer Berechnung zugeordnet (208). Der Schritt des Zuordnens der Berechtigung zu der Berechnung wird in 6 erläutert.
  • Die Berechnung wird mit der zugehörigen Berechtigung erzeugt (210). Die Berechtigung mit den versiegelten Daten kann dynamisch in die Berechnung eingefügt werden. Die bevorzugte Ausführungsform fügt die Berechtigung in eine zuvor vorbereitete Berechnung ein oder fügt die Berechtigung ein, während die Berechnung vorbereitet wird.
  • Zum Schluss wird die Berechnung der Ziel-TEE bereitgestellt (212). Ein Beispiel für eine durch diese Erfindung bereitgestellte Berechnung ist eine sichere VM. Beispiele für das Bereitstellen einer sicheren VM in einerTEE sind in den 3 und 4; 9A und 9B; sowie 10A und 10B dargestellt.
  • Bei einigen TEE-Modellen muss der Benutzer der TEE vor dem Einfügen von geheimen Informationen ausdrücklich überprüfen, ob die TEE gültig ist. Bei einem solchen Modell wird die TEE in dem Zielsystem gestartet, kann jedoch erst entschlüsselt werden, wenn eine Beglaubigung überprüft wurde. Das Zielsystem ermittelt einen Messwert oder kennt den Zustand der TEE, nachdem diese gesichert ist. Dieser Messwert wird an den Benutzer gesendet. Wenn der Benutzer den Messwert akzeptiert, genehmigt er das Einfügen der geheimen Informationen, wodurch die TEE die Berechnung entschlüsseln kann. Bei den geheimen Informationen handelt es sich um die eigentliche Berechtigung. Ohne sie wird die Berechnung in dieser Art von TEE nicht ausgeführt. Die Zuordnung ist implizit, wenn die TEE im Zielsystem ausgeführt wird. Das Erzeugen besteht darin, dass der Benutzer die annehmbaren Werte berechnet.
  • 2B veranschaulicht einen beispielhaften Ablaufplan zum Bereitstellen einer Berechnung in einer TEE als eine Ausführungsform der vorliegenden Erfindung. Eine Berechnung für eine TEE sollte in einer vertrauenswürdigen Umgebung vorbereitet werden. Für Fachleute ist offensichtlich, dass die Vorbereitung einer Berechtigung für eine Berechnung, die in einer TEE ausgeführt werden soll, in einer vertrauenswürdigen Umgebung durchgeführt werden sollte, jedoch überall durchgeführt werden kann. Das Bereitstellen beginnt bei 230. Der erste Schritt besteht darin, die TEE zu überprüfen (232). Beispiele für Überprüfen einer Ziel-TEE sind in den 4, 10A und 10B dargestellt. Wenn die TEE nicht überprüft werden kann, endet das Bereitstellen (246). Als Nächstes müssen die Integritätsinformationen für die Berechnung erzeugt werden (234). Ein Beispiel für Integritätsinformationen für die Berechnung sind die Integritätsinformationen 677 von 7. In dieser Beschreibung wird davon ausgegangen, dass die TEE, in der die Berechnung ausgeführt wird, die Integrität der Berechnung überprüft, und die Ausführung im Fall eines Problems nicht durchgeführt wird. Alternativ kann die TEE die Integrität der Berechnung unabhängig berechnen und diese Information über einen sicheren Mechanismus an den Eigentümer zurücksenden, wobei die Ausführung der TEE beendet wird, wenn das Ergebnis nicht korrekt ist. Es sei darauf hingewiesen, dass bei Implementierungen, bei denen der Eigentümer die Integrität der ausführenden TEE überprüfen muss, keine sensiblen Informationen in die TEE aufgenommen werden sollten, bis dies überprüft ist. Für beide Ansätze sind die Integritätsinformationen erforderlich. Als Nächstes werden die versiegelten Daten erzeugt (236). Die versiegelten Daten geben an, ob die TEE berechtigt ist, die Berechnung auszuführen. Für Fachleute ist offensichtlich, dass versiegelte Daten ein spezifischer Begriff im Zusammenhang mit dem TPM ist. Wenn Daten von einem TPM versiegelt werden, wird den versiegelten Daten eine Richtlinie zugeordnet, die erfüllt werden muss, um auf die versiegelten Daten zugreifen zu können. Die Berechnungsinformationen, die versiegelten Daten und die Integritätsinformationen werden an die TEE gesendet (238). In der bevorzugten Ausführungsform wird die den versiegelten Daten zugehörige Richtlinie verwendet, um zu validieren, dass die TEE berechtigt ist. Diese Richtlinie wird von dem TPM durchgeführt. Die TEE bestätigt, dass sie berechtigt ist, die Berechnung auszuführen (240). Wenn die TEE nicht berechtigt ist, endet die Ausführung (246). Die Integrität der Berechnung wird überprüft (242). Dies kann dadurch erfolgen, dass die TEE die Integritätsinformationen unabhängig berechnet. Sie kann anschließend überprüfen, ob eine Übereinstimmung mit den empfangenen Integritätsinformationen besteht, oder sie kann ihre Berechnungen über einen sicheren Kanal an den Initiator zurücksenden und auf dessen Bestätigung warten. In beiden Fällen endet die Ausführung, wenn die Integrität der Berechnung nicht überprüft wird (246). Andernfalls wird die Berechnung durchgeführt (244).
  • Die 3 und 4 veranschaulichen alternative Abläufe einer PEF (geschützte Ausführungseinrichtung), bei denen kein SM (Sicherheitsmodul) 980 vorhanden ist.
  • Insbesondere 3 veranschaulicht einen KYOK-Ablauf (KYOK = Keep Your Own Key) für das Sicherheitsmodell einer Ausführungsform der vorliegenden Erfindung.
  • Für KYOK übernimmt der Kunde die Verantwortung, das Registrierungsprotokoll auszuführen. Alternativ muss das Registrierungsprotokoll von jemandem ausgeführt werden, den der Kunde als vertrauenswürdig erachtet. Bei diesem Modell kontrolliert der Kunde den Wert des Plattformkonfigurationsregisters 6 (PCR6), das er als vertrauenswürdig ansieht.
  • Das System 200 ist in eine vertrauenswürdige Infrastruktur 350 (hervorgehoben) und eine nichtvertrauenswürdige Cloud-Infrastruktur 361 (übrige Strukturen, die nicht hervorgehoben sind) unterteilt. Die vertrauenswürdige Infrastruktur 350 (hervorgehoben) besteht aus dem Kunden 302 und dem Tool-Modul 304.
  • Bei diesem Ablauf wird davon ausgegangen, dass eine VM 416 (nicht dargestellt) mit einer ID (Kennung) eines Abbilds der Abbild-ID, die zu einer SVM werden kann, bereits in den Speicher der Cloud-Infrastruktur geladen wurde. Um eine sichere VM 416 bereitzustellen, fordert das Kundenmodul (oder Kundennetzwerk) 302 an, dass das Tool 304 die Abbild-ID 318 der VM startet. Das Tool-Modul 304 fordert ein sicheres Bereitstellen 320 beim Front-End 306 der Cloud an. Das Front-End 306 der Cloud bestätigt den bezahlten Dienst 322 beim Tool-Modul 304. Das Tool-Modul 304 fordert an, dass der Bereichsorchestrator 310 eine Instanz der Abbild-ID 324 erstellt.
  • Anschließend wählt das System 200 wie folgt eine Zielmaschine 325 aus. Der Bereichsorchestrator 310 wählt eine Zielmaschine aus, die durch Mach-Ind dargestellt wird, und fordert die Plattformzertifizierung und den Speicherschlüssel 326 vom Zielsystem mit dem TPM 312 an. Für Fachleute ist offensichtlich, dass bestehende Cloud-Infrastrukturen in der Lage sind, aus einer Liste von Anforderungen eine verfügbare Maschine aus ihrer Infrastruktur auszuwählen. Jede Technik zum Auswählen einer solchen Maschine ist zulässig. Für Fachleute ist offensichtlich, dass die Liste der Attribute für die Auswahl um die Attribute ergänzt werden muss, die der Ziel-TEE zugehörig sind. Für Fachleute ist weiterhin offensichtlich, dass es sich bei Mach-Ind um eine IP-Adresse oder eine andere Information handeln kann, die verwendet werden kann, um eine Maschine in der Infrastruktur eines Anbieters zu identifizieren. Das Zielsystem mit dem TPM 312 sendet anschließend das Plattformzertifikat und den Steuerschlüssel 328 zum Bereichsorchestrator 310 zurück. Der Bereichsorchestrator 310 fordert an, dass das Tool-Modul 304 des Kunden die Zielmaschine mit „Diese Maschine registrieren“ (Mach-Ind, Plattformzertifikat, Speicherschlüssel) 330 registriert.
  • Das Tool-Modul 304 des Kunden überprüft das Zielsystem 332.
  • Wenn das Zielsystem überprüft wird, erzeugt das Kunden-Tool 304 die versiegelten Daten 334. Nicht dargestellt ist, dass die Aktivierung endet, wenn das Überprüfen des Zielsystems 332 fehlschlägt. Das Tool-Modul 304 sendet eine Berechtigungsausführung (Mach-Ind, versiegelte Daten) 436 an das Bereichsorchestratormodul 310.
  • Das Bereichsorchestratormodul 310 fordert die Abbild-ID (Bildkennung) 338 vom Cloud-Objektspeicher 308 an. Der Cloud-Objektspeicher 308 sendet das der Abbild-ID zugehörige Abbild 340 an das Bereichsorchestratormodul 310 zurück. Der Bereichsorchestrator 310 fügt anschließend die versiegelten Daten 342 in das vom Cloud-Objektspeicher 308 zurückgesendete Abbild ein. Danach leitet der Bereichsorchestrator das Abbild mit den eingefügten versiegelten Daten an das Zielsystem mit dem TPM 312 weiter und weist das Zielsystem an, das Abbild 344 auszuführen.
  • 4 veranschaulicht die Einzelheiten des Überprüfens des Zielsystems 332 (PEF) einer Ausführungsform der vorliegenden Erfindung. Die vertrauenswürdige Infrastruktur 350 besteht aus dem Kundenmodul (oder Kundennetzwerk) 302 und dem Tool-Modul 304. Die nichtvertrauenswürdige Cloud-Infrastruktur 361 ist ebenfalls dargestellt.
  • Das Zielsystem wird überprüft, wenn das Front-End 306 der Cloud anfordert, dass das Tool-Modul 304 diese Maschine bei Schritt 330 registriert. Um die TEE zu überprüfen, muss das Plattformzertifikat überprüft werden, und es muss überprüft werden, ob die Eigenschaften des Speicherschlüssels wie erwartet sind. Anschließend führt das Kunden-Tool 304 Validieren des Plattformzertifikats durch und prüft den Speicher und die Schlüsseleigenschaften 460. Nicht dargestellt ist, dass beim Überprüfen des Zielsystems ein Fehler zurückgemeldet wird, wenn das Plattformzertifikat oder die Eigenschaften des Speicherschlüssels nicht korrekt sind. Diese Fehlermeldung kann das Tool 304 veranlassen, anzufordern, dass der Bereichsorchestrator ein anderes Zielsystem bereitstellt. Weiter mit 4: Wenn das Plattformzertifikat und der Speicherschlüssel gültig sind, erzeugt das Kunden-Tool 304 eine Prüffrage und erstellt die Berechtigungsnachweise 462. Die Prüffrage enthält den Berechtigungsnachweis, bei dem es sich um einen binären Blob handelt, der nur vom TPM in Mach-Ind geöffnet werden kann (das verwendet wird, um die Prüffrage an das richtige System zu übermitteln). Das Tool-Modul 304 sendet die Prüffrage 464 an das Front-End 306 der Cloud. Das Front-End 306 der Cloud leitet die Prüffrage 466 an den Bereichsorchestrator 310 weiter. Der Bereichsorchestrator 310 leitet die Prüffrage an das Zielsystem 312 und zwar über „Berechtigungsnachweis aktivieren“ 468 an das Zielsystem mit dem TPM 312 weiter. Nicht dargestellt ist, dass das Zielsystem 312 „Berechtigungsnachweis aktivieren“ an sein TMP sendet und eine Antwort empfängt. Das Zielsystem mit dem TPM 312 sendet die Antwort auf die Prüffrage 470 an den Bereichsorchestrator 310. Der Bereichsorchestrator leitet die Antwort auf die Prüffrage 472 an das Front-End 306 der Cloud weiter. Das Front-End 306 der Cloud leitet anschließend die Antwort auf die Prüffrage 474 an das Kunden-Tool-Modul 304 weiter. Das Tool-Modul 304 prüft anschließend die Antwort auf die Prüffrage 476 und zeigt Erfolg oder Misserfolg an.
  • 5 veranschaulicht ein Verfahren zum Bereitstellen einer Maschine in einer Ausführungsform der vorliegenden Erfindung.
  • Bei einer der Ausführungsformen der vorliegenden Erfindung wird ein NV-Speicherplatz (NV = nichtflüchtig) im TPM verwendet, um ein Kennwort zu speichern. Bevor die Maschine in eine Infrastruktur integriert wird oder als Teil einer Bereitstellung einer Maschine in der Cloud-Infrastruktur, muss dem NV-Speicherort von NV_LOCATION_X eine geeignete Richtlinie zugeordnet (bereitgestellt) werden (540).
  • Das System 500 erzeugt einen Speicherschlüssel mit einer Richtlinie, für die ein Kennwort erforderlich ist, das mit dem Kennwort von NV_LOCATION_X 544 übereinstimmen muss. Ein Speicherschlüssel ist per Definition ein übergeordneter Schlüssel, ein untergeordneter Schlüssel eines übergeordneten Schlüssels muss kein Schlüssel sein. Um den Speicherschlüssel zu verwenden, ist ein Kennwort erforderlich (544). Die bevorzugten Attribute des Speicherschlüssels sollten im TPM festgelegt sein, der Schlüsselalgorithmus kann RSA 2048 (Rivest-Shamir-Adleman-Kryptosystem mit 2048 Bit) sein, die Schlüssellänge beträgt 2048, die Berechtigung ist ein Zeiger auf NV_LOCATION_X und hinzu kommt die Plattformhierarchie. Die Richtlinie 544 legt ferner fest, dass für die Verwendung des Speicherschlüssels das PCR 6 übereinstimmen muss. Bei jedem Booten wird ein neues Kennwort zugewiesen und an den ULTRAVISOR weitergegeben. In einer bevorzugten Ausführungsform wird das Kennwort bei jedem Booten neu erzeugt.
  • Der dritte Schritt 542 des Bereitstellens besteht darin, den Speicherschlüssel mit der zuvor berechneten Richtlinie zu erzeugen, die festlegt, dass das Kennwort erforderlich ist, um den Speicherschlüssel für NV_LOCATION_X zu verwenden. Die Richtlinie zum Speicherschlüssel legt fest, dass ein Kennwort verwendet werden muss und dass es mit dem Kennwort in NV_LOCATION_X in Schritt 544 übereinstimmen muss.
  • Einziges Ziel des ULTRAVISOR ist es, die Isolierung und Sicherheit der Berechnung und der zugehörigen Daten zu gewährleisten. Die Systemverwaltung liegt weiterhin beim Hypervisor. Der Hypervisor verwendet Ultra-Aufrufe (ultra-calls), um sicherheitsrelevante Einrichtungen weiterhin zu verwalten. Falls erforderlich, bestätigt der ULTRAVISOR, dass die vom Hypervisor angeforderte Aktion die Sicherheit einer laufenden SVM (sichere virtuelle Maschine) nicht beeinträchtigt.
  • Wie bereits erwähnt, ist der Speicherschlüssel in einer bevorzugten Beispielimplementierung im TPM festgelegt, der Schlüsselalgorithmus ist RSA, die Schlüssellänge beträgt 2048, dazu gehören noch andere Attribute. Die Möglichkeit, das Kennwort zu ändern, ist an die Berechtigung der TPM-Plattform gebunden, was frühzeitig im Boot-Prozess der Firmware abgeschlossen werden muss, bevor ein Betriebssystem in die Plattform geladen wird. Die Firmware in der Maschine muss in der Lage sein, bei jedem Booten der Maschine ein neues Zufallskennwort zuzuweisen und dieses Kennwort an den ULTRAVISOR oder eine gleichwertige Firmware weiterzuleiten.
  • 6 veranschaulicht ein Layout eines ESM-Operanden 691. Der ESM-Operand 691 kann in zwei große Bereiche unterteilt werden: die sensiblen Informationen 685 und die Nutzdaten 689. Der sensible Bereich enthält versiegelte Daten. Die versiegelten Daten ermöglichen einem fachgerecht konfigurierten System den Zugriff auf Informationen im Nutzdatenbereich 689 des ESM-Operanden. Die versiegelten Daten 673 ermöglichen den Zugriff auf die Maschine A, und die versiegelten Daten 675 ermöglichen den Zugriff auf die Maschine B. Bei den nichtversiegelten Daten handelt es sich um den Startwert, der verwendet wird, um einen symmetrischen Schlüssel und einen HMAC-Schlüssel zu erzeugen. Alle Daten im Nutzdatenbereich 689 mit Ausnahme des HMAC sind mit dem aus dem Startwert erzeugten symmetrischen Schlüssel verschlüsselt. Den ersten Teil des Nutzdatenbereichs 689 bilden die Integritätsinformationen 677. Diese Informationen benötigt die PEF, um die Integrität der Berechnung zu überprüfen. Sie bestehen aus Hashwerten des Kernel, der Kernel-Befehlszeile, Initramfs (erster RAM (Direktzugriffsspeicher)) und dem RTAS-Bereich. In einer bevorzugten Ausführungsform sind die Integritätsinformationen 677 wie angegeben verschlüsselt. In einer alternativen Ausführungsform sind die Integritätsinformationen nicht verschlüsselt. Da die PEF die Integrität der Berechnung validiert, ohne mit dem Ersteller in Kontakt zu treten, werden diese Informationen erzeugt, wenn die sichere Berechnung erzeugt und im ESM-Operanden abgelegt wird. (Bei Technologien, bei denen der Eigentümer/Benutzer der Berechnung kontaktiert wird, um die Integrität der Berechnung zu überprüfen, müssen die Informationen von der TEE berechnet werden). Bei den übrigen Informationen im Nutzdatenbereich 689 handelt es sich um die geheimen Informationen 687. Diese werden unter CD1 bis CDn dargestellt, wobei CD für „Kundendaten“ (customer data) steht. In der bevorzugten Ausführungsform schützt die Integrität den Kernel, Initramfs, die Kernel-Befehlszeile und die RTAS der VM (677). Der Boot-Datenträger sollte verschlüsselt sein. In der bevorzugten Ausführungsform enthält der erste Block von Kundendaten 679 die Kennphrase, die den Datenträger des Stammverzeichnisses schützt, der mit dem symmetrischen Schlüssel verschlüsselt ist. Nach der verschlüsselten Kennphrase kann es null oder mehr Blöcke mit Kundendaten geben. Alle geheimen Informationen 687 sind mit dem aus dem Startwert erzeugten symmetrischen Schlüssel verschlüsselt.
  • 7A veranschaulicht Werte, die in dem PCR 6 786 zum Validieren der Hardware-Konfiguration in einer Ausführungsform der vorliegenden Erfindung abgelegt werden. Die bevorzugte Ausführungsform stützt sich auf ein sicheres und vertrauenswürdiges Booten, um bestätigen zu können, dass die Hardware- und die Firmware-Konfigurationen gültig sind. Bei den hier vorgestellten Werten handelt es sich um einen bevorzugten Satz von Werten. In einer anderen Implementierung können andere Werte verwendet werden. Für Fachleute ist offensichtlich, dass das PCR 6 786 ein PCR darstellt, das verwendet wird, um den Wert zu speichern, und dass jedes PCR, das verwendet wird, auch in der Richtlinie der versiegelten Daten (nicht in 7A dargestellt) erscheinen muss, damit die Überprüfung durchgeführt werden kann. Es ist wichtig, darauf hinzuweisen, dass bei dieser Ausführungsform nur Aktionen von veränderbarem und/oder nichtveränderbarem Code identifiziert werden, die für die Erfindung erforderlich sind. Das veränderbare Boot-Ladeprogramm 776 und der nichtveränderbare Code 772, die hier beschrieben werden, werden in der Self-Boot-Engine (SBE) ausgeführt und führen zahlreiche hier nicht beschriebene Aktionen durch. Wenn sicheres und vertrauenswürdiges Booten aktiviert ist, endet die Ausführung, sobald eine Signaturüberprüfung fehlschlägt. Wenn das System eingeschaltet wird, wird das veränderbare Boot-Ladeprogramm 772 als erster Code ausgeführt. Das veränderbare Boot-Ladeprogramm 772 legt den Hashwert des Hardware-Schlüssels 788 und die sichere Boot-Brücke 790 im PCR 6 786 ab. Bei dem Hashwert des Hardware-Schlüssels 788 handelt es sich um einen Hashwert der kryptografischen Schlüssel, die zum Überprüfen der Signaturen in den kryptografischen Schlüsseln verwendet werden, die zum Überprüfen der Signatur in der Firmware dienen. Die sichere Boot-Brücke 790 ermittelt, ob sicheres Booten aktiviert oder deaktiviert ist. Bevor die Steuerung an das veränderbare Boot-Ladeprogramm 776 weitergeben wird, lädt der nichtveränderbare Code 772 die Signatur des veränderbaren Boot-Ladeprogramms 776 und prüft diese. Wenn die Signatur überprüft wird, legt der nichtveränderbare Code 772 einen Hashwert des SB-Überprüfungscodes 774 in dem PCR 6 786 ab, wobei es sich bei dem SB-Überprüfungscode um einen Teil des veränderbaren Boot-Ladeprogramms 776 handelt, das die Signatur von anderem Code überprüft. Anschließend gibt er die Steuerung an das veränderbare Boot-Ladeprogramm 776 weiter. Das veränderbare Boot-Ladeprogramm 776 überprüft das Hostboot-Ladeprogramm 778. Das Hostboot-Ladeprogramm 778 überprüft die Hostboot-Init (Initialisierung) 780. Die Hostboot-Init überprüft die Hostboot-Ext. (Erweiterungen) 782. Die Hostboot Ext. 782 legen einen Separator 792 in dem PCR 6 ab. Die Hostboot Ext. 782 überprüfen OPAL 784. OPAL 784 legt das PEF-Aktivierungsbit 794 in dem PCR 6 786 ab. 7A stellt dar, wie der Wert von PCR 6 786 erzeugt wird, wenn eine fachgerecht konfigurierte Hardware hochgefahren wird. In der bevorzugten Ausführungsform erfordert die den versiegelten Daten zugehörige Richtlinie, dass das PCR 6 mit diesem Wert übereinstimmt. Andere Werte können auf Wunsch in dem PCR 6 (oder einem anderen PCR) abgelegt werden, je nachdem, was eine Implementierung benötigt, um ihre Konfiguration ordnungsgemäß überprüfen zu können. Die in dieser Erfindung benötigte Berechtigungsrichtlinie kann auf die gleiche Weise erstellt werden, indem Werte in einer physischen oder virtuellen PCR durch Software abgelegt werden, die ein virtuelles TPM oder ein tatsächliches TPM verwendet oder die von einem TPM durchgeführten Operationen neu implementiert (nicht empfohlen). Die Richtlinie spezifiziert den Status des Hashwerts des Hardware-Schlüssels 799, der sicheren Boot-Brücke 790, des Hashwerts des SB-Überprüfungscodes 774, des von der Firmware verwendeten Separators 792 und des PEF-Aktivierungsbits 794, die erforderlich sind, damit die TEE berechtigt ist, die sichere Berechnung durchzuführen.
  • 7B veranschaulicht Bestätigen der Berechtigungsanforderungen 240 und Überprüfen der Integrität der Berechnungsinformationen 242 in einer Ausführungsform der vorliegenden Erfindung, die eine PEF verwendet. Wie zuvor erwähnt, beginnt die sichere Berechnung als normale VM. Dabei wird ein ESM-Aufruf des ULTRAVISOR ausgeführt, um zu einer sicheren VM überzugehen, die in der PEF der TEE ausgeführt wird. Zu diesem Zeitpunkt beginnt die Validierung (750). In der bevorzugten Ausführungsform erfordert der ESM-Ultra-Aufruf wie in 6 dargestellt einen ESM-Operanden 691. Wenn der ESM-Operand nicht vorhanden ist, schlägt der ESM-Ultra-Aufruf fehl. Die TEE prüft, ob sie berechtigt ist, die sichere VM durchzuführen (240). Wenn sie nicht berechtigt ist, endet die Ausführung (766). Wenn sie berechtigt ist, prüft sie, ob es sich um eine gültige TEE handelt (754). Eine gültige TEE erfüllt die vom SVM-Ersteller festgelegte Richtlinie für versiegelte Daten. Für die PEF wird diese Prüfung vom TPM durchgeführt, wenn der ULTRAVISOR anfordert, dass das TPM den Startwert aus den versiegelten Daten extrahiert. Wenn die TEE diese Anforderungen nicht erfüllt, endet die Ausführung (766). Da die TEE berechtigt ist und die Anforderungen erfüllt, hat sie Zugriff auf den symmetrischen Startwert, der zum Erzeugen eines HMAC-Schlüssels und - falls die Integrität gültig ist - eines symmetrischen Schlüssels benötigt wird. Als Nächstes wird der HMAC-Schlüssel erzeugt (756). Der HMAC-Schlüssel wird verwendet, um zu validieren, dass die verschlüsselten Informationen im ESM-Operanden nicht geändert wurden (758). Wenn die verschlüsselten Informationen geändert wurden, endet die Ausführung (766). Andernfalls wird der symmetrische Schlüssel erzeugt (760). Die TEE erhält dadurch Zugriff auf die Informationen, die benötigt werden, um die Integrität der Berechnung zu überprüfen (242). Wenn die Berechnung geändert wurde, endet die Ausführung (766). Andernfalls schließt die VM den Übergang in eine SVM ab und führt eine Ausführung durch (764), wodurch der Übergang erfolgreich abgeschlossen wird (768); die VM ist nun eine SVM.
  • BEREITSTELLEN
  • 8 veranschaulicht ein Beispiel einer geschützten Ausführungseinrichtung (PEF) einer Ausführungsform der vorliegenden Erfindung. Das System 800 fordert die Ausführung einer SVM (sichere virtuelle Maschine) an (S0). Anschließend wählt das Orchestratormodul 852 eine Zielmaschine aus T0...Tn 864 aus (S1). Das Orchestratormodul 852 fordert das SM (Sicherheitsmodul) 866 auf, die ausgewählte Zielmaschine, d.h. eine aus T0...Tn 864 ausgewählte Maschine, zu validieren (S2). In 5 ist das ausgewählte Ziel Tn 864. Das SM 866 fordert Informationen (Plattformzertifizierung, Speicherschlüsselstruktur, Hashwert des HW(Hardware)-Schlüssels) von dem ausgewählten Zielsystem 864 an (S3). Das SM 866 muss validieren, dass diese korrekt sind. Zum Validieren muss es den öffentlichen Schlüssels des Anbieters der Plattform haben. Sobald es den Schlüssel hat, kann es den Schlüssel intern speichern, um den Validierungsprozess zu beschleunigen. Das SM 866 validiert eine Maschine mit dem öffentlichen Schlüssel des Anbieters 860 (S3a); wenn es den Schlüssel nicht bereits hat, setzt es sich mit dem Anbieter in Verbindung. Die SM-Einheit 866 sendet versiegelte Daten an das Orchestratormodul 852 (S4). Das Orchestratormodul 852 ruft eine Kopie der ausgewählten SVM 856 aus der Bibliothek 858 ab (S5). Es sei darauf hingewiesen, dass alle SVMs in der PEF die Ausführung als eine VM 854 beginnen. Was die Bibliothek 858 betrifft, handelt es sich bei allen Abbildern um VMs 854. Um die Beschreibung der Erfindung zu vereinfachen, werden die VMs 854, die zu SVMs werden können, in der Bibliothek 858 als SVMs 856 gekennzeichnet. Für Fachleute ist offensichtlich, dass die Bibliothek 858 so implementiert werden kann, dass sie den Unterschied erkennt. Der Orchestrator fügt die versiegelten Daten in die Kopie der SVM ein. Das Orchestratormodul 852 teilt die Kopie der SVM 856 im Zielsystem 864 (S6) zu. Bei Cloud-Infrastrukturen 870 ist das Zielsystem 864 im Allgemeinen zum Zeitpunkt des Erzeugens der SVM 856 nicht bekannt. Die Cloud-Anbieter müssen in der Lage sein, Änderungen an ihrer Infrastruktur vorzunehmen (z.B. tägliche Wartung, Aktualisierungen usw.), ohne die vorhandenen SVMs 856 zu beeinträchtigen. Eine der wichtigsten Eigenschaften des ESM-Operanden (ESM = Enter Secure Module) der PEF, der eine einfache Integration in eine Cloud-Infrastruktur 870 ermöglicht, ist, dass der HMAC (Hashing for Message Authentication Code) die versiegelten Daten nicht abdeckt. Dies bedeutet, dass die versiegelten Daten nicht zur gleichen Zeit wie der Rest des ESM-Operanden erzeugt werden müssen, sodass sie unmittelbar vor der Ausführung in den ESM-Operanden eingefügt werden können. In einer bevorzugten Ausführungsform können im ESM-Operanden versiegelte Platzhalterdaten vorhanden sein, die durch die versiegelten Daten für die ausgewählte Maschine überschrieben werden. In einer alternativen Ausführungsform kann das Abbild mit den versiegelten Daten im Cloud-Objektspeicher 308 gespeichert werden. Dies wäre in alternativen Ausführungsformen nützlich, in denen die TEE einen Satz von Systemen darstellt. Im Cloud-Objektspeicher 408 können auch Metadaten gespeichert sein, die anzeigen, ob die versiegelten Informationen bereits vorhanden sind. Sofern vorhanden, kann die VM direkt der TEE (Satz von Maschinen) zugeteilt werden. Bei dem ESM-Operanden handelt es sich um einen digitalen Blob, der in einem reservierten Bereich von Initramfs abgelegt wird. Er kann auch in einen ELF-Abschnitt (ELF = executable and linkable format = ausführbares und verknüpfbares Format) der zlmage-Formatdatei (zlmage = self-extracting compressed image = selbstextrahierendes komprimiertes Bild) abgelegt werden, die den Kernel enthält. Alle Informationen, die zum Überprüfen der Gültigkeit der SVM erforderlich sind, sind im ESM-Operanden enthalten.
  • Ein Beispiel für ein Implementierungsmodell umfasst Verwenden eines Sicherheitsmoduls (SM) 866 oder einer gleichwertigen Funktion in der Infrastruktur eines Cloud-Anbieters, um versiegelte Daten dynamisch zu erzeugen. Bei der vorliegenden Erfindung können die geheimen Master-Informationen dem Cloud-Kunden gehören/von ihm kontrolliert werden, während die Hardware dem Cloud-Anbieter gehört bzw. von ihm gesteuert wird. Auf diese Weise kann der Cloud-Anbieter keine Informationen aus dem SM 866 extrahieren; folglich ist es für den Cloud-Kunden sicher, geheime Informationen, die seinen sicheren Berechnungen zugehörig sind, im SM 866 zu speichern. Ein Beispiel eines SM, das einem Cloud-Anbieter gehören kann, jedoch von einem Kunden kontrolliert wird, ist der IBM 4769. Die in dieser Erfindung beschriebenen Funktionen sind derzeit im 4769 nicht vorhanden, können jedoch hinzugefügt werden. Da sich das SM 866 in der Infrastruktur des Cloud-Anbieters befindet, ist es für den Cloud-Anbieter sicher, dem SM zu erlauben, die notwendigen Protokolle auszuführen, um die versiegelten Daten für die Zielmaschine zu erzeugen. Dem Cloud-Kunden werden keine Einzelheiten über die Cloud-Infrastruktur bereitgestellt. An dieser Stelle ist es wichtig, darauf hinzuweisen, dass alle SVMs (sichere virtuelle Maschinen) in der PEF anfänglich als NVMs (normale virtuelle Maschinen) ausgeführt werden. Zu Beginn ihrer Ausführung führen sie einen ESM-Ultra-Aufruf (ESM = enter secure mode) aus, bei dem es sich um eine Aufforderung zum Übergang in eine SVM handelt. Ferner ist wichtig, darauf hinzuweisen, dass ein NVM-Abbild und ein SVM-Abbild aus Sicht des Cloud-Anbieters identisch sind. Der Cloud-Kunde muss dem Cloud-Anbieter mitteilen, dass ein bestimmtes Abbild für eine SVM bestimmt ist, damit es ordnungsgemäß verarbeitet wird. Bei der Beschreibung der Implementierung wird davon ausgegangen, dass das Abbild der VM (virtuelle Maschine), die in eine SVM (sichere virtuelle Maschine) 856 übergeht, bereits erzeugt wurde und dass der zugehörige symmetrische Startwert und die zugehörigen Metadaten sich bereits im SM 866 befinden. Schließlich wird davon ausgegangen, dass das SM 866 bei bekannter Identität der VM den richtigen symmetrischen Startwert unter Verwendung der zugehörigen Metadaten auswählt.
  • Mit erneutem Bezug auf 8 wird der allgemeine Prozess zum Ausführen einer SVM 856 dargestellt. Der Cloud-Benutzer fordert an, dass eine Ausführungsinstanz einer zuvor erzeugen SVM 856 erzeugt wird. Die Cloud-Infrastruktur 879 wählt eine Zielmaschine 864 aus und extrahiert das Plattformzertifikat sowie den Speicherschlüssel von der Zielmaschine. Die Infrastruktur leitet die Zielmaschine 864, das Plattformzertifikat und den Speicherschlüssel an das SM 866 unter der Kontrolle des Kunden weiter und fordert ein Registrieren der Zielmaschine 864 für die SVM an. In einer alternativen Ausführungsform leitet die Cloud-Infrastruktur nur die Zielmaschine weiter und fordert das SM auf, die Zielmaschine zu registrieren. Das SM extrahiert das Plattformzertifikat und den Speicherschlüssel von der Zielmaschine selbst und fährt dann mit dem Registrierungsprozess fort. Wenn die Registrierung erfolgreich ist, sendet das SM 866 versiegelte Daten für die Zielmaschine 866 an die Cloud-Infrastruktur 870 zurück. Die Infrastruktur ruft eine Kopie des Abbilds 856 aus ihrer Bibliothek 858 ab, fügt die versiegelten Daten in den ESM-Operanden unter Verwendung des Tools in die SVM 856 ein und stellt der Zielmaschine 864 die Kopie des Abbilds 856 mit den eingefügten versiegelten Daten zur Verfügung. Da die neu eingefügten versiegelten Daten für die Zielmaschine 864 bestimmt sind, geht die VM erfolgreich in eine SVM 856 über, sofern es keine anderen Probleme gibt. Dieses Modell geht davon aus, dass der Kunde einen Startwert pro SVM 856 hat und dass dieser Startwert auf allen Zielsystemen 866 gültig ist. Andere Modelle sind möglich, wobei insbesondere diese Ausführungsform so ausgelegt ist, als ob es sich bei einer ausgewählten Zielmaschine 864 um eine einzelne Maschine handelt. Für Fachleute ist jedoch offensichtlich, dass es sich bei einer Zielmaschine entweder um eine einzelne Maschine 864 oder einen Satz von Maschinen 868 handeln kann, je nachdem, wie die Infrastruktur bereitgestellt wird. Die versiegelten Daten können dynamisch in die Berechnung eingefügt werden.
  • Das Registrierungsprotokoll umfasst Folgendes. Das SM 866 oder eine gleichwertige Funktion muss das Registrierungsprotokoll ausführen. Für das Registrierungsprotokoll ist es erforderlich, dass die Cloud-Infrastruktur 870 den Maschinenanzeiger (z.B. die IP-Adresse (IP = Internetprotokoll)), das Plattformzertifikat, den SVM-Anzeiger und den Speicherschlüssel der Zielmaschine an das SM 866 weiterleitet. In einer alternativen Ausführungsform leitet der Cloud-Anbieter nur den Maschinenanzeiger an das SM weiter, und das SM extrahiert das Plattformzertifikat und den Speicherschlüssel selbst. In beiden Ausführungsformen validiert das SM 866 das Plattformzertifikat und prüft, ob die Eigenschaften des Speicherschlüssels korrekt sind. Wenn das Ergebnis der Überprüfung des Plattformzertifikats und des Speicherschlüssels positiv ist, erzeugt das SM 866 eine zufällige Prüffrage und stellt einen Berechtigungsnachweis aus. Es sendet „Berechtigungsnachweis aktivieren“ an die Zielmaschine 864, die auf deren TPM 862 ausgeführt werden soll. Die Zielmaschine 864 sendet die Antwort auf die Prüffrage zurück. Wenn die Antwort auf die Prüffrage gültig ist, erzeugt das SM 866 versiegelte Daten für die Zielmaschine 864 und sendet diese an die Cloud-Infrastruktur 870 des vorliegenden Systems 800 zurück.
  • Das Registrierungsprotokoll muss für jede Zielmaschine nur einmal ausgeführt werden. Wenn das SM 866 eine Datenbank der registrierten Maschine vorhält, kann es prüfen, ob die aktuelle Zielmaschine registriert ist. Wenn diese bereits registriert ist, kann es die Registrierung überspringen und die versiegelten Daten direkt erzeugen. Jeder Hashwert des Hardware-Schlüssels muss darüber hinaus nur einmal überprüft werden. Das SM 866 kann eine Datenbank mit validierten Hashwerten des Hardware-Schlüssels vorhalten. Bevor das System 800 das Protokoll für den Anbieter 860 ausführt, um den Hashwert des Hardware-Schlüssels zu prüfen, kann das System 800 prüfen, ob der Hashwert der Zielmaschine 864 bereits validiert wurde. Für die PEF ist dies keine allzu große Optimierung, da Hashwerte des Hardware-Schlüssels beim Erzeugen der SVM validiert werden und nicht einmal bei jeder Ausführung. Wenn ein Hashwert des Schlüssels ungültig wird, muss er aus dem SM 866 gelöscht werden. Wenn eine Maschine aus der Cloud-Infrastruktur 870 des vorliegenden Systems 800 entfernt wird, muss das SM 866 darüber informiert werden, dass die Maschine keine gültige Zielmaschine mehr ist, damit es seine interne Datenbanken bereinigen kann. Der primäre Startwert im TPM 862 muss schließlich ebenfalls gelöscht werden, wenn die Maschine entfernt wird, um sicherzustellen, dass die entfernte Maschine nicht zum Extrahieren von geheimen Informationen von den zuvor berechtigten SVMs 866 verwendet werden kann.
  • Die 9 und 10 veranschaulichen eine PEF (geschützte Ausführungseinrichtung), die ein SM zum Überprüfen des Zielsystems verwendet.
  • Der in den 3 und 4 dargestellte ursprüngliche Ansatz erfordert, dass der Infrastrukturanbieter Einzelheiten wie die IP-Adresse (IP = Internetprotokoll) der Server für seine Nutzer offenlegt, damit diese bestätigen, dass die beabsichtigte Zielmaschine akzeptiert werden kann, und die Berechnung so konfiguriert, dass sie auf der beabsichtigten Zielmaschine ausgeführt wird. Die erforderliche API macht die Infrastruktur der Cloud-Anbieter für die Cloud-Benutzer intransparenter.
  • Einige Cloud-Anbieter wollen keine Einzelheiten ihrer Infrastruktur offenlegen, da dies die transparente Verwaltung ihrer Infrastruktur erheblich erschwert. Mit der vorliegenden Erfindung kann dasselbe Ziel erreicht werden, d.h., einer TEE eine sichere Berechnung bereitzustellen, ohne dass dem Cloud-Kunden Einzelheiten der Infrastruktur offengelegt werden, indem ein entsprechend konfiguriertes SM einbezogen wird. Das SM muss vom Kunden kontrolliert werden können, der die TEEs nutzt. Das SM muss so konfiguriert sein, dass es die zuvor beschriebenen Überprüfungsabläufe wie in den 9 und 10 dargestellt durchführt. Der Kunde muss seine geheimen Informationen sicher in das SM einfügen.
  • Die 9A, 9B, 10A und 10B stellen dar, wie die vorliegende Erfindung in einer PEF einer TEE funktioniert. Die PEF und ähnliche TEEs sind so konzipiert, dass die TEE die Integrität der Berechnung beglaubigt, ohne dass eine separate Überprüfung mit dem Benutzer/Eigentümer der TEE erforderlich ist. Die 10A und 10B stellen dar, wie die vorliegende Erfindung mit einer TEE, z.B. einer AMD-SEV, funktioniert, bei der der Eigentümer/Benutzer der sicheren Berechnung die Berechnung explizit genehmigen muss, nachdem sie in eine gültige TEE geladen wurde. In beiden Fällen werden sowohl die TEE als auch die Berechnung beglaubigt/überprüft. Die 9A, 9B, 10A und 10B gehen nicht davon aus, dass der Kunde zuvor ein VM-Abbild geladen hat. Kunden können ein VM-Abbild, My-Image 482, zuvor laden, was voraussetzt, dass sie die Abbild-ID 483 bereits kennen.
  • 9A veranschaulicht die PEF-Alternative (PEF = geschützte Ausführungseinrichtung), bei der ein SM (Sicherheitsmodul) in einer Ausführungsform der vorliegenden Erfindung verwendet wird. Bei diesem Ablauf wird nicht davon ausgegangen, dass eine VM, die zu einer VM mit einer Abbild-Identität der Abbild-ID werden kann, bereits in den Cloud-Objektspeicher 308 geladen wurde. Die vertrauenswürdige Infrastruktur 350 besteht aus dem Kundenmodul 302, dem Tool-Modul 304 und dem Sicherheitsmodul (SM) 980. In dieser alternativen Ausführungsform ist das SM 980 vertrauenswürdig, obwohl es Teil der nichtvertrauenswürdigen Cloud-Infrastruktur 361 ist.
  • Um eine sichere VM bereitzustellen, fordert das Kundenmodul 302 an, dass das vertrauenswürdige Tool 304 ein My-Image 318 der SVM startet. Das Tool-Modul 304 fordert ein sicheres Bereitstellen 320 beim Front-End 306 der Cloud an. Das Front-End 306 der Cloud bestätigt den bezahlten Dienst 322 beim Tool-Modul 304.
  • Als Nächstes lädt das Tool-Modul 304 ein My-Image 982 der VM, die in eine SVM übergehen kann, in den Cloud-Objektspeicher 308 hoch. Der Cloud-Objektspeicher 308 sendet anschließend die Abbild-ID 983 an das Tool-Modul 304 zurück. Das Tool-Modul 304 sendet an das SM 980 einen Befehl zum sicheren Einfügen des Startwerts und der Metadaten, die von der Abbild-ID indiziert werden, in das SM 984. Für Fachleute ist offensichtlich, dass das Abbild auch zuvor hätte geladen werden können; in diesem Fall wäre die Abbild-ID bekannt gewesen. Das Tool-Modul 304 fordert an, dass der Bereichsorchestrator 310 eine Instanz der Abbild-ID- 324 erstellt.
  • Anschließend wählt das System 300 wie folgt eine Zielmaschine 325 aus. Der Bereichsorchestrator 310 wählt eine Zielmaschine aus und fordert die Plattformzertifizierung und den Speicherschlüssel 326 vom ausgewählten Zielsystem mit dem TPM 312 an. Das Zielsystem mit dem TPM 312 sendet anschließend das Plattformzertifikat und den Speicherschlüssel 328 zum Bereichsorchestrator 310 zurück.
  • Anschließend fordert der Bereichsorchestrator 310 an, dass das SM 980 diese Maschine (Mach-Ind, Plattformzertifizierung und Speicherschlüssel) 330 registriert. Das SM 980 ist die vertrauenswürdige Infrastruktur 350 für das Kundenmodul 302.
  • Das SM führt anschließend Überprüfen des Zielsystems von Mach-Ind 933 beim Zielsystem mit dem TPM 312 aus. Wenn das Ergebnis der Überprüfung negativ ist, endet die Aktivierung. Wenn das Ergebnis der Überprüfung positiv ist, sendet das SM 980 „Ausführung genehmigen“ (Mach-Ind, versiegelte Daten) 366 an den Bereichsorchestrator 310 zurück.
  • Das Bereichsorchestratormodul 310 fordert die Abbild-ID 338 vom Cloud-Objektspeicher 308 an. Der Cloud-Objektspeicher 308 sendet das der Abbild-ID zugehörige Abbild 340 an den Bereichsorchestrator 310 zurück. Der Bereichsorchestrator 310 fügt die versiegelten Daten 342 anschließend in das vom Cloud-Objektspeicher 308 zurückgesandte Abbild ein. Danach sendet der Bereichsorchestrator 310 das Abbild mit den eingefügten sensiblen Daten an das ausgewählte Zielsystem mit dem TPM 312 mit einem Befehl, das Abbild 344 auszuführen.
  • 9B zeigt die Abläufe, die zwischen dem Zielsystem mit dem TPM 312 und dem SM 980 erforderlich sind, um Überprüfen des Zielsystems von Mach-Ind 933 in einer Ausführungsform der vorliegenden Erfindung abzuschließen. Wie hervorgehoben, umfasst die vertrauenswürdige Infrastruktur 350 das SM 980. Der Bereichsorchestrator 310 und das Zielsystem mit dem TPM 312 befinden sich außerhalb der vertrauenswürdigen Infrastruktur 350 in der nichtvertrauenswürdigen Cloud-Infrastruktur 361.
  • Der Bereichsorchestrator 310 sendet Anforderungen zum Registrieren dieser Maschine (Machine-Ind, Plattformzertifizierung und Speicherschlüssel) 330 an das SM 980.
  • Das SM 980 validiert das Plattformzertifikat und führt eine Prüfung der Eigenschaften des Speicherschlüssels durch (460). Der SM-Hyperschutz 980 erzeugt eine Prüffrage und erstellt den Berechtigungsnachweis 462, der einen binären Blob mit der Bezeichnung Berechtigungsnachweis erzeugt, der nur für das TPM sein kann, das bei 460 validiert wurde. Das SM 980 sendet „Berechtigungsnachweis aktivieren“ (Berechtigungsnachweis) 468 an das Zielsystem mit dem TPM 312. Das Zielsystem mit dem TPM 312 sendet anschließend die Antwort 470 auf die Prüffrage an das SM 980 zurück. Das SM 980 prüft die Antwort 476 auf die Prüffrage. Wenn die Antwort auf die Prüffrage falsch ist, endet die Aktivierung und eine Anzeige einer Fehlermeldung wird von diesem Prozess zurückgesendet. Wenn die Antwort auf die Prüffrage richtig ist, erzeugt das SM 980 versiegelte Daten 334 unter Verwendung der Richtlinie, die als Metadaten zusammen mit dem Startwert weitergeleitet wurde. Das SM 980 sendet „Ausführung genehmigen“ (Machine-Ind, versiegelte Daten) 336 an den Bereichsorchestrator 310.
  • 10A veranschaulicht ein alternatives Sicherheitsmodell, das ein SM verwendet, um eine TEE in einem AMD-Prozessor einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur bereitzustellen. In 9B verfügt das Kundenmodul 302 über eine vertrauenswürdige Infrastruktur 350 und nutzt einen Cloud-Anbieter 361. Der Kunde verwendet bei dem Cloud-Anbieter ein Sicherheitsmodul (SM) 980, über das er die Kontrolle hat und das vertrauenswürdig 350 ist. Die übrige Infrastruktur 361 des Cloud-Anbieters ist nichtvertrauenswürdig. Das Kundenmodul 302 sendet eine Anforderung an das vertrauenswürdige Tool 304, um My-Image der SVM zu starten. Das Tool-Modul 304 fordert ein sicheres Bereitstellen (320) vom Front-End 306 der Cloud an. Das Front-End 306 der Cloud bestätigt den bezahlten Dienst (322). Das Kunden-Tool lädt das Abbild My-Image in den Cloud-Objektspeicher hoch (982). Der Cloud-Objektspeicher 308 sendet die Abbildkennung, Abbild-ID, des gespeicherten Abbilds an das Kunden-Tool 304 zurück (383). Das Kunden-Tool 304 fügt den Startwert 384, der auch als detaillierte oder sensible Information bezeichnet und durch die Abbild-ID indexiert wird, in das Sicherheitsmodul (SM) ein (380). Des Weiteren können zusätzliche Metadaten eingefügt werden, die der Abbild-ID zugehörig sind. Das Kunden-Tool 304 fordert anschließend an, dass der Bereichsorchestrator 310 eine Instanz einer Abbild-ID erzeugt (324). Der Bereichsorchestrator 310 wählt (1065) eine Zielmaschine 312 Mach-Ind aus. Als Nächstes fordert der Bereichsorchestrator 310 an, dass das Sicherheitsmodul 380 die Zielmaschine 312 Mach-Ind prüft (1063). Das Sicherheitsmodul prüft die Zielmaschine (1025).
  • 10B veranschaulicht den Ablauf zum Überprüfen des Zielsystems (PEF) für eine TEE in einem AMD-Prozessor für das alternative Modell, das ein SM einer Ausführungsform der vorliegenden Erfindung in einer Cloud-Infrastruktur verwendet. 10B zeigt die Einzelheiten der Anforderung zum Überprüfen der Zielmaschine (1025) von 10A. Die Anforderung zum Überprüfen (1063) von Mach-Ind wird vom Bereichsorchestrator 310 durch das Sicherheitsmodul (SM) 980 empfangen. Da das Zielsystem 312 einen AMD-Prozess mit der TEE enthält, wurde 10B erweitert, um den PSP 1003 in das Zielsystem aufzunehmen, dem vertraut werden kann (350), wenn er zertifiziert ist. Es ist wichtig, darauf hinzuweisen, dass es sich bei dem PSP um eine Teilkomponente des AMD-Prozessors handelt, der in 10B zur Verdeutlichung der Abläufe erweitert wird. Ein weiterer wichtiger Punkt ist, dass die Datenübertragung zwischen dem SM und dem PSP sicher ist und in keiner Richtung gefälscht werden kann. Diese Beschreibung stellt einen Überblick über den Prozess bereit. Die Einzelheiten sind in den AMD-Weißbüchern und technischen Unterlagen zu finden, die jeder Fachmann erwerben kann. Das SM gibt eine Anforderung zum Überprüfen (1056) an das Zielsystem 312 aus, das die Anforderung 1058 an den PSP 1003 weiterleitet. Als Reaktion auf die Anforderung erzeugt der PSP 1003 signierte Daten und sendet diese an den Prozessor 312 zurück (1092), der sie wiederum an das SM 980 zurücksendet (1011). Das SM 980 extrahiert das Zertifikat aus der Antwort (1027) und fordert die Überprüfung von der AMD-Zertifizierungsstelle 1054 an (1094). Die AMD-Zertifizierungsstelle 1054 sendet die Überprüfungsantwort zurück (1096). Wenn das Zertifikat nicht überprüft wird, endet die Aktivierung (Anforderung zum Ausführen der sicheren VM in der TEE). Wenn das Zertifikat überprüft wird, fordert das SM 980 an, dass der Bereichsorchestrator 310 das VM-Abbild in das Zielsystem lädt. Der Bereichsorchestrator 310 sendet das VM-Abbild, das der Abbild-ID zugehörig ist, an das Zielsystem mit einer Anforderung zum Laden des Abbilds (1051). Das Zielsystem 312 lädt das VM-Abbild in die TEE (nicht dargestellt). Das SM 980 gibt eine Anforderung zum Beglaubigen der Abbild-ID des VM-Abbildes an das Zielsystem 312 aus (1057). Das Zielsystem 312 gibt eine Anforderung zum Beglaubigen an den vertrauenswürdigen PSP 1003 aus. Der PSP 1003 erzeugt die Beglaubigungsantwort und sendet sie an das System 312 zurück (1059). Das Zielsystem sendet die Beglaubigungsantwort an das SM 980 zurück (1099). Das SM überprüft die Beglaubigungsantwort anhand des Hashwerts der VM (1055). Wenn das Ergebnis der Überprüfung negativ ist, endet die Aktivierung. Wenn das Ergebnis der Überprüfung positiv ist, erhält das SM 980 die Berechtigung (auch als Entschlüsselungsschlüssel bezeichnet) und gibt „Berechtigung einfügen“ an das Zielsystem 312 aus (1091). Das Zielsystem leitet „Berechtigung einfügen“ an den PSP 1003 weiter (1097). Der PSP 1003 fügt die Berechtigung in die TEE ein. Das SM 980 gibt „System booten“ an das Zielsystem 312 aus (1093), das erfolgreich ist, da die sichere Berechnung autorisiert ist (der Entschlüsselungsschlüssel wurde erfolgreich eingefügt).
  • Die 11 bis 15 zeigen alternative Konfigurationen der Systeme 100, 200, 300, 301, 500 und 800, die implementiert werden können. Verschiedene Merkmale, die in verschiedenen Figuren der 1 bis 15 dargestellt sind, können kombiniert, geändert oder zwischen den verschiedenen Beispielen ausgetauscht werden.
  • 11 veranschaulicht eine andere Hardware-Konfiguration des Systems, in der es ein Informationsverarbeitungs-/Computersystem 1100 gemäß der vorliegenden Erfindung gibt, das über mindestens einen Prozessor oder eine Zentraleinheit (CPU) 1110 verfügt, die die Techniken der Erfindung in Form eines Software-Programms für Software-Intelligenz als Dienst implementieren kann.
  • Wie bereits erwähnt, kann die vertrauenswürdige Ausführungsumgebung 102 in einer lokalen Infrastruktur wie in 11 dargestellt implementiert werden.
  • Die CPUs 1110 sind über einen Systembus 1112 mit einem Direktzugriffsspeicher (RAM) 1114, einem Nur-Lese-Speicher (ROM) 1116, einem Eingabe-/Ausgabeadapter (E/A-Adapter) 1118 (zum Verbinden von Peripherieeinheiten wie Platteneinheiten 1121 und Bandlaufwerken 1140 mit dem Bus 1112), einem Benutzerschnittstellenadapter 1122 (zum Verbinden einer Tastatur 1124, einer Maus 1126, eines Lautsprechers 1128, eines Mikrofons 1132 und/oder einer anderen Benutzerschnittstelleneinheit mit dem Bus 1112), einem Datenübertragungsadapter 1134 zum Verbinden eines Informationsverarbeitungssystems mit einem Datenverarbeitungsnetzwerk, dem Internet, einem Intranet, einem Personal Area Network (PAN) usw. und einem Anzeigeadapter 1136 zum Verbinden des Busses 1112 mit einer Anzeigeeinheit 1138 und/oder einem Drucker 1139 (z.B. einem digitalen Drucker oder Ähnlichem) verbunden.
  • Neben der vorstehend beschriebenen Hardware-/Softwareumgebung umfasst ein anderer Aspekt der Erfindung ein durch einen Computer implementiertes Verfahren zum Durchführen des vorstehenden Verfahrens. Dieses Verfahren kann beispielsweise in der vorstehend beschriebenen besonderen Umgebung implementiert werden.
  • Ein solches Verfahren kann beispielsweise durch den Betrieb eines Computers, wie in einer digitalen Datenverarbeitungsvorrichtung ausgeführt, implementiert werden, um eine Folge von maschinenlesbaren Anweisungen auszuführen. Diese Anweisungen können sich in verschiedenen Arten von signaltragenden Medien befinden.
  • Dieser Aspekt der vorliegenden Erfindung bezieht sich somit auf ein programmiertes Produkt, darunter signaltragende Speichermedien, die ein Programm von maschinenlesbaren Anweisungen physisch ausführen, die von einem digitalen Prozessor ausgeführt werden können, der die vorstehend genannte CPU 1110 und die Hardware enthält, um das Verfahren der Erfindung durchzuführen.
  • Diese signaltragenden Speichermedien können zum Beispiel einen RAM enthalten, der in der CPU 1110 enthalten ist, wie zum Beispiel durch den Schnellzugriffsspeicher dargestellt.
  • Alternativ können die Anweisungen in anderen signaltragenden Speichermedien 1200 wie einem Flash-Speicher 1210 oder einer optischen Speicherdiskette 1220 (12) enthalten sein, auf die die CPU 1110 direkt oder indirekt zugreifen kann.
  • Unabhängig davon, ob die Anweisungen im Flash-Speicher 120, der optischen Platte 1220, dem Computer/der CPU 1110 oder anderswo enthalten sind, können die Anweisungen in einer Vielfalt von maschinenlesbaren Datenspeichermedien gespeichert werden.
  • Bei der vorliegenden Erfindung kann es sich daher um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein 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. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hier beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. 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 entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (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, vor Ort 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 hier 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, sodass 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel umfasst, 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, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der 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) umfassen. 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.
  • Mit Bezug nunmehr auf 13 wird eine schematische Darstellung 1400 eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 1400 ist nur ein Beispiel eines geeigneten Cloud-Computing-Knotens und soll keine Beschränkung des Anwendungsbereichs der Nutzung oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung nahelegen. Ungeachtet dessen kann der Cloud-Computing-Knoten 1400 implementiert werden und/oder eine beliebige der vorstehend dargelegten Funktionalitäten durchführen. Wie bereits erwähnt, kann die vertrauenswürdige Ausführungsumgebung 102 in einer lokalen Infrastruktur wie in 13 (und auch in den 14 und 15) dargestellt implementiert werden. Im Cloud-Computing-Knoten 1400 gibt es ein Computersystem/einen Server 1412, der mit zahlreichen anderen universellen oder speziellen Datenverarbeitungssystem-Umgebungen oder Konfigurationen funktionsfähig ist. Beispiele für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für die Nutzung mit dem Computersystem/Server 1412 geeignet sein können, sind unter anderem, ohne darauf beschränkt zu sein, Personal-Computer-Systeme, Server-Computer-Systeme, schlanke Clients, leistungsintensive Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Beistellgeräte, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die jedes beliebige der oben genannten Systeme oder Einheiten und Ähnliches enthalten.
  • Das Computersystem/der Server 1412 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, z.B. Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 1412 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo die Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl auf lokalen als auch auf entfernt angeordneten Computersystem-Speichermedien befinden, darunter Speichereinheiten mit Arbeitsspeichern.
  • Wie in 13 gezeigt, wird das Computersystem/der Server 1412 im Cloud-Computing-Knoten 1400 in Form einer universellen Datenverarbeitungseinheit dargestellt. Bei den Komponenten des Computersystems/Servers 1412 kann es sich - ohne auf diese beschränkt zu sein - um einen oder mehrere Prozessoren oder Verarbeitungseinheiten 1416, einen Systemspeicher 1428 und einen Bus 1418 handeln, der verschiedene Systemkomponenten, darunter den Systemspeicher 1428, mit dem Prozessor 1416 verbindet.
  • Der Bus 1418 stellt einen oder mehrere von beliebigen mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, eine AGP-Schnittstelle (Accelerated Graphics Port) und einen Prozessor oder lokalen Bus, der eine beliebige aus einer Vielfalt von Busarchitekturen nutzt. Beispielsweise und nicht einschränkend enthalten solche Architekturen einen Industry-Standard-Architecture(ISA)-Bus, einen Micro-Channel-Architecture(MCA)-Bus, einen Enhanced-ISA(EISA)-Bus, einen lokalen Video-Electronics-Standards-Association(VESA)-Bus und einen Peripheral-Component-Interconnects(PCI)-Bus.
  • Das Computersystem/der Server 1412 umfasst in der Regel eine Vielfalt von durch einen Computer lesbare Medien. Bei diesen Medien kann es sich um beliebige verfügbare Medien handeln, auf die das Computersystem/der Server 1412 zugreifen kann, darunter flüchtige und nichtflüchtige Medien, wechselbare und nichtwechselbare Medien.
  • Der Systemspeicher 1428 kann vom Computersystem lesbare Medien in Form von flüchtigen Speichern, z.B. Direktzugriffsspeicher (RAM) 1430 und/oder Cache 1432, enthalten. Das Computersystem/der Server 1412 kann ferner weitere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Nur beispielhaft kann das Speichersystem 1434 bereitgestellt werden, um ein nichtwechselbares, nichtflüchtiges magnetisches Medium auszulesen und zu beschreiben (nicht dargestellt und üblicherweise als „Festplatte“ bezeichnet). Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. In solchen Fällen kann jedes über eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 1418 verbunden sein. Wie unten weiter dargestellt und beschrieben, kann der Speicher 1428 mindestens ein Programmprodukt mit einem (z.B. mindestens einem) Satz von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen der Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 1440 mit (mindestens) einem Satz von Programmmodulen 1442 kann beispielsweise und nicht einschränkend im Speicher 1428 gespeichert sein, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 1442 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der hierin beschriebenen Erfindung aus.
  • Das Computersystem/der Server 1412 kann auch mit einer oder mehreren externen Einheiten 1414, z.B. einer Tastatur, einer Zeigeeinheit, einer Anzeige 1424 usw., Daten austauschen; sowie mit einer oder mehreren Einheiten, die einen Benutzer in die Lage versetzen, mit dem Computersystem/Server 1412 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 1412 in die Lage versetzen, mit einer oder mehreren Datenverarbeitungseinheiten Daten auszutauschen. Eine solche Datenübertragung kann über die Eingabe-/Ausgabeschnittstellen (E/A-Schnittstellen) 1422 erfolgen. Überdies kann das Computersystem/der Server 1412 mit einem oder mehreren Netzwerken, z.B. einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet), über den Netzwerkadapter 1420 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 1420 über den Bus 1418 mit den anderen Komponenten des Computersystems/Servers 1412 Daten aus. Es versteht sich, dass sonstige Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 1412 verwendet werden können, auch wenn sie nicht dargestellt sind. Beispiele sind unter anderem, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, Anordnungen externer Festplattenlaufwerke, RAID-Systeme, Bandlaufwerke und Speichersysteme für die Datenarchivierung usw.
  • Mit Bezug nunmehr auf 14 ist eine veranschaulichende Cloud-Computing-Umgebung 1550 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 1550 einen oder mehrere Cloud-Computing-Knoten 1400, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 1554A, der Desktop-Computer 1554B, der Laptop-Computer 2054C und/oder das Kraftfahrzeug-Computersystem 1554N Daten austauschen können. Die Knoten 1400 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 1550, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 16 gezeigten Arten von Datenverarbeitungseinheiten 1554A bis N nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 1400 und die Cloud-Computing-Umgebung 1550 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
  • Mit Bezug nunmehr auf 15 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 1550 (14) bereitgestellt werden. Es versteht sich im Voraus, dass die in 15 dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Die Hardware- und Software-Schicht 1660 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel IBM® zSeries®-Systeme; auf der RISC-Architektur (Reduced Instruction Set Computer) beruhende Server, in einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichereinheiten; Netzwerke sowie Netzwerkkomponenten. Zu Beispielen für Software-Komponenten gehören eine Netzwerk-Anwendungsserver-Software, in einem Beispiel die IBM WebSphere®-Anwendungsserver-Software; und eine Datenbank-Software, in einem Beispiel die IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen der International Business Machines Corporation, die in vielen Rechtsordnungen weltweit eingetragen sind).
  • Die Virtualisierungsschicht 1662 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server, virtuelle Speicher, virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht 1664 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Datenverarbeitungsumgebung durchzuführen. Messen und Preisermittlung stellen eine Kostenerfassung (wenn Ressourcen in der Cloud-Datenverarbeitungsumgebung verwendet werden) sowie eine Rechnungsstellung oder Fakturierung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt einen Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Dienstgüteverwaltung stellt eine Zuordnung und Verwaltung der Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erfüllt wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) stellt eine Vorabanordnung und Bereitstellung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausberechnet wird.
  • Die Arbeitslastschicht 1666 stellt Beispiele für Funktionalitäten bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Lieferung von Bildung aus dem virtuellen Klassenzimmer; Datenanalyseverarbeitung; Transaktionsverarbeitung; und insbesondere in Bezug auf die vorliegende Erfindung APIs und Laufzeitsystemkomponenten zum Erzeugen von Vorschlägen für die automatische Vervollständigung der Suche auf der Grundlage von Kontexteingaben.
  • Die zahlreichen Merkmale und Vorteile der Erfindung ergeben sich aus der ausführlichen Beschreibung, daher sollen die beigefügten Ansprüche alle diese Merkmale und Vorteile der Erfindung abdecken, die dem eigentlichen Gedanken und Anwendungsbereich der Erfindung entsprechen. Da für Fachleute zahlreiche Änderungen und Variationen offensichtlich sind, soll die Erfindung nicht auf den genauen Aufbau und die genaue Funktionsweise wie dargestellt und beschrieben beschränkt sein, und entsprechend kann auf alle geeigneten Änderungen und Äquivalente zurückgegriffen werden, die in den Anwendungsbereich der Erfindung fallen.
  • Es versteht sich, dass die Erfindung in ihrer Anwendung nicht auf die Einzelheiten des Aufbaus und die Anordnungen der in der folgenden Beschreibung aufgeführten oder in den Zeichnungen dargestellten Komponenten beschränkt ist. Die Erfindung kann zusätzlich zu den beschriebenen Ausführungsformen noch Ausführungsformen enthalten und auf verschiedene Art und Weise durchgeführt werden. Es versteht sich ferner, dass die hier verwendete Ausdrucksweise und Terminologie sowie die Zusammenfassung zum Zweck der Beschreibung dienen und nicht als einschränkend angesehen werden sollten.
  • Für Fachleute ist daher offensichtlich, dass das Konzept, auf dem diese Offenbarung beruht, ohne Weiteres als Grundlage für die Gestaltung anderer Strukturen, Verfahren und Systeme zum Durchführen der verschiedenen Zwecke der vorliegenden Erfindung verwendet werden kann. Es ist daher wichtig, dass die Ansprüche unter dem Aspekt betrachtet werden, dass sie diesen äquivalenten Aufbau umfassen, ohne vom Gedanken und Anwendungsbereich der vorliegenden Erfindung abzuweichen.

Claims (16)

  1. Verfahren zum Erzeugen einer Berechnung, sodass diese in einer vertrauenswürdigen Zielausführungsumgebung (TEE) ausgeführt wird, wobei das Verfahren aufweist: Auswählen der Ziel-TEE; Erzeugen einer Berechtigung, die von einer TEE erfüllt wird; Zuordnen der Berechtigung zu der Berechnung, die in der berechtigten TEE ausgeführt wird; und Erzeugen der Berechnung mit der zugehörigen Berechtigung.
  2. Verfahren nach Anspruch 1, das weiterhin aufweist: Auswählen von Attributen, die in die Berechtigung für die gültige TEE aufgenommen werden.
  3. Verfahren nach Anspruch 1, wobei zum Erzeugen der Berechtigung ein Sicherheitsmodul (SM) verwendet wird.
  4. Verfahren nach Anspruch 1, wobei Zuordnen der Berechtigung zu der Berechnung dynamisches Einfügen von Informationen in die Berechtigung umfasst.
  5. Verfahren nach Anspruch 3, wobei ein Kunde geheime Informationen sicher in das SM einfügt, wobei geheime Informationen Metadaten enthalten, die angeben, welchen geheimen Informationen die sichere Berechnung zugehörig ist.
  6. Verfahren nach Anspruch 5, wobei der Kunde die Steuerung über das SM hat.
  7. Verfahren nach Anspruch 3, wobei das SM die Berechtigung in die Ziel-TEE einfügt.
  8. Verfahren nach Anspruch 1, wobei sich die TEE in einer Cloud-Infrastruktur oder lokalen Infrastruktur befindet.
  9. Verfahren nach Anspruch 1, wobei ein SM als Teil der Cloud-Infrastruktur oder lokalen Infrastruktur verwendet wird.
  10. Verfahren nach Anspruch 1, wobei detaillierte Informationen über die Cloud-Infrastruktur oder detaillierte Informationen über die TEE nur dem Sicherheitsmodul offengelegt werden.
  11. Verfahren nach Anspruch 1, wobei das SM eine Liste von zuvor erzeugten Berechtigungen speichert, wenn zuvor eine Berechtigung für die ausgewählte Ziel-TEE erzeugt wurde, führt das SM kein erneutes Erzeugen durch.
  12. Verfahren nach Anspruch 1, wobei mindestens ein Teil der Berechnung verschlüsselt ist, und Verschlüsseln eines Teils der Berechnung Verschlüsseln der Informationen umfasst, die zum Prüfen der Integrität der Berechnung erforderlich sind.
  13. Verfahren nach Anspruch 1, wobei die Berechtigung die Berechnung auf eine bestimmte TEE aus einer Mehrzahl von TEEs beschränkt.
  14. Verfahren nach Anspruch 1, das weiterhin aufweist: Bereitstellen der erzeugten Berechnung.
  15. System, das aufweist: einen Speicher, der Computeranweisungen speichert; und einen Prozessor, der so konfiguriert ist, dass er die Computeranweisungen ausführt, um: eine vertrauenswürdige Zielausführungsumgebung (TEE) auszuwählen; eine Berechtigung zu erzeugen, die von einer TEE erfüllt wird; die Berechtigung der Berechnung zuzuordnen, die in der berechtigten TEE ausgeführt wird; und die Berechnung mit der zugehörigen Berechtigung zu erzeugen.
  16. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen von einem Computer lesbar und ausführbar sind, um den Computer zu veranlassen, ein Verfahren durchzuführen, das aufweist: Auswählen einer vertrauenswürdigen Zielausführungsumgebung (TEE); Erzeugen einer Berechtigung, die von einer TEE erfüllt wird; Zuordnen der Berechtigung zu der Berechnung, die in der berechtigten TEE ausgeführt wird; und Erzeugen der Berechnung mit der zugehörigen Berechtigung.
DE102021130909.3A 2020-12-22 2021-11-25 Bereitstellen von sicheren/verschlüsselten virtuellen maschinen in einer cloud-infrastruktur Pending DE102021130909A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/130,269 US20220198070A1 (en) 2020-12-22 2020-12-22 Provisioning secure/encrypted virtual machines in a cloud infrastructure
US17/130,269 2020-12-22

Publications (1)

Publication Number Publication Date
DE102021130909A1 true DE102021130909A1 (de) 2022-06-23

Family

ID=79269877

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021130909.3A Pending DE102021130909A1 (de) 2020-12-22 2021-11-25 Bereitstellen von sicheren/verschlüsselten virtuellen maschinen in einer cloud-infrastruktur

Country Status (4)

Country Link
US (1) US20220198070A1 (de)
CN (1) CN114661411A (de)
DE (1) DE102021130909A1 (de)
GB (1) GB2604982A (de)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208335B2 (en) * 2013-09-17 2015-12-08 Auburn University Space-time separated and jointly evolving relationship-based network access and data protection system
US9697140B2 (en) * 2014-09-23 2017-07-04 Intel Corporation Encryption integrity check with CRC encryption in memory using a word count- and address-derived nonce
US20160335531A1 (en) * 2015-05-12 2016-11-17 Dynamics Inc. Dynamic security codes, tokens, displays, cards, devices, multi-card devices, systems and methods
US9697371B1 (en) * 2015-06-30 2017-07-04 Google Inc. Remote authorization of usage of protected data in trusted execution environments
WO2017074112A1 (en) * 2015-10-29 2017-05-04 Samsung Electronics Co., Ltd. Wireless terminal and instruction processing method thereof
CN111095899B (zh) * 2019-04-26 2021-12-24 创新先进技术有限公司 针对可信执行环境的分布式密钥管理

Also Published As

Publication number Publication date
US20220198070A1 (en) 2022-06-23
GB202117420D0 (en) 2022-01-19
GB2604982A (en) 2022-09-21
CN114661411A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
US8024564B2 (en) Automating configuration of software applications
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
US20220044316A1 (en) Blockchain implemented transfer of multi-asset digital wallets
DE112021001270T5 (de) Sicherer schlüsselaustausch in einer datenverarbeitungsumgebung
US20220004647A1 (en) Blockchain implementation to securely store information off-chain
DE112021001413T5 (de) Verwaltung eines privilegierten zugriffs mit geringer vertrauenswürdigkeit
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112020005373T5 (de) Mechanismus zur authentifizierung durch nutzung von positionsbestätigung
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
DE112020005526T5 (de) Reservieren eines oder mehrerer sicherheitsmodule für einen sicheren gast
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
WO2022121673A1 (en) Decentralized broadcast encryption and key generation facility
WO2022116761A1 (en) Self auditing blockchain
US11573952B2 (en) Private shared resource confirmations on blockchain
DE102021130909A1 (de) Bereitstellen von sicheren/verschlüsselten virtuellen maschinen in einer cloud-infrastruktur
DE112022003983T5 (de) Berechtigte, sichere datenverschiebung
DE112021004798T5 (de) Gewährleisten einer sicheren bereitstellung einer blockchain-infrastruktur
CN114579585A (zh) 区块链选择性世界状态数据库
DE112022000340T5 (de) Attributgestützte verschlüsselungsschlüssel als schlüsselmaterial zum authentifizieren und berechtigen von benutzern mit schlüssel-hash-nachrichtenauthentifizierungscode
CN117813605A (zh) 开源容器数据管理
CN115943606A (zh) 可编辑区块链

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence