bcrypt

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

bcrypt ist eine kryptologische Hashfunktion, die speziell für das Hashing von Passwörtern entwickelt wurde.

Hintergrund [Bearbeiten]

Um Benutzer einer Anwendung oder Website zu authentifizieren, wird in der Regel eine Kombination von Benutzername oder E-Mail-Adresse und einem Passwort eingesetzt. Die Website muss das Passwort hierzu speichern, allerdings ist das Speichern des Passworts in unverschlüsselter Form ein beachtliches Sicherheitsrisiko. Falls das Passwort und der Benutzername einem dritten bekannt werden (etwa, falls die Website gehackt wird), kann dieser sich gegenüber der Website authentifizieren. Da viele Anwender für viele Dienste die gleiche Kombination von Benutzername und Passwort verwenden, kann dies auch weitere Dienste betreffen.

Dieses Problem wird in der Regel mittels kryptographischer Hashfunktionen umgangen. Dabei wird mit einer solchen Funktion ein Hashwert des Passwortes ermittelt und gespeichert. Solche Funktionen zeichnet aus, dass das Original-Passwort nicht wiederhergestellt werden kann. Um den Benutzer zu authentifizieren, wird die Eingabe des Benutzers mit der gleichen Funktion gehasht und die beiden Hashwerte verglichen – wenn die Original-Passwörter gleich sind, sind auch die Hashwerte gleich.

Vergleich mit MD5 sowie SHA [Bearbeiten]

Die Hashfunktionen MD5 und die Secure Hash Algorithm (SHA1 usw.) sind mit dem Ziel entwickelt worden, die Daten möglichst effizient zu hashen, da sie etwa auch zur Verifizierung von großen Dateien verwendet werden. Diese Effizienz erleichtert es aber auf der anderen Seite, die Passwörter mittels Brute-Force-Attacken zu erraten oder sog. Rainbow-Tables zu erstellen. Daher wurde bcrypt ausdrücklich mit dem Ziel entwickelt, das Hashing möglichst aufwändig zu gestalten. Für normale Anwendungszwecke fällt dieser Aufwand gegenüber anderen Faktoren nicht ins Gewicht, erst wenn die Berechnung häufig hintereinander durchgeführt werden soll (wie z. B. bei einem Brute-Force-Angriff), tritt eine erhebliche Verlangsamung ein. Bcrypt verfügt über einen je nach Anwendungszweck einstellbaren Kostenfaktor, der den Arbeitsaufwand der Hashwert-Berechnung definiert. Mit diesem Faktor kann auch der Aufwand erhöht werden, wenn sich in der Zukunft die Leistungsfähigkeit der Computer weiterentwickelt.

Weblinks [Bearbeiten]