O vulnerabilitate în cipurile Qualcomm, care permite extragerea cheilor private din magazinul TrustZone

Cercetătorii de la compania NCC Group au dezvăluit detalii vulnerabilităților (CVE-2018-11976) în cipurile Qualcomm, care permit determinarea conținutului cheilor secrete de criptare, plasate într-un enclave izolat Qualcomm QSEE (Qualcomm Secure Execution Environment), bazat pe tehnologia ARM TrustZone. Problema se manifestă în majoritatea SoC Snapdragon, care au fost răspândite în smartphone-uri bazate pe platforma Android. Corecțiile care elimină problema sunt deja sunt incluse în actualizarea din aprilie a Android-ului și în noile versiuni de firmware pentru cipurile Qualcomm. Pregătirea corecției de către compania Qualcomm a durat mai bine de un an — inițial, informațiile despre vulnerabilitate au fost trimise către Qualcomm încă pe 19 martie 2018.

Să ne amintim că tehnologia ARM TrustZone permite crearea de medii protejate izolate hardware, complet separate de sistemul principal și care rulează pe un procesor virtual separat utilizând un sistem de operare specializat. Principalul scop al TrustZone este de a asigura executarea izolată a procesatorilor de chei de criptare, autentificării biometrice, datelor de plată și altor informații confidențiale. Interacțiunea cu sistemul de operare principal se realizează indirect printr-o interfață de gestionare. Cheile secrete de criptare sunt plasate într-un depozit de chei izolat hardware, ceea ce, în cazul unei implementări corespunzătoare, permite prevenirea scurgerii acestora în caz de compromitere a sistemului principal.

Vulnerabilitatea este legată de o deficiență în implementarea algoritmului de procesare a curbelor eliptice, care a dus la scurgeri de informații despre procesarea datelor. Cercetătorii au dezvoltat o tehnică de atac prin canale laterale, care permite, prin scurgerile indirecte existente, recuperarea conținutului cheilor secrete plasate în izolatul hardware Android Keystore. Fugas sunt determinate pe baza analizei activității blocului de predicție a tranzițiilor și a modificării timpului de acces la datele din memorie. În timpul experimentului, cercetătorii au demonstrat cu succes recuperarea cheilor ECDSA de 224 și 256 de biți dintr-un depozit de chei izolat hardware, utilizat în smartphone-ul Nexus 5X. Pentru a recupera cheia a fost necesară generarea a aproximativ 12 mii de semnături digitale, ceea ce a durat mai mult de 14 ore. Pentru a efectua atacul a fost utilizat un instrumentar Cachegrab.

Cauza principală a problemei este partajarea componentelor hardware comune și a cache-ului pentru calcule în TrustZone și în sistemul principal - izolația este realizată la nivel de separație logică, dar folosind blocuri de calcul comune și cu urmăritori ai calculelor și informațiilor despre adresele tranzițiilor în cache-ul procesorului comun. Prin metoda Prime+Probe, bazată pe evaluarea modificării timpului de acces la informațiile puse în cache, se pot urmări cu o precizie destul de ridicată fluxurile de date și semnele executării codului legat de calculele semnăturilor digitale în TrustZone, verificând existența unor anumite tipare în cache.

Majoritatea timpului necesar pentru generarea unei semnături digitale utilizând chei ECDSA în cipurile Qualcomm este cheltuit pe executarea operațiunilor de multiplicare într-un ciclu, folosind un vector de inițializare constant pentru fiecare semnătură (nonce). Dacă un atacator reușește să recupereze măcar câțiva biți de informații despre acest vector, există posibilitatea de a realiza un atac prin recuperarea secvențială a întregului cheie privată.

În cazul Qualcomm, au fost identificate două puncte de scurgere a unor informații similare în algoritmul de multiplicare: în timpul operațiunilor de căutare în tabele și în codul de extragere condiționată a datelor bazate pe valoarea ultimului bit din vectorul „nonce”. În ciuda faptului că în codul Qualcomm există măsuri pentru a contracara scurgerea informațiilor pe canale secundare, metoda de atac dezvoltată permite ocolirea acestor măsuri și determinarea a câțiva biți din valoarea „nonce”, care sunt suficienți pentru recuperarea cheilor ECDSA de 256 de biți.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster