Sårbarhet i Qualcomm-chips som gör att privata nycklar kan extraheras från TrustZone-lagring

Forskare från NCC Group avslöjats detaljer sårbarheter (CVE-2018-11976) i Qualcomm-chips, som låter dig bestämma innehållet i privata krypteringsnycklar som finns i en isolerad enklav Qualcomm QSEE (Qualcomm Secure Execution Environment), baserad på ARM TrustZone-teknik. Problemet visar sig i mest Snapdragon SoC, som har blivit utbredd i smartphones baserade på Android-plattformen. De korrigeringar som åtgärdar problemet finns redan ingår i april-uppdateringen av Android och nya firmware-versioner för Qualcomm-chips. Det tog Qualcomm mer än ett år att förbereda en åtgärd; information om sårbarheten skickades ursprungligen till Qualcomm den 19 mars 2018.

Låt oss komma ihåg att ARM TrustZone-teknik låter dig skapa hårdvaruisolerade skyddade miljöer som är helt separerade från huvudsystemet och körs på en separat virtuell processor med ett separat specialiserat operativsystem. Huvudsyftet med TrustZone är att tillhandahålla isolerad exekvering av processorer för krypteringsnycklar, biometrisk autentisering, betalningsdata och annan konfidentiell information. Interaktion med huvudoperativsystemet utförs indirekt via sändningsgränssnittet. Privata krypteringsnycklar lagras i ett hårdvaruisolerat nyckellager, som, om det implementeras på rätt sätt, kan förhindra deras läckage om det underliggande systemet äventyras.

Sårbarheten beror på ett fel i implementeringen av den elliptiska kurvan bearbetningsalgoritmen, vilket ledde till läckage av information om framstegen i databehandlingen. Forskare har utvecklat en sidokanalattackteknik som gör det möjligt att använda befintliga indirekta läckor för att återställa innehållet i privata nycklar som finns i en hårdvaruisolerad Android Keystore. Läckor bestäms baserat på analys av aktiviteten hos grenprediktionsblocket och ändringar i åtkomsttiden till data i minnet. I experimentet demonstrerade forskarna framgångsrikt återställningen av 224- och 256-bitars ECDSA-nycklar från den hårdvaruisolerade nyckelbutiken som används i Nexus 5X-smarttelefonen. Att återställa nyckeln krävde generering av cirka 12 tusen digitala signaturer, vilket tog mer än 14 timmar. Verktyg som användes för att utföra attacken Cachegrab.

Den främsta orsaken till problemet är delning av vanliga hårdvarukomponenter och cache för beräkningar i TrustZone och i huvudsystemet - isolering utförs på nivån av logisk separation, men med vanliga beräkningsenheter och med spår av beräkningar och information om gren adresser som deponeras i den gemensamma processorcachen. Genom att använda Prime+Probe-metoden, baserat på att bedöma förändringar i åtkomsttid till cachad information, är det möjligt, genom att kontrollera förekomsten av vissa mönster i cachen, att övervaka dataflöden och tecken på kodexekvering som är förknippade med beräkningar av digitala signaturer i TrustZone med ganska hög noggrannhet.

Den mesta tiden för att generera en digital signatur med hjälp av ECDSA-nycklar i Qualcomm-chips går åt till att utföra multiplikationsoperationer i en loop med en initieringsvektor som är oförändrad för varje signatur (nuncio). Om angriparen kan återställa åtminstone några bitar med information om denna vektor, blir det möjligt att utföra en attack för att sekventiellt återställa hela den privata nyckeln.

I fallet med Qualcomm identifierades två platser där sådan information läckte i multiplikationsalgoritmen: vid utförande av uppslagsoperationer i tabeller och i den villkorliga datahämtningskoden baserat på värdet av den sista biten i "nonce"-vektorn. Trots att Qualcomm-koden innehåller åtgärder för att motverka informationsläckor genom tredjepartskanaler, låter den utvecklade attackmetoden dig kringgå dessa åtgärder och bestämma flera bitar av "nonce"-värdet, vilket är tillräckligt för att återställa 256-bitars ECDSA-nycklar.

Källa: opennet.ru

Lägg en kommentar