Forscher von NCC Group der Schwachstelle () in Qualcomm-Chips, die es ermöglichen, den Inhalt von geheimen Verschlüsselungsschlüsseln zu bestimmen, die im isolierten Enklaven von Qualcomm QSEE (Qualcomm Secure Execution Environment) basieren und auf ARM TrustZone-Technologie beruhen. Das Problem tritt in Snapdragon SoCs auf, die in Android-basierten Smartphones verbreitet sind. Die Korrekturen, die das Problem beheben, wurden bereits in das April-Update von Android und in neue Firmware-Versionen für Qualcomm-Chips integriert. Qualcomm benötigte mehr als ein Jahr, um eine Lösung vorzubereiten – die ursprünglichen Informationen über die Schwachstelle wurden bereits am 19. März 2018 an Qualcomm übermittelt.
Wir erinnern daran, dass die ARM TrustZone-Technologie hardwareisolierte, sichere Umgebungen schafft, die vollständig von dem Hauptsystem getrennt sind und auf einem separaten virtuellen Prozessor mit einem speziellen Betriebssystem ausgeführt werden. Der Hauptzweck von TrustZone besteht darin, die isolierte Ausführung von Schlüsseln für die Verschlüsselung, biometrischer Authentifizierung, Zahlungsdaten und anderer vertraulicher Informationen zu gewährleisten. Die Interaktion mit dem Hauptbetriebssystem erfolgt indirekt über eine Dispatcher-Schnittstelle. Geschlossene Verschlüsselungsschlüssel werden in einem hardwareisolierten Schlüsselspeicher abgelegt, was bei ordnungsgemäßer Implementierung einen Austritt im Falle einer Kompromittierung des Hauptsystems verhindern kann.
Die Schwachstelle hängt mit einer Unzulänglichkeit in der Implementierung des Algorithmus zur Verarbeitung elliptischer Kurven zusammen, die zu einer Informationsleckage über den Verlauf der Datenverarbeitung führte. Forscher entwickelten eine Seitenkanalangriffstechnik, die es ermöglichte, den Inhalt der in einer hardware-isolierten Umgebung gespeicherten geheimen Schlüssel aus vorhandenen indirekten Lecks wiederherzustellen. . Die Lecks werden durch die Analyse der Aktivität des Sprungvorhersageblocks und der Änderung der Zugriffszeiten auf die Daten im Speicher bestimmt. Im Rahmen des Experiments konnten die Forscher erfolgreich 224- und 256-Bit ECDSA-Schlüssel aus dem hardware-isolierten Schlüsselspeicher eines Nexus 5X-Smartphones wiederherstellen. Die Wiederherstellung des Schlüssels erforderte die Generierung von etwa 12.000 digitalen Signaturen, was mehr als 14 Stunden in Anspruch nahm. Für den Angriff wurde das Tool .
Der Hauptgrund für das Problem liegt in der gemeinsamen Nutzung von Hardwarekomponenten und Cache für Berechnungen im TrustZone und im Hauptsystem – die Isolation erfolgt auf der Ebene der logischen Trennung, jedoch unter Verwendung gemeinsamer Verarbeitungseinheiten. Dabei werden Spuren von Berechnungen und Informationen über Übergangsadressen im gemeinsamen Prozessork cache hinterlassen. Mit der Prime+Probe-Methode, die auf der Bewertung der Veränderung der Zugriffszeiten auf zwischengespeicherte Informationen basiert, kann man mit ausreichend hoher Genauigkeit Datenströme sowie Hinweise auf die Ausführung von Code, der mit der Berechnung digitaler Signaturen im TrustZone verbunden ist, verfolgen.
Der größte Teil der Zeit zur Erzeugung einer digitalen Signatur unter Verwendung von ECDSA-Schlüsseln in Qualcomm-Chips entfällt auf die Durchführung von Multiplikationsoperationen in einer Schleife, die denselben Initialisierungsvektor verwendet,. Wenn ein Angreifer es schafft, auch nur einige Bits der Information über diesen Vektor wiederherzustellen, besteht die Möglichkeit, einen Angriff zum sequentiellen Wiederherstellen des gesamten privaten Schlüssels durchzuführen.
Bei Qualcomm wurden zwei Stellen für Informationslecks im Multiplikationsalgorithmus festgestellt: Bei der Durchführung von Suchoperationen in Tabellen und im Code zur bedingten Datenextraktion, basierend auf dem Wert des letzten Bits im „nonce“-Vektor. Trotz der im Qualcomm-Code vorhandenen Maßnahmen zur Bekämpfung von Informationen, die über externe Kanäle geleakt werden, ermöglicht die entwickelte Angriffsmethode, diese Maßnahmen zu umgehen und mehrere Bits des „nonce“-Werts zu bestimmen, die ausreichen, um 256-Bit ECDSA-Schlüssel wiederherzustellen.
Quelle: opennet.ru
