Software Guard Extensions
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 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[3] 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.[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
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.[4] 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.[6] 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® Software Guard Extensions (Intel® SGX). In: intel.com. Abgerufen am 9. April 2022 (englisch).
- ↑ 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.
- ↑ 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…“.
- ↑ Skalierbare Intel® Xeon® Prozessoren der 3. Generation. In: Produkte › Prozessoren › Intel Xeon. Intel, 18. März 2021, abgerufen am 22. September 2022 (englisch).
- ↑ https://software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx
Betriebsmodi | Real Mode • Protected Mode • Virtual 8086 Mode • System Management Mode • Long Mode • Compatibility Mode |
Befehlssatzerweiterungen | x87 ⬝ PAE ⬝ NX ⬝ AMD64/Intel 64 (x64) ⬝ HTT ⬝ VT-x/AMD-V/VIA VT ⬝ 3DNow! ⬝ MMX ⬝ SSE ⬝ SSE2 ⬝ SSE3 ⬝ SSSE3 ⬝ SSE4 ⬝ SSE4a ⬝ |