Firmware-TPM: faulTPM knackt AMD-CPUs nach drei Stunden lokalem Zugriff

TPMs sollen Geheimnisse wie kryptographische Schlüssel schützen. IT-Forscher haben jetzt mit "faulTPM" unbefugten Zugriff auf AMDs Firmware-TPM erlangt.

In Pocket speichern vorlesen Druckansicht 102 Kommentare lesen

(Bild: Mark Mantel / heise online)

Update
Lesezeit: 5 Min.
Von
Inhaltsverzeichnis

IT-Forscher haben Angriffe auf AMDs Implementierung von fTPMs (Firmware Trusted Platform Module) gezeigt, bei denen wenige Stunden physikalischer Zugriff genügt, um die geschützten kryptografischen Geheimnisse aus dem Krypto-Co-Prozessor auszulesen. Anders als bei eigenständigen TPM-Bausteinen konnten sie dabei jedoch nicht auf die Kommunikation auf den Bus-Systemen zwischen CPU und TPM zurückgreifen. Sie mussten etwas geschickter vorgehen.

Trusted-Platform-Module sind Voraussetzung von Windows 11, sie kommen aber auch etwa bei der Festplattenverschlüsselung mit Bitlocker etwa beim "TPM-only"-Schutz zum Einsatz oder unter Linux mit systemd-cryptenroll, um Hardware-Sicherheitstoken und Geräte in LUKS2-verschlüsselte Laufwerke einzutragen.

In ihrer Forschungsarbeit auf arXiv.org beschreiben die Autoren, wie sie etwa die Verschlüsselung mit Bitlocker im "TPM only"-Modus brechen konnten. An der Arbeit war unter anderem AMDs eigener Senior Product Security Engineer Robert Buhren beteiligt – damals jedoch noch als wissenschaftlicher Mitarbeiter der TU Berlin. Der Angriff richtet sich gegen AMDs proprietäres fTPM, an dessen Ende können die IT-Sicherheitsforscher versiegelte TPM-Objekte unabhängig von ihrer Autorisationsrichtlinie entschlüsseln. Versiegelte Objekte liegen auf dem Speicher des Geräts, etwa auf der SSD, und werden mit vom TPM verwalteten Keys verschlüsselt.

Die Autoren erklären weiter, dass sie einen kleinen Codeschnippsel ausführen, der an das sogenannte "Chip-Unique Secret" der CPU gelangt. Damit lassen sich die Verschlüsselungs- und Signatur-Schlüssel für die nichtflüchtigen Daten des fTPM ableiten, die im BIOS-Flashspeicher abgelegt sind. Im Ergebnis haben die IT-Forscher damit die Möglichkeit, den nichtflüchtigen Status des fTPM zu entschlüsseln oder verändern. Das setzen sie ein, um auf die "Storage Keys" von versiegelten TPM-Objekten zuzugreifen.

Den Angriff führen sie mit Zugriff auf die Hardware aus: insbesondere auf den SPI-Bus und die Spannungsregler auf dem Motherboard. Eine sogenannte "Voltage Fault Injection"-Attacke erlaubt es den Autoren, in diversen Stellen der Firmware von AMDs Secure Processor (SP), einschließlich der dort laufenden fTPM-Anwendung, eigenen Code zu schleusen und auszuführen. Der AMD-SP ist ein spezieller Co-Prozessor mit ARMv7a-Architektur, der sonderlich geschützten Code in einer Trusted Execution Environment (TEE) ausführt.

Nachdem sie das "Chip-Unique Secret" der CPU derart ausgelesen haben, ist kein weiteres Glitching, also Ändern der Spannungen, mehr nötig. Danach reicht der Zugriff aufs Flash-BIOS, das sie einfach über den SPI-Bus des Mainboards auslesen können.

Um die Auswirkungen der faulTPM-Attacke zu prüfen, haben die IT-Forscher versucht, die Festplattenverschlüsselung Bitlocker mit den Merkmalen "TPM only" und "TPM und PIN-Schutz" zu entschlüsseln. Bei der "TPM only"-Variante, der Windows-Standard-Einstellung, kommen keine weiteren Schutzmaßnahmen zum Einsatz; durch das Knacken des fTPMs ist auch die Bitlocker-Verschlüsselung einfach zu brechen. Nur wenig anders sehe es bei der Variante mit zusätzlicher PIN aus. Eine Brute-Force-Attacke auf die PIN mit einer GPU testet den Forschern zufolge rund 1000 PINs in der Sekunde. Eine vierstellige PIN sei im Schnitt in einer halben Sekunde geknackt, zehn Stellen bräuchten immerhin 34 Minuten. TPMs in eigenständigen Bausteinen setzen der Analyse zufolge einen Bruteforce-Schutz ein, der nach einer gewissen Anzahl an Fehlversuchen neue Zugriffsversuche für zehn Minuten blockiert. Schon eine vierstellige PIN benötigt dann durchschnittlich 3,5 Tage, um sie mit der GPU-Hardware zu knacken.

Mehr Schutz biete die Option, zusätzlich zum TPM eine Passphrase zu verwenden. Selbst, wenn der TPM-Schutz wie durch die faulTPM-Attacke ausgehebelt werde, bleibe deren Komplexität erhalten.

Durchexerziert haben die IT-Sicherheitsforscher den Angriff auf den Prozessorarchitekturen Zen 2 (Ryzen 3000) und Zen 3 (Ryzen 5000), die eine gemeinsame fTPM-Implementierung nutzen. Die älteren Zen- (Ryzen 1000) und Zen+-Architekturen (Ryzen 2000) verwendeten eine andere fTPM-Umsetzung und ein anderes Speicherformat der nichtflüchtigen Daten. Sofern jemand diese jedoch mittels Reverse Engineering knacke, lasse sich derselbe Angriffsvektor nutzen. Da jedoch Angriffe zum Einschleusen von Code bekannt seien, die nicht einmal eine Fehler-Injektion benötigen, seien diese älteren CPU-Architekturen als noch schlimmer verwundbar zu betrachten.

Die Forscher listen zudem auf, welche Hardware sie zum Knacken der Verschlüsselung eingesetzt haben: Geräte wie ein Teensy-Mikroprozessor-Entwicklerboard, SPI-Flash-Programmiergerät, Logic Analyzer, Test-Clips für den Zugriff auf den Flash-Chip – am teuersten waren noch Test-Sonden mit gefederten Pins –, alles zusammen habe nicht einmal 200 US-Dollar gekostet.

Sofern Angreifer physischen Zugriff auf Systeme haben, ist in der Regel davon auszugehen, dass sie an die Daten darauf gelangen können. Der faulTPM-Angriff beweist das einmal mehr. In der TPM-Sicherheitsarchitektur finden IT-Forscher immer wieder Schwachstellen. Anfang März wurde etwa eine Schwachstelle in der TPM-2.0-Referenzimplementierung bekannt, durch die Angreifer Schadcode auf betroffene TPMs schmuggeln konnten. Auch finden gelegentlich Angriffe auf TPMs bestimmter Hersteller statt, um die darauf gespeicherten geheimen Schlüssel auszulesen.

Update

Im Text ergänzt, dass Robert Buhren zum Zeitpunkt der Forschungsarbeit als wissenschaftlicher Mitarbeiter der TU Berlin tätig war.

(dmk)