GoFetch: Seitenkanal-Angriff auf Apple-Chips gefährdet Krypto-Schlüssel
Prozessoren aus Apples eigener Fertigung sind anfällig für einen Angriff auf deren Optimierungsfunktionen. Den Fehler zu beheben, wird wohl Performance kosten.
Sicherheitslücken in Prozessoren sind für Hersteller und Anwender oft lästig. Anders als Softwarefehler lassen sie sich nicht durch ein simples Update beheben, sondern erfordern tiefe Eingriffe in das CPU-Design. So auch GoFetch, eine neuentdeckte Lücke in Prozessoren aus Apples M-Serie, die etwa in iPads und Macs verbaut sind. Deren Optimierungsroutinen konnten die Entdecker durch speziell präparierte Daten, die wie Speicheradressen aussehen, austricksen und so geheime kryptografische Schlüssel aus dem Prozessorcache auslesen.
Ansatzpunkt für GoFetch, eine Entdeckung amerikanischer Wissenschaftler, ist der sogenannte "data memory-dependent prefetcher" oder DMP. Dieser ist Teil der Optimierungsmechanismen von Apple-CPUs und versucht, Speicheradressen vorherzusagen, auf die ein Programm bald zugreifen wird, um diese schon einmal "auf Verdacht" in den Prozessorcache laden zu können. Dazu versucht der DMP Pointer, also Speicheradressen automatisch innerhalb der Daten zu erkennen und die dort hinterlegten Daten vorsorglich schon zu laden. Falls DMP richtig geraten hat, erfolgt der spätere Zugriff deutlich schneller. Und wenn nicht, schadet es zumindest nicht – dachten vermutlich die Chip-Designer und irrten damit gewaltig.
So funktioniert GoFetch
Denn die Wissenschaftler machen sich den daraus entstehenden Unterschied in der Ausführungszeit zunutze. Sie versorgen einen Krypto-Algorithmus mit speziell präparierten Daten, die dafür sorgen, dass bei Zwischenschritten der kryptografischen Operationen Daten im Speicher manchmal wie ein Pointer auf später benötigte Daten aussehen. Ob das DMP da einen solchen Pointer sieht oder nicht, entscheiden jeweils bestimmte Bits des benutzten, geheimen Schlüssels.
Indem die Forscher die für den Speicherzugriff benötigte Zeit messen, erfahren sie, wie sich das DMP entschieden hatte und können unter bestimmten Bedingungen, die sie in ihrem Aufsatz ausführlich erläutern, daraus ableiten, welche Werte dieser Teil des geheimen Schlüssels haben muss. Das wiederholen sie für ihren GoFetch-Angriff, bis sie den kompletten geheimen Schlüssel ermittelt haben. Es gelang den Wissenschaftlern auf diese Weise, in knapp einer halben Stunde einen geheimen RSA-Schlüssel zusammenzupuzzlen und nach zwei Stunden den Schlüssel für einen Diffie-Hellman-Schlüsselaustausch zu rekonstruieren.
Auch Post-Quantum-Kryptografie ist betroffen: Kyber-512-Schlüssel fanden die Forscher in fünfeinhalb, einen Dilithium-2-Schlüssel in gut 14 Stunden. Da sie direkten CPU-Zugriff benötigen, müssen die Angreifer lokal Code ausführen. Zudem ist GoFetch keine Universal-Hintertür zur Ermittlung beliebiger Kryptoschlüssel; für jeden attackierten Algorithmus mussten die Experten zunächst einen wunden Punkt finden, an dem ihr Seitenkanalangriff ansetzen konnte. Den Ablauf eines konkreten Angriffs präsentieren die Wissenschaftler auch in einem Video auf ihrer Website.
Der GoFetch-Angriff basiert auf der Vorarbeit eines internationalen Teams, das bereits vor zwei Jahren auf den lückenhaften DMP in Apple-CPUs aufmerksam geworden war. Damals hatten die Wissenschaftler bereits richtig eingeschätzt, dass Datenlecks des DMP zu einem Sicherheitsproblem werden könnten, hatten aber keine Möglichkeit gefunden, diesen Umstand in einen praktikablen Angriff umzumünzen. Das ist nun anders.
Apple-Prozessoren ab M1 betroffen
Die Wissenschaftler haben ihren Angrif auf M1-Prozessoren getestet, halten die nachfolgenden Generationen M2 und M3 aber auch für angreifbar. Sie mutmaßen auf der Projektwebseite, dass auch Varianten wie der M2 Pro aufgrund ihrer identischen Mikroarchitektur von GoFetch betroffen sind, geben aber an, keine eigenen Tests durchgeführt zu haben. Damit leiden nicht nur Macs, sondern auch iPads und die brandneue Mixed-Reality-Brille Vision Pro unter der Sicherheitslücke.
Diese zu beheben, wird nicht ganz einfach: Da der Fehler in einem Element der CPU lauert, ist es mit einem Softwareflicken nicht getan. Entwickler kryptografischer Routinen und Bibliotheken wie etwa OpenSSL können auf neuen M3-CPUs den DMP deaktivieren, was natürlich Leistung kostet. Zudem hilft eine Methode namens "Input Blinding", GoFetch zu verhindern – auch hier können Ver- und Entschlüsselungsroutinen aber bis zu 50% Leistung einbüßen.
Das spekulative Ausführen bestimmter Aktionen durch die CPU zu Optimierungszwecken ist seit Jahren immer wieder die Quelle unterschiedlich schwerer Sicherheitslücken. Spectre und Meltdown gelten als die bekanntesten Vertreter solcher Seitenkanalangriffe gegen Prozessoren. Bis heute veröffentlichen Sicherheitsforscher Varianten von Spectre für aktuelle Systeme.
(cku)