Software Guard Extensions
# Software Guard Extensions

Die Software Guard Extensions (Intel SGX) sind eine Erweiterung der x86-Architektur, um sichere Enklaven zu erstellen. 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. Bei x86-Prozessoren von AMD bietet Secure Memory Encryption (SME) ebenfalls Speicherverschlüsselung, weist aber einen unterschiedlichen 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 abgefragt werden (CPUID „Structured 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. 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.

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

## Funktion

SGX schottet verschiedene Programme in Enklaven innerhalb des RAMs voneinander ab, damit Schadcode oder Spionageprogramme nicht auf sensible Daten anderer Anwendungen zugreifen können – ein sogenanntes Trusted Execution Environment (TEE) entsteht. Programmierer können mittels SGX unter anderem durch Prüfung digitaler Signaturen ihre Software besser vor Manipulationen schützen. Sogar auf kompromittierten Betriebssystemen soll Code sicher ausgeführt werden. In geschützten Speicherbereichen, die Enklaven, die selbst vor Zugriffen des Betriebssystems geschützt sein sollen, bliebe Software weiter sicher ausführbar. Allerdings ist dafür eine Lizenz und ein „Attestation Key“ von Intel nötig. Gemäß dem SGX-Konzept kann man darunter laufende Software weder analysieren noch überwachen.

