Original-URL des Artikels: https://www.golem.de/news/cachebleed-angriff-cpu-cache-kann-private-schluessel-verraten-1603-119497.html    Veröffentlicht: 02.03.2016 07:36    Kurz-URL: https://glm.io/119497

Cachebleed-Angriff

CPU-Cache kann private Schlüssel verraten

Forschern ist es gelungen, RSA-Verschlüsselungsoperationen von OpenSSL mittels eines Cache-Timing-Angriffs zu belauschen und so den privaten Key zu knacken. Der Cachebleed-Angriff nutzt dabei Zugriffskonflikte auf den Cache-Speicher.

Der Cache von Intel-Prozessoren kann zum Risiko werden: Einem Team von Kryptographen ist es gelungen, einen von OpenSSL genutzten privaten RSA-Schlüssel mittels einer Cache-Timing-Attacke zu extrahieren. Gegenmaßnahmen gegen den sogenannten Cachebleed-Angriff wurden jetzt in OpenSSL implementiert, vermutlich sind aber weitere Verschlüsselungsbibliotheken betroffen.

Zugriffskonflikt auf Cache-Speicher

Beim Zugriff auf den CPU-Cache kann es auf Prozessoren der Sandy-Bridge-Reihe zu Zugriffskonflikten kommen. Versuchen zwei Prozesse gleichzeitig auf dieselbe Cache-Zelle zuzugreifen, entsteht ein Konflikt, nur einem Prozess wird der Zugriff erlaubt.

Durch diese Zugriffskonflikte gelang es den Forschern, Informationen über das Zugriffsmuster der Multiplikationsoperation von OpenSSL zu extrahieren. Für einen erfolgreichen Angriff müssen etwa 16.000 Verschlüsselungsoperationen beobachtet werden.

Anschließend hat ein Angreifer etwa 60 Prozent des privaten RSA-Schlüssels. Das reicht, um den gesamten Schlüssel zu erhalten. Für einen 4.096-Bit-Schlüssel benötigten die Cachebleed-Autoren etwa zwei Stunden auf einem gewöhnlichen PC.

Ursache des Angriffs ist, dass die OpenSSL-RSA-Operationen Speicherzugriffe nach bestimmten Mustern durchführen, die durch den privaten Schlüssel beeinflusst sind. Überraschend ist, dass dieser Angriff funktioniert, obwohl OpenSSL bereits Gegenmaßnahmen gegen Seitenkanalangriffe implementiert hat.

Das praktische Risiko durch den Angriff ist eher gering einzuschätzen, wie die Autoren schreiben. Denkbar wäre ein Szenario, in dem ein Angreifer einen Account auf demselben Server hat wie das Opfer. In typischen Cloud-Umgebungen dürfte der Angriff jedoch in den meisten Fällen durch andere parallel laufende Prozesse gestört werden.

Neuere Prozessoren aus der Haswell-Serie sind von dem Angriff nicht betroffen, da dort derartige Cache-Zugriffskonflikte nicht auftreten. Ein Abschalten der Hyperthreading-Funktion kann den Angriff ebenfalls verhindern. Ob Prozessoren anderer Hersteller und Architekturen ebenfalls betroffen sind, wurde nicht untersucht.

OpenSSL implementiert Gegenmaßnahmen

OpenSSL hat mit dem gerade veröffentlichten Update die RSA-Operationen so verändert, dass sie den Angriff vereiteln. NSS ist laut den Cachebleed-Autoren vermutlich ebenfalls betroffen, dafür steht jedoch noch kein Update bereit. Vermutlich haben zahlreiche andere RSA-Implementierungen ähnliche Probleme.

Mit dem OpenSSL-Update auf 1.0.2g und 1.0.1s wurden neben Cachebleed noch weitere weniger kritische Sicherheitslücken behoben. Wegen des Drown-Angriffs ist das SSLv2-Protokoll künftig standardmäßig deaktiviert.  (hab)


Verwandte Artikel:
Trustico/Digicert: Chaos um 23.000 Zertifikate und private Schlüssel   
(01.03.2018, https://glm.io/133077 )
Verschlüsselung: Github testet Abschaltung alter Krypto   
(09.02.2018, https://glm.io/132684 )
Adi Shamir: Den Air Gap überwinden   
(16.10.2014, https://glm.io/109881 )
Memcmp: Timing-Attacke auf Philips-Lichtschalter   
(10.08.2014, https://glm.io/108466 )
Meltdown und Spectre: NSA will nichts von Prozessor-Schwachstelle gewusst haben   
(07.01.2018, https://glm.io/131999 )

© 1997–2019 Golem.de, https://www.golem.de/