DE102023202297A1 - Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten - Google Patents

Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten Download PDF

Info

Publication number
DE102023202297A1
DE102023202297A1 DE102023202297.4A DE102023202297A DE102023202297A1 DE 102023202297 A1 DE102023202297 A1 DE 102023202297A1 DE 102023202297 A DE102023202297 A DE 102023202297A DE 102023202297 A1 DE102023202297 A1 DE 102023202297A1
Authority
DE
Germany
Prior art keywords
execution environment
trusted execution
data
processor
trusted
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
DE102023202297.4A
Other languages
English (en)
Inventor
Ahmad Atamli
Rami Ailabouni
Ahmad Saleh
Ariel Levanon
Thanh Nguyen
Mark Overby
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.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies Ltd
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 Mellanox Technologies Ltd filed Critical Mellanox Technologies Ltd
Publication of DE102023202297A1 publication Critical patent/DE102023202297A1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

Die hier offengelegte Technologie ermöglicht es einer Hilfs-Vorrichtung, einen Dienst auszuführen, der auf Daten einer vertrauenswürdigen Ausführungsumgebung (TEE) zugreifen und diese analysieren kann. Die Hilfs-Vorrichtung kann eine Hilfs-TEE in der Hilfs-Vorrichtung einrichten und eine vertrauenswürdige Kommunikationsverbindung zwischen der Hilfs-TEE und der TEE (d. h. der primären TEE) herstellen. Die primäre TEE kann ein Zielprogramm unter Verwendung der primären Vorrichtungen einer Host-Vorrichtung (z. B. CPU) ausführen und die Hilfs-TEE kann ein Sicherheitsprogramm unter Verwendung der Hilfs-Vorrichtung (z. B. DPU) ausführen. In einem Beispiel können die primäre und die Hilfs-TEE für einen Cloud-Konsumenten eingerichtet werden, und die Hilfs-TEE kann einen Sicherheitsdienst ausführen, der Daten der primären TEE überwachen kann, obwohl die Daten für andere Software, die außerhalb der primären TEE ausgeführt wird, unzugänglich sind (z. B. unzugänglich für das Host-Betriebssystem und den Hypervisor).

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Vorteile der am 18. März 2022 eingereichten vorläufigen US-Patentanmeldung Nr. 63/321,410 mit dem Titel „WAHRUNG DER VERTRAULICHKEIT VON MANDANTEN IN EINER CLOUD-UMGEBUNG BEIM EINSATZ VON SICHERHEITSDIENSTEN“, die durch Bezugnahme hierin aufgenommen ist.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenlegung bezieht sich im Allgemeinen auf die Verwendung vertraulicher Datenverarbeitungs-Techniken zum Aufbau einer vertrauenswürdigen Rechenbasis in einer Host-Vorrichtung und im Besonderen auf die Erweiterung der vertrauenswürdigen Rechenbasis um Hardware-Beschleuniger, die Sicherheitsdienste bereitstellen und Teile der vertraulichen Datenverarbeitungs-Umgebung überwachen.
  • HINTERGRUND
  • Moderne Computersysteme verwenden häufig vertrauliche Datenverarbeitung, um die Datensicherheit zu erhöhen. Bei der Datensicherheit werden die Daten in der Regel verschlüsselt, wenn sie auf der Festplatte gespeichert sind und wenn sie sich auf dem Transportweg befinden; bei der vertraulichen Datenverarbeitung werden die Daten auch verschlüsselt, wenn sie in Gebrauch sind (z. B. im Speicher oder im Cache des Prozessors). Vertrauliche Datenverarbeitung kann die Verschlüsselung auch durch Integritätsprüfung, Wiedergabeschutz oder eine Kombination davon ergänzen.
  • KURZFASSUNG
  • Die Erfindung wird durch die Ansprüche definiert. Zur Veranschaulichung der Erfindung werden hier Aspekte und Ausführungsformen beschrieben, die in den Anwendungsbereich der Ansprüche fallen können oder auch nicht.
  • Die hier offengelegte Technologie ermöglicht es einer Hilfs-Vorrichtung, einen Dienst auszuführen, der auf Daten einer vertrauenswürdigen Ausführungsumgebung (TEE, Engl. „trusted execution environment“) zugreifen und diese analysieren kann. Die Hilfs-Vorrichtung kann eine Hilfs-TEE in der Hilfs-Vorrichtung einrichten und eine vertrauenswürdige Kommunikationsverbindung zwischen der Hilfs-TEE und der TEE (d. h. der primären TEE) herstellen. Die primäre TEE kann ein Zielprogramm unter Verwendung der primären Vorrichtungen einer Host-Vorrichtung (z. B. CPU, Engl. „central processing unit“) ausführen und die Hilfs-TEE kann ein Sicherheitsprogramm unter Verwendung der Hilfs-Vorrichtung (z. B. DPU, Engl. „data processing unit“) ausführen. In einem Beispiel können die primäre und die Hilfs-TEE für einen Cloud-Verbraucher eingerichtet werden, und die Hilfs-TEE kann einen Sicherheitsdienst ausführen, der Daten der primären TEE überwachen kann, obwohl die Daten für andere Software, die außerhalb der primären TEE ausgeführt wird, unzugänglich sind (z. B. unzugänglich für das Host-Betriebssystem und den Hypervisor).
  • Ein System umfasst: einen Vorrichtungs-Speicher; einen Prozessor, der kommunikativ mit dem Vorrichtungs-Speicher gekoppelt ist, wobei der Prozessor Operationen ausführt, die Folgendes umfassen: Feststellen, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung einen Speicher der Host-Vorrichtung umfasst und ein erstes Computerprogramm ausführt; Herstellen einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung, wobei die zweite vertrauenswürdige Ausführungsumgebung den Vorrichtungs-Speicher umfasst; Empfangen von Daten der ersten vertrauenswürdigen Ausführungsumgebung unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführen eines zweiten Computerprogramms in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  • Die Host-Vorrichtung kann ein Host-Betriebssystem umfassen, das die Rechenressourcen der Host-Vorrichtung verwaltet, und wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung jeweils Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  • Die Host-Vorrichtung umfasst eine Zentraleinheit (CPU) und eine Datenverarbeitungseinheit (DPU), wobei die CPU das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt und wobei die DPU den Prozessor und den Vorrichtungs-Speicher umfasst und das zweite Computerprogramm ausführt, um die Ausführung des ersten Programms zu überwachen. Die CPU kann die erste vertrauenswürdige Ausführungsumgebung einrichten und die DPU die zweite vertrauenswürdige Ausführungsumgebung einrichten.
  • Die Operationen können ferner Folgendes umfassen: Zugreifen auf Daten des ersten Computerprogramms, die in der zweiten vertrauenswürdigen Ausführungsumgebung gespeichert sind, durch den Prozessor; Erkennen, dass das erste Computerprogramm beeinträchtigt ist, durch den Prozessor; und Bereitstellen einer Anzeige, dass das erste Computerprogramm, das in der ersten vertrauenswürdigen Ausführungsumgebung ausgeführt wird, beeinträchtigt ist, durch den Prozessor.
  • Das System kann ferner eine Hilfs-Vorrichtung umfassen, die den Prozessor, den Vorrichtungs-Speicher und einen oder mehrere Hardware-Beschleuniger umfasst, wobei die Operationen ferner die Erweiterung einer vertrauenswürdigen Rechenbasis (TCB, Engl. „trusted computing base“) umfassen, die einen Host-Prozessor umfasst, um ferner den Prozessor und den einen oder die mehreren Hardware-Beschleuniger zu umfassen.
  • Die Operationen können ferner das Einrichten einer zusammengesetzten vertrauenswürdigen Ausführungsumgebung umfassen, welche die erste vertrauenswürdige Ausführungsumgebung mit einem Host-Prozessor und dem Speicher der Host-Vorrichtung und ferner die zweite vertrauenswürdige Ausführungsumgebung mit dem Prozessor und dem Vorrichtungs-Speicher enthält.
  • Das erste Computerprogramm und das zweite Computerprogramm können von einem Cloud-Konsumenten in verschlüsselter Form bereitgestellt werden und sind für ein von einem Cloud-Anbieter betriebenes Host-Betriebssystem unzugänglich.
  • Ein Verfahren umfasst: Bestimmen, durch einen Hilfs-Prozessor, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung ein erstes Computerprogramm ausführt und einen primären Prozessor und einen Host-Speicher der Host-Vorrichtung umfasst; Einrichten, durch den Hilfs-Prozessor, einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung, wobei die zweite vertrauenswürdige Ausführungsumgebung den Hilfs-Prozessor umfasst; Empfangen, durch den Hilfs-Prozessor, von Daten der ersten vertrauenswürdigen Ausführungsumgebung unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführen, durch den Hilfs-Prozessor, eines zweiten Computerprogramms in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  • Die Host-Vorrichtung kann ein Host-Betriebssystem umfassen, welches die Rechenressourcen der Host-Vorrichtung verwaltet, und wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung jeweils Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  • Der Hauptprozessor kann eine Zentraleinheit (CPU) umfassen, welche das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt, und wobei der Hilfs-Prozessor eine Datenverarbeitungseinheit (DPU) umfasst, welche das zweite Computerprogramm ausführt und die Ausführung des ersten Programms überwacht.
  • Die CPU kann die erste vertrauenswürdige Ausführungsumgebung und die DPU kann die zweite vertrauenswürdige Ausführungsumgebung einrichten.
  • Das erste Computerprogramm und das zweite Computerprogramm können von einer Benutzer-Vorrichtung eines Cloud-Konsumenten in verschlüsselter Form bereitgestellt werden und sind für ein von einem Cloud-Anbieter bereitgestelltes Host-Betriebssystem unzugänglich.
  • Das Verfahren kann ferner Folgendes umfassen: Zugreifen auf Daten des ersten Computerprogramms, die in der zweiten vertrauenswürdigen Ausführungsumgebung gespeichert sind, durch den Hilfs-Prozessor; Erkennen, dass das erste Computerprogramm beeinträchtigt ist, durch den Hilfs-Prozessor; und Bereitstellen einer Anzeige, dass das erste Computerprogramm, das in der ersten vertrauenswürdigen Ausführungsumgebung ausgeführt wird, beeinträchtigt ist, durch den Hilfs-Prozessor.
  • Das Verfahren kann ferner die Erweiterung einer vertrauenswürdigen Rechenbasis (TCB) umfassen, welche den Hauptprozessor und den Host-Speicher umfasst, um den Hilfs-Prozessor und die vertrauenswürdige Kommunikationsverbindung mit einzubeziehen.
  • Das Verfahren kann ferner die Einrichtung einer zusammengesetzten vertrauenswürdigen Ausführungsumgebung umfassen, welche die erste vertrauenswürdige Ausführungsumgebung mit dem Hauptprozessor und die zweite vertrauenswürdige Ausführungsumgebung mit dem Hilfs-Prozessor enthält.
  • Nicht-transitorisches maschinenlesbares Speichermedium, das Befehle speichert, die, wenn sie ausgeführt werden, einen Hilfs-Prozessor veranlassen, Operationen durchzuführen, die Folgendes umfassen: Feststellen, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung einen primären Prozessor und einen Host-Speicher umfasst und ein erstes Computerprogramm ausführt; Herstellen einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung, wobei die zweite vertrauenswürdige Ausführungsumgebung den Hilfs-Prozessor umfasst; Empfangen von Daten der ersten vertrauenswürdigen Ausführungsumgebung unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführen eines zweiten Computerprogramms in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  • Die Host-Vorrichtung kann ein Host-Betriebssystem umfassen, das Rechenressourcen der Host-Vorrichtung verwaltet, wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  • Der Hauptprozessor kann eine Zentraleinheit (CPU) umfassen, welche das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt, wobei der Hilfs-Prozessor eine Datenverarbeitungseinheit (DPU) umfasst, welche das zweite Computerprogramm ausführt und die Ausführung des ersten Programms überwacht.
  • Die CPU kann die erste vertrauenswürdige Ausführungsumgebung und die DPU die zweite vertrauenswürdige Ausführungsumgebung einrichten.
  • Jedes Merkmal eines Aspekts oder einer Ausführungsform kann auf andere Aspekte oder Ausführungsformen angewandt werden, und zwar in jeder geeigneten Kombination. Insbesondere kann jedes Merkmal eines Verfahrensaspekts oder einer Ausführungsform auf einen Vorrichtungsaspekt oder eine Ausführungsform angewandt werden und umgekehrt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Offenbarung wird anhand von Beispielen und nicht als Beschränkung dargestellt und kann durch Bezugnahme auf die folgende detaillierte Beschreibung vollständiger verstanden werden, wenn sie in Verbindung mit den Figuren betrachtet wird, in denen:
    • 1 zeigt ein high-level Blockdiagramm einer beispielhaften Datenverarbeitungs-Umgebung, die eine Hilfs-Vorrichtung verwendet, um auf Teile einer vertraulichen Datenverarbeitungs-Umgebung zuzugreifen und diese zu analysieren, in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung;
    • 2 zeigt ein Blockdiagramm einer beispielhaften Hilfs-Vorrichtung, die eine vertrauenswürdige Ausführungsumgebung verwendet, um auf andere Teile der vertraulichen Datenverarbeitungs-Umgebung zuzugreifen und diese zu analysieren, in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung;
    • 3 zeigt ein Blockdiagramm einer beispielhaften vertrauenswürdigen Ausführungsumgebung gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung;
    • 4 zeigt ein Blockdiagramm von Beispielkomponenten und -modulen zur Einrichtung der vertrauenswürdigen Ausführungsumgebung von 3 gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung;
    • 5 zeigt ein Flussdiagramm eines Verfahrens, das von einer Hilfs-Vorrichtung durchgeführt wird, um auf Teile einer vertraulichen Datenverarbeitungs-Umgebung zuzugreifen und diese zu analysieren, in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung;
    • 6 zeigt ein Blockdiagramm eines Beispiel-Computersystems, das gemäß den Beispielen der vorliegenden Offenbarung arbeitet.
  • DETAILLIERTE BESCHREIBUNG
  • In modernen Datenverarbeitungs-Umgebungen werden häufig Aspekte der vertraulichen Datenverarbeitung genutzt, um Vertrauensbeziehungen zu einem Teil einer Host-Vorrichtung aufzubauen. Die Vertrauensbeziehung kann zwischen verschiedenen Vorrichtungen und Programmen bestehen und eine oder mehrere Integritätsprüfungen beinhalten. Der Teil der Host-Vorrichtung, dem vertraut wird, kann als vertrauenswürdige Rechenbasis (TCB) bezeichnet werden und kann sowohl Hardware als auch Software der Host-Vorrichtung umfassen. In einem Beispiel kann die Vertrauensbeziehung mit Hilfe einer vertrauenswürdigen Ausführungsumgebung (TEE) hergestellt werden.
  • Die vertrauenswürdige Ausführungsumgebung kann auf Hardware-Ebene unter Verwendung der primären Vorrichtungen einer Host-Vorrichtung implementiert werden, zu denen die Zentraleinheit (CPU) und der Host-Speicher gehören. Die CPU kann eine Verschlüsselung auf Hardware-Ebene bereitstellen, welche die Daten eines Prozesses vor dem Zugriff des Betriebssystems, welches den Prozess verwaltet, schützt. In Computersystemen, die Virtualisierung auf Hardware-Ebene verwenden, kann eine gesamte virtuelle Maschine (VM) in einer vertrauenswürdigen Ausführungsumgebung ausgeführt werden, und die Daten der virtuellen Maschine, die im Hauptspeicher gespeichert sind, können vom Hypervisor und dem Host-Betriebssystem, welche die virtuelle Maschine verwalten, isoliert bleiben. Bei den meisten vertrauenswürdigen Ausführungsumgebungen handelt es sich um primäre vertrauenswürdige Ausführungsumgebungen, die unter Verwendung der primären Vorrichtungen der Host-Vorrichtung eingerichtet werden und sich möglicherweise nicht auf Hilfs-Vorrichtungen erstrecken, die Hardware-Beschleunigung bieten. Dies kann dazu führen, dass die Hilfs-Vorrichtungen nicht auf die Daten zugreifen können, die von der primären vertrauenswürdigen Ausführungsumgebung isoliert werden.
  • Die von einer vertrauenswürdigen Ausführungsumgebung gebotene Isolierung kann für Dienste, die für die Überwachung der Ausführung einer Datenverarbeitungs-Umgebung zuständig sind, problematisch sein. Die Dienste können die Ausführung von Zielprogrammen überwachen, um sicherzustellen, dass sie mit einer oder mehreren Regeln übereinstimmen. Die Dienste laufen oft im Hintergrund und minimieren die an das Programm gesendeten Anfragen, um die Belastung des Programms zu verringern. Die Dienste können stattdessen auf Daten des Zielprogramms aus anderen Quellen zugreifen, z. B. aus dem Host-Speicher oder dem Systembus. Wenn das Zielprogramm in der vertrauenswürdigen Ausführungsumgebung ausgeführt wird, hat der Dienst möglicherweise keinen Zugriff mehr auf die Daten des Programms und kann nicht mehr wie vorgesehen funktionieren, was sich nachteilig auf die Datenverarbeitungs-Umgebung auswirken kann.
  • Aspekte der vorliegenden Offenlegung beheben die obigen und andere Mängel, indem sie eine Technologie bereitstellen, die es ermöglicht, eine vertrauenswürdige Ausführungsumgebung auf eine Hilfs-Vorrichtung zu erweitern, so dass Die Hilfs-Vorrichtung Dienste ausführen kann, die Daten der vertrauenswürdigen Ausführungsumgebung analysieren. Die Ausweitung der vertrauenswürdigen Ausführungsumgebung (z. B. der primären TEE) auf Die Hilfs-Vorrichtung kann die Einrichtung einer Hilfs-TEE in der Hilfs-Vorrichtung und einer vertrauenswürdigen Kommunikationsverbindung zwischen der Hilfs-TEE und einer primären TEE beinhalten. Die primäre TEE kann die Rechenressourcen der primären Vorrichtungen einer Host-Vorrichtung (z. B. CPU und Host-Speicher) und die Hilfs-TEE die Rechenressourcen der Hilfs-Vorrichtungen (z. B. Hardware-Beschleuniger und Hilfs-Speicher) umfassen. Die vertrauenswürdige Kommunikationsverbindung kann es einem von der Hilfs-TEE ausgeführten Programm (z. B. einem Sicherheitsdienst) ermöglichen, auf Daten der primären TEE zuzugreifen, die andernfalls für außerhalb der primären TEE ausgeführte Software (z. B. Host-Betriebssystem und Hypervisor) unzugänglich wären. Die Hilfs-Vorrichtung kann mit Hilfe der Hilfs-TEE auf die Daten zugreifen, ohne die von der primären TEE bereitgestellten Sicherheitsverbesserungen zu beeinträchtigen.
  • In einem Beispiel kann Die Hilfs-Vorrichtung ein oder mehrere Programme ausführen, welche die Daten des primären TEE analysieren und einen oder mehrere Dienste ausführen. Die Dienste können eine Datenverarbeitung beinhalten und mit Sicherheitsdiensten, Überwachungsdiensten, Verfolgungsdiensten, Konfigurationsdiensten, Leistungsdiensten, anderen Diensten oder einer Kombination davon gleich oder ähnlich sein. Die Hilfs-Vorrichtung kann mit einer Host-Vorrichtung verbunden sein und kann die von der CPU der Host-Vorrichtung durchgeführte Datenverarbeitung ersetzen oder ergänzen. In einem Beispiel kann es sich bei der Hilfs-Vorrichtung um eine DPU handeln, die auf Daten zugreift, welche von der primären TEE verwendet werden, und die Daten mithilfe eines oder mehrerer Hardware-Beschleuniger verarbeitet. In diesem Beispiel kann die primäre TEE als CPU-TEE und die Hilfs-TEE als DPU-TEE bezeichnet werden.
  • Die hier beschriebene Technologie verbessert den Bereich der Computersicherheit, indem sie es einer Host-Vorrichtung in einer vertrauenswürdigen Datenverarbeitungs-Umgebung (z. B. TCU) ermöglicht, eine bessere Leistung und Sicherheit zu bieten. Insbesondere können Aspekte der offengelegten Technologie die Leistung der Host-Vorrichtung erhöhen, indem eine Host-Vorrichtung in die Lage versetzt wird, Datenverarbeitungsaufgaben in einer sicherheitsverbesserten Weise von einer primären Vorrichtung (z. B. CPU) auf ein oder mehrere Hilfs-Vorrichtungen (z. B. DPUs, GPUs, NICs oder andere Hardware-Beschleuniger) zu verlagern. Dies kann auch die Sicherheit erhöhen, da die Dienste außerhalb des Bandes (Engl., „out of band“) auf der Hilfs-Vorrichtung laufen und unerkannt bleiben oder von allen Host-Programmen nicht erkannt werden können, zu denen das Zielprogramm, das Host-Betriebssystem, der Hypervisor, die Container-Laufzeit, andere von der CPU ausgeführte Programme oder eine Kombination davon gehören können. Dies kann insbesondere für den Schutz von Vorrichtungen vor Schadsoftware (Engl., „malware“) von Vorteil sein, da die auf der Host-Vorrichtung ausgeführte Schadsoftware möglicherweise nicht erkennen kann, dass ein Sicherheitsdienst ausgeführt wird, und nicht versuchen kann, dessen Verhalten zu ändern.
  • Darüber hinaus können Aspekte der offengelegten Technologie auch oder alternativ dazu ermöglichen, dass der Betrieb der Hilfs-Vorrichtung durch eine Benutzer-Vorrichtung angepasst wird. Die Anpassungen können das Aktualisieren von Einstellungen, Konfigurationen, ausführbarem Code, anderen Daten oder einer Kombination davon umfassen. Dies kann insbesondere in einer Cloud-Computing-Umgebung von Vorteil sein, in der ein Cloud-Konsument möglicherweise möchte, dass Daten von Programmen (z. B. Arbeitslast) für den Cloud-Service-Anbieter (CSP, Engl. „cloud service provider“) unzugänglich sind. Mit dieser Technologie kann der Cloud-Konsument die Programme, die auf den primären Vorrichtungen (z. B. CPUs) und den Hilfs-Vorrichtungen (z. B. DPUs, GPUs oder NICs) ausgeführt werden, bereitstellen und die Vertraulichkeit, Integrität oder eine Kombination davon verbessern.
  • Verschiedene Aspekte der oben erwähnten Methoden und Systeme werden im Folgenden anhand von Beispielen und nicht als Einschränkung beschrieben. In den nachstehenden Beispielen wird eine Datenverarbeitungs-Umgebung beschrieben, die eine Kombination aus vertraulicher Datenverarbeitung und Virtualisierung auf Hardware-Ebene verwendet und virtuelle Maschinen in vertrauenswürdigen Ausführungsumgebungen ausführt. In anderen Beispielen können die vertraulichen Datenverarbeitungsfunktionen und vertrauenswürdigen Ausführungsumgebungen durch andere Techniken zur Verbesserung der Vertraulichkeit oder Integritätsprüfung ersetzt werden. In einem weiteren Beispiel kann die Host-Vorrichtung keine Virtualisierung auf Hardware-Ebene aufweisen oder eine alternative oder zusätzliche virtualisierte Ausführungsumgebung enthalten, wie z. B. eine containerbasierte Virtualisierung (z. B. eine Virtualisierung auf Betriebssystemebene).
  • 1 zeigt eine illustrative Architektur von Elementen einer Datenverarbeitungs-Umgebung 100 gemäß einem Beispiel der vorliegenden Offenbarung. Es sei darauf hingewiesen, dass andere Architekturen für die Datenverarbeitungs-Umgebung 100 möglich sind und dass die Implementierung einer Datenverarbeitungs-Umgebung, die Ausführungsformen der vorliegenden Offenbarung nutzt, nicht unbedingt auf die dargestellte spezifische Architektur beschränkt ist. Bei der Datenverarbeitungs-Umgebung 100 kann es sich um eine Datenverarbeitungs-Umgebung handeln, die so konfiguriert ist, dass sie Verbrauchern auf Abruf Rechenressourcen zur Verfügung stellt, ohne dass diese direkt verwaltet werden müssen. In einem Beispiel kann die Datenverarbeitungs-Umgebung 100 eine Cloud-Computing-Umgebung sein (z. B. eine öffentliche Cloud, eine private Cloud, eine Hybrid-Cloud), und die Benutzer-Vorrichtungen und die Host-Vorrichtungen können mit verschiedenen Entitäten verbunden sein (z. B. Cloud-Konsumenten und Cloud-Anbieter). In einem anderen Beispiel kann es sich bei der Datenverarbeitungs-Umgebung 100 um eine lokale Datenverarbeitungs-Umgebung handeln, in der die Benutzer-Vorrichtungen und die Host-Vorrichtungen derselben Einheit zugeordnet sind (z. B. derselben Firma, demselben Unternehmen oder derselben Geschäftseinheit). In dem vereinfachten Beispiel von 1 kann die Datenverarbeitungs-Umgebung 100 eine Benutzer-Vorrichtung 110, eine Host-Vorrichtung 120A, eine Hilfs-Vorrichtung 120Z, eine vertrauenswürdige Rechenbasis 130 und ein Netzwerk 140 umfassen.
  • Bei der Benutzer-Vorrichtung 110 kann es sich um eine beliebige Computer-Vorrichtung handeln, das die Rechenressourcen der Host-Vorrichtung 120A nutzt und Eingabedaten (z. B. Code oder Konfigurationen) bereitstellt, die es der Host-Vorrichtung 120A ermöglichen, Datenverarbeitungsaufgaben im Namen der Benutzer-Vorrichtung 110 auszuführen. Die Benutzer-Vorrichtung 110 kann einen oder mehrere Server, Workstations, Desktop-Computer, Laptops, Tablet-Computer, Mobiltelefone, Roboter-Vorrichtungen (z. B. Drohnen, autonome Fahrzeuge), persönliche digitale Assistenten (PDAs), Smartwatches, andere Vorrichtungen oder eine Kombination davon umfassen.
  • Bei der Host-Vorrichtung 120A kann es sich um eine einzelne Host-Maschine oder mehrere Host-Maschinen handeln, die in einer heterogenen oder homogenen Gruppe (z. B. einem Cluster) angeordnet sind. In einem Beispiel kann die Host-Vorrichtung 120A ein oder mehrere Server, Workstations, PCs (z. B. Desktop-Computer, Laptops), mobile Computer (z. B. Mobiltelefone, handtellergroße Computer, Tablet-Computer, persönliche digitale Assistenten (PDAs)), Datenspeicher-Vorrichtungen (z. B. USB-Laufwerk, Network Attached Storage (NAS), Storage Area Network (SAN)), Netzwerk-Vorrichtungen (z. B. Router, Switches, Access Points), andere Geräte oder eine Kombination davon sein.
  • Die Host-Vorrichtung 120A kann mehrere primäre Vorrichtungen umfassen, die einen oder mehrere Prozessoren 122A und einen Speicher 124A enthalten. Prozessor 122A kann eine Zentraleinheit (CPU) sein oder beinhalten und kann als primärer Prozessor, Host-Prozessor, Hauptprozessor, anderer Begriff oder eine Kombination davon bezeichnet werden. Prozessor 122A kann eine Befehlssatzarchitektur (ISA, Engl. „instruction set architecture“) haben, die gleich oder ähnlich ist wie x86, ARM, Power ISA, RISC-V, SPARC, MIPS, eine andere Architektur oder eine Kombination davon. Der Prozessor 122A kann mit dem Speicher 124A verbunden sein, und der Speicher 124A kann von einem oder mehreren Vorrichtungen der Host-Vorrichtung 120A gemeinsam genutzt werden. Der Speicher 124A kann als Hauptspeicher, Host-Speicher, Primärspeicher, ein anderer Begriff oder eine Kombination davon bezeichnet werden. Die Host-Vorrichtung 120A kann eine oder mehrere Hilfs-Vorrichtungen 120Z umfassen oder mit ihnen verbunden sein.
  • Eine Hilfs-Vorrichtung 120Z kann eine Computer-Vorrichtung sein, die kommunikativ mit der Host-Vorrichtung 120A verbunden ist und eine oder mehrere Datenverarbeitungsaufgaben für die Host-Vorrichtung 120A ausführen kann. Die Hilfs-Vorrichtung 120Z kann intern oder extern zur Host-Vorrichtung 120A sein und kann eine Peripherie-Vorrichtung (z. B. ein PCIe-Vorrichtung) in Form eines physischen Adapters, einer Karte, einer Komponente, eines Moduls oder einer anderen Vorrichtung sein, die sich physisch im selben Gehäuse wie die Host-Vorrichtung 120A (z. B. dieselbe Platine, dasselbe Gehäuse, derselbe Tower, dasselbe Rack, derselbe Schrank, derselbe Raum, dasselbe Gebäude) oder in einem anderen Gehäuse befindet. Die Hilfs-Vorrichtung 120Z kann Datenverarbeitungsaufgaben ausführen, die den vom Prozessor 122A ausgeführten Datenverarbeitungsaufgaben gleich oder ähnlich sind, oder Datenverarbeitungsaufgaben ausführen, die nicht vom Prozessor 122A ausgeführt werden. Die Hilfs-Vorrichtung 120Z kann die Datenverarbeitungsaufgaben mit Hilfe des Prozessors 122Z und des Speichers 124Z ausführen.
  • Der Prozessor 122Z kann die Datenverarbeitungsfunktionen des Hauptprozessors 122A ergänzen und als Hilfs-Prozessor, Ko-Prozessor, anderer Begriff oder eine Kombination davon bezeichnet werden. In einem Beispiel kann der Prozessor 122Z dem Prozessor 122A ähnlich sein und als Zentraleinheit (CPU) der Hilfs-Vorrichtung 120Z arbeiten. Die Befehlssatzarchitektur des Prozessors 122Z kann sich von der Befehlssatzarchitektur des Prozessors 122A unterscheiden oder mit ARM, RISC-V, Power ISA, x86, einer anderen standardisierten oder proprietären ISA oder einer Kombination davon identisch sein. In einem anderen Beispiel kann der Prozessor 122Z eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs, Engl. „application specific integrated circuit“), feldprogrammierbare Gatteranordnungen (FPGAs, Engl. „field programmable gate arrays“), Mikroprozessoren, Controller, andere Verarbeitungs-Vorrichtungen oder eine Kombination davon sein oder umfassen. In beiden Beispielen kann der Prozessor 122Z einen oder mehrere Hardware-Beschleuniger enthalten oder verwalten und den Speicher 124Z zum Speichern von Daten verwenden.
  • Der Speicher 124Z kann mit dem Prozessor 122Z der Hilfs-Vorrichtung 120Z gekoppelt sein und kann als Hilfs-Speicher, Vorrichtungs-Speicher, anderer Begriff oder eine Kombination davon bezeichnet werden. In einem Beispiel kann der Speicher 124Z vom Speicher 124A getrennt und exklusiv für die Hilfs-Vorrichtung 120Z sein. In einem anderen Beispiel kann der Speicher 124Z ein Teil des Speichers 124A sein. Der Speicher 124A-Z und die Prozessoren 122A-Z werden im Zusammenhang mit 3 näher erläutert.
  • Die Hilfs-Vorrichtung 120Z kann in einem Beispiel mit einer Datenverarbeitungseinheit (DPU) identisch oder ihr ähnlich sein. Die Datenverarbeitungseinheit kann eine oder mehrere zentrale Verarbeitungseinheiten (z. B. CPUs, ASICs, FPGAs), Netzwerk-Controller (z. B. NICs), programmierbare Datenbeschleunigungs-Engines (z. B. Verschlüsselungs-Engine, Analyse-Engine oder andere Engine), andere Rechenressourcen oder eine Kombination davon enthalten. Die Datenverarbeitungseinheit kann die Allgemeinheit und die Programmierbarkeit einer herkömmlichen CPU aufweisen und gleichzeitig so spezialisiert sein, dass sie effizienter für Datenverarbeitungsaufgaben arbeitet, die kryptografische Operationen (z. B. Verschlüsselung, Hashing), Analyseoperationen (z. B. Vergleich von Hashes), Speicheroperationen (z. B. Schreib-/Leseanfragen), Netzwerkoperationen (z. B. Deep Packet Inspection), Speicheroperationen (z. B. Speicher-/Zugriffsanfragen) oder eine Kombination davon umfassen.
  • In einem Beispiel kann sich die DPU von einer herkömmlichen CPU und einer herkömmlichen GPU unterscheiden. Die DPU kann sich von einer herkömmlichen CPU durch ein höheres Maß an Parallelität und von einer herkömmlichen GPU durch die Verwendung einer MIMD-Architektur (Multiple Instruction, Multiple Data, De. „Mehrere Befehle, mehrere Daten“) anstelle einer SIMD-Architektur (Single Instruction / Multiple Data, De. „Einzelner Befehl, mehrere Daten“) unterscheiden. Bei der MIMD-Architektur kann es sich um eine Hardware-Architektur handeln, die eine Reihe von asynchron und unabhängig arbeitenden Rechenkernen bereitstellt. Zu jedem Zeitpunkt können verschiedene Prozessorkerne unterschiedliche Befehle auf verschiedenen Datenstücken ausführen. Die Prozessorkerne können über einen Bus, ein Mesh, einen Hypercube oder eine hierarchische Zugriffstechnik auf den Speicher zugreifen.
  • In anderen Ausführungsformen kann Die Hilfs-Vorrichtung 120Z eine oder mehrere Infrastruktur-Verarbeitungseinheiten (IPU, Engl. „infrastructure processing units“), Intelligente Netzwerkschnittstelle (NIC, Engl. „smart network interface controller“), Tensor-Verarbeitungseinheit (TPU, Engl. „tensor processing unit“), grafische Verarbeitungseinheit (GPU, Engl. „graphical processing units“), andere Datenverarbeitungs-Vorrichtungen oder eine Kombination davon sein oder umfassen. Die Hardware und die Programmierung der Host-Vorrichtung 120A und der Hilfs-Vorrichtung 120Z können vertrauliche Datenverarbeitung unterstützen und zum Aufbau einer vertrauenswürdigen Rechenbasis 130 verwendet werden.
  • Die vertrauenswürdige Rechenbasis (TCB) 130 kann der Teil einer Datenverarbeitungs-Umgebung 100 sein, der von einer bestimmten Rechenressource als vertrauenswürdig eingestuft wird. Bei der bestimmten Rechenressource kann es sich um ein Programm oder eine Vorrichtung handeln, das sich innerhalb der Datenverarbeitungs-Umgebung 100, außerhalb der Datenverarbeitungs-Umgebung 100 oder einer Kombination davon befindet. Die bestimmte Rechenressource kann als vertrauende Ressource bezeichnet werden, da sie der vertrauenswürdigen Ressource vertraut. Die vertrauende Ressource kann eine Vertrauensbeziehung mit der vertrauenswürdigen Ressource herstellen, indem sie die vertrauenswürdige Ressource verifiziert. Der Prozess der Verifizierung der vertrauenswürdigen Ressource wird in Bezug auf 4 (z. B. Bescheinigung) ausführlicher diskutiert.
  • Die vertrauenswürdige Ressource kann ein Satz von Rechenressourcen der Host-Vorrichtung 120A, der Hilfs-Vorrichtung 120Z, einer anderen Vorrichtung oder einer Kombination davon sein. Der Satz von Rechenressourcen kann Teile von Hardware-Ressourcen (z. B. Hardwareschnittstellen, Prozessoren, Verbindungen, Speicher oder andere integrierte Schaltungen), Teile von Software-Ressourcen (z. B. Programmierschnittstellen, Programme, Firmware, Treiber, Dienste, Kernel, Betriebssysteme, Anwendungen oder andere ausführbare Codes) oder eine Kombination davon umfassen. Nachdem die vertrauenswürdige Rechenbasis eingerichtet ist, kann sie modifiziert werden, um die Menge der vertrauenswürdigen Rechenressourcen zu erweitern (z. B. zu expandieren) oder zu verringern (z. B. zu schrumpfen). In dem in 1 dargestellten Beispiel kann die vertrauenswürdige Rechenbasis 130 zunächst die Rechenressourcen der vertrauenswürdigen Ausführungsumgebung 132A (z. B. Hauptprozessor und Hauptspeicher) umfassen, und die vertrauenswürdige Rechenbasis 130 kann um die vertrauenswürdige Kommunikationsverbindung 134 und die vertrauenswürdige Ausführungsumgebung 132Z (z. B. Hilfs-Prozessor und -speicher) erweitert werden.
  • Vertrauenswürdige Ausführungsumgebungen 132A-Z (TEEs) können jeweils vertrauliche Datenverarbeitung ermöglichen, indem sie eine Reihe von Rechenressourcen enthalten, die so konfiguriert sind, dass sie Daten mithilfe von Techniken schützen, welche die Datenvertraulichkeit, die Datenintegrität oder eine Kombination davon verbessern. Die vertrauenswürdigen Ausführungsumgebungen 132A-Z können Daten durch hardwarebasierte Verschlüsselung schützen, welche die Daten eines oder mehrerer Computerprozesse (z. B. Anwendung, Container, VM) von anderen Prozessen isoliert, die auf derselben Vorrichtung laufen. In einem Beispiel können die Daten eines Prozesses, der in der vertrauenswürdigen Ausführungsumgebung ausgeführt wird, mit kryptografischen Schlüsseln verschlüsselt werden, auf die ein Hardware-Prozessor der Vorrichtung zugreifen kann, die aber für alle auf der Vorrichtung laufenden Prozesse unzugänglich sind (z. B. Verschlüsselung auf Hardware-Ebene). Der Hardware-Prozessor kann die Daten des Prozesses, der in der vertrauenswürdigen Ausführungsumgebung ausgeführt wird, verschlüsseln oder entschlüsseln, wenn der Prozess die Daten im Speicher speichert oder darauf zugreift. Auf diese Weise kann die vertrauenswürdige Ausführungsumgebung Daten eines weniger privilegierten Prozesses (z. B. eines Prozesses einer virtuellen Maschine), der in der vertrauenswürdigen Ausführungsumgebung ausgeführt wird, vor dem Zugriff höher privilegierter Prozesse (z. B. des Hypervisors oder des Host-Betriebssystems) schützen, obwohl die höher privilegierten Prozesse für die Verwaltung des weniger privilegierten Prozesses verantwortlich sein können. Eine vertrauenswürdige Ausführungsumgebung kann die Ausführung von Code, die Vertraulichkeit der Speicherung und den Schutz der Integrität gewährleisten und Daten speichern, ausführen und isolieren, wie in 3 näher erläutert.
  • Die vertrauenswürdige Ausführungsumgebung 132A und 132Z können jeweils einem anderen Satz von Rechenressourcen entsprechen (z. B. einem Teilsatz der vertrauenswürdigen Rechenbasis 130). In dem in 1 dargestellten Beispiel kann die vertrauenswürdige Ausführungsumgebung 132A einen Satz von Rechenressourcen haben, der die primäre Vorrichtung der Host-Vorrichtung 120A umfasst, wie einen Teil des Prozessors 122A (z. B. den Host-Prozessor) und einen Teil des Speichers 124A (z. B. den Hauptspeicher). Die vertrauenswürdige Ausführungsumgebung 132A kann als primäre TEE, Host-TEE, Haupt-TEE, CPU-TEE, ein anderer Begriff oder eine Kombination davon bezeichnet werden. Die vertrauenswürdige Ausführungsumgebung 132Z kann über einen Satz von Rechenressourcen der Hilfs-Vorrichtung 120Z verfügen, und der Satz kann einen Teil des Prozessors 122Z (z. B. den Hilfs-Prozessor) und einen Teil des Speichers 124Z (z. B. den Hilfs-Speicher) umfassen. Die vertrauenswürdige Ausführungsumgebung 132Z kann als Hilfs-TEE, Vorrichtungs-TEE, DPU-TEE, andere Bezeichnung oder eine Kombination davon bezeichnet werden. Die vertrauenswürdigen Ausführungsumgebungen 132A-Z können die Rechenressourcen zur Ausführung der Programme 135A-Z nutzen.
  • Bei den Programmen 135A-Z kann es sich um jedes Computerprogramm handeln, das Code enthält, der in einer vertrauenswürdigen Ausführungsumgebung ausgeführt werden kann. Programm 135A kann ein beliebiges Programm oder eine Kombination von Programmen sein und kann als ein oder mehrere Prozesse ausgeführt werden und als Zielprogramm (z. B. Zielprozess), überwachtes Programm (z. B. überwachter Prozess), beobachtetes Programm (z. B. beobachteter Prozess), ein anderer Begriff oder eine Kombination davon bezeichnet werden. Programm 135Z kann ein beliebiges Programm oder eine beliebige Kombination von Programmen sein, die auf Daten des Zielprogramms zugreifen können, und kann ein Programm sein, das einen Sicherheitsdienst, einen Beobachtungsdienst, einen Überwachungsdienst, einen Leistungsdienst, einen Proxydienst oder eine Kombination davon bereitstellt. Wie in 1 dargestellt, kann das Programm 135A innerhalb der primären TEE 132A unter Verwendung der primären Vorrichtungen der Host-Vorrichtung 120A (z. B. Prozessor 122A) ausgeführt werden, und das Programm 135Z kann innerhalb des Hilfs-TEE 132Z unter Verwendung der Hilfs-Vorrichtung 120Z (z. B. Prozessor 122Z) ausgeführt werden.
  • Die Programme 135A-Z können von der Benutzer-Vorrichtung 120, der Host-Vorrichtung 120A, dem Hilfs-Vorrichtung 120Z, einer anderen Vorrichtung oder einer Kombination davon bereitgestellt werden. In einem Beispiel kann das Programm 135A von der Benutzer-Vorrichtung 120 (z. B. dem Cloud-Konsument) und das Programm 135Z von der Host-Vorrichtung 120A (z. B. dem Cloud-Anbieter) oder der Hilfs-Vorrichtung 120Z (z. B. dem Hardware-Designer, -Hersteller oder -Vertreiber) bereitgestellt werden. In einem anderen Beispiel können sowohl das Programm 135A als auch das Programm 135Z von der Benutzer-Vorrichtung 120 (z. B. dem Cloud-Nutzer) bereitgestellt werden. In beiden Beispielen kann die Benutzer-Vorrichtung 120 in der Lage sein, die Integrität der Programme 135A-Z vor der Ausführung zu überprüfen, und das Programm 135Z kann verwendet werden, um das Programm 135A während der Ausführung zu analysieren, um festzustellen, ob die Ausführung des Programms 135A beeinträchtigt wurde oder nicht.
  • Die Ausführung des Programms 135A kann beeinträchtigt werden, wenn ein beliebiger Aspekt der primären TEE 132A durch eine nicht autorisierte Operation beeinträchtigt wurde. Die Operation kann auf Daten zugreifen oder diese ändern und ist unautorisiert, wenn er ohne Erlaubnis erfolgt und böswillig, versehentlich, absichtlich, auf andere Weise oder in einer Kombination davon durchgeführt wird. Die unbefugte Änderung kann das Hinzufügen, Entfernen, Ersetzen, Substitution, Verschieben oder eine andere Aktualisierung von ausführbaren Daten (z. B. ausführbarer Code), nicht ausführbaren Daten (z. B. Informationen, Metadaten) oder einer Kombination davon umfassen. Die Änderung kann sich auf Daten 136, das Programm 135A, die primäre TEE 132A, das Rechenkonstrukt 133A oder eine Kombination davon auswirken. Beispiele für nicht autorisierte Änderungen können eine oder mehrere Änderungen an ausführbarem Code (z. B. Hinzufügen von Malware, Ersetzen der Bibliothek), Konfigurationen (z. B. Deaktivieren der Verschlüsselung, Deaktivieren der Integritätsprüfung), Umgebungsvariablen (z. B. Ändern des Ausführungspfads), Berechtigungen (z. B., Ändern von Speicherobjekt-Berechtigungen), Berechtigungen (z. B. Privilegien-Erweiterung), Account (z. B. Hinzufügen eines Benutzers zur Administratorgruppe), Änderung der Datenquelle oder des Datenziels (z. B. Spoofing der Quelle, Ersetzen des Ziels), sonstige Änderungen oder eine Kombination davon.
  • Die vertrauenswürdige Kommunikationsverbindung 134 kann es ermöglichen, dass vertrauenswürdige Ausführungsumgebungen 132A-Z kommunikativ gekoppelt werden, so dass die Daten einer vertrauenswürdigen Ausführungsumgebung zwischen vertrauenswürdigen Ausführungsumgebungen auf eine sicherheitsverbesserte Weise übertragen werden können. Beispielsweise kann die vertrauenswürdige Kommunikationsverbindung 134 es ermöglichen, dass Daten 136A der primären vertrauenswürdigen Ausführungsumgebung (primäre TEE) 132A von der zusätzlichen vertrauenswürdigen Ausführungsumgebung (Hilfs-TEE) 132Z abgerufen und als Daten 136Z innerhalb der zusätzlichen vertrauenswürdigen Ausführungsumgebung (Hilfs-TEE 132Z gespeichert werden. Die kommunikative Kopplung von vertrauenswürdigen Ausführungsumgebungen kann eine zusammengesetzte vertrauenswürdige Ausführungsumgebung erzeugen. Die zusammengesetzte vertrauenswürdige Ausführungsumgebung (z. B. aggregierte TEE, zusammengesetzte TEE) kann entstehen, wenn TEEs verschiedener Prozessoren oder verschiedener Typen von Prozessoren (z. B. CPU-TEE und DPU-TEE) über die vertrauenswürdige Kommunikationsverbindung 134 gekoppelt werden.
  • Die vertrauenswürdige Kommunikationsverbindung 134 kann eine oder mehrere Verbindungen, Busse, Netzwerke, andere Kommunikationsverbindungen oder eine Kombination davon umfassen oder durchlaufen. Die über die vertrauenswürdige Kommunikationsverbindung 134 übertragenen Daten können während der Übertragung verschlüsselt oder teilweise verschlüsselt werden. Dies kann von Vorteil sein, da die Übertragung von Daten 136A in verschlüsselter Form die Möglichkeit des Ausspähens von Daten 136A während der Übertragung zwischen Rechenressourcen verschiedener vertrauenswürdiger Ausführungsumgebungen (z. B. zwischen Prozessor 122A und Prozessor 122Z) einschränken kann.
  • Die Übertragung von Daten zwischen den vertrauenswürdigen Ausführungsumgebungen 132A und 132Z kann eine oder mehrere Änderungen an der verwendeten Datenverschlüsselung beinhalten. In einem Beispiel können die Daten mit einer ersten kryptografischen Technik (z. B. einem ersten Schlüssel) verschlüsselt werden, wenn sie im Speicher 124A gespeichert sind, mit einer zweiten kryptografischen Technik, wenn sie über die vertrauenswürdige Kommunikationsverbindung 134 übertragen werden (z. B. mit einem zweiten Schlüssel), und mit einer dritten kryptografischen Technik, wenn sie im Speicher 124Z gespeichert sind (z. B. mit einem dritten Schlüssel). Beim Umschalten zwischen den kryptografischen Verfahren können die Daten entschlüsselt und dann verschlüsselt werden. In einem anderen Beispiel können die im Speicher 124A gespeicherten Daten mit einer kryptografischen Technik verschlüsselt werden, die beiden vertrauenswürdigen Ausführungsumgebungen zur Verfügung steht und auf die ohne Änderung der Verschlüsselung zugegriffen werden kann. Die Einrichtung und Verwendung der vertrauenswürdigen Kommunikationsverbindung 134 wird in den 2 und 3 (z. B. TEE-EA) ausführlicher behandelt.
  • Die vertrauenswürdigen Ausführungsumgebungen 132A-Z können jeweils dieselbe oder eine andere Granularitätsebene aufweisen und ein entsprechendes Rechenkonstrukt 133A-Z schützen. Die Granularitätsebene einer TEE kann von dem zu schützenden Rechenkonstrukt abhängen und kann eine virtuelle Maschine (VM), ein Container, ein Prozess, ein Thread, ein anderer Ausführungsstrom oder eine Kombination davon sein. Eine vertrauenswürdige Ausführungsumgebung für die Ausführung und den Schutz einer VM kann als vertrauenswürdige virtuelle Maschine (TVM, Engl. „trusted virtual machine“) bezeichnet werden. Eine vertrauenswürdige Ausführungsumgebung für die Ausführung und den Schutz eines Containers kann als vertrauenswürdiger Container (TC, Engl. „trusted container“) bezeichnet werden. Eine vertrauenswürdige Ausführungsumgebung zum Ausführen und Schützen eines Anwendungsprozesses kann als vertrauenswürdige Anwendung (TA, Engl. „trusted application“) oder vertrauenswürdiger Prozess (TP, Engl. „trusted process“) bezeichnet werden. In einem Beispiel kann die vertrauenswürdige Ausführungsumgebung 132A vom Host-Prozessor 122A eingerichtet werden und eine virtuelle Maschine oder einen Container umfassen, und die vertrauenswürdige Ausführungsumgebung 132Z kann vom Hilfs-Prozessor 122Z eingerichtet werden und eine TEE für einen oder mehrere Prozesse sein (z. B. ein Sicherheitsdienst oder Proxy-Dienst).
  • Die Datenverarbeitungs-Umgebung 100 kann Computer-Vorrichtungen z. B. 110, 120A, 120Z) enthalten, die eine oder mehrere Virtualisierungsebenen unterstützen. Die Visualisierungsebenen können Virtualisierung auf Hardware-Ebene (z. B. VMs), Virtualisierung auf Betriebssystemebene (z. B. Container), andere Virtualisierung oder eine Kombination davon umfassen. Bei der Virtualisierung auf Hardware-Ebene kann die Computer-Vorrichtung (z. B. 120A, 120Z) ein Betriebssystem (z. B. 120A, 120Z) ausführen, das einen Hypervisor (z. B. Virtual Machine Monitor (VMM)) unterstützt. Der Hypervisor kann Hardware-Ressourcen zur Nutzung durch eine oder mehrere virtuelle Maschinen bereitstellen und verwalten. Der Hypervisor kann ein beliebiges Programm oder eine Kombination von Programmen sein und auf einem Host-Betriebssystem oder direkt auf der Hardware laufen (z. B. Bare-Metal-Hypervisor). Der Hypervisor kann verschiedene Aspekte des Betriebs der Computer-Vorrichtung, einschließlich der Speicher-, Speicher- und Netzwerkschnittstellen, verwalten und überwachen. Der Hypervisor kann die Merkmale der physischen Ebene wie Prozessoren, Speicher und E/A-Vorrichtungen abstrahieren und diese Abstraktion als virtuelle Vorrichtungen für eine virtuelle Maschine darstellen. In einem Beispiel kann der Hypervisor der gleiche oder ein ähnlicher Hypervisor sein wie Microsoft® Hypervisor (z. B. Hyper-V™), Open Source Software Hypervisor (z. B. Kernel-Based Virtual Machine (KVM)), VMware™ Hypervisor (z. B. ESX/ESXi, VMware Workstation, VMware Player, VirtualBox), IBM™ Hypervisor (z. B., PowerVM Hypervisor™), Citrix™ Hypervisor (z. B. Xen™, Citrix Hypervisor™, XenServer™), Oracle Hypervisor (z. B. VM Server für SPARC oder x86), Parallels Desktop, Virtuozzo, ein anderer Hypervisor oder eine Kombination davon.
  • Die Betriebssystem-Virtualisierung kann mit oder ohne Virtualisierung auf Hardware-Ebene verwendet werden und kann einem oder mehreren Containern Rechenressourcen zur Verfügung stellen. Die Virtualisierung auf Betriebssystemebene kann in einem Kernel des Betriebssystems implementiert werden und kann die Existenz mehrerer isolierter Container ermöglichen. In einem Beispiel kann die Virtualisierung auf Betriebssystemebene keine Hardwareunterstützung erfordern und wenig bis keinen Overhead verursachen, da Programme in jedem der Container die Systemaufrufe desselben zugrunde liegenden Betriebssystems verwenden können. Dies kann es der Host-Vorrichtung 120A ermöglichen, Virtualisierung bereitzustellen, ohne dass eine Hardware-Emulation erforderlich ist oder eine virtuelle Maschine dazwischengeschaltet werden muss, wie es bei der Virtualisierung auf Hardware-Ebene der Fall sein kann.
  • Jeder Container kann ein ressourcenbeschränkter Prozessraum der Computer-Vorrichtung (z. B. der Host-Vorrichtung 120A) sein, welcher die Funktionalität eines Programms ausführen kann. Ein Container kann für einen Benutzer als eigenständige Instanz des Benutzerraums des Betriebssystems erscheinen und kann als Benutzerraum-Instanz, Virtualisierungs-Engine (VE), Gefängnis oder andere Bezeichnung bezeichnet werden. Jeder Container kann sich denselben Kernel teilen, kann aber darauf beschränkt sein, nur einen bestimmten Satz von Rechenressourcen (z. B. CPU, Speicher, E/A) zu verwenden. In einem Beispiel kann die Betriebssystem-Virtualisierung von einem Betriebssystem-Virtualisierer bereitgestellt werden, der eine Anwendung in ein vollständiges Dateisystem einhüllt, das den Code, die Laufzeit, die Systemtools, die Systembibliotheken und andere Programme enthält, die von der Anwendung verwendet werden können. Der Betriebssystem-Virtualisierer kann Docker®, ThinApp® von VMWare®, Solaris Zones® von Oracle® oder einem anderen Programm entsprechen, das die Verpackung, Bereitstellung und Ausführung von Anwendungen in Containern automatisiert.
  • Das Netzwerk 140 kann ein oder mehrere öffentliche Netzwerke (z. B. das Internet), private Netzwerke (z. B. ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN)) oder eine Kombination davon umfassen. In einem Beispiel kann das Netzwerk 140 eine drahtgebundene oder eine drahtlose Infrastruktur umfassen, die von einem oder mehreren drahtlosen Kommunikationssystemen bereitgestellt werden kann, wie z. B. einem WiFi-Hotspot, der mit dem Computernetzwerk 140 verbunden ist, und/oder einem drahtlosen Trägersystem, das mit verschiedenen Datenverarbeitungs-Equipment, Kommunikations-Türmen usw. implementiert werden kann.
  • 2 zeigt ein Blockdiagramm, das ein Beispiel für eine Hilfs-Vorrichtung 120Z veranschaulicht, das gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung auf Daten einer primären TEE zugreifen und diese analysieren kann. Im dargestellten Beispiel kann die Hilfs-Vorrichtung 120Z eine Erweiterungskomponente 210 für die vertrauenswürdige Rechenbasis und eine Datenanalysekomponente 220 umfassen.
  • Die Erweiterungskomponente 210 der vertrauenswürdigen Rechenbasis kann es der Hilfs-Vorrichtung 120Z ermöglichen, die vertrauenswürdige Rechenbasis der Host-Vorrichtung 120A um die Rechenressourcen der Hilfs-Vorrichtung 120Z zu erweitern. Die Erweiterung kann das Hinzufügen einer oder mehrerer vertrauenswürdiger Ausführungsumgebungen, vertrauenswürdiger Kommunikationsverbindungen, vertrauenswürdiger Schnittstellen, anderer Rechenressourcen oder einer Kombination davon umfassen. Im dargestellten Beispiel kann die Erweiterungskomponente 210 der vertrauenswürdigen Rechenbasis die Komponente zur Einrichtung einer vertrauenswürdigen Ausführung 212, die Datenkomponente 214 und ein Modul für eine vertrauenswürdige Kommunikationsverbindung umfassen 216.
  • Die Komponente zur Einrichtung einer vertrauenswürdigen Ausführung 212 und die Datenkomponente 214 können es der Hilfs-Vorrichtung 120Z ermöglichen, eine oder mehrere vertrauenswürdige Ausführungsumgebungen (z. B. Hilfs-TEE 132Z) einzurichten, die Rechenressourcen der Hilfs-Vorrichtung 120 enthalten. Die Komponenten 212 und 214 können die Bescheinigung, die Initiierung, die Konfiguration, das Laden und die Ausführung für die eine oder die mehreren Hilfs-TEEs durchführen, wie nachstehend in Bezug auf 4 im Detail erläutert.
  • Das Modul für die vertrauenswürdige Kommunikationsverbindung 216 kann es der Hilfs-Vorrichtung 120Z ermöglichen, eine vertrauenswürdige Kommunikationsverbindung mit einer primären TEE herzustellen, die auf der Host-Vorrichtung 120 ausgeführt wird. In einem Beispiel kann die vertrauenswürdige Kommunikationsverbindung auf einer (TEE-E/A, TEE EA)-Architektur basieren. Die TEE-EA-Architektur kann eine Form der vertrauenswürdigen EA-Virtualisierung sein, die jede TEE (z. B. primäre TEE oder Hilfs-TEE) mit einer Zielrechenressource einer Vorrichtung verbinden kann, das sich außerhalb der TEE befindet. Die TEE kann mit einem TEE-Sicherheitsmanager (TSM, Engl. „TEE security manager“) verbunden sein, und die Zielrechenressource kann mit einem Vorrichtungs-Sicherheitsmanager (DSM, Engl. „device security manager“) verbunden sein. Der TSM und der DSM können miteinander kommunizieren, um eine vertrauenswürdige Kommunikationsverbindung zwischen der TEE und den Zielrechenressourcen herzustellen. Bei der Zielrechenressource kann es sich um eine bestimmte Vorrichtungs-Schnittstelle wie eine zuweisbare Vorrichtungs-Schnittstelle (ADI, Engl. „assignable device interface), eine virtuelle Funktion (VF), eine physikalische Funktion (PF), einen anderen Teil der Vorrichtung oder eine Kombination davon handeln. Die Kommunikation zwischen TSM und DSM kann einem Vorrichtungs-Schnittstellen-Verwaltungsprotokoll (DINT, Engl. „device interface management protocol“) entsprechen und das Senden einer oder mehrerer Anfragen und Antworten beinhalten, die zur Verwaltung der Zuweisung oder Entfernung der Zielrechenressource (z. B. Vorrichtungs-Schnittstelle) an die TEE verwendet werden. In einem Beispiel kann die vertrauenswürdige Kommunikationsverbindung über eine Peripherie-Computerschnittstellen-Express (PCIe, Engl. „peripheral computer interface express“)-Verbindung hergestellt werden und Integritäts- und Datenverschlüsselungs (IDE, Engl."integrity and data encryption")-Ströme verwenden, um Daten unter Verwendung von Paketen der Transaktionsebene (TLPs, Engl. „transaction layer packets“) zwischen mehreren PCIe-Ports zu übertragen. In einem Beispiel können die mehreren PCIe-Ports mindestens einen Port umfassen, der mit der TEE verbunden ist (z. B. Port des Prozessors 122A), und mindestens einen Port, der mit der Hilfs-Vorrichtung verbunden ist (z. B. Port des Prozessors 122Z)
  • Das Modul für vertrauenswürdige Kommunikationsverbindungen 216 kann eine oder mehrere vertrauenswürdige Kommunikationsverbindungen verwenden, um die primäre TEE und die Hilfs-TEE kommunikativ zu verbinden. In einem Beispiel kann eine einzige vertrauenswürdige Kommunikationsverbindung verwendet werden, um die primäre TEE und die Hilfs-TEE kommunikativ zu verbinden. Die einzelne vertrauenswürdige Kommunikationsverbindung kann zwischen der primären TEE und einer der Vorrichtungen der Hilfs-Vorrichtung 120Z (z. B. dem Hilfs-Prozessor oder dem Hilfs-Speicher), zwischen der Hilfs-TEE und einer der primären Vorrichtungen (z. B. dem Host-Prozessor oder dem Host-Speicher) oder einer Kombination davon bestehen. In einem anderen Beispiel kann ein Satz von mehreren vertrauenswürdigen Kommunikationsverbindungen verwendet werden, um die primäre TEE und die Hilfs-TEE kommunikativ zu verbinden. Der Satz von vertrauenswürdigen Kommunikationsverbindungen kann eine Verbindung zwischen der primären TEE und einer zwischengeschalteten Rechenressource (z. B. Vorrichtungs-Schnittstelle) und eine Verbindung zwischen der zwischengeschalteten Rechenressource und der Hilfs-TEE umfassen. In beiden Beispielen kann die eine oder mehrere vertrauenswürdige Kommunikationsverbindung(en) durch den Hauptprozessor, den Hilfs-Prozessor, die primäre TEE, die Hilfs-TEE, eine andere Rechenressource oder eine Kombination davon initiiert werden.
  • Die Analysekomponente 220 kann es der Hilfs-Vorrichtung 120Z ermöglichen, auf Daten der primären TEE zuzugreifen und diese zu analysieren. Die Datenanalysekomponente 220 kann ein Datenempfangsmodul 222, ein Erfassungsmodul 224 und ein Anzeigemodul 226 umfassen. In dem in 2 dargestellten Beispiel können die Module 224 und 226 intern in der Hilfs-TEE 132Z ausgeführt werden und von anderen Teilen der Host-Vorrichtung isoliert sein. In anderen Beispielen können die Module 224 und 226 außerhalb der Hilfs-TEE ausgeführt werden und von der Hilfs-Vorrichtung 120Z, der Host-Vorrichtung 120A, einer anderen Host-Vorrichtung oder einer Kombination davon ausgeführt werden. In einem Beispiel kann das Programm 135Z, das in der Hilfs-TEE läuft, als Agent (z. B. Proxy-Agent) fungieren, der Daten der primären TEE an einen Dienst liefern kann, der außerhalb der Hilfs-TEE 132Z ausgeführt wird. Bei dem externen Dienst kann es sich um einen Sicherheitsdienst (z. B. SIEM-Dienst - Engl. „Security information event management“, De."Sicherheitsinformationen-Ereignis-Management"), einen Beobachtbarkeitsdienst, einen Überwachungsdienst, einen anderen Dienst oder eine Kombination davon handeln.
  • Das Datenempfangsmodul 222 kann die Hilfs-Vorrichtung 120Z in die Lage versetzen, über eine oder mehrere der vertrauenswürdigen Kommunikationsverbindungen auf Daten der primären TEE zuzugreifen und diese zu empfangen. Die Daten können von einer oder mehreren Quellen empfangen werden, und die Quellen können den Host-Speicher (z. B. den Hauptspeicher), den Host-Prozessor (z. B. die CPU), Verbindungen (z. B. den PCIe-Bus), Netzwerke (z. B. Internetpakete), andere Rechenressourcen der Host-Vorrichtung oder eine Kombination davon umfassen. Die Daten der primären TEE können direkt von der Quelle (z. B. dem Host-Speicher) empfangen oder in eine oder mehrere Datenstrukturen (z. B. eine Warteschlange oder einen Puffer) kopiert und von einem Prozessor verarbeitet werden, bevor sie vom Datenempfangsmodul 222 empfangen werden. Die Datenstrukturen können an einem internen Speicherort der primären TEE (z. B. in der Enklave), an einem externen Speicherort der primären TEE (z. B. Puffer im Host-Speicher oder Hilfs-Speicher), an einem anderen Speicherort oder einer Kombination davon gespeichert werden. Beispielsweise können die Daten der primären TEE in verschlüsselter Form im Host-Speicher gespeichert werden, und der Host-Prozessor kann die Daten mit einem geheimen Schlüssel entschlüsseln und mit einem gemeinsamen Schlüssel (z. B. einem Sitzungsschlüssel) wieder verschlüsseln, der es der Hilfs-Vorrichtung 120Z ermöglicht, die Daten zu entschlüsseln.
  • Das Datenempfangsmodul 222 kann die Daten der primären TEE über einen passiven Zugriffsmechanismus, einen aktiven Zugriffsmechanismus oder eine Kombination davon empfangen. Der aktive Zugriffsmechanismus kann beinhalten, dass auf Daten von einer Quelle zugegriffen wird, indem eine Datenanforderung an den Hauptprozessor (z. B. die CPU) übertragen wird. Der Hauptprozessor kann auf die Anforderung reagieren und die Daten an das Datenempfangsmodul 222 der Hilfs-Vorrichtung 120Z übertragen. Die Anfrage kann die Daten identifizieren, indem sie den Ort der Daten, den Typ der Daten, den Namen der Daten, den Eigentümer der Daten, andere Identifikationsinformationen oder eine Kombination davon angibt. Der passive Zugriffsmechanismus kann den Zugriff auf Daten von einer Quelle beinhalten, ohne eine Datenanforderung an den primären Prozessor zu übermitteln, und kann das Aufspüren oder Abhören der Daten beinhalten. Das Datenempfangsmodul 222 kann die Daten der primären TEE im Speicher 124Z der Hilfs-TEE als Daten 136 speichern.
  • Die Daten 136 können den Zustand des einen oder der mehreren Programme darstellen, die in der primären TEE ausgeführt werden, und können mit den Daten 136A-Z von 1 identisch oder ähnlich sein. Die Daten 136 können die von der primären TEE empfangenen Daten enthalten oder vor, während oder nach der Speicherung im Speicher 124Z umgewandelt, aggregiert, ergänzt, verbessert, gefiltert, geschwärzt, korreliert oder auf andere Weise bearbeitet werden oder eine Kombination davon darstellen. Die Daten 136 können mit Programmen verbunden sein, die als ein oder mehrere Prozesse oder Threads in der primären TEE ausgeführt werden, und die Daten 136 können als Ausführungsdaten, Zustandsdaten, Laufzeitdaten, Programmdaten, TEE-Daten, andere Begriffe oder eine Kombination davon bezeichnet werden. Die Daten 136 können ausführbare Daten (z. B. CPU-Anweisungen), nicht ausführbare Daten (z. B. Informationen) oder eine Kombination davon umfassen. Daten 136 können Informationen über eine oder mehrere Datenstrukturen, Konfigurationen, Berechtigungsnachweise, Ereignisse, Funktionen, Merkmale, Einstellungen, Versionen, andere Aspekte der Programme oder eine Kombination davon enthalten. In einem Beispiel können die Daten 136 die Prozessorauslastung (z. B. CPU-Auslastung, Prozessorzyklen), die Speichernutzung (z. B. verfügbarer Speicher, fehlende Seiten), laufende Prozesse (z. B. Daemons oder Systemdienste), offene Handles/Deskriptoren (z. B, offene Dateien und Sockets), Ereignisse (z. B. Sicherheits-, System- oder Vorrichtungsereignisse), Abstürze (z. B. Segmentierungsfehler), Betriebssystem- und Kerneldetails, entfernte Laufwerke (z. B. zugeordnete oder gemountete Laufwerke), Prozessspeicher mit injiziertem Code, Speicherscan, andere Informationen oder eine Kombination daraus.
  • Das Erkennungsmodul 224 kann die von der primären TEE abgeleiteten Daten 136 analysieren, um festzustellen, ob die primäre TEE oder ein Programm innerhalb der primären TEE beeinträchtigt worden ist. Wie oben beschrieben, kann die Beeinträchtigung auf einer nicht autorisierten Änderung der primären TEE beruhen und Änderungen an ausführbaren Daten (z. B. Prozessoranweisungen), nicht ausführbaren Daten (z. B. Benutzerinformationen), anderen Daten oder einer Kombination davon umfassen. Die Logik kann die Daten 136 analysieren, indem sie Operationen wie Suchen, Filtern, Transformieren, Prüfen, Vergleichen oder andere Operationen oder eine Kombination davon durchführt. Die Logik kann als Software-Logik (z. B. ausführbarer Code des Programms 135Z), Hardware-Logik (z. B. integrierte Schaltkreise der Hilfs-Vorrichtung 120Z) oder eine Kombination davon implementiert werden.
  • Die Logik kann die Änderungen erkennen, indem sie die Aktivität der Programme (z. B. Verhaltensprofilierung), die Konfiguration der Programme (z. B. Konfigurationsprüfung), den Inhalt der Programme (z. B. Vergleich von Datenhashes mit Hashes bekannter Schadsoftware), andere Analysen oder eine Kombination davon analysiert. In einem Beispiel kann die Logik die Daten 136 analysieren, um zu erkennen, ob Malware in der primären TEE vorhanden ist (d. h., ob bösartige Software vorhanden ist und/oder ausgeführt wird). In einem anderen Beispiel kann die Logik die Daten 136 analysieren, um zu erkennen, ob die Konfiguration des Programms 135A oder der primären TEE geändert wurde (z. B. Aufhebung der Verschlüsselung, Änderung des Ausführungspfads). In einem weiteren Beispiel kann die Logik Daten 136 analysieren, um zu erkennen, ob das Programm 135A oder die primäre TEE eine Schwachstelle aufweist, unabhängig davon, ob sie ausgenutzt wird oder nicht (z. B. eine ältere Version mit einem bekannten Fehler erkennen).
  • Das Modul 226 kann es der Hilfs-Vorrichtung 120Z ermöglichen, einen Hinweis darauf zu geben, dass Daten verfügbar sind oder dass eine Beeinträchtigung festgestellt wurde. Der Hinweis kann ein Signal sein, das einem Empfänger zur Verfügung gestellt wird, und kann eine oder mehrere Nachrichten, Mitteilungen, Ereignisse, Unterbrechungen, Fehler, Ausnahmen, Traps, andere Signale oder eine Kombination davon sein oder umfassen. Bei dem Empfänger kann es sich um eine Rechenressource (z. B. ein Programm oder eine Vorrichtung) der Hilfs-Vorrichtung 120Z, der Host-Vorrichtung 120A, einer Verwaltungs-Vorrichtung, einer anderen Vorrichtung oder einer Kombination davon handeln. In einem Beispiel kann die Anzeige eine Nachricht sein, die an einen Sicherheitsdienst gesendet wird, der außerhalb der primären TEE und der Hilfs-TEE ausgeführt wird. Der Sicherheitsdienst kann ein oder mehrere Host-Vorrichtungen verwalten und kann gleich oder ähnlich sein wie ein Sicherheits-Informations-Management (SIM)-Dienst, ein Sicherheits-Ereignis-Management (SEM)-Dienst, ein (SIEM)-Dienst, ein Erweiterte-Erkennung-und-Reaktions-Dienst (XDR, Engl. „extended detection and respone“), ein anderer Dienst oder eine Kombination davon. In einem Beispiel kann die Bereitstellung des Hinweises darin bestehen, dass das Modul 226, welches den Hinweis bereitstellt, den Hinweis an den Empfänger überträgt. In einem anderen Beispiel kann die Bereitstellung des Hinweises darin bestehen, dass das Modul 226, welches den Hinweis bereitstellt, eine gemeinsam genutzte Datenstruktur (z. B. Warteschlange, Puffer, Protokoll, Flagge), auf die der Empfänger zugreifen kann, aktualisiert, um den Hinweis aufzunehmen. Der Empfänger kann dann auf die gemeinsame Datenstruktur zugreifen, um den Hinweis zu empfangen.
  • 3 zeigt ein Beispiel für eine vertrauenswürdige Ausführungsumgebung 132 innerhalb einer Vorrichtung 120 gemäß einer Ausführungsform der vorliegenden Offenbarung. In einem Beispiel kann die Vorrichtung 120 die gleiche sein wie die Host-Vorrichtung 120A und die vertrauenswürdige Ausführungsumgebung 132 kann die gleiche sein wie die primäre vertrauenswürdige Ausführungsumgebung 132A. In einem anderen Beispiel kann die Vorrichtung 120 die gleiche sein wie die Hilfs-Vorrichtung 120Z und die vertrauenswürdige Ausführungsumgebung 132 kann die gleiche sein wie die vertrauenswürdige Hilfs-Ausführungsumgebung 132Z. In beiden Beispielen kann die Vorrichtung 120 Rechenressourcen 320, eine vertrauenswürdige Ausführungsumgebung 132, ein Betriebssystem 126 und eine oder mehrere Rechenkonstruke 333A-C enthalten. Es sollte beachtet werden, dass andere Architekturen für die Vorrichtung 120 möglich sind und dass die Implementierungen der Computer-Vorrichtung, die Ausführungsformen der Offenbarung nutzen, nicht notwendigerweise auf die dargestellte spezifische Architektur beschränkt sind.
  • Zu den Rechenressourcen 320 kann eine Kombination aus Hardware und Software gehören, die zur Ausführung von Rechenaufgaben für die Vorrichtung 120 verwendet werden. Zu den Rechenressourcen 320 können ein oder mehrere Verarbeitungs-Vorrichtungen, Datenspeicher-Vorrichtungen, Eingabe-/Ausgabe-Vorrichtungen, Programme (z. B. Firmware), andere Aspekte oder eine Kombination davon gehören. Ein oder mehrere Vorrichtungen der Rechenressourcen 320 können zu einer oder mehreren physischen Vorrichtungen kombiniert oder zusammengefasst werden oder teilweise oder vollständig als virtuelle Vorrichtung oder virtuelle Maschine emuliert werden. In dem Beispiel in 2 können die Rechenressourcen 320 einen Speicher 124 und einen Prozessor 122 umfassen.
  • Der Speicher 124 kann eine beliebige Datenspeicher-Vorrichtung sein, die Daten speichern kann, und kann auch physische Speicher-Vorrichtungen umfassen. Der Speicher 124 kann der gleiche oder ein ähnlicher sein wie der Speicher 124A oder der Speicher 124Z in 1. Die physischen Speicher-Vorrichtungen können flüchtige Speicher-Vorrichtungen (z. B. nichtpersistenter Speicher, dynamischer Direktzugriffsspeicher (DRAM, Engl. „dynamic random access memory“), statischer Direktzugriffsspeicher (SRAM, Engl. „static random access memory“)), nicht-flüchtige Speicher-Vorrichtungen (z. B. nicht-flüchtiger Direktzugriffsspeicher (NVRAM, Engl. „non-volatile random access memory“), persistenter Speicher (PMEM, Engl. „persistant memory“)), andere Arten von Speicher-Vorrichtungen oder eine Kombination davon umfassen.
  • Der Speicher 124 kann in der Lage sein, Daten 136 zu speichern, die mit einer oder mehreren der Rechenkonstrukten 333A-C verbunden sind. In einem Beispiel können die Daten dem Rechenkonstrukt 333A von einer Vorrichtung empfangen werden, die intern oder extern zur Vorrichtung 120 ist. Die Daten können mit einem kryptografischen Schlüssel verschlüsselt werden, der von der Vorrichtung 120 oder einer anderen Computer-Vorrichtung bereitgestellt (z. B. bestimmt, abgeleitet, erzeugt oder zugewiesen) wurde. Die empfangenen Daten können unter Verwendung desselben kryptografischen Schlüssels oder einer Ableitung des kryptografischen Schlüssels entschlüsselt werden, und die entschlüsselten Daten können vor, während oder nach der erneuten Verschlüsselung in die vertrauenswürdige Ausführungsumgebung 132 geladen werden (wie durch Daten 136 angezeigt).
  • Der Prozessor 122 kann kommunikativ mit dem Speicher 124 verbunden sein und Befehle ausführen, die arithmetische, logische oder E/A-Operationen kodieren. Der Prozessor 122 kann derselbe sein wie der Prozessor 122A oder derselbe wie der Prozessor 122Z von 1. Prozessor 122 kann ein oder mehrere allgemeine Prozessoren, Zentraleinheiten (CPUs), Grafikeinheiten (GPUs), Datenverarbeitungseinheiten (DPUs), digitale Signalprozessoren (DSP, Engl. „digital signal processor“), anwendungsspezifische integrierte Schaltungen (ASICs), sichere Kryptoprozessoren, sichere Elemente (SE, Engl. „secure elements“), Hardwaresicherheitsmodule (HSM, Engl. „hardware security module“), vertrauenswürdige Plattformmodule (TPM, Engl. „trusted platform module“), andere Verarbeitungseinheiten oder eine Kombination davon sein oder umfassen. Bei dem Prozessor 122 kann es sich um einen Einzelkernprozessor handeln, der in der Lage ist, jeweils einen Befehl auszuführen (z. B. eine einzelne Pipeline von Befehlen), oder um einen Mehrkernprozessor, der mehrere Befehle gleichzeitig ausführen kann. Der Prozessor 122 kann mit dem Speicher 124 interagieren und eine oder mehrere Funktionen bereitstellen, die durch vertrauenswürdige Systeme, vertrauenswürdige Datenverarbeitung, ein vertrauenswürdiges Plattformmodul (TPM), ein Hardwaresicherheitsmodul (HSM), ein sicheres Element (SE), andere Funktionen oder eine Kombination davon definiert sind oder von diesen angeboten werden.
  • Der Prozessor 122 kann eine oder mehrere vertrauenswürdige Ausführungsumgebungen 132 über mehrere Hardware-Vorrichtungen von Rechenressourcen 320 (z. B. Prozessor- und Speicher-Vorrichtungen) einrichten. Der Prozessor 122 kann Anweisungen (z. B. Opcodes) enthalten, um die vertrauenswürdigen Ausführungsumgebungen zu initiieren, zu konfigurieren und zu pflegen. In einem Beispiel kann der Prozessor 122 die vertrauenswürdige Ausführungsumgebung 132 unter Verwendung der Hardwaretechnologie von Intel® (z. B. Software Guard eXtensions® (SGX), Trusted Domain Extensions® (TDX)), AMD® (z. B., Secure Encrypted Virtualization® (SEV), Secure Memory Encryption (SME, SME-ES), ARM® (z. B. TrustZone® , Confidential Compute Architecture (CCA)), IBM (z. B. PEF), RISC-V Sanctum, andere Technologien oder eine Kombination davon.
  • Die vertrauenswürdige Ausführungsumgebung 132 kann ein sicherheitsverbesserter Bereich in der Vorrichtung 120 sein, der die Daten eines Rechenkonstrukts 333A vor dem Zugriff durch andere Rechenkonstrukte auf der Vorrichtung 120 schützen kann. Die vertrauenswürdige Ausführungsumgebung 132 kann die Sicherheit verbessern, indem sie die Vertraulichkeit (z. B. Verringerung des unbefugten Zugriffs), die Integrität (z. B. Verringerung unbefugter Änderungen), die Nichtabstreitbarkeit (z. B. Aktionszuordnung), die Verfügbarkeit (z. B. Sicherstellung des autorisierten Zugriffs), andere Aspekte der Datensicherheit (z. B. Informationssicherheit, digitale Sicherheit) oder eine Kombination davon verbessert. Die vertrauenswürdige Ausführungsumgebung 132 kann einer Vertrauensdomäne, einer Vertrauenszone, einem Keep, einer Enklave, einem anderen Begriff oder einer Kombination davon entsprechen oder ähnlich sein. Die vertrauenswürdige Ausführungsumgebung 132 kann Daten 136 schützen, während sie in Gebrauch sind (z. B. vom Prozessor 122 verarbeitet werden), sich in Bewegung befinden (z. B. über das Netzwerk 140 übertragen werden), in Ruhe sind (z. B. in einer dauerhaften Speicher-Vorrichtung 140 gespeichert sind) oder eine Kombination davon. Die vertrauenswürdige Ausführungsumgebung 132 kann Daten von mindestens einem Prozess, der in der vertrauenswürdigen Ausführungsumgebung 132 ausgeführt wird, von Prozessen isolieren, die außerhalb der vertrauenswürdigen Ausführungsumgebung ausgeführt werden, indem die Daten 136 in einem vertrauenswürdigen Speicherbereich 324 gespeichert werden.
  • Der vertrauenswürdige Speicherbereich 324 kann ein Bereich des Speichers 124 sein, der mit der vertrauenswürdigen Ausführungsumgebung 132 verbunden ist. Wie in 2 gezeigt, kann der vertrauenswürdige Speicherbereich 324 ein Teil der vertrauenswürdigen Ausführungsumgebung 132 sein und Daten 136 des Rechenkonstrukts 333A in verschlüsselter Form speichern. Die Daten 136 können durch Hardware-Vorrichtungen (z. B. Prozessor 122) verschlüsselt und entschlüsselt werden, wobei eine kryptografische Eingabe verwendet wird, die einen oder mehrere kryptografische Schlüssel enthält. In einem Beispiel können die kryptografischen Schlüssel für die Hardware-Vorrichtungen (z. B. Prozessor 122) zugänglich sein und für Prozesse auf Betriebssystemebene, die von der Hardware-Vorrichtung ausgeführt werden, unzugänglich sein. In einem anderen Beispiel können die kryptografischen Schlüssel für Hardware-Vorrichtungen und ein oder mehrere Rechenkonstrukte zugänglich sein, wie z. B. die mit der vertrauenswürdigen Ausführungsumgebung verbundene Rechenkonstrukte (z. B. Rechenkonstruk 133A). In beiden Beispielen kann die von der Hardware-Vorrichtung durchgeführte Ver- und Entschlüsselung als hardwarebasierte Verschlüsselung, Verschlüsselung auf Hardware-Ebene, hardwareunterstützte Verschlüsselung, hardwareerzwungene Verschlüsselung, prozesstransparente Verschlüsselung, transparente Verschlüsselung der virtuellen Maschine, transparente Verschlüsselung des Containers, andere Begriffe oder eine Kombination davon bezeichnet werden.
  • Der vertrauenswürdige Speicherbereich 324 kann einen Teil des Speichers umfassen, der als verschlüsselter Speicherbereich bezeichnet wird. Der verschlüsselte Speicherbereich kann ein zusammenhängender oder nicht zusammenhängender Teil des virtuellen Speichers, des logischen Speichers, des physischen Speichers, einer anderen Speicherabstraktion oder einer Kombination davon sein. Der verschlüsselte Speicherbereich kann einem Teil des Primärspeichers (z. B. Hauptspeicher), der Hilfs-Vorrichtungen (z. B. Vorrichtungs-Speicher oder Vorrichtungs-Prozessor), des persistenten Speichers (z. B. Festkörperspeicher), eines anderen persistenten oder nicht-persistenten Speichers oder einer Kombination davon entsprechen oder darauf abgebildet sein. In einem Beispiel kann der verschlüsselte Speicherbereich ein Teil des Hauptspeichers sein, der einem bestimmten Prozess zugeordnet ist, und der Prozessor kann die Daten verschlüsseln, wenn er sie in dem Speicherbereich speichert, und kann die Daten entschlüsseln, wenn er sie aus dem Speicherbereich abruft. Die Daten im Speicherbereich können vor, während oder nachdem sie im Speicherbereich gespeichert oder aus diesem abgerufen werden, transformiert (z. B. ver- oder entschlüsselt) werden und in verschlüsselter Form im verschlüsselten Speicherbereich verbleiben. In einem Beispiel kann der verschlüsselte Speicherbereich gleich oder ähnlich wie ein abgeschirmter Speicher, eine Enklave, ein Keep, eine Trust Domain, ein anderer Begriff oder eine Kombination davon sein.
  • Der vertrauenswürdige Prozessorbereich 322 kann ein Teil des Prozessors 122 sein, der mit dem Rechenkonstrukt 333A verbunden ist und Daten eines oder mehrerer Computerprozesse vor dem Zugriff oder der Änderung durch einen anderen Computerprozess schützt. Der vertrauenswürdige Prozessorbereich 322 kann einen Teil des Prozessors 122 umfassen, der die Daten speichert (z. B. Prozessor-Cache und Register), einen Teil des Prozessors 122, der die Daten ausführt (z. B. Prozessorkerne), oder eine Kombination davon. Der vertrauenswürdige Prozessorbereich 322 kann die Daten in verschlüsselter Form oder in entschlüsselter Form speichern, wenn sie auf dem Prozessor vorhanden sind, und in beiden Beispielen können die Daten des Rechenkonstrukts isoliert und geschützt werden. Die Daten können durch die Konstruktion des Prozessors vor dem Zugriff oder der Veränderung durch andere Prozesse isoliert und geschützt werden, und eine Verschlüsselung kann nicht erforderlich sein, um die Isolierung der Daten zu gewährleisten, wenn sich die Daten im Prozessor oder in einem Prozessorkern befinden. Die Daten im vertrauenswürdigen Prozessorbereich 322 können über vertrauenswürdige Kommunikationsverbindungen 134A-B an andere Hardware-Vorrichtungen übertragen werden.
  • Vertrauenswürdige Kommunikationsverbindungen 134A-B können es ermöglichen, dass die Daten der vertrauenswürdigen Ausführungsumgebung 132 zwischen Hardware-Vorrichtungen auf eine sicherheitsverbesserte Weise übertragen werden. Die vertrauenswürdigen Kommunikationsverbindungen 134A-B können gleich oder ähnlich wie die vertrauenswürdige Kommunikationsverbindung 134 von 1 sein. Die Daten können über eine oder mehrere Systemverbindungen, Busse, Netzwerke oder andere Kommunikationsverbindungen in verschlüsselter oder teilweise verschlüsselter Form übertragen werden. Wie in 2 dargestellt, kann die vertrauenswürdige Kommunikationsverbindung 134A die Übertragung der Daten innerhalb der vertrauenswürdigen Ausführungsumgebung 132 und zwischen dem vertrauenswürdigen Prozessorbereich 322 und dem vertrauenswürdigen Speicherbereich 324 ermöglichen. Über die vertrauenswürdige Kommunikationsverbindung 134B können die Daten außerhalb der vertrauenswürdigen Ausführungsumgebung 132 an eine oder mehrere andere Vorrichtungen (z. B. eine Peripherie-Vorrichtung) übertragen werden.
  • 4 zeigt ein Blockdiagramm, das Teile der Datenverarbeitungs-Umgebung 100 illustriert und wie die Bescheinigung verwendet wird, um eine vertrauenswürdige Ausführungsumgebung 132 innerhalb der Vorrichtung 120 einzurichten. Wie oben beschrieben, kann die Vorrichtung 120 eine Host-Vorrichtung 120A sein und die Bescheinigung kann verwendet werden, um eine primäre vertrauenswürdige Ausführungsumgebung 132A einzurichten, oder die Vorrichtung 120 kann eine Hilfs-Vorrichtung 120Z sein und die Bescheinigung kann verwendet werden, um eine zusätzliche vertrauenswürdige Ausführungsumgebung 132Z einzurichten. In beiden Beispielen kann die Vorrichtung 120 eine Komponente 212 zur Einrichtung einer vertrauenswürdigen Ausführungsumgebung und eine Datenkomponente 214 enthalten. Die hier besprochenen Komponenten und Module können von jedem Teil der Vorrichtung 120 ausgeführt werden. Zum Beispiel können eine oder mehrere der hier besprochenen Komponenten oder Module von einem Prozessorschaltkreis, einer Prozessor-Firmware, einem Treiber, einem Kernel, einem Betriebssystem, einer Anwendung, einer anderen Rechenressource oder einer Kombination davon ausgeführt werden. Ohne Verlust der Allgemeingültigkeit können auch mehr oder weniger Komponenten oder Module enthalten sein. Beispielsweise können zwei oder mehr der Komponenten zu einer einzigen Komponente kombiniert werden, oder Merkmale einer Komponente können in zwei oder mehr Komponenten aufgeteilt werden. In einer Implementierung können sich eine oder mehrere der Komponenten auf verschiedenen Vorrichtungen befinden.
  • Die Komponente 212 zur Einrichtung einer vertrauenswürdigen Ausführungsumgebung kann es der Vorrichtung 120 ermöglichen, eine oder mehrere vertrauenswürdige Ausführungsumgebungen 132 in der Vorrichtung 120 einzurichten. Das Einrichten einer vertrauenswürdigen Ausführungsumgebung kann das Erstellen einer neuen vertrauenswürdigen Ausführungsumgebung oder das Aktualisieren einer bestehenden vertrauenswürdigen Ausführungsumgebung beinhalten. Jede der einen oder mehreren vertrauenswürdigen Ausführungsumgebungen kann mit einem Satz von einem oder mehreren Computerprozessen verbunden sein und kann Daten des Satzes von Computerprozessen speichern und ausführen. In einem Beispiel kann die Komponente 212 zur Einrichtung einer vertrauenswürdigen Ausführungsumgebung ein Bescheinigungsmodul 312, ein Initiierungssmodul 314 und ein Konfigurationsmodul 316 umfassen.
  • Das Bescheinigungsmodul 312 kann es der Vorrichtung 120 ermöglichen, eine Prüfung durchzuführen, um die Integrität der Vorrichtung 120 (z. B. die Integrität der Rechenressourcen 320, des Betriebssystems 126 und/oder des Prozessors 122) zu verifizieren. Die Prüfung kann eine vertrauenswürdige Ressource (z. B. ein Programm) in die Lage versetzen, die Fähigkeiten einer vertrauenswürdigen Ressource (z. B. des Prozessors 122 der Vorrichtung 120) zu überprüfen und unbefugte Änderungen an Programmen, Hardware-Vorrichtungen, anderen Teilen von Rechenressourcen oder einer Kombination davon zu erkennen. Die nicht autorisierten Änderungen können das Ergebnis böswilliger, fehlerhafter oder versehentlicher Aktionen eines Programms oder einer Hardware-Vorrichtung sein.
  • Die Bescheinigung kann eine lokale Bescheinigung, eine Fernbescheinigung oder eine Kombination davon umfassen. Die lokale Bescheinigung kann beinhalten, dass ein lokal auf der Vorrichtung 120 ausgeführtes Programm aktiviert wird, um die Integrität der Vorrichtung 120 zu überprüfen. Bei der Fernbescheinigung kann ein von einer anderen Vorrichtung (z. B. der Benutzer-Vorrichtung 110) fernausgeführtes Programm aktiviert werden, um die Integrität der Vorrichtung 120 zu überprüfen. Die Fernbescheinigung kann nicht-anonym erfolgen, indem Daten offengelegt werden, welche die Vorrichtung 120 eindeutig identifizieren, oder anonym, ohne die Vorrichtung 120 eindeutig zu identifizieren (z. B. direkte anonyme Bescheinigung (DAA, Engl. „direkt anonymous attestation“)). In beiden Beispielen kann das Bescheinigungsmodul 312 eine oder mehrere Bescheinigungsoperationen durchführen, um die Bescheinigungsdaten 136A-B zu ermitteln, und die Bescheinigungsdaten 136A-B an die Programme übertragen, die auf den lokalen oder entfernten Vorrichtungen zur Überprüfung ausgeführt werden.
  • Die Bescheinigungsdaten 313A-B können auf der Konfiguration der Vorrichtung 120 beruhen und die Fähigkeiten der Rechenressourcen, der vertrauenswürdigen Ausführungsumgebung, des ausführbaren Codes oder einer Kombination davon darstellen. Die von den Rechenressourcen (z. B. Prozessor, Speicher, Firmware, BIOS) erhaltenen oder erzeugten Bestätigungsdaten können mit Integritätsdaten (z. B. Hash oder Signatur des ausführbaren Codes), Identifikationsdaten (z. B. Prozessormodell oder -instanz), kryptografischen Daten (z. B. Signaturschlüssel, Bestätigungsschlüssel, Sitzungsschlüssel, Verschlüsselungs- oder Entschlüsselungsschlüssel, Authentifizierungsschlüssel), Messdaten, Berichtsdaten, Konfigurationsdaten, Einstellungsdaten, anderen Daten oder einer Kombination davon identisch oder ähnlich sein. In einem Beispiel kann die Bestimmung der Bescheinigungsdaten eine Bescheinigungsverkettung beinhalten, bei der die Bescheinigungsdaten verschiedener Teile der Vorrichtung 120 vor, während oder nach der Beschaffung kombiniert werden können. Dies kann die Bestimmung von Bescheinigungsdaten für eine oder mehrere Ebenen der Vorrichtungen 120 beinhalten, wobei die Ebenen der Hardware-Vorrichtungs-Ebene (z. B. Hardware-Plattform-Bescheinigungsdaten), der Programm-Ebene (z. B. Code-Bescheinigungsdaten), einer anderen Ebene oder einer Kombination davon entsprechen können.
  • Das Programm, das die Bescheinigungsdaten empfängt, kann die Bescheinigungsdaten verwenden, um die Fähigkeiten und das Verhalten der Vorrichtung 120 zu überprüfen. Das Programm kann eine Verifizierungs-Funktion ausführen, um die Vorrichtung 120 im Hinblick auf die Bescheinigungsdaten zu verifizieren. Die Verifizierungs-Funktion kann die Bescheinigungsdaten als Eingabe verwenden und eine Ausgabe liefern, die anzeigt, ob die Vorrichtung 120 verifiziert (z. B. vertrauenswürdig) ist. In einem Beispiel können die Bescheinigungsdaten Integritätsdaten enthalten (z. B. einen Nachrichten-Authentifizierungscode (MAC, Engl. „message authentication code“)), und die Verifizierungs-Funktion kann einen Teil der Bescheinigungsdaten analysieren, um Validierungsdaten zu erzeugen. Die Verifizierungs-Funktion kann dann die empfangenen Integritätsdaten mit den erzeugten Validierungsdaten vergleichen, um die Bescheinigung durchzuführen (z. B. den empfangenen MAC mit dem erzeugten MAC vergleichen).
  • Das Bescheinigungsmodul 312 kann Operationen durchführen, bevor, während oder nachdem die vertrauenswürdige Ausführungsumgebung 132 auf der Vorrichtung 120 eingerichtet wurde, und kann Bestätigungsdaten bereitstellen, welche für die Initiierung, Konfiguration oder Ausführung der vertrauenswürdigen Ausführungsumgebung 132 spezifisch sind. In einem Beispiel kann die Bescheinigung die Durchführung eines Schlüsselaustauschs, die Einrichtung einer Hardware-Vertrauensbasis und/oder die Bereitstellung von Mess- und Konfigurationswerten der vertrauenswürdigen Ausführungsumgebung 132 umfassen.
  • Das Initiierungsmodul 314 kann es der Vorrichtung 120 ermöglichen, die Konfiguration einer vertrauenswürdigen Ausführungsumgebung vor, während oder nach der Ausführung des Bescheinigungsmoduls 312 einzuleiten. Das Initiierungsmodul 314 kann eine oder mehrere vom Prozessor erkannte Anweisungen ausführen (z. B. Opcodes für ARM CCA/TrustZone, Intel TDX/SGX oder AMD SEV). Die Befehle können von einem Programm aufgerufen werden, das mit einer Anwendung, einem Kernel, einem Betriebssystem, einem Hypervisor, einem Bootloader, einem grundlegenden Input-Output-Dienst (BIOS, Engl. „basic input output services“), einem Hardware-Adapter, einer anderen Einheit oder einer Kombination davon verbunden ist. In einem Beispiel kann ein Programm, das in der vertrauenswürdigen Ausführungsumgebung ausgeführt werden soll, die Erstellung der vertrauenswürdigen Ausführungsumgebung initiieren. In einem anderen Beispiel kann ein Programm die Erstellung der vertrauenswürdigen Ausführungsumgebung initiieren und die vertrauenswürdige Ausführungsumgebung kann für die Ausführung eines anderen Programms verwendet werden. In beiden Beispielen kann die vertrauenswürdige Ausführungsumgebung nach ihrer Einrichtung durch das Konfigurationsmodul 316 konfiguriert werden.
  • Das Konfigurationsmodul 316 kann es der Vorrichtung 120 ermöglichen, eine vertrauenswürdige Ausführungsumgebung zu konfigurieren, um Daten eines Computerprozesses (z. B. einer Anwendung oder einer virtuellen Maschine) zu speichern oder auszuführen. Das Konfigurationsmodul 316 kann die vertrauenswürdige Ausführungsumgebung im Hinblick auf Konfigurationsdaten konfigurieren, die von einem Prozess, der die vertrauenswürdige Ausführungsumgebung initiiert oder verwendet, von einem Prozessor, einer Speicher-Vorrichtung, einem anderen Teil der Vorrichtung 120 oder einer Kombination davon bereitgestellt werden. Die Konfigurationsdaten können als Eingabe bereitgestellt werden, bevor, während oder nachdem die vertrauenswürdige Ausführungsumgebung initiiert, erstellt oder aktualisiert wird. Wie bereits erwähnt, kann eine vertrauenswürdige Ausführungsumgebung einen vertrauenswürdigen Speicherbereich, einen vertrauenswürdigen Prozessorbereich, eine vertrauenswürdige Kommunikationsverbindung oder eine Kombination davon umfassen, und die Konfigurationsdaten können Daten zum Konfigurieren eines oder mehrerer dieser Elemente enthalten. Die Konfigurationsdaten können beispielsweise Daten über die Rechenkonstruktion (z. B. Kennung der virtuellen Maschine (VMID), Prozesskennung (PID)), Speicherdaten (z. B. Speichergröße oder -ort), kryptografische Daten (z. B. Verschlüsselungsschlüssel, Entschlüsselungsschlüssel, Seed, Salt, Nonce), andere Daten oder eine Kombination davon enthalten. Eines oder mehrere dieser Elemente können konfiguriert oder angepasst und mit der vertrauenswürdigen Ausführungsumgebung für den Computerprozess verknüpft werden. In einem Beispiel kann die vertrauenswürdige Ausführungsumgebung einen verschlüsselten Speicherbereich umfassen, und die Konfigurationsdaten können eine Größe des verschlüsselten Speicherbereichs angeben, der für die vertrauenswürdige Ausführungsumgebung zugewiesen wird (z. B. die Größe des Speichers für einen vertrauenswürdigen Speicherbereich).
  • Das Konfigurationsmodul 316 kann verschiedene Aspekte der vertrauenswürdigen Ausführungsumgebung so konfigurieren, dass unterschiedliche kryptografische Systeme verwendet werden. Die verschiedenen kryptografischen Systeme können unterschiedliche kryptografische Funktionen, kryptografische Einstellungen, kryptografische Schlüssel, kryptografische Eingaben, andere kryptografische Daten oder eine Kombination davon verwenden. In einem Beispiel können die Daten eines Computerprozesses, der von der vertrauenswürdigen Ausführungsumgebung 132 ausgeführt wird, mit einem ersten kryptografischen System (z. B. mit einem ortsunabhängigen Transportschlüssel) verschlüsselt werden, wenn sie vom Prozessor geladen werden, und mit einem zweiten kryptografischen System (z. B. mit einem ortsabhängigen Speicherschlüssel) verschlüsselt werden, wenn sie im verschlüsselten Speicher abgelegt werden. Dies kann vorteilhaft sein, da die Daten bei der Speicherung auf einer Wechselspeicher-Vorrichtung (z. B. Speichermodul oder Dauerspeicher-Vorrichtung) anfälliger für Angriffe sein können als bei der Übertragung über den Systembus und daher unterschiedliche kryptografische Techniken verwendet werden können.
  • Die Datenkomponente 214 kann es der Vorrichtung 120 ermöglichen, Daten 136 eines Computerprozesses (z. B. VM) in die vertrauenswürdige Ausführungsumgebung 132 zu laden, um die Vertraulichkeit und Integrität der Datenverarbeitung zu verbessern. Zu den Daten 136 können Daten eines oder mehrerer Programme gehören, die ausführbaren Code (z. B. Maschinenanweisungen), nicht ausführbare Daten (z. B. Konfigurationsdaten, Parameterwerte oder Einstellungen), andere Daten oder eine Kombination davon enthalten. In einem Beispiel kann die Datenkomponente 214 ein Lademodul 321 und ein Ausführungsmodul 323 enthalten.
  • Das Lademodul 321 kann Anweisungen zum Laden von Daten in die vertrauenswürdige Ausführungsumgebung 132 enthalten. Das Laden von Daten 136 kann das Kopieren von Daten, das Verschieben von Daten, das Aktualisieren von Daten, das Ändern von Daten oder andere Aktionen umfassen, die sich auf Daten 136 auswirken. Der Prozess des Ladens von Daten 136 kann das Kopieren von Daten aus dem vertrauenswürdigen Speicherbereich in den vertrauenswürdigen Prozessorbereich, das Kopieren von Daten aus einem nicht vertrauenswürdigen Bereich in den vertrauenswürdigen Speicherbereich, einen anderen Kopiervorgang oder eine Kombination davon umfassen. Die vertrauenswürdige Ausführungsumgebung 132 kann die Daten des Computerprozesses in dem vertrauenswürdigen Speicherbereich speichern, und das Laden kann beinhalten, dass der Prozessor die Daten in verschlüsselter Form über einen Bus aus dem vertrauenswürdigen Speicherbereich empfängt. Die vertrauenswürdige Ausführungsumgebung 132 kann einen bestimmten Teil des Speichers (z. B. einen bestimmten Adressbereich) und einen bestimmten Teil des Prozessors (z. B. einen bestimmten Kern) umfassen oder damit verbunden sein, und die Daten, welche in die vertrauenswürdige Ausführungsumgebung 132 geladen werden, können für den Computerprozess zugänglich und für den Kernel vor der Aktivierung unzugänglich sein.
  • Das Ausführungsmodul 323 kann die Vorrichtung 120 in die Lage versetzen, Daten 136 (z. B. ausführbaren Code) in der vertrauenswürdigen Ausführungsumgebung 132 auszuführen. Wie in 3 beschrieben, kann die Vorrichtung 120 ein Betriebssystem 126 enthalten, das die Ausführung mehrerer Computerprozesse verwaltet. Das Ausführungsmodul 323 kann ein Teil des Betriebssystems 126 sein oder mit dem Betriebssystem 126 interagieren, um die Ausführung von ausführbarem Code als Computerprozess zu initiieren. Obwohl das Betriebssystem möglicherweise keinen Zugriff auf eine entschlüsselte Version der Daten in der vertrauenswürdigen Ausführungsumgebung 132 hat, kann es in der Lage sein, zu verwalten, wann der Computerprozess ausgeführt wird und welche Operationen er durchführt.
  • 5 ist ein Flussdiagramm eines Verfahrens 500 für den Zugriff auf und die Analyse von Daten einer vertrauenswürdigen Ausführungsumgebung in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 500 kann von einer Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Verarbeitungs-Vorrichtung, Schaltung, dedizierte Logik, programmierbare Logik, Mikrocode, Hardware einer Vorrichtung, integrierte Schaltung usw.), Software (z. B. Anweisungen, die auf einer Verarbeitungs-Vorrichtung ausgeführt werden) oder eine Kombination davon umfassen kann. Wenn nicht anders angegeben, kann die Reihenfolge der Prozesse geändert werden, auch wenn sie in einer bestimmten Abfolge oder Reihenfolge dargestellt sind. Daher sind die dargestellten Ausführungsformen nur als Beispiele zu verstehen, und die dargestellten Prozesse können in einer anderen Reihenfolge ausgeführt werden, und einige Prozesse können parallel ausgeführt werden. Außerdem können in verschiedenen Ausführungsformen ein oder mehrere Prozesse weggelassen werden. Es sind also nicht alle Prozesse in jeder Ausführungsform erforderlich. Andere Prozessabläufe sind möglich. Das Verfahren 500 kann von der Verarbeitungslogik einer Hilfs-Vorrichtung 120Z, einer Host-Vorrichtung 120A, einer anderen Vorrichtung oder einer Kombination davon durchgeführt werden und kann mit Operation 510 beginnen.
  • Bei Operation 510 kann die Verarbeitungslogik feststellen, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, die einen Speicher der Host-Vorrichtung enthält und ein erstes Computerprogramm ausführt. Die Host-Vorrichtung kann ein Host-Betriebssystem enthalten, das Rechenressourcen der Host-Vorrichtung verwaltet, und die erste vertrauenswürdige Ausführungsumgebung kann Daten enthalten, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind. In einem Beispiel kann die Host-Vorrichtung eine Zentraleinheit (CPU) und eine Datenverarbeitungseinheit (DPU) enthalten. Die DPU kann einen Prozessor, einen Vorrichtungs-Speicher und die Verarbeitungslogik enthalten. Die CPU kann die erste vertrauenswürdige Ausführungsumgebung und die DPU kann die zweite vertrauenswürdige Ausführungsumgebung einrichten. Die CPU kann das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführen und die DPU kann ein zweites Computerprogramm ausführen, um die Ausführung des ersten Programms zu überwachen.
  • Bei Operation 520 kann die Verarbeitungslogik eine vertrauenswürdige Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und der zweiten vertrauenswürdigen Ausführungsumgebung herstellen. Die zweite vertrauenswürdige Ausführungsumgebung kann den Vorrichtungs-Speicher (z. B. einen Teil des Vorrichtungs-Speichers) umfassen. Die Verarbeitungslogik kann ferner eine zusammengesetzte vertrauenswürdige Ausführungsumgebung einrichten, welche die erste vertrauenswürdige Ausführungsumgebung, die zweite vertrauenswürdige Ausführungsumgebung und die vertrauenswürdige Kommunikationsverbindung umfasst. In einem Beispiel kann die Verarbeitungslogik in einer Hilfs-Vorrichtung enthalten sein, die einen Prozessor, einen Vorrichtungs-Speicher und einen oder mehrere Hardware-Beschleuniger umfasst. Die Verarbeitungslogik kann eine vertrauenswürdige Rechenbasis (TCB), die einen Host-Prozessor (z. B. eine CPU) umfasst, so erweitern, dass sie den Prozessor und den einen oder die mehreren Hardware-Beschleuniger der Hilfs-Vorrichtung einschließt.
  • Bei Operation 530 kann die Verarbeitungslogik Daten der ersten vertrauenswürdigen Ausführungsumgebung über die vertrauenswürdige Kommunikationsverbindung empfangen. Die Daten können den Zustand des einen oder der mehreren Programme darstellen, die in der ersten vertrauenswürdigen Ausführungsumgebung (z. B. der primären TEE) ausgeführt werden. Die Daten können ausführbare Daten (z. B. CPU-Anweisungen), nicht ausführbare Daten (z. B. Informationen) oder eine Kombination davon umfassen. Die Daten können vor, während oder nach dem Empfang transformiert, aggregiert, ergänzt, verbessert, gefiltert, redigiert, korreliert oder auf andere Weise verarbeitet werden. In einem Beispiel können die empfangenen Daten Informationen über eine oder mehrere Datenstrukturen, Konfigurationen, Berechtigungsnachweise, Ereignisse, Funktionen, Merkmale, Einstellungen oder andere Aspekte der Programme oder eine Kombination davon enthalten.
  • Bei Operation 540 kann die Verarbeitungslogik das zweite Computerprogramm in der zweiten vertrauenswürdigen Ausführungsumgebung ausführen und das zweite Computerprogramm kann die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysieren. In einem Beispiel können das erste Computerprogramm und das zweite Computerprogramm von einem Cloud-Konsumenten in verschlüsselter Form bereitgestellt werden und für ein Host-Betriebssystem, das von einem Cloud-Anbieter gewartet, unterstützt oder betrieben wird, unzugänglich sein. In einem anderen Beispiel kann das erste Computerprogramm vom Cloud-Konsumenten bereitgestellt werden und das zweite Computerprogramm kann vom Cloud-Konsumenten bereitgestellt werden, kann aber vom Cloud-Konsumenten vor, während oder nach Beginn der Ausführung in der zweiten vertrauenswürdigen Ausführungsumgebung verifiziert werden (z. B. Bescheinigung zwischen Konsument und Anbieter). Die Verarbeitungslogik kann auf Daten des ersten Computerprogramms zugreifen, die in der zweiten vertrauenswürdigen Ausführungsumgebung gespeichert sind (z. B. die empfangenen Daten), und erkennen, ob das erste Computerprogramm beeinträchtigt ist oder nicht. Die Verarbeitungslogik kann einen Hinweis darauf geben, dass das erste Computerprogramm, das in der ersten vertrauenswürdigen Ausführungsumgebung ausgeführt wird, beeinträchtigt ist. Als Reaktion auf die Ausführung der oben unter Bezugnahme auf Operation 540 beschriebenen Logik kann das Verfahren 500 wiederholt oder beendet werden.
  • 6 zeigt eine Beispielmaschine eines Computersystems 600, in dem ein Befehlssatz ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hier erörterten Methoden durchzuführen. In einigen Ausführungsformen kann das Computersystem 600 eine Computer-Vorrichtung sein, die einen Prozessor mit einem Cache-Controller, einen Speicher-Controller oder eine Kombination davon enthält. In alternativen Ausführungsformen kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet, einem Extranet und/oder dem Internet verbunden (z. B. vernetzt) sein. Die Maschine kann in der Funktion eines Servers oder eines Client-Rechners in einer Client-Server-Netzwerkumgebung, als Peer-Maschine in einer Peer-to-Peer- (oder verteilten) Netzwerkumgebung oder als Server oder Client-Maschine in einer Cloud-Rechen-Infrastruktur oder -Umgebung arbeiten.
  • Bei der Maschine kann es sich um einen Personal Computer (PC), einen Tablet-PC, eine Set-Top-Box (STB), einen Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Appliance, einen Server, einen Netzwerk-Router, einen Switch oder eine Bridge oder jede andere Maschine handeln, die in der Lage ist, einen Befehlssatz (sequentiell oder anderweitig) auszuführen, welche die von dieser Maschine auszuführenden Aktionen spezifizieren. Auch wenn eine einzelne Maschine abgebildet ist, umfasst der Begriff „Maschine“ auch eine beliebige Sammlung von Maschinen, die einzeln oder gemeinsam einen Befehlssatz (oder mehrere Befehlssätze) ausführen, um eine oder mehrere der hier erörterten Methoden durchzuführen.
  • Das Beispiel-Computersystem 600 umfasst eine Verarbeitungs-Vorrichtung 602 (z. B. Prozessor 122), einen Hauptspeicher 604 (z. B. Festwertspeicher (ROM, Engl. „read-only memory“), Flash-Speicher, dynamischer Direktzugriffsspeicher (DRAM) wie synchroner DRAM (SDRAM) usw.), einen statischen Speicher 606 (z. B. Flash-Speicher, statischer Direktzugriffsspeicher (SRAM) usw.) und ein Datenspeichersystem 618, die über einen Bus 630 miteinander kommunizieren.
  • Die Verarbeitungs-Vorrichtung 602 ist eine oder mehrere Allzweck-Verarbeitungs-Vorrichtungen wie ein Mikroprozessor, eine Zentraleinheit oder ähnliches. Insbesondere kann die Verarbeitungs-Vorrichtung ein CISC-Mikroprozessor (De. "komplexe Befehlssatzberechnung, Engl. „complex instruction set computing“), ein RISC-Mikroprozessor (De. "reduzierte Befehlssatzberechnung, Engl. „reduced instruction set computing“), ein VLIW-Mikroprozessor (De. „sehr langes Befehlswort“, Engl. „very long instruction word“) oder ein Prozessor sein, der andere Befehlssätze implementiert, oder ein Prozessor, der eine Kombination von Befehlssätzen implementiert. Bei der Verarbeitungs-Vorrichtung 602 kann es sich auch um eine oder mehrere spezielle Verarbeitungs-Vorrichtungen handeln, wie z. B. eine anwendungsspezifische integrierte Schaltung (ASIC), ein Field Programmable Gate Array (FPGA), einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor oder Ähnliches. Die Verarbeitungs-Vorrichtung 602 ist so konfiguriert, dass sie Befehle 626 zur Durchführung der hier besprochenen Operationen und Schritte ausführt. Das Computersystem 600 kann außerdem eine Netzwerkschnittstellen-Vorrichtung 608 zur Kommunikation über das Netzwerk 620 enthalten.
  • Das Datenspeichersystem 618 kann ein maschinenlesbares Speichermedium 624 (auch bekannt als nichttransitorisches computerlesbares Medium) enthalten, auf dem ein oder mehrere Befehlssätze 626 oder Software gespeichert sind, die eine oder mehrere der hier beschriebenen Methoden oder Funktionen verkörpern. Die Befehle 626 können sich auch vollständig oder zumindest teilweise im Hauptspeicher 604 und/oder in der Verarbeitungs-Vorrichtung 602 befinden, während sie von dem Computersystem 600 ausgeführt werden, wobei der Hauptspeicher 604 und die Verarbeitungs-Vorrichtung 602 ebenfalls maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Speichermedium 624, das Datenspeichersystem 618 und/oder der Hauptspeicher 604 können dem Speicher 124A von 1 entsprechen.
  • In einer Ausführungsform enthalten die Befehle 626 Anweisungen zur Implementierung von Funktionen, welche der Erweiterungskomponente 220 der vertrauenswürdigen Rechenbasis von 2 entsprechen. Während das maschinenlesbare Speichermedium 624 in einem Ausführungsbeispiel als einzelnes Medium dargestellt ist, sollte der Begriff „nicht-transitorisches maschinenlesbares Speichermedium“ so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien umfasst, die den einen oder mehrere Sätze von Anweisungen speichern. Der Begriff „maschinenlesbares Speichermedium“ soll auch jedes Medium umfassen, das in der Lage ist, einen Befehlssatz zur Ausführung durch die Maschine zu speichern oder zu kodieren, und das die Maschine veranlasst, eine oder mehrere der Methoden der vorliegenden Offenbarung durchzuführen. Der Begriff „maschinenlesbares Speichermedium“ umfasst dementsprechend Festkörperspeicher, optische Medien und magnetische Medien, ist aber nicht darauf beschränkt.
  • Einige Teile der vorangehenden detaillierten Beschreibungen wurden in Form von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen werden von Fachleuten der Datenverarbeitung verwendet, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten zu vermitteln. Ein Algorithmus wird hier und im Allgemeinen als eine in sich konsistente Folge von Operationen verstanden, die zu einem gewünschten Ergebnis führt. Bei den Operationen handelt es sich um solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
  • Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen in Verbindung gebracht werden müssen und lediglich praktische Bezeichnungen für diese Größen sind. Die vorliegende Offenlegung kann sich auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computer-Vorrichtung beziehen, das Daten, die als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt werden, manipuliert und in andere Daten umwandelt, die in ähnlicher Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Informationsspeichersystemen dargestellt werden.
  • Die vorliegende Offenbarung bezieht sich auch auf eine Vorrichtung zur Durchführung der hier beschriebenen Operationen. Diese Vorrichtung kann speziell für die beabsichtigten Zwecke konstruiert sein, oder sie kann einen Allzweckcomputer umfassen, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, wie z. B., aber nicht beschränkt auf, jede Art von Diskette, einschließlich Disketten, optische Disketten, CD-ROMs und magnetisch-optische Disketten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jede Art von Medien, die zur Speicherung elektronischer Anweisungen geeignet sind und jeweils mit einem Computersystembus verbunden sind.
  • Die hier vorgestellten Algorithmen und Anzeigen sind nicht von Natur aus an einen bestimmten Computer oder eine andere Vorrichtung gebunden. Verschiedene Allzwecksysteme können mit Programmen in Übereinstimmung mit den hier dargelegten Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, eine speziellere Vorrichtung zur Durchführung der Methode zu konstruieren. Die Struktur für eine Vielzahl dieser Systeme wird in der folgenden Beschreibung dargestellt. Darüber hinaus wird die vorliegende Offenbarung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es versteht sich von selbst, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der Offenbarung, wie sie hier beschrieben sind, umzusetzen.
  • Die vorliegende Offenbarung kann als Computerprogrammprodukt oder Software bereitgestellt werden, die ein maschinenlesbares Medium mit darauf gespeicherten Anweisungen umfassen kann, die zur Programmierung eines Computersystems (oder anderer elektronischer Vorrichtungen) zur Durchführung eines Verfahrens gemäß der vorliegenden Offenbarung verwendet werden können. Ein maschinenlesbares Medium umfasst jeden Mechanismus zum Speichern von Informationen in einer Form, die von einer Maschine (z. B. einem Computer) gelesen werden kann. In einigen Ausführungsformen umfasst ein maschinenlesbares (z. B. nicht transitorisches, computerlesbares) Medium ein maschinenlesbares (z. B. computerlesbares) Speichermedium wie einen Festwertspeicher („ROM“), einen Direktzugriffsspeicher („RAM“), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speicherkomponenten usw.
  • In der vorstehenden Beschreibung wurden die Ausführungsformen der Offenbarung unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben. Es ist offensichtlich, dass verschiedene Modifikationen daran vorgenommen werden können, ohne vom breiteren Kern und Umfang der Ausführungsformen der Offenbarung, wie in den folgenden Ansprüchen dargelegt, abzuweichen. Die Beschreibung und die Zeichnungen sind dementsprechend eher in einem illustrativen als in einem einschränkenden Sinne zu verstehen.
  • Es versteht sich, dass die oben beschriebenen Aspekte und Ausführungsformen nur beispielhaft sind und dass im Rahmen der Ansprüche Änderungen im Detail vorgenommen werden können.
  • Jede Vorrichtung, Verfahren und Merkmal, das in der Beschreibung und (gegebenenfalls) in den Ansprüchen und Zeichnungen offenbart wird, kann unabhängig oder in jeder geeigneten Kombination bereitgestellt werden.
  • Die in den Ansprüchen enthaltenen Bezugszahlen dienen nur der Veranschaulichung und haben keine einschränkende Wirkung auf den Umfang der Ansprüche.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63321410 [0001]

Claims (20)

  1. System, das Folgendes umfasst: einen Vorrichtungs-Speicher; einen Prozessor, der kommunikationsfähig mit dem Vorrichtungs-Speicher verbunden ist, wobei der Prozessor Operationen durchführt, die Folgendes umfassen: Feststellung, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung einen Speicher der Host-Vorrichtung umfasst und ein erstes Computerprogramm ausführt; Einrichtung einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung, wobei die zweite vertrauenswürdige Ausführungsumgebung den Vorrichtungs-Speicher umfasst; Empfang von Daten der ersten vertrauenswürdigen Ausführungsumgebung unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführung eines zweiten Computerprogramms in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  2. System nach Anspruch 1, wobei die Host-Vorrichtung ein Host-Betriebssystem umfasst, das Rechenressourcen der Host-Vorrichtung verwaltet, und wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung jeweils Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  3. System nach Anspruch 1 oder 2, wobei die Host-Vorrichtung eine Zentraleinheit (CPU) und eine Datenverarbeitungseinheit (DPU) umfasst, wobei die CPU das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt und wobei die DPU den Prozessor und den Vorrichtungs-Speicher umfasst und das zweite Computerprogramm ausführt, um die Ausführung des ersten Computerprogramms zu überwachen.
  4. System nach Anspruch 3, wobei die CPU die erste vertrauenswürdige Ausführungsumgebung und die DPU die zweite vertrauenswürdige Ausführungsumgebung einrichtet.
  5. System nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner Folgendes umfassen: Zugriff durch den Prozessor auf Daten des ersten Computerprogramms, das in der zweiten vertrauenswürdigen Ausführungsumgebung gespeichert ist; Erkennung durch den Prozessor, dass das erste Computerprogramm beeinträchtigt ist; und Bereitstellung einer Anzeige durch den Prozessor, dass das erste Computerprogramm, das in der ersten vertrauenswürdigen Ausführungsumgebung ausgeführt wird, beeinträchtigt ist.
  6. System nach einem der vorhergehenden Ansprüche, das ferner eine Hilfs-Vorrichtung umfasst, die den Prozessor, den Vorrichtungs-Speicher und einen oder mehrere Hardware-Beschleuniger umfasst, wobei die Operationen ferner die Erweiterung einer vertrauenswürdigen Rechenbasis (TCB) umfassen, die einen Host-Prozessor umfasst, um ferner den Prozessor und den einen oder die mehreren Hardware-Beschleuniger zu umfassen.
  7. System nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner das Einrichten einer zusammengesetzten vertrauenswürdigen Ausführungsumgebung umfassen, welche die erste vertrauenswürdige Ausführungsumgebung, die einen Host-Prozessor und den Speicher der Host-Vorrichtung umfasst, und ferner die zweite vertrauenswürdige Ausführungsumgebung umfasst, die den Prozessor und den Vorrichtungs-Speicher umfasst.
  8. System nach einem der vorhergehenden Ansprüche, wobei das erste Computerprogramm und das zweite Computerprogramm von einem Cloud-Konsumenten in einer verschlüsselten Form bereitgestellt werden und für ein von einem Cloud-Anbieter betriebenes Host-Betriebssystem unzugänglich sind.
  9. Verfahren, das Folgendes umfasst: Feststellen, durch einen Hilfs-Prozessor, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung ein erstes Computerprogramm ausführt und einen primären Prozessor und einen Host-Speicher der Host-Vorrichtung umfasst; Einrichten einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung durch den Hilfs-Prozessor, wobei die zweite vertrauenswürdige Ausführungsumgebung den Hilfs-Prozessor umfasst; Empfangen von Daten der ersten vertrauenswürdigen Ausführungsumgebung durch den Hilfs-Prozessor unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführen eines zweiten Computerprogramms durch den Hilfs-Prozessor in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  10. Verfahren nach Anspruch 9, wobei die Host-Vorrichtung ein Host-Betriebssystem umfasst, das Rechenressourcen der Host-Vorrichtung verwaltet, und wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung jeweils Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  11. Verfahren nach Anspruch 9 oder 10, wobei der Hauptprozessor eine Zentraleinheit (CPU) umfasst, die das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt, und wobei der Hilfs-Prozessor eine Datenverarbeitungseinheit (DPU) umfasst, die das zweite Computerprogramm ausführt und die Ausführung des ersten Programms überwacht.
  12. Verfahren nach Anspruch 11, wobei die CPU die erste vertrauenswürdige Ausführungsumgebung und die DPU die zweite vertrauenswürdige Ausführungsumgebung einrichtet.
  13. Verfahren nach einem der Ansprüche 9 bis 12, wobei das erste Computerprogramm und das zweite Computerprogramm von einer Benutzer-Vorrichtung eines Cloud-Konsumenten in einer verschlüsselten Form bereitgestellt werden und für ein von einem Cloud-Anbieter bereitgestelltes Host-Betriebssystem unzugänglich sind.
  14. Verfahren nach einem der Ansprüche 9 bis 13, das ferner umfasst: Zugreifen auf Daten des ersten Computerprogramms, die in der zweiten vertrauenswürdigen Ausführungsumgebung gespeichert sind, durch den Hilfs-Prozessor; Erkennen, durch den Hilfs-Prozessor, dass das erste Computerprogramm beeinträchtigt ist; und Bereitstellen einer Anzeige durch den Hilfs-Prozessor, dass das erste Computerprogramm, das in der ersten vertrauenswürdigen Ausführungsumgebung ausgeführt wird, beeinträchtigt ist.
  15. Verfahren nach Anspruch 14, das ferner die Erweiterung einer vertrauenswürdigen Rechenbasis (TCB) umfasst, die den Hauptprozessor und den Host-Speicher umfasst, um ferner den Hilfs-Prozessor und die vertrauenswürdige Kommunikationsverbindung zu umfassen.
  16. Verfahren nach Anspruch 14, das ferner das Einrichten einer zusammengesetzten vertrauenswürdigen Ausführungsumgebung umfasst, welche die erste vertrauenswürdige Ausführungsumgebung mit dem Hauptprozessor und die zweite vertrauenswürdige Ausführungsumgebung mit dem Hilfs-Prozessor umfasst.
  17. Nicht-transitorisches, maschinenlesbares Speichermedium, das Befehle speichert, die, wenn sie ausgeführt werden, einen Hilfs-Prozessor veranlassen, Operationen durchzufiihren, die Folgendes umfassen: Feststellung, dass eine Host-Vorrichtung eine erste vertrauenswürdige Ausführungsumgebung umfasst, wobei die erste vertrauenswürdige Ausführungsumgebung einen Hauptprozessor und einen Host-Speicher umfasst und ein erstes Computerprogramm ausführt; Einrichtung einer vertrauenswürdigen Kommunikationsverbindung zwischen der ersten vertrauenswürdigen Ausführungsumgebung und einer zweiten vertrauenswürdigen Ausführungsumgebung, wobei die zweite vertrauenswürdige Ausführungsumgebung den Hilfs-Prozessor umfasst; Empfang von Daten der ersten vertrauenswürdigen Ausführungsumgebung unter Verwendung der vertrauenswürdigen Kommunikationsverbindung; und Ausführung eines zweiten Computerprogramms in der zweiten vertrauenswürdigen Ausführungsumgebung, wobei das zweite Computerprogramm die Daten der ersten vertrauenswürdigen Ausführungsumgebung analysiert.
  18. Nicht-transitorisches, maschinenlesbares Speichermedium nach Anspruch 17, wobei die Host-Vorrichtung ein Host-Betriebssystem umfasst, das Rechenressourcen der Host-Vorrichtung verwaltet, und wobei die erste vertrauenswürdige Ausführungsumgebung und die zweite vertrauenswürdige Ausführungsumgebung Daten umfassen, die verschlüsselt und für das Host-Betriebssystem unzugänglich sind.
  19. Nicht-transitorisches, maschinenlesbares Speichermedium nach Anspruch 17 oder 18, wobei der Hauptprozessor eine Zentraleinheit (CPU) umfasst, die das erste Computerprogramm in der ersten vertrauenswürdigen Ausführungsumgebung ausführt, und wobei der Hilfs-Prozessor eine Datenverarbeitungseinheit (DPU) umfasst, die das zweite Computerprogramm ausführt und die Ausführung des ersten Programms überwacht.
  20. Nicht-transitorisches, maschinenlesbare Speichermedium nach Anspruch 19, wobei die CPU die erste vertrauenswürdige Ausführungsumgebung und die DPU die zweite vertrauenswürdige Ausführungsumgebung einrichtet.
DE102023202297.4A 2022-03-18 2023-03-14 Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten Pending DE102023202297A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263321410P 2022-03-18 2022-03-18
US63/321,410 2022-03-18
US17/709,815 2022-03-31
US17/709,815 US12032680B2 (en) 2022-03-18 2022-03-31 Preserving confidentiality of tenants in cloud environment when deploying security services

Publications (1)

Publication Number Publication Date
DE102023202297A1 true DE102023202297A1 (de) 2023-09-21

Family

ID=87849429

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023202297.4A Pending DE102023202297A1 (de) 2022-03-18 2023-03-14 Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten

Country Status (2)

Country Link
US (1) US12032680B2 (de)
DE (1) DE102023202297A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472588A (zh) * 2023-12-27 2024-01-30 山东方寸微电子科技有限公司 一种用于网络密码设备的混合式软件架构及密码设备

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240137382A1 (en) * 2021-07-16 2024-04-25 Wiz, Inc. Techniques for cybersecurity identity risk detection utilizing disk cloning and unified identity mapping
US20230030816A1 (en) * 2021-07-30 2023-02-02 Red Hat, Inc. Security broker for consumers of tee-protected services
US12081656B1 (en) 2021-12-27 2024-09-03 Wiz, Inc. Techniques for circumventing provider-imposed limitations in snapshot inspection of disks for cybersecurity
US11936785B1 (en) 2021-12-27 2024-03-19 Wiz, Inc. System and method for encrypted disk inspection utilizing disk cloning techniques
US12079328B1 (en) 2022-05-23 2024-09-03 Wiz, Inc. Techniques for inspecting running virtualizations for cybersecurity risks
US12061925B1 (en) 2022-05-26 2024-08-13 Wiz, Inc. Techniques for inspecting managed workloads deployed in a cloud computing environment
US20240039701A1 (en) * 2022-07-29 2024-02-01 Intel Corporation Confidential computing in heterogeneous compute environment including network-connected hardware accelerator

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788583B2 (en) * 2010-05-13 2014-07-22 International Business Machines Corporation Sharing form training result utilizing a social network
US10341345B1 (en) * 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
US9852052B2 (en) * 2016-03-31 2017-12-26 Intel Corporation Trusted execution of called function
KR20220119106A (ko) * 2019-12-20 2022-08-26 콘비다 와이어리스, 엘엘씨 끊김없는 에지 애플리케이션 핸드오버
CN112800431B (zh) * 2020-08-28 2023-09-29 支付宝(杭州)信息技术有限公司 超线程场景下安全进入可信执行环境的方法及装置
US20220014923A1 (en) * 2021-09-24 2022-01-13 Vesh Raj Sharma Banjade Connected device region identification
US20230106581A1 (en) * 2022-06-21 2023-04-06 Intel Corporation Confidential computing environment including devices connected to a network interface device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472588A (zh) * 2023-12-27 2024-01-30 山东方寸微电子科技有限公司 一种用于网络密码设备的混合式软件架构及密码设备
CN117472588B (zh) * 2023-12-27 2024-04-09 山东方寸微电子科技有限公司 一种用于网络密码设备的混合式软件架构及密码设备

Also Published As

Publication number Publication date
US20230297666A1 (en) 2023-09-21
US12032680B2 (en) 2024-07-09

Similar Documents

Publication Publication Date Title
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
US9989043B2 (en) System and method for processor-based security
DE102021122880A1 (de) Infrastrukturverarbeitungseinheit
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
US10025691B1 (en) Verification of complex software code using a modularized architecture
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE102021207514A1 (de) Disaggregiertes berechnen für distribuierte vertrauliche rechenumgebung
DE102019110309A1 (de) Integritätsschutz mit geringem overhead und hoher verfügbarkeit für vertrauensdomänen
DE112016005833T5 (de) Datenverarbeitungsgeräte
DE102018005180A1 (de) Flexible Bescheinigung von Containern
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
JP2017520959A (ja) 信頼実行環境を含むホストのアテステーション
EP3891633B1 (de) Sichere bereitstellung und bedienung eines virtuellen plattformsystems
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
CN109587106A (zh) 密码分区的云中的跨域安全性
WO2013061213A1 (en) Passive monitoring of virtual systems using extensible indexing
CN102609643A (zh) 一种对虚拟机作动态密码学保护与所需的密钥管理方法
DE102023107060A1 (de) Vertrauliches computing unter verwendung von multi-instanziieren von parallelprozessoren
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
EP3560174A1 (de) Erstellung von anwendungszulässigen listen für maschinen
US20230273808A1 (en) Confidential offloading of persistent storage operations in confidential computing environments
US20220129593A1 (en) Limited introspection for trusted execution environments

Legal Events

Date Code Title Description
R012 Request for examination validly filed