Ranjivost u Qualcomm čipovima koja omogućuje izvlačenje privatnih ključeva iz TrustZone pohrane

Istraživači iz NCC grupe otkrivena pojedinosti ranjivosti (CVE-2018-11976) u Qualcomm čipovima, koji vam omogućuje određivanje sadržaja privatnih ključeva za enkripciju koji se nalaze u izoliranoj enklavi Qualcomm QSEE (Qualcomm Secure Execution Environment), na temelju ARM TrustZone tehnologije. Problem se očituje u najviše Snapdragon SoC, koji je postao široko rasprostranjen u pametnim telefonima temeljenim na Android platformi. Popravci koji rješavaju problem već su uključeno u travanjskom ažuriranju Androida i novim izdanjima firmvera za Qualcomm čipove. Qualcommu je trebalo više od godinu dana da pripremi popravak; informacije o ranjivosti prvotno su poslane Qualcommu 19. ožujka 2018.

Podsjetimo, ARM TrustZone tehnologija omogućuje stvaranje hardverski izoliranih zaštićenih okruženja koja su potpuno odvojena od glavnog sustava i rade na zasebnom virtualnom procesoru pomoću zasebnog specijaliziranog operativnog sustava. Glavna svrha TrustZone je osigurati izolirano izvršavanje procesora za ključeve šifriranja, biometrijsku autentifikaciju, podatke o plaćanju i druge povjerljive informacije. Interakcija s glavnim OS-om provodi se neizravno preko dispečerskog sučelja. Privatni ključevi za šifriranje pohranjeni su unutar hardverski izolirane pohrane ključeva koja, ako se pravilno implementira, može spriječiti njihovo curenje ako je temeljni sustav ugrožen.

Ranjivost je posljedica greške u implementaciji algoritma obrade eliptične krivulje, što je dovelo do curenja informacija o tijeku obrade podataka. Istraživači su razvili tehniku ​​napada bočnog kanala koja omogućuje korištenje postojećih neizravnih curenja podataka za oporavak sadržaja privatnih ključeva koji se nalaze u hardverski izoliranom Android Keystore. Propuštanja se utvrđuju na temelju analize aktivnosti bloka za predviđanje grananja i promjena u vremenu pristupa podacima u memoriji. U eksperimentu su istraživači uspješno demonstrirali obnavljanje 224- i 256-bitnih ECDSA ključeva iz hardverski izolirane pohrane ključeva koja se koristi u pametnom telefonu Nexus 5X. Oporavak ključa zahtijevao je generiranje oko 12 tisuća digitalnih potpisa, što je trajalo više od 14 sati. Alati korišteni za izvođenje napada Cachegrab.

Glavni uzrok problema je dijeljenje zajedničkih hardverskih komponenti i predmemorije za izračune u TrustZone iu glavnom sustavu - izolacija se izvodi na razini logičkog odvajanja, ali korištenjem zajedničkih računalnih jedinica i s tragovima izračuna i informacija o grani adrese koje se pohranjuju u zajedničku predmemoriju procesora. Korištenjem metode Prime+Probe, temeljene na procjeni promjena u vremenu pristupa predmemoriranim informacijama, moguće je, provjerom prisutnosti određenih uzoraka u predmemoriji, pratiti tokove podataka i znakove izvršenja koda povezane s izračunima digitalnih potpisa u TrustZone s prilično visokom točnošću.

Većina vremena za generiranje digitalnog potpisa korištenjem ECDSA ključeva u Qualcomm čipovima troši se na izvođenje operacija množenja u petlji pomoću inicijalizacijskog vektora koji je nepromijenjen za svaki potpis (nuncij). Ako napadač može oporaviti barem nekoliko bitova s ​​informacijama o ovom vektoru, postaje moguće izvesti napad za sekvencijalno oporavljanje cijelog privatnog ključa.

U slučaju Qualcomma, u algoritmu množenja identificirana su dva mjesta gdje su takve informacije procurile: prilikom izvođenja operacija pretraživanja u tablicama i u kodu za uvjetno dohvaćanje podataka na temelju vrijednosti posljednjeg bita u vektoru "nonce". Unatoč činjenici da Qualcommov kod sadrži mjere za suzbijanje curenja informacija kroz kanale trećih strana, razvijena metoda napada omogućuje vam da zaobiđete te mjere i odredite nekoliko bitova vrijednosti "nonce", što je dovoljno za oporavak 256-bitnih ECDSA ključeva.

Izvor: opennet.ru

Dodajte komentar