OpenSSL soll das Internet durch Verschlüsseln sicherer machen. Durch einen jetzt bekannt gewordenen Fehler ist aber genau das Gegenteil eingetreten.
“Eine schlechte Verschlüsselung ist immer noch besser als gar keine”, lautet eine kryptologische Binsenweisheit.
Mit Recht, denn eine Karten-Geheimnummer wie “AHYY NPUG RVAF SHRAS” lässt sich zwar leicht entschlüsseln. Doch nicht jeder Kartendieb hat eine kryptologische Ader, und so wird sich ein Krimineller möglicherweise erst gar nicht mit den seltsamen Buchstaben beschäftigen.
In die gleiche Richtung geht eine derzeit von vielen Sicherheitsexperten (z. B. Bruce Schneier) geäußerte Empfehlung: Je mehr wir verschlüsseln, desto schwieriger wird es für die diversen Schnüffelorganisationen, uns zu überwachen – auch wenn nicht jede Verschlüsselung zu 100 Prozent sicher ist.
Unpassend: der Heartbleed-Bug
So gesehen ist es höchst unpassend, dass momentan eine Verschlüsselungssoftware Schlagzeilen macht, für die gilt: Auf sie zu verzichten ist sicherer, als sie zu nutzen. Das ist etwa so, als würde im Fußball ein Stürmer mehr Eigentore als richtige Tore schießen.
Die Rede ist von OpenSSL. Dabei handelt es sich um eine Open-Source-Implentierung des TLS-Protokolls (wie TLS funktioniert, steht in meinem Buch Kryptografie – Verfahren, Protokolle, Infrastrukturen). In OpenSSL wurde ein Fehler entdeckt, der als “Heartbleed-Bug” bezeichnet wird. Durch diesen Fehler gibt eine OpenSSL-Instanz Daten preis, die normalerweise weder verschlüsselt noch unverschlüsselt sichtbar sind.
Und so funktioniert’s: TLS sieht eine Funktion namens “Heartbeat” vor. Mit dieser können sich Rechner gegenseitig Leernachrichten zuschicken, um damit anzuzeigen, dass alles in Ordnung ist. Mit einer entsprechend zusammengesetzten Nachricht kann ein Angreifer eine OpenSSL-Instanz dazu veranlassen, in einer vermeintlichen Leernachricht 64 KByte aus dem Hauptspeicher zu liefern. Darin kann eine E-Mail, ein Text oder sonst etwas enthalten sein – im schlechtesten Fall auch ein geheimer Schlüssel oder ein Passwort.
Schlussfolgerungen
Folgendes ist zum Heartbleed-Angriff zu sagen:
- Das TLS-Protokoll selbst ist nicht fehlerhaft. Es wurde im Falle von OpenSSL nur falsch implementiert.
- Die Verschlüsselung, die das TLS-Protokoll durchführt, ist vom Heartbleed-Bug nicht betroffen (abgesehen davon, dass man damit an den Schlüssel herankommen könnte).
- Fehler wie den Heartbeat-Bug hat es schon viele gegeben. Meist waren Programme betroffen, die nichts mit Kryptografie zu tun haben. Wenn ein Speicherzugriff nicht sauber programmiert ist, dann kann dies ein Einfallstor für Hacker sein.
- Der Heartbleed-Bug war für die OpenSSL-Entwickler leicht zu korrigieren – ein paar zusätzliche Codezeilen genügten. Die korrigierte Version ist längst verfügbar.
Fazit: Der Heartbleed-Bug hat kaum etwas mit Kryptografie zu tun und gehört daher eigentlich nicht in diesen Blog. Die Aussage “eine schlechte Verschlüsselung ist besser als gar keine” gilt nach wie vor.
Follow @KlausSchmeh
Kommentare (22)