Software Guard Extensions

Funktion zum Schutz von Bereichen im Adressraum

Die Software Guard Extensions (Intel SGX) sind eine Erweiterung der x86-Architektur, um sichere Enklaven zu erstellen.[1] Diese sind Bereiche im Adressraum eines Prozesses, die speziell durch die CPU geschützt werden und für die alle direkten Zugriffe, auch von privilegierten Prozessen, durch die CPU kontrolliert bzw. verhindert werden. Der Schutz des SGX-Speichers umfasst unter anderem transparente Speicherverschlüsselung mit Integritätsschutz.[2] Bei x86-Prozessoren von AMD bietet Secure Memory Encryption (SME) ebenfalls Speicherverschlüsselung, weist aber einen anderen Ansatz auf.

SGX wurde von Intel mit Mikroprozessoren der sechsten Generation (Skylake-Mikroarchitektur) im Jahre 2015 eingeführt. In welchem Umfang eine CPU die SGX-Befehlssatzerweiterungen unterstützt, kann mit der CPUID-Instruktion[3] abgefragt werden (CPUIDStructured Extended Feature Leaf“, EBX-Bit 02), aber seine Verfügbarkeit für Anwendungen erfordert ebenso Firmware-Unterstützung (BIOS oder UEFI) und Opt-in-Aktivierung, was sich nicht in CPUID-Bits widerspiegelt und die Merkmalserkennungslogik für Anwendungen verkompliziert.

In einer experimentellen Version des QEMU-Systememulators wurde 2014 die Emulation von SGX hinzugefügt. 2015 veröffentlichten Forscher des Georgia Institute of Technology den Open-Source-Simulator „OpenSGX“.

2022 ist aufgefallen, dass in Intel-Prozessoren der Core-i-Serien -11000 (11. Generation, Rocket Lake) und -12000 (12. Generation, Alder Lake) SGX nicht mehr in Hardware vorhanden ist. Intel führt SGX in den Datenblättern der Prozessoren als „veraltet“ an. Bei der Tiger-Lake-Mikroarchitektur, die beispielsweise als Basis der Prozessoren Core-i-1100G, -11000H oder Xeon W-11000 dient, ist zwar SGX noch in Hardware vorhanden, wird von Intel aber deaktiviert.[4] Die Wiedergabe von Ultra HD Blu-rays auf PCs setzt außer High-bandwidth Digital Content Protection (HDCP) 2.2 ab HDMI 2.0 und dem Kopierschutz Advanced Access Content System (AACS) 2.0 auch SGX voraus.[4]

In den skalierbaren Xeon-Prozessoren der 3. Generation (Ice Lake SP) sind die SGX weiterhin vorhanden.[5]

Funktion

Bearbeiten

SGX soll verschiedene Programme in Enklaven im Hauptspeicher voneinander abschotten, damit Schadcode oder Spionageprogramme nicht auf sensible Daten anderer Anwendungen zugreifen. Dies nennt man ein vertrauenswürdiges Umfeld für Befehlsausführungen "Trusted Execution Environment" (TEE).[4] Programmierer sollen mittels SGX unter anderem durch Prüfung digitaler Signaturen ihre Software besser vor Manipulationen schützen können. Auch auf kompromittierten Betriebssystemen soll Code sicher ausgeführt werden. In geschützten Speicherbereichen, den Enklaven, die selbst vor Zugriffen des Betriebssystems geschützt seien, bliebe Software weiter sicher ausführbar.[6] Dies setzt allerdings eine Lizenz und einen Schlüssel, den „Attestation Key“ von Intel voraus. Gemäß dem SGX-Konzept soll man darunter laufende Software weder analysieren noch überwachen können.

Intel erzeugt eine digitale Signatur vom Code in der Enklave und lädt diese in einen Intel-Cloud-Dienst, dem man vertrauen muss. Die Signatur wird mit einem privaten Schlüssel erzeugt, der nur in der Enklave ist. Der private Schlüssel wird über "Schmelzsicherungs"-Elemente auf dem Chip codiert. Dabei werden Bits durchgebrannt, die dadurch den Binärwert 0 einnehmen. Diesen privaten Schlüssel könne man nicht extrahieren, weil er in der Hardware codiert sei. Mark Ermolov, Maxim Goryachy und Dmitry Sklyarov widerlegten den Anspruch auf Vertrauenswürdigkeit des SGX-Konzeptes.[7]

Einzelnachweise

Bearbeiten
  1. Intel® Software Guard Extensions (Intel® SGX). In: intel.com. Abgerufen am 9. April 2022 (englisch).
  2. Intel® 64 and IA-32 Architectures Software Developer’s Manual. Abgerufen am 31. Januar 2019.
  3. Intel® Architecture Instruction Set Extensions and Future Features Programming Reference. Abgerufen am 31. Januar 2019.
  4. a b c Mark Mantel: UHD-Blu-rays lassen sich nicht mehr auf neuen PCs wiedergeben: SGX deaktiviert. In: Heise online. 13. Januar 2022. Abgerufen am 15. Januar 2022.; Zitat: „Intel-Prozessoren der 11. und 12. Core-i-Generation beherrschen die Sicherheitsfunktion Software Guard Extensions (SGX) nicht mehr, alle Neulinge wie der Core i9-12900K eingeschlossen. Das war auch uns bislang nicht aufgefallen…“.
  5. Skalierbare Intel® Xeon® Prozessoren der 3. Generation. In: Produkte › Prozessoren › Intel Xeon. Intel, 18. März 2021, abgerufen am 22. September 2022 (englisch).
  6. https://software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx
  7. uCode Research Team: chip-red-pill/glm-ucode. 27. August 2024, abgerufen am 7. September 2024.