Výzkumníci ze společnosti NCC Group zranitelnosti () v čipech Qualcomm, což umožňuje zjistit obsah chráněných šifrovacích klíčů umístěných v izolovaném enclave Qualcomm QSEE (Qualcomm Secure Execution Environment), postaveném na technologii ARM TrustZone. Problém se projevuje v SoC Snapdragon, které se rozšířily ve smartphonech založených na platformě Android. Opravy, které problém vyřeší, již byly zahrnuty do dubnové aktualizace Android a do nových verzí firmwaru pro čipy Qualcomm. Společnosti Qualcomm trvalo více než rok vyvinout opravu – původní informace o zranitelnosti byly zaslány Qualcommu již 19. března 2018.
Připomínáme, že technologie ARM TrustZone umožňuje vytvářet hardwarově izolovaná zabezpečená prostředí, která jsou zcela oddělena od hlavního systému a běží na samostatném virtuálním procesoru s využitím specializovaného operačního systému. Hlavním účelem TrustZone je zajištění izolovaného provádění obslužných rutin šifrovacích klíčů, biometrické autentizace, platebních dat a dalších důvěrných informací. Interakce s hlavním OS probíhá nepřímo prostřednictvím rozhraní pro správu. Chráněné šifrovací klíče jsou uloženy uvnitř hardwarově izolovaného úložiště klíčů, což při správné implementaci umožňuje zabránit jejich úniku v případě kompromitace hlavního systému.
Zranitelnost souvisí s nedostatkem v implementaci algoritmu zpracování elliptických křivek, což vedlo k úniku informací o průběhu zpracování dat. Výzkumníci vyvinuli techniku útoku přes boční kanály, která umožňuje na základě existujících nepřímých úniků rekonstruovat obsah chráněných klíčů uložených v hardwarově izolovaném . Úniky byly identifikovány na základě analýzy aktivity bloku předpovědi přechodů a změny doby přístupu k datům v paměti. Během experimentu výzkumníci úspěšně demonstrovali obnovu 224- a 256bitových klíčů ECDSA z hardwarově izolovaného úložiště klíčů, které se používá ve smartphonu Nexus 5X. Pro obnovu klíče bylo třeba vygenerovat přibližně 12 tisíc digitálních podpisů, což zabralo více než 14 hodin. K provedení útoku byl použit nástrojový software .
Hlavním důvodem vzniku problému je sdílení společných hardwarových komponent a cache pro výpočty v TrustZone a hlavním systému — izolace je zajištěna na úrovni logického oddělení, ale s využitím společných výpočetních bloků a zanecháním stop výpočtů a informací o adresách přechodů ve společné procesorové cache. Pomocí metody Prime+Probe, založené na hodnocení změny doby přístupu k uloženým informacím, je možné s dostatečnou přesností sledovat toky dat a známky vykonávání kódu souvisejícího s výpočty digitálních podpisů v TrustZone pomocí kontroly přítomnosti určitých vzorů v cache.
Většina času potřebného k vytvoření digitálního podpisu pomocí klíčů ECDSA v čipech Qualcomm je vynakládána na provádění operací násobení v cyklu s využitím neměnného vektoru inicializace pro každý podpis (). Pokud se útočníkovi podaří obnovit alespoň několik bitů informací o tomto vektoru, vzniká možnost provedení útoku spočívajícího v sekvenčním obnovení celého uzavřeného klíče.
Pokud jde o Qualcomm, byly zjištěny dvě místa úniku podobných informací v algoritmu násobení: při provádění operací vyhledávání v tabulkách a v kódu podmínkového extrakce dat na základě hodnoty posledního bitu vektoru „nonce“. I přes přítomnost opatření proti únikům informací prostřednictvím vedlejších kanálů v kódu Qualcomm umožňuje vyvinutá metoda útoku obejít tato opatření a určit několik bitů hodnoty „nonce“, které jsou dostatečné pro obnovu 256bitových klíčů ECDSA.
Zdroj: opennet.ru
