Kwesbaarheid in Qualcomm-skyfies wat toelaat dat private sleutels uit TrustZone-berging onttrek word

Navorsers van NCC Groep ontbloot die besonderhede kwesbaarhede (CVE-2018-11976) in Qualcomm-skyfies, wat jou toelaat om die inhoud van private enkripsiesleutels te bepaal wat geleë is in 'n geïsoleerde enklaaf Qualcomm QSEE (Qualcomm Secure Execution Environment), gebaseer op ARM TrustZone-tegnologie. Die probleem manifesteer hom in meeste Snapdragon SoC, wat wydverspreid geword het in slimfone gebaseer op die Android-platform. Die oplossings wat die probleem oplos, is reeds ingesluit in die April Android-opdatering en nuwe firmwarevrystellings vir Qualcomm-skyfies. Dit het Qualcomm meer as 'n jaar geneem om 'n oplossing voor te berei; inligting oor die kwesbaarheid is aanvanklik op 19 Maart 2018 aan Qualcomm gestuur.

Laat ons onthou dat ARM TrustZone-tegnologie jou toelaat om hardeware-geïsoleerde beskermde omgewings te skep wat heeltemal van die hoofstelsel geskei is en op 'n aparte virtuele verwerker loop met 'n aparte gespesialiseerde bedryfstelsel. Die hoofdoel van TrustZone is om geïsoleerde uitvoering van verwerkers vir enkripsiesleutels, biometriese verifikasie, betalingsdata en ander vertroulike inligting te verskaf. Interaksie met die hoofbedryfstelsel word indirek deur die versendingskoppelvlak uitgevoer. Privaat enkripsiesleutels word in 'n hardeware-geïsoleerde sleutelstoor gestoor, wat, indien behoorlik geïmplementeer, hul lekkasie kan voorkom as die onderliggende stelsel gekompromitteer word.

Die kwesbaarheid is te wyte aan 'n fout in die implementering van die elliptiese kromme verwerking algoritme, wat gelei het tot lekkasie van inligting oor die vordering van data verwerking. Navorsers het 'n sykanaalaanvalstegniek ontwikkel wat dit moontlik maak om bestaande indirekte lekkasies te gebruik om die inhoud van private sleutels wat in 'n hardeware-geïsoleerde Android Sleutelwinkel. Lekke word bepaal op grond van ontleding van die aktiwiteit van die takvoorspellingsblok en veranderinge in die toegangstyd tot data in die geheue. In die eksperiment het die navorsers die herwinning van 224- en 256-bis ECDSA-sleutels suksesvol gedemonstreer vanaf die hardeware-geïsoleerde sleutelwinkel wat in die Nexus 5X-slimfoon gebruik word. Om die sleutel te herwin, moes ongeveer 12 duisend digitale handtekeninge gegenereer word, wat meer as 14 uur geneem het. Gereedskap wat gebruik is om die aanval uit te voer Cachegrab.

Die hoofoorsaak van die probleem is die deel van algemene hardeware-komponente en kas vir berekeninge in die TrustZone en in die hoofstelsel - isolasie word uitgevoer op die vlak van logiese skeiding, maar met gebruik van algemene rekenaareenhede en met spore van berekeninge en inligting oor tak adresse wat in die gemeenskaplike verwerkerkas gedeponeer word. Deur die Prime+Probe-metode te gebruik, gebaseer op die assessering van veranderinge in toegangstyd tot inligting in die kas, is dit moontlik om, deur die teenwoordigheid van sekere patrone in die kas na te gaan, datavloei en tekens van kode-uitvoering wat met die berekeninge van digitale handtekeninge in TrustZone met redelik hoë akkuraatheid.

Die meeste van die tyd om 'n digitale handtekening met behulp van ECDSA-sleutels in Qualcomm-skyfies te genereer, word bestee aan vermenigvuldigingsbewerkings in 'n lus met behulp van 'n inisialiseringsvektor wat onveranderd is vir elke handtekening (nuntius). As die aanvaller ten minste 'n paar stukkies met inligting oor hierdie vektor kan herstel, word dit moontlik om 'n aanval uit te voer om die hele privaat sleutel opeenvolgend te herwin.

In die geval van Qualcomm is twee plekke waar sulke inligting uitgelek is in die vermenigvuldigingsalgoritme geïdentifiseer: wanneer opsoekbewerkings in tabelle uitgevoer word en in die voorwaardelike dataherwinningskode gebaseer op die waarde van die laaste bietjie in die "nonce" vektor. Ten spyte van die feit dat Qualcomm-kode maatreëls bevat om inligtinglekkasies deur derdeparty-kanale teë te werk, laat die ontwikkelde aanvalsmetode jou toe om hierdie maatreëls te omseil en verskeie stukkies van die "nonce"-waarde te bepaal, wat genoeg is om 256-bis ECDSA-sleutels te herstel.

Bron: opennet.ru

Voeg 'n opmerking