Akustische Kryptoanalyse: Das Klimpern des Schlüsselbundes

Daniel Genkin, Adi Shamir (das S in RSA) und Eran Tromer haben kurz vor Weihnachten einen interessanten Seitenkanalangriff auf die RSA-Verschlüsselung mit GnuPG publiziert. Ich lese gerade das 57-seitige Originalpapier „RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis“ dazu. Darin gelang es ihnen, in normaler Büroumgebung 4096-Bit lange private Schlüssel über die Analyse des akustischen Geräusches, dass der Computer beim Dechiffrieren präparierter Chiffren macht, binnen einer Stunde vollständig zu extrahieren.

Ausgenutzt wird dabei, die Art und Weise, wie große Zahlen von GnuPG multipliziert werden, dass GnuPG den Ciphertext unverarbeitet an diese Multiplikationsroutine weiterreicht, und dass das dabei entstehende Stromlastprofil mechanische Schwingungen in Kondensatoren hervorruft.

Das Papier liest sich spannend. Bei einem Lenovo Thinkpad T61 haben sie ein nutzbares Signal im Ultraschallbereich zwischen 30kHz und 40kHz per Richtmikrofon im Abstand von bis zu 4 Metern gewinnen können.

Je nach Computertyp und Alter erhält man das wohl auch in einem niedrigeren Frequenzbereich, so dass ein automatisierter Angriff mit einem Smartphone in kurzem Abstand denkbar ist: Ein Tool könnte z.B. Chiffren per Mail schicken und das Geräusch der eventuell automatisch durchs Mailprogramm angestoßene Entschlüsselung analysieren. Mit jedem entschlüsselten Chiffre gewinnt der Angreifer 1 Schlüsselbit und passt entsprechend das nächste Chiffre an.

Gegenmaßnahmen:

  • Akustische Abschirmung und Umgebungsgeräusche, u.a. auch Lüfter erschweren den Angriff.
  • Parallele Berechnungen verschieben das Signal leider in einen niedrigeren Frequenzbereich und begünstigen somit Angriffe. Meinem Verständnis nach müssten Prozessunterbrechungen eine zufällige Dauer haben, so dass ein Angreifer nicht mehr sinnvoll gegen Templates matchen kann.
  • Normalisierung des Ciphertext sowie Anreicherung von Modulus und Ciphertext mit Zufallswerten lassen sich vor der Ausführung der Multiplikation implementieren, so dass aus dem geleakten Signal nicht mehr auf den Schlüssel geschlossen werden kann.

Die letzten aufgeführten Gegenmaßnahmen sind in GnuPG 1.4.16 eingebaut:

GnuPG 1.4.16 fixt RSA-Schlüsselaxtraktion via akustischem Seitenkanal [CVE-2013-4576]
http://seclists.org/oss-sec/2013/q4/520