Výskumníci z firmy NCC Group zraniteľnosti () v čipoch Qualcomm, ktorá umožňuje určiť obsah uzavretých šifrovacích kľúčov umiestnených v izolovanom enclave Qualcomm QSEE (Qualcomm Secure Execution Environment), založenom na technológii ARM TrustZone. Problém sa prejavuje v SoC Snapdragon, ktoré sú bežne používané v smartfónoch na platforme Android. Opravy, ktoré tento problém odstránia, už sú súčasťou aprílového aktualizácie Android a v nových vydaniach firmvérov pre čipy Qualcomm. Príprava opravy si od spoločnosti Qualcomm vyžiadala viac ako rok — pôvodné informácie o zraniteľnosti boli spoločnosti Qualcomm doručené ešte 19. marca 2018.
Pripomeňme, že technológia ARM TrustZone umožňuje vytvárať hardvérovo izolované bezpečné prostredia, ktoré sú úplne oddelené od hlavného systému a vykonávajú sa na samostatnom virtuálnom procesore s použitím samostatného špecializovaného operačného systému. Hlavným účelom TrustZone je zabezpečiť izolované vykonávanie spracovateľov šifrovacích kľúčov, biometrickej autentifikácie, platobných údajov a iných dôverných informácií. Interakcia s hlavnou operačnou systémom prebieha nepriamo cez rozhranie správy. Uzavreté šifrovacie kľúče sú umiestnené vo vnútornom hardvérovo izolovanom úložisku kľúčov, čo pri správnej implementácii zabraňuje ich úniku v prípade kompromitácie hlavného systému.
Zraniteľnosť súvisí s nedostatkom v implementácii algoritmu spracovania eliptických kriviek, čo viedlo k úniku informácií o postupe spracovania údajov. Výskumníci vyvinuli techniku útoku prostredníctvom postranných kanálov, ktorá umožňuje na základe existujúcich nepriamych únikov obnoviť obsah uzavretých kľúčov umiestnených v hardvérovo izolovanom . Úniky sú určené na základe analýzy aktivít bloku predpovedania prechodov a zmien času prístupu k dátam v pamäti. Počas experimentu vedci úspešne preukázali obnovu 224- a 256-bitových kľúčov ECDSA zo hardvérovo izolovaného úložišťa kľúčov používaného v smartfóne Nexus 5X. Na obnovu kľúča bolo potrebné vygenerovať približne 12 tisíc digitálnych podpisov, na čo sa minulo viac ako 14 hodín. Na vykonanie útoku bol použitý nástrojový balík. .
Hlavnou príčinou problému je zdieľanie spoločných hardvérových komponentov a cache pre výpočty v TrustZone a v hlavnom systéme — izolácia je vykonaná na úrovni logického delenia, ale s použitím spoločných výpočtových blokov a s usadením stôp výpočtov a informácií o adresách prechodov v spoločnej cache procesora. Pomocou metódy Prime+Probe, založenej na hodnotení zmeny času prístupu k predcacheovanej informácii, je možné s dostatočne vysokou presnosťou sledovať prúdy dát a znaky vykonávania kódu spojeného s výpočtami digitálnych podpisov v TrustZone, prostredníctvom kontroly prítomnosti určitých vzorov v cache.
Veľká časť času potrebného na vytvorenie digitálneho podpisu s použitím ECDSA kľúčov v čipoch Qualcomm sa vynakladá na vykonávanie operácií násobenia v slučke s použitím nezmeneného vektora inicializácie pre každý podpis (). Ak útočník dokáže obnoviť aspoň niekoľko bitov informácií o tomto vektore, vzniká možnosť uskutočniť útok na sekvenčné obnovenie celého súkromného kľúča.
V prípade Qualcomm boli identifikované dve miesta úniku podobných informácií v algoritme násobenia: pri vykonávaní operácií vyhľadávania v tabuľkách a v kóde podmienečného získavania údajov na základe hodnoty posledného bitu vo vektore „nonce“. Napriek tomu, že kód Qualcomm obsahuje opatrenia na protiútok proti únikom informácií prostredníctvom bočných kanálov, vyvinutá metóda útoku umožňuje obísť tieto opatrenia a identifikovať niekoľko bitov hodnoty „nonce“, čo je dostatočné na obnovu 256-bitových kľúčov ECDSA.
Zdroj: opennet.ru
