slider

Confidential Computing - Prof. Dr. Norbert Pohlmann

Confidential Computing

Confidential Computing - Verschlüsselung in der Cloud

Was ist Confidential Computing?


Confidential Computing
Heute werden in der Regel bei Cloud-Anwendungen die Daten während der Speicherung und des Transfers verschlüsselt. Bei der Speicherung sind z. B. verschlüsselte Datenbanken im Einsatz, beim Transfer werden z. B. TLS oder IPSec genutzt. Während der Verarbeitung von Anwendungen in einer Cloud-Infrastruktur liegen sowohl die Daten als auch der Code im Klartext vor und sind somit angreifbar.

Auf der Basis von Sicherheitsfunktionen in der CPU sorgt Confidential Computing dafür, dass Anwendungen mit Code und Daten in isolierter und verschlüsselter Form in sogenannte sichere Enklaven auf Cloud-Infrastrukturen verarbeitet werden. Aber auch die Echtheit der Daten und des Codes lassen sich aus der Ferne feststellen. Eine Realisierungsform von Enclaves sind zum Beispiel Docker-Container.

Mit Confidential Computing werden die Inhalte der Anwendung einer Enclave vor unbefugten Zugriff von Systemadministratoren und weiteren Personen, die prinzipiell Zugriff auf die Cloud-Infrastruktur haben, geschützt. Damit wird der Datenschutz durch Technik sicher und vertrauenswürdig umgesetzt. 

Herausforderung bei der Nutzung von Cloud-Diensten

Vertrauenswürdigkeit ist ein immer wichtiger Aspekt der modernen IT sowie der Digitalisierung. Das Vertrauen von Unternehmen in Cloud-Anwendungen ist heute jedoch noch eher gering, da die Angst davor besteht, dass Unbefugte Zugriffe auf vertrauliche Daten und den Code in der Cloud erlangen könnten. Der Code ist das Softwareprogramm, mit dem die Daten in der Anwendung verarbeitet werden.

Bei der Betrachtung moderner Software-Stack ist festzustellen, dass die Anwendungen meist in virtuellen Maschinen laufen, die häufig in Cloud-Infrastrukturen gehostet werden.

Im Rahmen dieser Konfigurationen werden die Daten während der Verarbeitung im Hauptspeicher nicht geschützt. Prinzipiell können sie somit zum Beispiel durch gezielte Angriffe – etwa solche, die Schwachstellen ausnutzen oder einen sogenannten Seitenkanal-Angriff – gezielt ausgelesen werden, da die Daten im Klartext verarbeitet werden.

Mit Confidential Computing besteht die Möglichkeit, diesen und anderen Angriffen effektiv entgegenzuwirken. Die Daten und der Code werden in einer sogenannten Trusted Execution Environment (TEE) geschützt verarbeitet, die eine sichere bzw. vertrauenswürdige Laufzeitumgebung für Anwendungen zur Verfügung stellt. Enclaves stellen dabei eine Realisierungsform von TEE dar. Die grundsätzliche Idee hierbei ist, die Angriffsfläche sehr stark zu reduzieren. Die Anzahl der erzeugbaren Enclaves kann beliebig groß sein, steht aber in Abhängigkeit zu der Performance der vorhandenen CPU. Enclave können auch miteinander kommunizieren, z. B. wenn eine Webserver-Enclave ein Datenbank-Enclave nutzt.

Confidential Computing - Trusted Execution Environment - Enclave
Abbildung: Trusted Execution Environment / Enclave © Copyright-Vermerk

In der Abbildung ist die prinzipielle Einbindung von Enclaves als TEEs dargestellt. Es ist zu erkennen, dass nur der nicht geschützte Teil der Anwendungen Zugriff auf die ihnen zugeordneten Enclaves mit dem geschützten Teil der Anwendung (Code und Daten) haben. Die Nutzerinteraktion erfolgt über die Anwendung außerhalb des TEEs. Es ist außerdem zu erkennen, dass die Enclaves untereinander stark isoliert sind und es keine ungewollten Kommunikationskanäle zwischen den Enclaves gibt. Um Confidential Computing umsetzen zu können, werden CPUs mit erweiterten Sicherheitsfunktionen benötig, die für die Sicherheit und Vertrauenswürdigkeit der Enclaves verantwortlich sind und umsetzen.

Confidential Computing auf dem Punkt

Confidential Computing ist ein wichtiger und zukunftsorientierter Aspekt in der Cyber-Sicherheit, der aus dem Bedarf der Interaktion zwischen verschiedenen IT-Umgebungen hervorgegangen ist. Mithilfe von Confidential Computing ist es möglich, remote die Daten und den Code einer Anwendung vertrauenswürdig im verschlüsselten Zustand als Enclaves auf einem fremden IT-System wie Cloud-Infrastrukturen sicher zu verarbeiten. Alle dafür notwendigen Sicherheitsfunktionen sind in der CPU implementiert.

Damit haben Hacker, Malware und Insider mit kriminellen Absichten keinen Einfluss mehr auf die IT-Sicherheit der Anwendung in der Cloud. Folglich muss dem Cloud-Provider nicht mehr vertraut werden, sondern nur noch der CPU mit ihren Sicherheitsfunktionen und dem eigenen Code in der Enclave.

Confidential Computing erfüllt zwei wesentliche Sicherheitsaspekte:

  • Zum einen wird der Stand der Technik in Bezug auf Datenschutzanforderungen bei der Nutzung von Cloud-Anwendungen automatisch erfüllt.
  • Zum anderen ist Confidential Computing Teil des Zero Trust-Prinzipes, bei dem das Sicherheitsparadigma lautet: „Vertraue nie, überprüfe immer.

Unterschiedliche Hersteller haben eigene Confidential Computing-Lösungen auf dem Markt gebracht: ARM mit TrustZone, Intel mit SGX (SoftwareGuard Extension) und der Intel Management Engine sowie AMD mit SP (Platform Secure Processor) und Secure Encrypted Virtual Machines. Intel SGX ist im Bereich Confidential Computing zurzeit die vorherrschende Lösung am Markt.

Intel SGX

Intel SGX wurde von Intel mit Mikroprozessoren der sechsten Generation im Jahre 2015 eingeführt. Intel SGX steht für Software Guard Extension und ist eine Erweiterung der x86 Architektur, die es erlaubt, sichere Enclaves zu erstellen und zu verwalten. Remote Attestation, Sealing, Runtime Speicher-Verschlüsselung und Isolierung gehören zu den Kernfunktionen von SGX.

Unter Einsatz von Enclaves besteht die Möglichkeit, Daten nicht nur während der Übertragung und der Speicherung zu schützen, sondern auch, während die Daten und der Code auf einer nicht-vertrauenswürdigen Remote Instanz einer Cloud-Infrastruktur ausgeführt werden. Problematisch bei einer untrusted Execution Environment, die nicht lokal zur Verfügung steht und oder auch nicht durch TEEs geschützt wird, ist die mangelnde Kontrolle über potenzielle Angriffe. Dies ist ein wichtiger Punkt, da es eine Vielzahl von Angriffsflächen gibt – zum Beispiel das Betriebssystem, den Hypervisior oder die virtuellen Maschinen. Das Ziel von SGX ist, den Bereich, auf dem Angriffe auf die Inhalte einer Enclave ausgeübt werden können, so klein wie möglich zu halten.

Confidential Computing - Angriffsfäche
Abbildung: Angriffsflächen mit und ohne Confidential Computing © Copyright-Vermerk

In der Abbildung werden die Angriffsfläche von normalen Software-Stacks ohne Confidential Computing parallel zu den Software-Stacks mit Confidential Computing dargestellt. Es ist zu erkennen, dass ohne Confidential Computing der gesamte Bereich zwischen einer App und der zu Grunde liegenden Hardware angegriffen werden kann.

Da die Software des Betriebssystems sowie für die Virtualisierung und Anwendungen sehr umfangreich ist und rein statisch gesehen sehr viele Softwarefehler vorhanden sind, können über die dadurch vorhandenen Softwareschwachstellen immer wieder erfolgreiche Angriffe umgesetzt werden. Siehe auch “Gute, gutartige, schlechte und bösartige Software

Dies wird mit der Verwendung von Confidential Computing verhindert, da die Anwendung direkt in einem Enclave mit der Unterstützung von Sicherheitsfunktionen in der CPU isoliert vom Rest der IT-Infrastruktur läuft und die Daten verschlüsselt sind. Damit wird die Angriffsfläche auf den Code und die Daten deutlich reduziert. Die Schwachstellen des Betriebssystems, der Virtualisierung und Anwendung haben keinen Einfluss auf den Inhalt der Enclave, weil alles verschlüsselt, isoliert und verifiziert wird.

Das bedeutet, Enclaves können weder durch Software- noch Hardware-Debugger analysiert werden. In dem zugewiesenen Arbeitsspeicher einer Enclave werden nur verschlüsselte Daten abgelegt. Der Schlüssel wird regelmäßig neu generiert und innerhalb der CPU sicher gespeichert. Auf die isolierten Daten kann nur der Code zugreifen, der in der Enclave erhalten ist und über Attestation verifiziert wird. Selbst privilegierte Prozesse haben während der Verarbeitung keinen Zugriff auf die Daten.

Bei der Umsetzung der Confidential Computing IT-Sicherheitsarchitektur muss lediglich noch dem eigenen Code in der Enclave (den Programmierern oder der Software-Hersteller) und der CPU (den Hersteller Intel) getraut werden. Durch die redundante Nutzung verschiedener Cloud-Anbieter ist es zusätzlich auch möglich, die Verfügbarkeit eigenständig zu managen.

Die Confidential Computing CPU

Die CPU stellt die Basis für die Umsetzung von Enclaves der Confidential Computing Idee dar. In der Intel-CPU ist ein Hardware-Sicherheitsmodul und weitere IT-Sicherheitsfunktionen implementiert, auf dessen Basis sicher und vertrauenswürdig Enclaves umgesetzt wird. Die Sicherheitsfunktion der CPU lässt sich grob in drei Bereiche aufteilen:

  • Attestation gegenüber dritten Parteien (Integrität, Vertrauenswürdigkeit)
  • Verschlüsseln der Daten (Vertraulichkeit)
  • Beobachten/Messen der Enclaves (Vertrauenswürdigkeit)

Weitere Sicherheitsfunktionen sind Key-, Memory- und Cache-Management. Thread Control Structure und Handling Hardware Exception gehören ebenfalls dazu.

Key Management und Verschlüsselung bei SGX

Bei der Herstellung einer CPU werden von Intel im Produktionsprozess zwei sogenannte Device Root Keys erstellt. Diese haben verschiedene Funktionen und werden direkt in der Intel-CPU gespeichert, um damit Kryptografie-basierte Sicherheitsfunktionen umsetzen zu können

Root Provisioning Key (RPK)

Der Root Provisioning Key wird von Intel nach dem Zufallsprinzip generiert. Den öffentlichen Schlüssel speichert Intel in einer Datenbank, damit dieser zur Verifizierung von SGX-Prozessoren und -Zertifikaten im Attestationsprozess verwendet werden kann. Bei der Remote Attestation kommt der RPK zum Einsatz, um mit dem geheimen Schlüssel einen Report und die Antwort auf die Challenge zu signieren.

Root Sealing Key (RSK)

Der Root Sealing Key wird im Produktionsprozess bei Intel nach dem Zufallsprinzip in der CPU generiert und abgespeichert. Dabei wird für jede CPU ein einzigartiger Schlüssel generiert. Er ist somit vertraulich. Die meisten Schlüssel, die von Intel SGX verwendet werden, sind vom RSK auf der Basis einer Schlüsselhierarchie abgeleitet, daher kann keine andere Instanz diesen kennen. Aus diesem Grund ist es wichtig, dass der jeweilige Schlüssel vertraulich behandelt wird und der CPU zur Verfügung steht. Hier muss Intel vertraut werden, dass der RSK nicht anderweitig verwendet wird, denn es ist schwer nachprüfbar, ob die generierten Schlüssel wirklich unabhängig und einzigartig sind. Wenn Intel einen guten Zufallsgenerator verwendet und die Schlüssellängen dem Stand der Technik genügen, stellt dieser Sicherheitsaspekt jedoch kein Risiko dar.

Verschlüsselung bei SGX

Intel SGX ist so designed, dass nur die CPU selbst als vertrauenswürdig einstuft ist, weil diese die Basis für die Sicherheit der Enclave darstellt. Für die Hardware-seitige Zugriffskontrolle verfügt die CPU über eigens entwickelte Befehle. Diese CPU-Befehle verhindern das ungewollte Laden von Daten oder Code. Diese liegen in eigens dafür gewidmeten DRAM-Bereichen, die von der CPU verschlüsselt werden. Nachdem eine Enclave einmal gestartet wurde, läuft diese Hardware-seitig in einem besonderen Modus, der von allen anderen Prozessoren stark isoliert ist.

Attestation bei SGX

Ein wichtiges Konzept von Confidential Computing ist die Attestation. Allgemein beschreibt Attestation den Prozess, mit dem sich die Vertrauenswürdigkeit einer (fremden)IT-Infrastruktur feststellen lässt.

Im Kontext von Confidential Computing heißt dies, dass mit Attestation die Vertrauenswürdigkeit einer Enclaves bescheinigt werden kann, wenn eine Enclave auf einer fremden IT-Infrastruktur verarbeitet wird oder zwei Enclaves miteinander in diese kommunizieren. Es ist so möglich, festzustellen, ob die entsprechenden Daten und der Code in der Enclave nicht manipuliert und damit original sind.

Im Folgenden werden 2 Varianten der Attestation beschrieben. Zum einen die Local Attestation und zum anderen die Remote Attestation.

Local Attestation

Local Attestation beschreibt den Prozess, wenn zwei Enclaves auf derselben Cloud-Infrastruktur laufen. Ziel ist es, ein Vertrauensverhältnis zwischen zwei lokalen Enclaves aufzubauen. Die zu prüfende Enclave erstellt dabei einen Report und signiert diesen mit ihrem privaten Schlüssel, der in der CPU gespeichert ist.

Die andere Enclave kann nun mit dem passenden öffentlichen Schlüssel der prüfenden Enclave diese Signatur verifizieren. Zwischen den Enclaves ist bereits eine sichere Verbindung z.B. basierend auf dem Diffie-Hellman-Verfahren hergestellt worden.

Der Report beinhaltet den Hashwert des Codes und der Daten in der Enclave, der Konfiguration der Enclave sowie von weiteren Attributen.

Remote Attestation

Mit Remote Attestation kann die Vertrauenswürdigkeit eines sich auf einer fremden IT-Infrastruktur befindlichen Enclaves festgestellt werden, z. B. einer in der Cloud laufenden Enclaves, bevor mit dieser Daten und Code verarbeitet werden. D.h. es wird überprüft, ob die richtige Anwendung auf der richtigen Cloud-Infrastruktur läuft.

Die benötigten Schlüssel für die Attestation werden bei der CPU-Herstellung von Intel generiert. Für die Remote Attestation ist es zum einen möglich, den Intel-Attestierungsdienst zu verwenden und zum anderen einen eigenen Attestierungsdienst aufzubauen sowie zu verwenden.

Confidential Computing - Remote Attestation
Abbildung: Remote Attestation bei Confidential Computing © Copyright-Vermerk

In der Abbildung ist der Ablauf von Remote Attestation bei Confidential Computing schemenhaft dargestellt.

Im ersten Schritt (1) wird von der prüfenden Instanz eine Challenge an die Anwendung gesendet, um zu überprüfen, ob die richtige Anwendungs-Enclave auf der richtigen IT-Infrastruktur läuft.

Die Anwendung gibt die Challenge an den Anwendungs-Enclave weiter (2). Die Challenge dient dem Zweck zu beweisen, dass der betreffende Anwendungs-Enclave nicht manipuliert wurde (Daten und Code). Außerdem wird von der Anwendungs-Enclave ein Report erstellt, mit dem der Code, die Daten, die Konfiguration und weitere Attribute der Anwendungs-Enclave überprüft werden kann.

In Schritt (3) sendet die Anwendungs-Enclave die Antwort der Challenge und den Report an die Anwendung. Diese schickt die Informationen an die sogenannte Quoting Enclave. Dies ist ein von Intel bereitgestellte Enclave die als vertrauenswürdiger Zwischenhändler fungiert. Der vom Anwendungs-Enclave erstellten Report und die Lösung der Challenge wird nun zur Quoting Enclave gesendet (4) und dort mit dem geheimen Teil des Root Provisioning Keys, der sicher in der CPU gespeichert ist, signiert. Das Ergebnis ist nun der sogenannte Quote, ein Zertifikat. Der Quote wird über die Anwendung (5) zur Verifikation an die zu überprüfende Instanz gesendet (6). Die überprüfende Instanz verwendet den von Intel bereitgestellten Attestierungsdienst oder einen selbst gehosteten, um die Quote-Signatur der Quoting Enclave zu verifizieren. Der Attestierungsdienst hat Zugriff auf die Datenbank, in der alle öffentlichen Schlüssel der Root Provisioning Key aller Intel-CPUs gespeichert sind. Dies wird dadurch ermöglicht, da Intel bei der Produktion den Key generiert und den öffentlichen Teil in einer Datenbank abspeichert.

Anschließend prüft die überprüfende Instanz die Integrität des Reports und stellt sicher, dass die erwartete Antwort auf die Challenge enthalten ist.  

SGX Hard- und Software

Damit Confidential Computing in Betrieb genommen werden kann, müssen verschiedene Parteien innerhalb der IT-Infrastruktur zusammenarbeiten. Die User Runtime stellt in diesem Kontext das Bindeglied zwischen der eigentlichen Hardware und den Enclaven dar. Die User Runtime umfasst den erweiterten Befehlssatz, der unbedingt vonnöten ist, denn dadurch kann die IT-Infrastruktur angesprochen werden. Die IT-Infrastruktur beinhaltet EPC (Enclave Page Cache) sowie EPCM (Enclave Page Cache Map), beides Ausschnitte aus dem Arbeitsspeicher. Die Abbildung 4 zeigt den Zusammenhang zwischen Middleware, Soft- und Hardware.

Confidential Computing - SGX Hardware / Software
Abbildung: SGX Hardware / Software © Copyright-Vermerk


Zusammenfassung Confidential Computing

Sobald sich ein Unternehmen entscheidet, seine Daten in der Cloud zu verarbeiten, sollte die Sicherheit und Vertrauenswürdigkeit der Daten und des Codes bei der Verarbeitung von Anfang an mitberücksichtigt werden. Bei der IT-Sicherheitsarchitektur von Confidential Computing werden auf der Basis von Sicherheitsfunktionen in der CPU Daten und Code einer Anwendung in einer Enclave verschlüsselt und mit Attestation die Vertrauenswürdigkeit einer Enclave überprüft. Dadurch wird sichergestellt, dass nur gewünschten Daten genutzt und der richtige Code im Enclave ausgeführt wird.

Auch die Verfügbarkeit von Intel SGX und anderen Lösungen am Markt ist ein Argument für Confidential Computing. Fast jeder Cloud-Anbieter hat Confidential Computing auf Basis von Intel SGX in seinem Produktportfolio, sodass es hier eine große Auswahl gibt. Außerdem haben die Performance Tests gezeigt, dass zwar ein Teil der vorhandenen Performance verloren geht, was jedoch vertretbar ist in Bezug auf die erhöhte IT-Sicherheit und den Datenschutz.

Confidential Computing hilft die Sicherheit und Vertrauenswürdigkeit von Cloud-Diensteanbieter deutlich zu erhöhen und den Datenschutzanforderungen zu genügen.

Confidential Computing - Verschlüsselung in der Cloud
Abbildung: Confidential Computing – © Copyright-Vermerk




Weitere Informationen zum Begriff “Confidential Computing”


Computing – Intel TDX: Geschützt in der Public Cloud

Confidential Computing – IT-Sicherheit und Datenschutz in der Cloud

Ohne Vertrauen geht es nicht

Angriffe auf die Künstliche Intelligenz

Doubtless Identification and Privacy Pre-serving of User in Cloud Systems

Integrity Check of Remote Computer Systems



Lehrbuch Cyber-Sicherheit

Übungsaufgaben und Ergebnisse zum Lehrbuch Cyber-Sicherheit

Bücher im Bereich Cyber-Sicherheit und IT-Sicherheit zum kostenlosen Download



Vorlesungen zum Lehrbuch Cyber-Sicherheit


Zurück zur Übersicht




Summary
Confidential Computing
Article Name
Confidential Computing
Description
Bei Confidential Computing wird auf der Basis von Sicherheitsfunktionen in der CPU Daten und Code einer Anwendung isoliert und verschlüsselt in einer Enclave verarbeitet und mit Attestation die Vertrauenswürdigkeit überprüft.
Author
Publisher Name
Institut für Internet-Sicherheit – if(is)
Publisher Logo
Confidential Computing - Verschlüsselung in der Cloud
Confidential Computing Prof. Dr. Norbert Pohlmann - Cyber-Sicherheitsexperten