11.04.2014

Heartbleed SSL-Problem - ein Überblick

Alle Welt redet über den Fehler in OpenSSL (CVE-2014-0160), durch den ungewollt interne Daten aus einem Server "herausbluten" können, die nie an die Öffentlichkeit sollten ... wie z.B. ungeschützte private SSL-Keys, oder auch Usernamen und Passwörter.

Der Fehler besteht darin, dass mehr Daten ausgeliefert werden, als "legal" im Server zur Verfügung stehen, und was in diesem "mehr" an Daten abgelegt ist, hängt nur vom Zufall und dem vorherigen Zustand des Serverdienstes ab.

Es könnten also private SSL-Keys oder Passwörter sein. Man weiß es nicht ...

Deswegen muss man als korrekt paranoider Serverbetreiber davon ausgehen, dass dieser schlimmste Fall auch wirklich eingetreten ist. Jeder Betreiber von öffentlichen Internetdiensten sollte also seine SSL-Zertifikate zurückrufen ("revoken"), sich neue beschaffen (am besten gleich mit 2048 bit Länge) und neu signieren lassen. Das wird leider häufig Geld kosten (z.B. bei Verisign, Thawte, Geotrust, Telekom usw.). Eine kostenlose Möglichkeit ist cacert.org, allerdings haben nur wenige Programme die Root-Zertifikate von cacert.org ab Werk eingebaut, so dass ein solchermaßen signiertes Zertifikat trotzdem erstmal nix nutzt und bei den meisten Benutzern als "unsicher" angemeckert wird.

Ein kleiner Lichtblick: Clients sind dem ersten Anschein nach nicht betroffen, Chrome, Firefox und Internet Explorer nutzen OpenSSL nicht. Die einzige angreifbare Android-Version ist 4.1.1. In allen späteren Versionen hat Google die Heartbeat-Funktion abgeschaltet, weil sie nicht benötigt wird. Ein Endgerät wäre auch nur  angreifbar, wenn man einen bösartigen Server aufsucht, der einen Heartbeat an den Client schickt. Oder wenn man auf seinem Androiden mit 4.1.1 einen Serverdienst betreibt (gibt es wirklich).

Hier ist eine Liste mit einem Überblick, was eigentlich passiert ist, und was Experten dazu meinen.
Und das sollte man als nächstes tun:
  • So schnell wie möglich Update auf OpenSSL 1.0.1g (oder noch neuer)
  • OpenSSL libraries installieren und dynamisch gelinkte Dienste neu starten (Apache etc.)
  • Neue private keys für alle SSL-fähigen Dienste erzeugen
  • Alle alten Zertifikate revoken
  • Statisch gelinkte Programme neu kompilieren