Was passierte
Einem Team renommierter Sicherheitsforscher gelang es einen erfolgreichen Angriff auf die kryptographische Hash-Funktion SHA1 durchzuführen. Diese gilt zwar seit Jahren als „theoretisch“ unsicher. Jedoch konnte bis Dato niemand einen erfolgreichen Angriff in wirtschaftlichem Aufwand erzielen. Den Herren Stevens, Karpman, Peyrin gelang es nun auf Basis eines 64-GPU Cluster innert 10 Tagen Rechenzeit den Erfolg zu erzielen.
Beim durchgeführten Angriff „Freestart collision for full SHA-1“, handelt es sich um eine „freestart collission“-Attacke. Bei einer solchen wird das Chaining-Value (Initialisierungsvektor) für beide Eingabewerte frei und unterschiedlich gewählt, was noch nicht einem lebensechten Beispiel in der angewandten Kryptographie entspricht.
Was bedeutet das?
Aktuell gibt es noch keinen Grund zur Panik. Die Forscher betonen, dass die Sicherheit von SHA1 damit noch nicht gänzlich gebrochen ist. Es dürfte sich aber nur um eine Frage der Zeit handeln, bis ein erfolgreicher Angriff auch in der Realität durchführbar werden wird. Sollte es einem Angreifer gelingen Kollisionen gezielt zu erzeugen, könnte er signierte Datenströme oder Zertifikate fälschen oder unbemerkt manipulieren. Zum Bespiel wäre es möglich ein Zertifikat für das E-Banking-Portal einer Grossbank zu erzeugen, welches im Browser tatsächlich als gültig und vertrauenswürdig erkannt wird. Das Opfer hätte kaum einen Möglichkeit zu bemerken, dass er seine Zugangsdaten auf dem Server des Angreifers statt bei seiner Bank preisgibt. Ähnliche Angriffsscenarieren lassen sich auch für VPN-Verbindungen und WLAN-Zugänge aufzeigen. SHA1 ist nur einer von mehreren Hash-Algorithmen, jedoch aber momentan leider noch einer der meist verwendeten. Sichere Nachfolger wie SHA2 (2001) und SHA3 (2012) existieren seit geraumer Zeit und werden von allen gängigen Systemen beinahe selbstverständlich unterstützt. SHA1 gilt seit 2005 als „ausgedient“ und wurde leider meist aufgrund von Nachlässigkeit nicht abgelöst. Microsoft wie auch Google und Mozilla deklarieren per Ende 2016 keine Zertifikate mit SHA1 Signatur mehr in Browsern zu akzeptieren.
Wie kann ich mich schützen?
Systemadministratoren sollten alle eingesetzten Systeme auf den aktuellsten Stand bringen und dann von SHA1 zu SHA2 oder SHA3 migrieren. Für Webserver und SSL-Verbindungspunkte heisst dies, vorhandene Zertifikate auf Basis von SHA2 zu erneuern. Die meisten Zertifizierungsstellen erlauben dies über eine „Re-Key“-Funktion ohne Kostenfolge. Selbiges gilt für WLAN-Netzwerke, welche per 802.1x mit Zertifikaten authentisieren. Bei IPSEC Verbindungen reicht das Anpassen der Konfiguration beider Verbindungspunkte. Bei zertifikatsbasierter Authentisierung müssten auch hier die Zertifikate ersetzt werden.
Endanwender können in technischer Hinsicht relativ wenig aktiv bewirken. Wichtig ist eine gesunde Awareness für Sicherheitsthemen zu pflegen und Innovationen auch mal ganz konkret von IT-Anbietern (z. B. internen IT-Abteilungen oder Dienstleistern) einzufordern. Wissen Sie als Endanwender, ob Ihr Webmail-Zugang oder Ihr E-Banking-Portal sicher ist? Setzt Ihre Hausbank SHA2-Zertifikate ein? Missbraucht jemand Ihre Zugangsdaten für Ihre E-Banking, wer trägt die Verantwortung wenn kein Verursacher nachgewiesen werden kann? Interessante Fragen, nicht?
Background-Knowhow: Was ist ein Hash
Hash-Funktionen erzeugen zu einem beliebigen Eingabewert (message), z. B. einem Passwort, einer Nachricht oder auch einer ganzen Datei, eine Prüfsumme (Hash). Zum Beispiel entspricht
die Message „Leuchter IT Solutions“
dem Hash „0x4fb447b4033e08ee21ae79fa86b0e5365e670787“.
Die Zuordnung von Message zu Hash ist eindeutig, d. h. für einen spezifischen Eingabewert „Leuchter IT Solutions“ kommt jeweils dieselbe Prüfsumme „0x4fb44…“ heraus. Für eine Nachricht kann dadurch sichergestellt werden, dass sie unverändert vorliegt. Sender und Empfänger erhalten ja jeweils dieselbe Prüfsumme beim „Hashen“ der Nachricht. Allerdings ist es theoretisch möglich, dass zwei verschiedene Eingabewerte denselben Hash erzeugen. Die Grösse der möglichen Eingabewerte ist nahezu unbegrenzt, da jede mögliche Datei, Nachricht oder Passwort als Message zulässig ist. Die zugehörigen Hashwerte haben aber immer eine fixe Länge (z. B. MD5 128bit, bei SHA1 160bit, bei SHA2 256bit). Bei SHA1 gibt es also max. 2^160 verschiedene Hashwerte (unglaubliche 1.46 mit 48 Nullen Möglichkeiten). Übereinstimmungen im Hash, sog. Kollisionen, sind also vorprogrammiert, aber aufgrund der vielen Möglichkeiten unglaublich schwer zu finden. Dies insbesondere, wenn einer der beiden Eingabewerte bekannt ist. Trotzdem ist es den Wissenschaftlern Stevens, Karpman, Peyrin nun gelungen solche Kollisionen zu erzeugen was die Sicherheit von SHA1 in Frage stellt.