Sicherheitslücke in Qualcomm-Chips, die das Extrahieren privater Schlüssel aus dem TrustZone-Speicher ermöglicht

Forscher der NCC Group unbedeckt Einzelheiten Schwachstellen (CVE-2018-11976) in Qualcomm-Chips, mit dem Sie den Inhalt privater Verschlüsselungsschlüssel ermitteln können, die sich in einer isolierten Enklave Qualcomm QSEE (Qualcomm Secure Execution Environment) befinden, basierend auf der ARM TrustZone-Technologie. Das Problem manifestiert sich in die meisten Snapdragon SoC, der in Smartphones auf Basis der Android-Plattform weit verbreitet ist. Die Fixes, die das Problem beheben, sind bereits vorhanden enthalten im April Android-Update und neue Firmware-Releases für Qualcomm-Chips. Qualcomm brauchte mehr als ein Jahr, um einen Fix vorzubereiten; Informationen über die Schwachstelle wurden erstmals am 19. März 2018 an Qualcomm gesendet.

Erinnern wir uns daran, dass Sie mit der ARM TrustZone-Technologie hardwareisolierte, geschützte Umgebungen erstellen können, die vollständig vom Hauptsystem getrennt sind und auf einem separaten virtuellen Prozessor unter Verwendung eines separaten spezialisierten Betriebssystems ausgeführt werden. Der Hauptzweck von TrustZone besteht darin, die isolierte Ausführung von Prozessoren für Verschlüsselungsschlüssel, biometrische Authentifizierung, Zahlungsdaten und andere vertrauliche Informationen bereitzustellen. Die Interaktion mit dem Hauptbetriebssystem erfolgt indirekt über die Dispatch-Schnittstelle. Private Verschlüsselungsschlüssel werden in einem hardwareisolierten Schlüsselspeicher gespeichert, der bei ordnungsgemäßer Implementierung ihre Offenlegung verhindern kann, wenn das zugrunde liegende System kompromittiert wird.

Die Schwachstelle ist auf einen Fehler in der Implementierung des Algorithmus zur Verarbeitung elliptischer Kurven zurückzuführen, der zum Verlust von Informationen über den Fortschritt der Datenverarbeitung führte. Forscher haben eine Seitenkanal-Angriffstechnik entwickelt, die es ermöglicht, bestehende indirekte Lecks zu nutzen, um den Inhalt von privaten Schlüsseln wiederherzustellen, die sich in einer Hardware-isolierten Umgebung befinden Android-Keystore. Lecks werden basierend auf der Analyse der Aktivität des Verzweigungsvorhersageblocks und Änderungen in der Zugriffszeit auf Daten im Speicher ermittelt. Im Experiment demonstrierten die Forscher erfolgreich die Wiederherstellung von 224- und 256-Bit-ECDSA-Schlüsseln aus dem hardwareisolierten Schlüsselspeicher, der im Nexus 5X-Smartphone verwendet wird. Die Wiederherstellung des Schlüssels erforderte die Generierung von etwa 12 digitalen Signaturen, was mehr als 14 Stunden dauerte. Zur Durchführung des Angriffs verwendete Werkzeuge Cachegrab.

Die Hauptursache des Problems ist die gemeinsame Nutzung gemeinsamer Hardwarekomponenten und des Caches für Berechnungen in der TrustZone und im Hauptsystem – die Isolierung erfolgt auf der Ebene der logischen Trennung, jedoch unter Verwendung gemeinsamer Recheneinheiten und mit Spuren von Berechnungen und Informationen über die Verzweigung Adressen werden im gemeinsamen Prozessor-Cache abgelegt. Mit der Prime+Probe-Methode, die auf der Bewertung von Änderungen in der Zugriffszeit auf zwischengespeicherte Informationen basiert, ist es möglich, durch Überprüfung des Vorhandenseins bestimmter Muster im Cache Datenflüsse und Anzeichen der Codeausführung im Zusammenhang mit den Berechnungen digitaler Signaturen zu überwachen TrustZone mit ziemlich hoher Genauigkeit.

Die meiste Zeit zum Generieren einer digitalen Signatur mithilfe von ECDSA-Schlüsseln in Qualcomm-Chips wird damit verbracht, Multiplikationsoperationen in einer Schleife unter Verwendung eines Initialisierungsvektors durchzuführen, der für jede Signatur unverändert bleibt (Nuntius). Wenn der Angreifer zumindest einige Bits mit Informationen über diesen Vektor wiederherstellen kann, wird es möglich, einen Angriff durchzuführen, um nacheinander den gesamten privaten Schlüssel wiederherzustellen.

Im Fall von Qualcomm wurden im Multiplikationsalgorithmus zwei Stellen identifiziert, an denen solche Informationen durchsickerten: bei der Durchführung von Suchoperationen in Tabellen und im bedingten Datenabrufcode basierend auf dem Wert des letzten Bits im „Nonce“-Vektor. Obwohl der Qualcomm-Code Maßnahmen zur Bekämpfung von Informationslecks über Kanäle Dritter enthält, können Sie mit der entwickelten Angriffsmethode diese Maßnahmen umgehen und mehrere Bits des „Nonce“-Werts ermitteln, die ausreichen, um 256-Bit-ECDSA-Schlüssel wiederherzustellen.

Source: opennet.ru

Kommentar hinzufügen