Was ist Confidential Computing?

Verfahren, bei dem Daten während der Verarbeitung in einer hardwaregeschützten TEE behandelt werden, sodass selbst Betriebssystem, Hypervisor und die Administratoren des Cloud-Anbieters sie nicht lesen können. Zusätzlich zur Verschlüsselung gespeicherter und übertragener Daten schützt es Daten während der Verwendung. Es gibt VM-basierte TEEs, die eine ganze virtuelle Maschine schützen (etwa AMD SEV-SNP, Intel TDX und Arm CCA), und Enklaven, die einen Teil einer Anwendung schützen (etwa Intel SGX). Geheime Daten und Schlüssel werden erst übergeben, nachdem der Zustand im Inneren per Remote Attestation geprüft wurde.

Japanische Bezeichnung: 機密コンピューティング

„Confidential Computing“ kommt in 4 Übungsfragen aus 2 Themen vor, z. B. Aktuelle Entwicklungen der Hardwaresicherheit, Hardwaresicherheit.

Fachgebiet: Aktuelle Entwicklungen der Hardwaresicherheit

Schutz von Daten während der Verwendung

Daten lassen sich auf der Festplatte durch Speicherverschlüsselung und bei der Übertragung über ein Netzwerk durch TLS oder Ähnliches schützen. Für Berechnungen werden sie jedoch im Speicher entschlüsselt, sodass man bisher dem Betriebssystem, dem Hypervisor und dem Cloud-Anbieter, der sie verwaltet, vertrauen musste. Beim Confidential Computing verschlüsselt die CPU den Speicher der TEE mit Schlüsseln, die nur in der CPU existieren, und weist Zugriffe von Software außerhalb der TEE ab. So können Nutzer vertrauliche Daten verarbeiten, ohne der Cloud-Infrastruktur vollständig zu vertrauen.

VM-basierte TEEs und Enklaven

Eine VM-basierte TEE schützt den Speicher einer ganzen virtuellen Maschine, sodass vorhandene Betriebssysteme und Anwendungen nahezu unverändert laufen; dafür gelangt ein großer Softwareumfang einschließlich des Gastbetriebssystems in die Trusted Computing Base (TCB). Eine Enklave führt nur den geheimnisverarbeitenden Teil in einem geschützten Bereich aus, sodass die TCB klein bleibt, doch die Anwendung muss aufgeteilt und neu geschrieben werden. Bei VM-basierten TEEs ist neben der Verschlüsselung auch ein Integritätsschutz wichtig, der verhindert, dass der Hypervisor Seiten neu zuordnet oder alte Inhalte zurückschreibt. Mit Stand Mitte der 2020er-Jahre werden auch Lösungen angeboten, die die TEE einer CPU mit einer GPU kombinieren, um KI-Verarbeitung per Confidential Computing auszuführen.

Grenzen und Vorbehalte

Confidential Computing schützt vor allem vor Lese- und Schreibzugriffen von Software und Administratoren auf den Speicher. Ein Seitenkanalangriff über Caches oder spekulative Ausführung, Dienstverweigerung durch einen Hypervisor, der Ressourcen vorenthält (Verfügbarkeit), sowie fortgeschrittene physische Angriffe auf den Speicherbus im Betrieb liegen je nach Verfahren außerhalb des Schutzes. Hat zudem die Software in der TEE eine Schwachstelle, können darüber Geheimnisse abfließen. Wichtig ist es daher, Zustand und Firmwareversion per Attestation zu prüfen, die TCB klein zu halten und Microcode- und andere Updates fortlaufend einzuspielen.

Jetzt üben: Fragen zu Confidential Computing

Was ist der Zweck der Funktionen, mit denen die CPU den Speicher virtueller Maschinen verschlüsselt (AMD SEV, Intel TDX usw.) beim „Confidential Computing“ in der Cloud?

  1. AVirtuelle Maschinen stets doppelt so schnell zu machen
  2. BDie Speicherkapazität virtueller Maschinen zu erhöhen
  3. CDie Daten in virtuellen Maschinen auch für den Hypervisor und die Administratoren des Cloud-Anbieters unlesbar zu machen
Antwort und Erläuterung anzeigen

Antwort: C. Die Daten in virtuellen Maschinen auch für den Hypervisor und die Administratoren des Cloud-Anbieters unlesbar zu machen

Normalerweise kann der Hypervisor, der virtuelle Maschinen ausführt, deren Speicher frei lesen und beschreiben, sodass Nutzer dem Cloud-Anbieter vertrauen müssen. Bei Funktionen zur Speicherverschlüsselung wird der Schlüssel jeder virtuellen Maschine nur in der CPU verwaltet und der Speicherinhalt außerhalb der CPU verschlüsselt gehalten, sodass er weder für den Hypervisor noch für Angreifer sichtbar ist, die den Speicher direkt auslesen. Sie werden zusammen mit Remote Attestation eingesetzt.

Im Confidential Computing werden TEEs eingesetzt: VM-basierte TEEs, die eine ganze virtuelle Maschine schützen (etwa AMD SEV-SNP und Intel TDX), und Enklaven-TEEs, die einen Teil einer Anwendung schützen (etwa Intel SGX). Welche Aussage über den Unterschied ist richtig?

  1. AVM-basierte TEEs verschlüsseln den Speicher der virtuellen Maschine nicht und schützen ihn nur durch die Prüfung von Zugriffsrechten; nur Enklaven-TEEs schützen den Speicher durch Verschlüsselung
  2. BVM-basierte TEEs können bestehende Betriebssysteme und Anwendungen nahezu unverändert ausführen, doch dabei wird das gesamte Gastbetriebssystem Teil dessen, dem vertraut werden muss (TCB)
  3. CBei Enklaven gehören auch Betriebssystem und Hypervisor zu dem, dem vertraut werden muss, während bei VM-basierten TEEs nur der CPU vertraut werden muss
Antwort und Erläuterung anzeigen

Antwort: B. VM-basierte TEEs können bestehende Betriebssysteme und Anwendungen nahezu unverändert ausführen, doch dabei wird das gesamte Gastbetriebssystem Teil dessen, dem vertraut werden muss (TCB)

Eine Enklave führt nur den Teil einer Anwendung, der Geheimnisse verarbeitet, in einem geschützten Bereich aus; dadurch schrumpft das, dem vertraut werden muss (TCB: Trusted Computing Base), auf die CPU und den Code der Enklave, doch die Anwendung muss aufgeteilt und neu geschrieben werden. Beim VM-basierten Ansatz wird der Speicher der gesamten virtuellen Maschine verschlüsselt und vor dem Hypervisor und den Administratoren des Cloud-Anbieters geschützt, sodass vorhandene Software nahezu unverändert übernommen werden kann. Im Gegenzug gehören das Gastbetriebssystem und die gesamte darauf laufende Software zur TCB, und eine Schwachstelle dort kann Geheimnisse preisgeben. Je kleiner die TCB, desto leichter lässt sie sich prüfen und desto kleiner ist die Angriffsfläche; die Wahl ist daher eine Abwägung zwischen Benutzerfreundlichkeit und dem Umfang dessen, dem vertraut werden muss.

Häufige Fragen

Wozu braucht man Attestation, wenn der Speicher verschlüsselt ist?

Verschlüsselung verhindert nur das Lesen von außen; sie sagt nichts darüber, was im Inneren läuft. Die Arbeitslast könnte in einer gefälschten TEE, auf einem manipulierten Gastbetriebssystem oder auf Firmware ohne Schwachstellenkorrektur laufen; deshalb wird der Schlüssel zum Entschlüsseln der Daten erst übergeben, nachdem die mit dem Schlüssel der CPU signierten Messwerte und Versionsnummern geprüft wurden.

Muss man dem Cloud-Anbieter dann überhaupt nicht mehr vertrauen?

Die Sorge, dass Speicherinhalte gelesen werden, sinkt stark, doch dem CPU-Hersteller und seiner Firmware muss weiterhin vertraut werden, und der Anbieter kann den Dienst durch Vorenthalten von Ressourcen weiterhin stören. Für jedes Verfahren ist zu prüfen, wem vertraut wird und wovor es schützt.

Fragen mit „Confidential Computing“ (4)

  1. Was ist der Zweck der Funktionen, mit denen die CPU den Speicher virtueller Maschinen verschlüsselt (AMD SEV, Intel TDX usw.) beim „Confidential Computing“ in der Cloud?
  2. Im Confidential Computing werden TEEs eingesetzt: VM-basierte TEEs, die eine ganze virtuelle Maschine schützen (etwa AMD SEV-SNP und Intel TDX), und Enklaven-TEEs, die einen Teil einer Anwendung schützen (etwa Intel SGX). Welche Aussage über den Unterschied ist richtig?
  3. Im Confidential Computing prüft der Verifikationsserver des Nutzers (der Prüfer) den Attestation-Bericht, den er von einer VM-basierten TEE erhalten hat, bevor er den Schlüssel zum Entschlüsseln der Daten übergibt. Welche Kombination von Prüfpunkten des Prüfers ist am besten geeignet?
  4. Mit Stand Mitte der 2020er-Jahre bietet manche GPU für Rechenzentren Funktionen, mit denen sie sich zusammen mit der TEE einer CPU für Confidential Computing nutzen lässt. Welche Aussage beschreibt das Prinzip dieses Mechanismus richtig?

Verwandte Begriffe

Hypervisor TEE (vertrauenswürdige Ausführungsumgebung) Remote Attestation Enklave (Enclave) Nonce GPU Inferenz Arm CCA (Confidential Compute Architecture) CHERI DICE (Device Identifier Composition Engine)

Zur Glossarübersicht