{"id":845,"date":"2014-01-01T10:54:00","date_gmt":"2014-01-01T09:54:00","guid":{"rendered":"http:\/\/blog.embedded-system-design.de\/?p=845"},"modified":"2014-01-01T10:54:00","modified_gmt":"2014-01-01T09:54:00","slug":"akustische-kryptoanalyse-das-klimpern-des-schluesselbundes","status":"publish","type":"post","link":"https:\/\/blog.embedded-system-design.de\/index.php\/2014\/01\/01\/akustische-kryptoanalyse-das-klimpern-des-schluesselbundes\/","title":{"rendered":"Akustische Kryptoanalyse: Das Klimpern des Schl\u00fcsselbundes"},"content":{"rendered":"<p>Daniel Genkin, Adi Shamir (das S in RSA) und Eran Tromer haben kurz vor Weihnachten einen interessanten Seitenkanalangriff auf die RSA-Verschl\u00fcsselung mit GnuPG publiziert. Ich lese gerade das 57-seitige Originalpapier <em>&#8222;RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis&#8220;<\/em> dazu. Darin gelang es ihnen, in normaler B\u00fcroumgebung 4096-Bit lange private Schl\u00fcssel \u00fcber die Analyse des akustischen Ger\u00e4usches, dass der Computer beim Dechiffrieren pr\u00e4parierter Chiffren macht, binnen einer Stunde vollst\u00e4ndig zu extrahieren.<\/p>\n<p>Ausgenutzt wird dabei, die Art und Weise, wie gro\u00dfe 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.<\/p>\n<p>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\u00f6nnen.<\/p>\n<p>Je nach Computertyp und Alter erh\u00e4lt man das wohl auch in einem niedrigeren Frequenzbereich, so dass ein automatisierter Angriff mit einem Smartphone in kurzem Abstand denkbar ist: Ein Tool k\u00f6nnte z.B. Chiffren per Mail schicken und das Ger\u00e4usch der eventuell automatisch durchs Mailprogramm angesto\u00dfene Entschl\u00fcsselung analysieren. Mit jedem entschl\u00fcsselten Chiffre gewinnt der Angreifer 1 Schl\u00fcsselbit und passt entsprechend das n\u00e4chste Chiffre an.<\/p>\n<p>Gegenma\u00dfnahmen:<\/p>\n<ul>\n<li>Akustische Abschirmung und Umgebungsger\u00e4usche, u.a. auch L\u00fcfter erschweren den Angriff.<\/li>\n<li>Parallele Berechnungen verschieben das Signal leider in einen niedrigeren Frequenzbereich und beg\u00fcnstigen somit Angriffe. Meinem Verst\u00e4ndnis nach m\u00fcssten Prozessunterbrechungen eine zuf\u00e4llige Dauer haben, so dass ein Angreifer nicht mehr sinnvoll gegen Templates matchen kann.<\/li>\n<li>Normalisierung des Ciphertext sowie Anreicherung von Modulus und Ciphertext mit Zufallswerten lassen sich vor der Ausf\u00fchrung der Multiplikation implementieren, so dass aus dem geleakten Signal nicht mehr auf den Schl\u00fcssel geschlossen werden kann.<\/li>\n<\/ul>\n<p>Die letzten aufgef\u00fchrten Gegenma\u00dfnahmen sind in GnuPG 1.4.16 eingebaut:<\/p>\n<p>GnuPG 1.4.16 fixt RSA-Schl\u00fcsselaxtraktion via akustischem Seitenkanal [CVE-2013-4576]<br \/>\n<a href=\"http:\/\/seclists.org\/oss-sec\/2013\/q4\/520\">http:\/\/seclists.org\/oss-sec\/2013\/q4\/520<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Daniel Genkin, Adi Shamir (das S in RSA) und Eran Tromer haben kurz vor Weihnachten einen interessanten Seitenkanalangriff auf die RSA-Verschl\u00fcsselung mit GnuPG publiziert. Ich lese gerade das 57-seitige Originalpapier &#8222;RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis&#8220; dazu. Darin gelang es ihnen, in normaler B\u00fcroumgebung 4096-Bit lange private Schl\u00fcssel \u00fcber die Analyse des akustischen Ger\u00e4usches, &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.embedded-system-design.de\/index.php\/2014\/01\/01\/akustische-kryptoanalyse-das-klimpern-des-schluesselbundes\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,13],"tags":[32,48],"_links":{"self":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/845"}],"collection":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/comments?post=845"}],"version-history":[{"count":0,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/845\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/categories?post=845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/tags?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}