Warum SHA-1 unsicher ist
Schon seit längerem gilt der Hashing-Algorithmus SHA-1 als unsicher und sollte durch SHA-2 oder SHA-3 ersetzt werden. Was macht aber SHA-1 zu einem unsicheren Hash-Verfahren und wie hat man das herausgefunden?
Das Lustige an der Sache: SHA bedeutet secure hash algorithm, was in diesem Zuge doch recht ironisch ist.
Was Hash-Verfahren sind
Hash-Verfahren erzeugen aus einer Menge an Daten eine scheinbar willkürliche Folge an Bits. So wird durch SHA-1 beispielsweise aus dem Wort curi0sity
die Zeichenfolge e544b48a746e297c9a10957ff0cf433cb41073d9
. Ändert man nun ein Zeichen, also Curi0sity
(großes statt kleines C am Anfang), so ändert sich der Hash-Wert komplett zu 5eed9a4940371dadad8119be0f9f32d94e52296c
. Kleine Änderung, große Wirkung.
Genutzt werden Hash-Werte z.B. um zu überprüfen ob eine Datei richtig übertragen wurde. Der Sender stellt die Datei und den Hash bereit und der Empfänger bildet den Hash der empfangenen Datei. Sind die Werte identisch, so war die Übertragung mit sehr hoher Wahrscheinlichkeit erfolgreich. Sind die Werte nicht identisch, so war die Übertragung definitiv nicht erfolgreich.
Auch werden von Passwörtern erst die Hash-Werte bestimmt und diese dann übertragen oder gespeichert, sodass Hacker, die den Netzwerkverkehr mitschneiden, das Passwort nicht als Klartext haben. Sie haben somit nur den Hash-Wert, aus dem sich die originale Zeichenkette nicht wieder herstellen lässt (jeden Falls nicht mit einfachen mitteln und in kurzer Zeit).