Cachebleed: Krypto-Schlüssel über Cache-Zugriffe abhören

Allein über Cache-Zugriffe kann man bei bestimmten CPU-Architekturen von Intel die Krypto-Schlüssel erraten, die gerade verwendet werden – zum Beispiel von einem OpenSSL-Prozess.

In Pocket speichern vorlesen Druckansicht 24 Kommentare lesen
Cachebleed: Krypto-Schlüssel über Cache-Zugriffe abhören
Lesezeit: 2 Min.
Von
  • Fabian A. Scherschel

Drei Forscher der Universitäten von Adelaide, Tel Aviv und Pennsylvania haben eine Methode beschrieben, mit der ein Angreifer Krypto-Schlüssel über die Cache-Zugriffe der CPU ausspionieren kann. Den Trick namens Cachebleed (CVE-2016-0702) haben sie an Hand von OpenSSL und LibreSSL getestet, andere Verschlüsselungsprogramme sind wahrscheinlich auch verwundbar. Allerdings funktioniert der Angriff nur auf der Sandy-Bridge-Prozessorachitektur von Intel und eventuell älteren Prozessoren. Haswell- und Skylake-CPUs sind immun, da bei ihnen der Zugriff auf den Level-1-Cache anders umgesetzt ist (siehe Punkt 3.6.1.3 im Referenzhandbuch von Intel) .

Cachebleed ist ein Abkömmling eines sehr ähnlich gelagerten Seitenkanalangriffs namens Flush+Reload, an dem ebenfalls Yuval Yarom von der Universität Adelaide beteiligt war. Diese ältere Methode richtete sich allerdings gegen VM-Umgebungen. Bei Cachebleed muss der Angreifer auf der selben Hardware operieren, wie die Krypto-Prozesse, die er angreifen will. Den Forschern gelang es, nach 16.000 Krypto-Operationen 60 Prozent eines 4096 Bit langen RSA-Schlüssels auszulesen. Die fehlenden Teile des Schlüssels konnten sie auf einem "High-End-Server" in unter drei Minuten berechnen.

Da der Angreifer Zugriff auf die selbe Hardware wie das Opfer haben muss und der Angriff sehr komplex ist, schätzen sowohl die Entdecker als auch die OpenSSL-Entwickler das Risiko eines Angriffs als gering ein. Das plausibelste Angriffsszenario trete in Cloud-Umgebungen auf, da es auf Einzelrechnern viele Sicherheitslücken gäbe, die einfacher auszunutzen seien. Allerdings erzeugten die vielen Cache-Zugriffe auf einem Cloud-Server in der Realität zu viel Rauschen, um den Angriff in seiner momentanen Form praktikabel zu machen.

Der Angriff setzt voraus, dass Angriffs- und Opfer-Prozess jeweils in einem eigenen Hyper-Thread der CPU laufen. Das Deaktivieren von Hyperthreading führt also dazu, dass Cachebleed nicht mehr funktioniert. OpenSSL hat mit dem am 1. März veröffentlichen Update Änderungen vorgenommen, die den Angriff aushebeln. Die LibreSSL-Entwickler arbeiten ebenfalls an einem entsprechenden Update.

Wer die durchaus faszinierenden technischen Details hinter dem Angriff nicht scheut, kann mit dem Paper CacheBleed: A Timing Attack on OpenSSL ConstantTime RSA tiefer in die Materie einsteigen. (fab)