Kwetsbaarheid in Qualcomm-chips waardoor privésleutels uit TrustZone-opslag kunnen worden gehaald

Onderzoekers van NCC Group onbedekt gegevens kwetsbaarheden (CVE-2018-11976) in Qualcomm-chips, waarmee u de inhoud kunt bepalen van privé-coderingssleutels die zich in een geïsoleerde enclave Qualcomm QSEE (Qualcomm Secure Execution Environment) bevinden, gebaseerd op ARM TrustZone-technologie. Het probleem manifesteert zich in de meerderheid Snapdragon SoC, die wijdverbreid is geworden in smartphones op basis van het Android-platform. De oplossingen die het probleem oplossen, zijn al aanwezig inbegrepen in de Android-update van april en nieuwe firmware-releases voor Qualcomm-chips. Het kostte Qualcomm meer dan een jaar om een ​​oplossing voor te bereiden; informatie over de kwetsbaarheid werd in eerste instantie op 19 maart 2018 naar Qualcomm gestuurd.

Laten we niet vergeten dat de ARM TrustZone-technologie u in staat stelt hardware-geïsoleerde, beschermde omgevingen te creëren die volledig gescheiden zijn van het hoofdsysteem en draaien op een afzonderlijke virtuele processor met behulp van een afzonderlijk gespecialiseerd besturingssysteem. Het belangrijkste doel van TrustZone is het bieden van geïsoleerde uitvoering van processors voor coderingssleutels, biometrische authenticatie, betalingsgegevens en andere vertrouwelijke informatie. Interactie met het hoofdbesturingssysteem vindt indirect plaats via de verzendinterface. Privé-coderingssleutels worden opgeslagen in een hardware-geïsoleerde sleutelopslag, die, indien correct geïmplementeerd, het lekken ervan kan voorkomen als het onderliggende systeem wordt aangetast.

De kwetsbaarheid is te wijten aan een fout in de implementatie van het elliptische curve-verwerkingsalgoritme, wat leidde tot het lekken van informatie over de voortgang van de gegevensverwerking. Onderzoekers hebben een zijkanaalaanvaltechniek ontwikkeld waarmee bestaande indirecte lekken kunnen worden gebruikt om de inhoud van privésleutels die zich in een hardware-geïsoleerde locatie bevinden, te herstellen. Android-sleutelopslag. Lekken worden vastgesteld op basis van analyse van de activiteit van het vertakkingsvoorspellingsblok en veranderingen in de toegangstijd tot gegevens in het geheugen. In het experiment hebben de onderzoekers met succes het herstel van 224- en 256-bit ECDSA-sleutels gedemonstreerd uit de hardware-geïsoleerde sleutelopslag die wordt gebruikt in de Nexus 5X-smartphone. Om de sleutel te herstellen waren ongeveer 12 digitale handtekeningen nodig, wat meer dan 14 uur duurde. Gereedschappen die zijn gebruikt om de aanval uit te voeren Cachegrijper.

De belangrijkste oorzaak van het probleem is het delen van gemeenschappelijke hardwarecomponenten en cache voor berekeningen in de TrustZone en in het hoofdsysteem - isolatie wordt uitgevoerd op het niveau van logische scheiding, maar met behulp van gemeenschappelijke rekeneenheden en met sporen van berekeningen en informatie over vertakkingen adressen die worden gedeponeerd in de gemeenschappelijke processorcache. Met behulp van de Prime+Probe-methode, gebaseerd op het beoordelen van veranderingen in de toegangstijd tot in de cache opgeslagen informatie, is het mogelijk, door de aanwezigheid van bepaalde patronen in de cache te controleren, gegevensstromen en tekenen van code-uitvoering te monitoren die verband houden met de berekeningen van digitale handtekeningen in TrustZone met redelijk hoge nauwkeurigheid.

Het genereren van een digitale handtekening met behulp van ECDSA-sleutels in Qualcomm-chips wordt het grootste deel van de tijd besteed aan het uitvoeren van vermenigvuldigingsbewerkingen in een lus met behulp van een initialisatievector die voor elke handtekening onveranderd is (nuntius). Als de aanvaller tenminste een paar bits met informatie over deze vector kan achterhalen, wordt het mogelijk een aanval uit te voeren om achtereenvolgens de gehele private sleutel te achterhalen.

In het geval van Qualcomm werden twee plaatsen geïdentificeerd waar dergelijke informatie was gelekt in het vermenigvuldigingsalgoritme: bij het uitvoeren van opzoekbewerkingen in tabellen en in de code voor het ophalen van voorwaardelijke gegevens op basis van de waarde van het laatste bit in de ‘nonce’-vector. Ondanks dat de Qualcomm-code maatregelen bevat om informatielekken via kanalen van derden tegen te gaan, kun je met de ontwikkelde aanvalsmethode deze maatregelen omzeilen en meerdere bits van de ‘nonce’-waarde bepalen, die voldoende zijn om 256-bits ECDSA-sleutels te herstellen.

Bron: opennet.ru

Voeg een reactie