Infodot war erleichtert – das vergessene Passwort war wiedergefunden, der Zugang gerettet. Doch ganz zufrieden war er trotzdem nicht. „Irgendwie war das zu leicht“, murmelte er, während er den Zettel mit dem Hashwert wegpackte. Er hatte nun verstanden, dass viele einfache Passwörter sich durch Ausprobieren knacken ließen – besonders, wenn sie aus normalen Wörtern bestanden.
„Wenn wir das geschafft haben, könnten das andere bestimmt auch – vielleicht sogar viel schneller.“ Er erinnerte sich an eine Nachricht, in der von gestohlenen Passwörtern die Rede war, und fragte sich, wie oft das wohl passierte. Nachdenklich öffnete er seinen Notizblock und schrieb ganz oben: „Wie können Hashes sicherer werden?“ Unten malte er ein kleines Fragezeichen. „Da gibt’s bestimmt noch mehr Tricks, die ich noch nicht kenne.“ Seine Neugier war geweckt – die nächste Entdeckung wartete schon.
In diesem Explorable werdet ihr...
überlegen, wie Passwörter sicherer gemacht werden können
ein konkretes Verfahren dazu kennenlernen
Überlegt in einer Kleingruppe, mit welchen Möglichkeiten man die Hashes von Passwörtern gegen Attacken schützen könnte. Schreibt Stichpunkte dazu in das untere Feld.
Eure Taktiken:
Ein verbreitetes Verfahren, das sehr effektiv gegen Dictionary-Attacken hilft, ist das so genannte Salting.
Hierbei wird ein zufälliger Textblock (Salt) an das Passwort angehängt, bevor es gehasht wird. Dadurch entsteht ein Hash-Wert, der für die Kombination aus Passwort und Salt einzigartig ist.
Im Widget können wir Salts generieren, indem wir im Key-Knoten eine beliebige Folge von Buchstaben und Zahlen hinzufügen.
Damit die Webseite das Passwort beim nächsten Login prüfen kann, wird der Salt zusammen mit dem Hash in der Datenbank gespeichert. Beim Einloggen wird das eingegebene Passwort einfach mit dem gespeicherten Salt kombiniert und neu gehasht. Stimmen die Ergebnisse überein, ist das Passwort korrekt.
Aber wie sicher ist das? Hacker könnten ja dann wieder einfach ausprobieren!?
Salting hilft vor allem gegen große Listen von vorbereiteten Passwörtern oder bereits berechneten Hash-Tabellen (Rainbow Table). Es sorgt dafür, dass selbst wenn zwei Personen das gleiche Passwort (z. B. „Sonne123“) benutzen, ihre Hash-Werte in der Datenbank völlig unterschiedlich aussehen.
Gegen das reine und langsame „Durchprobieren“ (Brute-Force) schützt Salting allein jedoch nicht. Deshalb nutzen viele Webseiten zusätzlich besondere Hashfunktionen, die extra viel Zeit brauchen.