Sårbarhed i Qualcomm-chips, der gør det muligt at udtrække private nøgler fra TrustZone-lageret

Forskere fra NCC Group afdækket detaljer sårbarheder (CVE-2018-11976) i Qualcomm-chips, som giver dig mulighed for at bestemme indholdet af private krypteringsnøgler placeret i en isoleret enklave Qualcomm QSEE (Qualcomm Secure Execution Environment), baseret på ARM TrustZone-teknologi. Problemet viser sig bl mest Snapdragon SoC, som er blevet udbredt i smartphones baseret på Android-platformen. De rettelser, der løser problemet, findes allerede inkluderet i april Android-opdateringen og nye firmwareudgivelser til Qualcomm-chips. Det tog Qualcomm mere end et år at forberede en rettelse; oplysninger om sårbarheden blev oprindeligt sendt til Qualcomm den 19. marts 2018.

Lad os huske på, at ARM TrustZone-teknologi giver dig mulighed for at skabe hardware-isolerede beskyttede miljøer, der er fuldstændig adskilt fra hovedsystemet og køre på en separat virtuel processor ved hjælp af et separat specialiseret operativsystem. Hovedformålet med TrustZone er at levere isoleret eksekvering af processorer til krypteringsnøgler, biometrisk autentificering, betalingsdata og andre fortrolige oplysninger. Interaktion med hovedoperativsystemet udføres indirekte gennem afsendelsesgrænsefladen. Private krypteringsnøgler opbevares i et hardware-isoleret nøglelager, som, hvis det implementeres korrekt, kan forhindre deres lækage, hvis det underliggende system kompromitteres.

Sårbarheden skyldes en fejl i implementeringen af ​​den elliptiske kurvebehandlingsalgoritme, som førte til lækage af information om databehandlingens fremskridt. Forskere har udviklet en side-kanal angrebsteknik, der gør det muligt at bruge eksisterende indirekte lækager til at gendanne indholdet af private nøgler placeret i en hardware-isoleret Android Keystore. Lækager bestemmes baseret på analyse af aktiviteten af ​​grenforudsigelsesblokken og ændringer i adgangstiden til data i hukommelsen. I eksperimentet demonstrerede forskerne med succes gendannelsen af ​​224- og 256-bit ECDSA-nøgler fra det hardware-isolerede nøglelager, der blev brugt i Nexus 5X-smartphonen. Gendannelse af nøglen krævede at generere omkring 12 tusinde digitale signaturer, hvilket tog mere end 14 timer. Redskaber brugt til at udføre angrebet Cachegrab.

Hovedårsagen til problemet er deling af fælles hardwarekomponenter og cache til beregninger i TrustZone og i hovedsystemet - isolering udføres på niveau med logisk adskillelse, men ved hjælp af almindelige computerenheder og med spor af beregninger og information om filial adresser, der deponeres i den fælles processorcache. Ved at bruge Prime+Probe-metoden, baseret på vurdering af ændringer i adgangstid til cachelagret information, er det muligt, ved at kontrollere tilstedeværelsen af ​​bestemte mønstre i cachen, at overvåge datastrømme og tegn på kodeudførelse i forbindelse med beregninger af digitale signaturer i TrustZone med ret høj nøjagtighed.

Det meste af tiden til at generere en digital signatur ved hjælp af ECDSA-nøgler i Qualcomm-chips bruges på at udføre multiplikationsoperationer i en sløjfe ved hjælp af en initialiseringsvektor, der er uændret for hver signatur (nuntius). Hvis angriberen kan gendanne mindst et par bits med information om denne vektor, bliver det muligt at udføre et angreb for sekventielt at gendanne hele den private nøgle.

I tilfældet med Qualcomm blev to steder, hvor sådanne oplysninger blev lækket, identificeret i multiplikationsalgoritmen: ved udførelse af opslagsoperationer i tabeller og i den betingede datahentningskode baseret på værdien af ​​den sidste bit i "nonce" vektoren. På trods af det faktum, at Qualcomm-koden indeholder foranstaltninger til at modvirke informationslækage gennem tredjepartskanaler, giver den udviklede angrebsmetode dig mulighed for at omgå disse foranstaltninger og bestemme flere bits af "nonce"-værdien, som er nok til at gendanne 256-bit ECDSA-nøgler.

Kilde: opennet.ru

Tilføj en kommentar