Forskere fra NCC Group sårbarheter () i Qualcomm-brikker, som gjør det mulig å bestemme innholdet i private krypteringsnøkler som ligger i den isolerte Qualcomm QSEE (Qualcomm Secure Execution Environment)-enklaven, basert på ARM TrustZone-teknologi. Problemet manifesterer seg i Snapdragon SoC-er, som har blitt utbredt i smarttelefoner basert på plattformen AndroidRettelser som løser problemet er allerede på plass. i apriloppdateringen Android og i nye firmwareutgivelser for Qualcomm-brikker. Det tok Qualcomm over et år å utarbeide en oppdatering – informasjon om sårbarheten ble opprinnelig rapportert til Qualcomm 19. mars 2018.
Som en påminnelse muliggjør ARM TrustZone-teknologien opprettelse av maskinvareisolerte sikre miljøer som er fullstendig atskilt fra hovedsystemet og kjører på en separat virtuell prosessor ved hjelp av et dedikert operativsystem. Hovedformålet med TrustZone er å sikre isolert utførelse av krypteringsnøkkelbehandlere, biometrisk autentisering, betalingsdata og annen sensitiv informasjon. Samhandling med hoved-OS-et skjer indirekte gjennom forsendelsesgrensesnittet. Private krypteringsnøkler lagres i et maskinvareisolert nøkkellager, som, når det implementeres riktig, forhindrer lekkasje i tilfelle et kompromittering av hovedsystemet.
Sårbarheten skyldes en feil i implementeringen av en elliptisk kurvebehandlingsalgoritme, som resulterte i lekkasje av informasjon om databehandlingsprosessen. Forskere utviklet en sidekanalangrepsteknikk som lar dem gjenopprette innholdet i private nøkler lagret på et maskinvareisolert sted ved hjelp av disse indirekte lekkasjene. Lekkasjer oppdages ved å analysere aktiviteten til grenprediksjonsblokker og endringer i tilgangstider for minnedata. Under eksperimentet demonstrerte forskerne vellykket gjenoppretting av 224- og 256-bits ECDSA-nøkler fra det maskinvareisolerte nøkkellageret som brukes i Nexus 5X-smarttelefonen. Nøkkelgjenoppretting krevde generering av omtrent 12 000 digitale signaturer, noe som tok over 14 timer. Angrepet ble utført ved hjelp av følgende verktøy: .
Roten til problemet er delt bruk av maskinvarekomponenter og mellombuffere for beregninger i TrustZone og hovedsystemet. Isolasjon oppnås gjennom logisk separasjon, men med delte dataenheter og beregningsspor og grenadresseinformasjon lagret i en delt prosessorbuffer. Ved å bruke Prime+Probe-metoden, som evaluerer endringer i tilgangstider til mellombufret informasjon, er det mulig å spore dataflyter og kodeutførelsesindikatorer relatert til beregninger av digitale signaturer i TrustZone nøyaktig ved å se etter spesifikke mønstre i mellombufferen.
Mesteparten av tiden som kreves for å generere en digital signatur ved hjelp av ECDSA-nøkler i Qualcomm-brikker, brukes på å utføre multiplikasjonsoperasjoner i en løkke ved hjelp av en initialiseringsvektor (IV) som er konstant for hver signatur.Hvis en angriper kan gjenopprette minst noen få biter med informasjon om en gitt vektor, blir det mulig å utføre et angrep for å sekvensielt gjenopprette hele den private nøkkelen.
I Qualcomms tilfelle ble det identifisert to lekkasjer av denne typen informasjon i multiplikasjonsalgoritmen: under tabelloppslag og i koden for betinget datautvinning basert på verdien av den siste biten i «nonce»-vektoren. Til tross for at Qualcomms kode inneholder tiltak for å motvirke sidekanalinformasjonslekkasjer, lar den utviklede angrepsmetoden en omgå disse tiltakene og bestemme flere biter av «nonce»-verdien, som er tilstrekkelige til å gjenopprette 256-biters ECDSA-nøkler.
Kilde: opennet.ru
