Intel SGX-udvidelser

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. februar 2021; checks kræver 4 redigeringer .

Intel Software Guard Extensions (Intel SGX)  er et sæt CPU-instruktioner , der gør det muligt for et program at skabe enklaver  - områder i det virtuelle adresserum, der er beskyttet mod læsning og skrivning uden for dette område af andre processer, inklusive operativsystemkernen . Intel SGX leverer integriteten og fortroligheden af ​​højsikkerhedsdatabehandling udført på systemer, hvor privilegerede processer (kerne, hypervisor osv.) anses for utroværdige.

Intel SGX er designet til sikker fjerndatabehandling, sikker web-browsing og ophavsretsbeskyttelse . Andre praktiske anvendelser af denne teknologi omfatter at sikre fortroligheden af ​​proprietære algoritmer og krypteringsnøgler.

Oprettelseshistorie

Intel SGX-udvidelser ankom i 2015 med den sjette generation af Intel-mikroprocessorer baseret på Skylake- mikroarkitekturen . Startende med Skylake har processoren et nyt hardwaremodul kaldet Memory Encryption Engine (MEE), som tillader automatisk kryptering af data, der overføres fra processoren til enklavens hukommelsesområde. Dette gjorde det muligt at opgive antagelsen om pålidelighed af RAM og at begrænse sikkerhedsomkredsen til én central processor, hvilket gjorde oprettelsen af ​​SGX mulig [1] .

I 2016 blev den anden version af SGX-teknologien introduceret, kaldet SGX2. Det udvidede SGX1-instruktionssættet med dynamisk enklavehukommelsesstyring. SGX1 pålagde restriktioner vedrørende hukommelsesallokering og genbrug af enklavehukommelse - udvikleren var forpligtet til at allokere al hukommelse ved oprettelse af en enklaveinstans. SGX2 introducerede nye instruktioner og programmeringsmodeller for at udvide understøttelsen af ​​dynamisk enklavehukommelsesstyring [2] .

Kun understøttet på Intel Core 7000, 8000, 9000 og 10000 generationsprocessorer (SGX-teknologi er blevet fjernet på 11 og 12 generations Core-processorer), samt 3. generation Intel Xeon Scalabale -serverprocessorer. AMD-processorer understøtter ikke SGX. [3]

Udtalelse af problemet

Først og fremmest blev SGX-teknologien skabt for at muliggøre sikker remote computing - at køre software på en fjerncomputer, der ejes af en upålidelig part, med nogle garantier for integritet og fortrolighed. Generelt er sikker remote computing et uløst problem. Fuldstændig homomorf kryptering løser problemet for en begrænset familie af beregninger, men har en upraktisk ydeevne overhead [4] .

Intel SGX-udvidelser løser problemet med sikker fjerndatabehandling ved at bruge pålidelig hardware på fjerncomputeren. Udstyrets ægthed fastslås under certificeringsprocessen. Betroet hardware opretter et "sikkert område", og brugeren af ​​fjerncomputertjenesten kan uploade den nødvendige kode og data til dette "område". Pålidelig hardware beskytter dataens fortrolighed og integritet, mens der udføres beregninger på dem [5] .

Mål

Udviklingen af ​​Intel SGX fulgte 8 hovedmål [6] :

Enhedsdetaljer

SGX tildeler et hukommelsesområde kaldet Processor Reserved Memory (PRM). Processoren beskytter PRM'en mod alle ikke-enklave-hukommelsesadgange, inklusive kerne-, hypervisor- og System Management Mode (SMM)-adgang, samt DMA -adgang fra periferiudstyr [5] [7] .

PRM indeholder Enclave Page Cache (EPC), som består af 4-kilobyte sider, der gemmer enklavekode og data. Upålidelig systemsoftware er ansvarlig for at tildele EPC-sider til enklaver. CPU'en holder styr på tilstanden af ​​hver EPC-side i Enclave Page Cache Metadata (EPCM) metadata for at sikre, at hver EPC-side kun tilhører én enklave [7] .

Kildekoden og dataene i enklaven indlæses af systemsoftware, der ikke er tillid til. Under opstartsfasen beder systemsoftwaren CPU'en om at kopiere data fra ikke-beskyttet hukommelse (uden for PRM'en) til EPC-siderne og tildeler siderne til den enklave, der installeres. Det følger heraf, at enklavens begyndelsestilstand er kendt af systemsoftwaren [5] [7] .

Efter at alle siderne i enklaven er indlæst i EPC'en, beder systemsoftwaren CPU'en om at markere enklaven som initialiseret, hvorefter applikationssoftwaren kan udføre koden inde i enklaven. Efter at enklaven er initialiseret, er indlæsningsmetoden beskrevet ovenfor [5] [7] forbudt .

Mens enklaven indlæses, beregnes en kryptografisk hash baseret på dens indhold. Efter at enklaven er initialiseret, afsluttes hashprocessen, og den resulterende hash bliver enklavens målehash [8] .

Fjernparten kan gennemgå en attestationsproces for at sikre, at den kommunikerer med en enklave, der har en vis verifikationshash og kører i et sikkert miljø [9] .

En udførelsestråd kan kun komme ind i enklaven gennem specielle CPU-instruktioner, som ligner mekanismen til at skifte fra brugertilstand til kernetilstand. Enklave-udførelse sker altid i beskyttet tilstand, på ring 3 , og bruger adresseoversættelsen indstillet af OS-kernen og hypervisor [5] [7] .

For at undgå lækage af følsomme data udfører CPU'en ikke serviceafbrydelser (såsom sidefejl ) eller virtuel maskinafslutning ( vmexit ), mens enklavekoden udføres. I stedet udfører CPU'en først en Asynchronous Enclave Exit (AEX) for at skifte fra enklavekode til ring 3-kode og servicerer derefter en interrupt eller virtuel maskine-exit. CPU'en udfører en AEX, lagrer dens tilstand i et foruddefineret område inde i enklaven og overfører kontrol til en foruddefineret instruktion uden for enklaven, og erstatter CPU-registrene med syntetiske værdier [5] [7] .

Tildelingen af ​​EPC-sider til enklaver er delegeret til operativsystemets kerne (eller hypervisor). Operativsystemet kommunikerer sine beslutninger om hukommelsesallokering til SGX-implementeringen via særlige ring 0 CPU-instruktioner. Operativsystemet kan også udskifte EPC-sider til upålidelig RAM og derefter indlæse dem tilbage ved hjælp af specielle processorinstruktioner [5] .

SGX bruger Memory Encryption Engine (MEE) til at sikre fortroligheden, integriteten og friskheden af ​​uploadede EPC-sider, mens de er gemt i ikke-pålidelig hukommelse [5] . MME fungerer som en udvidelse af hukommelsesstyringsenheden og krypterer automatisk alle data, der overføres fra processoren til hukommelsen [10] .

Applikationsdesign

Applikationsdesign med Intel SGX kræver, at applikationen er opdelt i to komponenter [9] :

En betroet bean bør kun være begrænset til de data, der har brug for mest beskyttelse, og de operationer, der skal interagere med dem. En stor enklave med en kompleks grænseflade bruger ikke kun mere beskyttet hukommelse, den øger også angrebsoverfladen. Enklaver bør også have minimal interaktion mellem pålidelige komponenter. Selvom enklaver kan kalde funktioner i en upålidelig komponent (ved hjælp af en speciel instruktion), vil begrænsning af sådanne opkald styrke enklaven mod angreb [9] [8] .

Certificering

I Intel SGX-arkitekturen er attestation processen med enklave-godkendelse. Der er to attesteringsmekanismer [9] :

Lokal attestation

Lokal attestation er nyttig, når en applikation har mere end én enklave, der skal arbejde sammen, eller når to applikationer skal kommunikere mellem enklaver [9] .

I attestationsprocessen mellem to enklaver skal hver enklave først sikre, at den anden er troværdig. En enklave autentificerer sig selv til en anden målenklave ved hjælp af EREPORT-sætningen. Denne SGX-instruktion opretter en attestationsrapport (REPORT), der kryptografisk forbinder en enklavemeddelelse med en identitet baseret på enklave-hashen og baseret på certifikater. Kryptografisk binding udføres ved hjælp af en speciel tag beregnet ved hjælp af en symmetrisk nøgle, der kun er tilgængelig for målenklaven og SGX-implementeringen [5] .

Enklaverne kan derefter etablere en sikker session ved hjælp af Diffie-Hellman-protokollen for at udveksle sessionsnøglen. Denne sessionsnøgle kan bruges til at kryptere data, der skal deles mellem to enklaver [9] .

Da en enklave ikke kan få adgang til det beskyttede hukommelsesrum i en anden enklave, selvom de tilhører den samme applikation, skal alle pointere dereferences, og data skal sendes direkte mellem enklaver [9] .

Fjernattestering

Certificeringsprocessen er som følger. En SGX-aktiveret processor beregner en hash af koden og dataene i hver enklave. Softwaren inde i enklaven starter processen med at beregne SGX attestationssignaturen, som inkluderer enklavehashen og enklavemeddelelsen [8] .

Den kryptografiske primitiv, der bruges i SGX-attestationssignering, er for kompleks til at blive implementeret i hardware, så signeringsprocessen udføres af en privilegeret Quoting Enclave leveret af Intel med adgang til SGX-attestationsnøglen, en hardwareasymmetrisk nøgle, der er unik for hver platform. SGX-attestationsnøglen eksisterer ikke på det tidspunkt, hvor processoren blev oprettet. Den udgives senere ved hjælp af Provisioning Enclave leveret af Intel [5] .

Fordi signaturen er beregnet i Quoting Enclave, er der behov for en sikker kommunikationskanal mellem den enklave, der gennemgår softwarevalidering, og Quoting Enclave. Dette problem er løst ved hjælp af den lokale attestationsmekanisme [5] .

Hvis fjernserveren fastslår, at enklaven er oprettet korrekt og kører på en ægte Intel SGX-kompatibel processor, kan den nu stole på enklaven og videregive hemmeligheder til den via en betroet kanal [9] .

Sikkerhed

Ved remote computing downloades indholdet af enklaven af ​​systemsoftwaren til computeren og bør derfor ikke indeholde hemmeligheder i det klare. Efter initialisering er der en attestationsproces, hvor enklaven autentificeres mod en ekstern server. Efter vellykket godkendelse forventes fjernserveren at afsløre nogle hemmeligheder til enklaven over en sikker kommunikationskanal. Intel SGX-designet forsøger at sikre, at hashen, der er beregnet under attestationsprocessen, nøjagtigt afspejler indholdet, der er uploadet til enklaven [8] .

SGX tilbyder også et certifikatbaseret identifikationssystem. Det bruges til at udveksle hemmeligheder mellem enklaver, der har certifikater udstedt af den samme certifikatmyndighed. Udvekslingsprocessen involverer kryptering af hemmeligheder, før de videregives til upålidelig systemsoftware, som derefter overfører dem til en anden enklave [5] [8] .

Den samme mekanisme kan bruges til at cache hemmeligheder opnået under attestationsprocessen på ikke-pålidelige lagermedier, der administreres af systemsoftwaren. Denne caching kan reducere antallet af attestationsprocesser i et distribueret system [5] .

Prime+Probe Attack

Den 27. marts 2017 udviklede forskere ved Graz University of Technology en prototype, der er i stand til at opnå RSA -nøgler fra SGX-enklaver, der kører på det samme system [11] [12] ved hjælp af et tidsindstillet angreb inden for fem minutter . En modforanstaltning mod denne type angreb blev præsenteret og offentliggjort af Daniel Gruss et al. på USENIX Security Symposium i 2017 [13] . Blandt andre modforanstaltninger offentliggjort den 28. september 2017 var DR.SGX-værktøjet. DR.SGX hævdes at have overlegen ydeevne, samtidig med at den er meget nemmere at implementere end andre foreslåede løsninger [14] .

Spectre angreb

LSDS-gruppen ved Imperial College London demonstrerede, at en spekulativ Spectre -sikkerhedssårbarhed kunne tilpasses til at angribe enklaven [15] . Foreshadow- angrebet , der blev afsløret i august 2018, kombinerer spekulativ udførelse og bufferoverløb for at omgå SGX [16] .

Enklaveangreb

Den 8. februar 2019 offentliggjorde forskere fra Graz University of Technology forskningsresultater, der viste, at det i nogle tilfælde er muligt at køre ondsindet kode fra selve enklaven [17] . Dokumentet hævder, at på grund af enklavens fortrolige og beskyttede karakter, kan antivirussoftware ikke opdage og fjerne malware, der findes i den. Men da moderne antivirusløsninger overvåger systemopkald og applikationsinteraktioner med operativsystemet, bør det være muligt at identificere ondsindede enklaver ved deres adfærd. Intel udgav en erklæring om, at dette angreb var uden for SGX-trusselsmodellen, at de ikke kunne garantere, at brugerudført kode kom fra betroede kilder, og opfordrede forbrugerne til kun at bruge betroet kode [18] .

Platypus Attack

Forskere ved universitetet i Graz i Østrig har opdaget en ny farlig sårbarhed baseret på måling af CPU-spænding, der gør det muligt at udtrække AES- og RSA-nøgler fra en sikker SGX-enklave. Denne funktion har været til stede i alle Intel-processorer siden Sandy Bridge , hvor northbridge -funktionerne er blevet fuldstændig erstattet af en systemagent integreret i processormatricen. Sårbarheden udnytter RAPL-systemet (Running Average Power Limit), som ikke kræver privilegeret adgang, til at opnå detaljerede estimater af strømforbruget for kernen, systemagenten og DRAM'en [19] . For at bekæmpe sårbarheden udgav Intel en mikrokodepatch (INTEL-SA-0389 [20] ).

Noter

  1. Simon Johnson. Intel® SGX Memory Encryption  Engine . software.intel.com (26. februar 2016). Dato for adgang: 7. december 2019. Arkiveret fra originalen 7. december 2019.
  2. McKeen, Frank & Alexandrovich, Ilya & Anati, Ittai & Caspi, Dror & Johnson, Simon & Leslie-Hurd, Rebekah & Rozas, Carlos. Intel® Software Guard Extensions (Intel® SGX) Understøttelse af dynamisk hukommelsesstyring inde i en enklave. // Konference: Hardware og arkitektonisk støtte til sikkerhed og privatliv. – 2016.
  3. Intel forbød ejere af deres nye processorer at se licenserede film fra 4K-diske Arkiveret 18. januar 2022 på Wayback Machine // CNews 17. januar 2022
  4. Michael Naehrig, Kristin Lauter og Vinod Vaikun-tanathan. Kan homomorf kryptering være praktisk?  // Proceedings of the 3rd ACM workshop on Cloud computing security workshop. - 2011. - S. 113-124 . Arkiveret fra originalen den 22. september 2020.
  5. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 Victor Costan og Srinivas Devadas. Intel SGX Explained  // Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Arkiveret 4. maj 2020.
  6. Matthew H. Intel® SGX for Dummies (Intel® SGX Design Objectives  ) . software.intel.com (2013-26-09). Hentet 7. december 2019. Arkiveret fra originalen 29. april 2014.
  7. ↑ 1 2 3 4 5 6 Alexandre Adamski. Oversigt over Intel SGX - Del 1, SGX Internals (5. juli 2018). Hentet 24. december 2019. Arkiveret fra originalen 24. december 2019.
  8. ↑ 1 2 3 4 5 Ittai Anati, Shay Gueron, Simon P Johnson, Vincent R Scarlata. Innovativ teknologi til CPU-baseret attestation og forsegling  // Intel Corporation. - 2013. Arkiveret den 24. december 2019.
  9. ↑ 1 2 3 4 5 6 7 8 John M., Benjamin O. Intel® Software Guard Extensions Tutorial Series : Del 1, Intel® SGX Foundation  . software.intel.com (7. juli 2016). Dato for adgang: 7. december 2019. Arkiveret fra originalen 7. december 2019.
  10. Shay Gueron. [ https://eprint.iacr.org/2016/204.pdf En hukommelseskrypteringsmotor egnet til processorer til generelle formål] // Cryptology ePrint Archive. - 2016. Arkiveret den 15. juni 2020.
  11. Schwarz, Michael; Weiser, Samuel; Gruss, Daniel; Maurice, Clémentine & Mangard, Stefan (2017), Malware Guard Extension: Using SGX to Conceal Cache Attacks, arΧiv : 1702.08719 [cs.CR]. 
  12. Richard Chirgwin . Boffins viser, at Intels SGX kan lække kryptonøgler , The Register (7. marts 2017). Arkiveret fra originalen den 11. juli 2019. Hentet 1. maj 2017.
  13. Daniel Gruss, Julian Lettner, Felix Schuster, Olya Ohrimenko, Istvan Haller og Manuel Costa. Stærk og effektiv Cache-sidekanalbeskyttelse ved hjælp af hardwaretransaktionshukommelse . USENIX (16. august 2017). Hentet 7. december 2019. Arkiveret fra originalen 27. juli 2020.
  14. Brasser, Ferdinand; Capkun, Srdjan; Dmitrienko, Alexandra; Frassetto, Tommaso; Kostiainen, Kari; Müller, Urs & Sadeghi, Ahmad-Reza (2017-09-28), DR.SGX: Hardening SGX Enclaves against Cache Attacks with Data Location Randomization, arΧiv : 1709.09917 [cs.CR]. 
  15. Dan O'Keeffe, Divya Muthukumaran, Pierre-Louis Aublin, Florian Kelbert, Christian Priebe, Josh Lind, Huanzhou Zhu og Peter Pietzuch. SGXSpecter . Hentet 7. december 2019. Arkiveret fra originalen 7. maj 2020.
  16. Peter Bright - 10. juli 2018 21:00 UTC. Nyt Spectre-lignende angreb bruger spekulativ udførelse til at overløbe buffere . Ars Technica (10. juli 2018). Hentet 2. november 2018. Arkiveret fra originalen 23. november 2018.
  17. Schwarz, Michael; Weiser, Samuel & Gruss, Daniel (2019-02-08), Practical Enclave Malware med Intel SGX, arΧiv : 1902.03256 [cs.CR]. 
  18. Lyst, Peter Forskere bruger Intel SGX til at placere malware uden for rækkevidde af   antivirussoftware ? . Ars Technica (12. februar 2019). Hentet 15. februar 2019. Arkiveret fra originalen 15. februar 2019.
  19. Gennady Detinich. Platypus-angreb: Intel-processorforbrugssensorer viste sig at være et sikkerhedshul . 3dnews.ru (11. november 2020). Hentet 11. november 2020. Arkiveret fra originalen 11. november 2020.
  20. ↑ 2020.2 IPU - Intel® RAPL Interface Advisory  . www.intel.com (10. november 2020). Hentet 11. november 2020. Arkiveret fra originalen 10. november 2020.

Links