Software Guard Extensions
Die Software Guard Extensions (Intel SGX) waren 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.[1]
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[2] 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, Adler 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.[3]
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.[3]
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.[3] 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.[4] 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.
Einzelnachweise
- Intel® 64 and IA-32 Architectures Software Developer’s Manual. Abgerufen am 31. Januar 2019.
- Intel® Architecture Instruction Set Extensions and Future Features Programming Reference. Abgerufen am 31. Januar 2019.
- 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…“.
- https://software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx