Chyba zabezpečení v čipech Qualcomm, která umožňuje extrahování soukromých klíčů z úložiště TrustZone

Výzkumníci z NCC Group odkryté podrobnosti zranitelnosti (CVE-2018-11976) v čipech Qualcomm, který umožňuje určit obsah soukromých šifrovacích klíčů umístěných v izolované enklávě Qualcomm QSEE (Qualcomm Secure Execution Environment), založené na technologii ARM TrustZone. Problém se projevuje v nejvíce Snapdragon SoC, který se rozšířil ve smartphonech založených na platformě Android. Opravy, které problém řeší, již existují zahrnuta v dubnové aktualizaci Androidu a vydání nového firmwaru pro čipy Qualcomm. Příprava opravy trvalo společnosti Qualcomm více než rok; informace o zranitelnosti byly společnosti Qualcomm původně odeslány 19. března 2018.

Připomeňme, že technologie ARM TrustZone umožňuje vytvářet hardwarově izolovaná chráněná prostředí, která jsou zcela oddělena od hlavního systému a běží na samostatném virtuálním procesoru pomocí samostatného specializovaného operačního systému. Hlavním účelem TrustZone je poskytovat izolované zpracování procesorů pro šifrovací klíče, biometrické ověřování, platební údaje a další důvěrné informace. Interakce s hlavním OS se provádí nepřímo přes dispečerské rozhraní. Soukromé šifrovací klíče jsou uloženy v hardwarově izolovaném úložišti klíčů, které, je-li správně implementováno, může zabránit jejich úniku v případě ohrožení základního systému.

Zranitelnost je způsobena chybou v implementaci algoritmu zpracování eliptické křivky, která vedla k úniku informací o průběhu zpracování dat. Výzkumníci vyvinuli techniku ​​útoku postranním kanálem, která umožňuje využít existující nepřímé úniky k obnovení obsahu soukromých klíčů umístěných v hardwarově izolovaném Úložiště klíčů Android. Úniky jsou určeny na základě analýzy aktivity bloku predikce větvení a změn doby přístupu k datům v paměti. V experimentu vědci úspěšně prokázali obnovu 224- a 256bitových klíčů ECDSA z hardwarově izolovaného úložiště klíčů používaného ve smartphonu Nexus 5X. Obnovení klíče si vyžádalo vygenerování asi 12 tisíc digitálních podpisů, což trvalo více než 14 hodin. Nástroje používané k provedení útoku Cachegrab.

Hlavní příčinou problému je sdílení společných hardwarových komponent a cache pro výpočty v TrustZone a v hlavním systému - izolace je prováděna na úrovni logického oddělení, ale za použití běžných výpočetních jednotek a se stopami výpočtů a informací o větvi adresy ukládané do společné mezipaměti procesoru. Pomocí metody Prime+Probe, založené na vyhodnocení změn doby přístupu k informacím uloženým v mezipaměti, je možné pomocí kontroly přítomnosti určitých vzorů v mezipaměti monitorovat datové toky a známky spuštění kódu spojené s výpočty digitálních podpisů v TrustZone s poměrně vysokou přesností.

Většinu času generování digitálního podpisu pomocí klíčů ECDSA v čipech Qualcomm strávíte prováděním operací násobení ve smyčce pomocí inicializačního vektoru, který se pro každý podpis nemění (nuncius). Pokud útočník dokáže obnovit alespoň několik bitů s informacemi o tomto vektoru, je možné provést útok a postupně obnovit celý soukromý klíč.

V případě Qualcommu byla v algoritmu násobení identifikována dvě místa, kde takové informace unikly: při provádění vyhledávacích operací v tabulkách a v kódu podmíněného získávání dat na základě hodnoty posledního bitu ve vektoru „nonce“. Navzdory skutečnosti, že kód Qualcomm obsahuje opatření proti únikům informací prostřednictvím kanálů třetích stran, vyvinutá metoda útoku vám umožňuje tato opatření obejít a určit několik bitů hodnoty „nonce“, které stačí k obnovení 256bitových klíčů ECDSA.

Zdroj: opennet.ru

Přidat komentář