Verschlüsselung der Passwörter bei phpBB
Verfasst: Sonntag 22. Mai 2005, 06:55
Verschlüsselung der Passwörter bei phpBB
Dieser Artikel beschreibt, wie die Passwörter bei phpBB verschlüsselt werden und was hinter dem MD5-Algorithmus steckt<hr>URL: http://www.phpbb.de/doku/kb/artikel.php?artikel=78
Suchbegriffe: md5 Verschlüsselung Passwort
Autor: PhilippK
Erstellt: 11.12.2003 02:21
Zuletzt bearbeitet: 20.05.2005 07:03<hr>
Wenn man in der Datenbank nach dem Passwort eines Benutzers sucht, so wird man nicht auf das Passwort im Klartext treffen, sondern vielmehr einen String der Art
Bei diesem Wert handelt es sich um einen per MD5 generierten Hash-Wert des Passwortes (hier übrigens phpbb).
Was ist ein Hash-Wert
Der Hash-Wert ist das Ergebnis einer Hash-Funktion, die man kurz als Einwegverschlüsselung bezeichnen kann. Aus dem Passwort wird dabei ein Wert generiert, der folgende Eigenschaften erfüllen sollte:
Für einen Passwortschutz ist dies ausreichend: das Passwort wird nicht im Klartext gespeichert sondern nur der Hash-Wert. Damit kann das Passwort nicht im Klartext ausgelesen werden, auf der anderen Seite kann jedoch ein eingegebenes Passwort überprüft werden: ist der Hash-Wert des eingegebenen Passworts identisch mit dem in der Datenbank hinterlegten Hash-Werts, so dürften das ursprüngliche und das eingegebene Passwort identisch sein.
Bekannte Standards für Hash-Werte
Es gibt drei wesentliche Standards für Hash-Werte:
Knacken von Hash-Werten
Ein guter Hash-Wert gibt in der Regel keine Informationen über den Ursprungswert preis. Demnach sollte auch der Hash-Wert bei ähnlichen Folgen komplett unterschiedliche Ergebnisse hervorbringen. Der einzige Wert, einen möglichen Ursprungstext zu erhalten, ist ein Brute Force-Angriff: also jeden möglichen Ausgangswert verschlüsseln und prüfen, ob das Ergebnis mit dem vorhandenen Hash-Wert identisch ist.
Jedoch haben einige Hash-Funktionen eine Lücke: ist es möglich, einen ähnlichen Ursprungswert zu generieren, der zum gleichen Hash-Wert führt, so wird eine der wesentlichen Eigenschaften eines Hash-Wertes verletzt. Eine solche Schwäche besitzt z.B. MD5, sie beeinträchtigt die Sicherheit von MD5 nur teilweise, führt jedoch zu einer generellen Neigung, auf SHS/SHA-1 auszuweichen. ( Wer es genau wissen will: http://www.doxpara.com/md5_someday.pdf ) Auch bei SHA-1 wird über ein entsprechendes Problem diskutiert ( http://www.schneier.com/blog/archives/2 ... roken.html ).
Unterstützung in PHP/MySQL
md5 wird von PHP und MySQL unterstützt. Ab PHP 4.3.0 bzw. MySQL 4.0.2 wird auch SHA-1 unterstützt.
Hash-Werte online ausrechnen
Ein Online-Rechner für MD4, MD5 und SHA-1 findet sich unter http://pajhome.org.uk/crypt/md5/
<hr>
Gruß Uwe
Dieser Artikel beschreibt, wie die Passwörter bei phpBB verschlüsselt werden und was hinter dem MD5-Algorithmus steckt<hr>URL: http://www.phpbb.de/doku/kb/artikel.php?artikel=78
Suchbegriffe: md5 Verschlüsselung Passwort
Autor: PhilippK
Erstellt: 11.12.2003 02:21
Zuletzt bearbeitet: 20.05.2005 07:03<hr>
Wenn man in der Datenbank nach dem Passwort eines Benutzers sucht, so wird man nicht auf das Passwort im Klartext treffen, sondern vielmehr einen String der Art
98a6a6255fc62ffa4eac50abc52bf41e
Bei diesem Wert handelt es sich um einen per MD5 generierten Hash-Wert des Passwortes (hier übrigens phpbb).
Was ist ein Hash-Wert
Der Hash-Wert ist das Ergebnis einer Hash-Funktion, die man kurz als Einwegverschlüsselung bezeichnen kann. Aus dem Passwort wird dabei ein Wert generiert, der folgende Eigenschaften erfüllen sollte:
- es ist nahezu unmöglich, den zu einem Hash-Wert gehörenden Ursprungstext zu finden.
- es ist nahezu unmöglich, zwei Ursprungstexte zu finden, die den selben Hash-Wert produzieren.
Für einen Passwortschutz ist dies ausreichend: das Passwort wird nicht im Klartext gespeichert sondern nur der Hash-Wert. Damit kann das Passwort nicht im Klartext ausgelesen werden, auf der anderen Seite kann jedoch ein eingegebenes Passwort überprüft werden: ist der Hash-Wert des eingegebenen Passworts identisch mit dem in der Datenbank hinterlegten Hash-Werts, so dürften das ursprüngliche und das eingegebene Passwort identisch sein.
Bekannte Standards für Hash-Werte
Es gibt drei wesentliche Standards für Hash-Werte:
- MD5: Dieses Verfahren wird auch bei phpBB verwendet. Allerdings hat MD5 eine Sicherheitslücke und ist somit (wenn auch mit viel Aufwand) knackbar.
- SHS: Ein neuerer Standard, der 160 bit-Werte erzeugt. Gilt derzeit in der aktuellen Variante (SHA-1) als sicherer als MD5, jedoch scheint es auch hier eine Kollisionsgefahr zu geben.
- RIPEMD-160: Eine europäische Variante mit 160-bit Werten (auch höherer Werte sind denkbar). Gilt derzeit als sicher.
Knacken von Hash-Werten
Ein guter Hash-Wert gibt in der Regel keine Informationen über den Ursprungswert preis. Demnach sollte auch der Hash-Wert bei ähnlichen Folgen komplett unterschiedliche Ergebnisse hervorbringen. Der einzige Wert, einen möglichen Ursprungstext zu erhalten, ist ein Brute Force-Angriff: also jeden möglichen Ausgangswert verschlüsseln und prüfen, ob das Ergebnis mit dem vorhandenen Hash-Wert identisch ist.
Jedoch haben einige Hash-Funktionen eine Lücke: ist es möglich, einen ähnlichen Ursprungswert zu generieren, der zum gleichen Hash-Wert führt, so wird eine der wesentlichen Eigenschaften eines Hash-Wertes verletzt. Eine solche Schwäche besitzt z.B. MD5, sie beeinträchtigt die Sicherheit von MD5 nur teilweise, führt jedoch zu einer generellen Neigung, auf SHS/SHA-1 auszuweichen. ( Wer es genau wissen will: http://www.doxpara.com/md5_someday.pdf ) Auch bei SHA-1 wird über ein entsprechendes Problem diskutiert ( http://www.schneier.com/blog/archives/2 ... roken.html ).
Unterstützung in PHP/MySQL
md5 wird von PHP und MySQL unterstützt. Ab PHP 4.3.0 bzw. MySQL 4.0.2 wird auch SHA-1 unterstützt.
Hash-Werte online ausrechnen
Ein Online-Rechner für MD4, MD5 und SHA-1 findet sich unter http://pajhome.org.uk/crypt/md5/
<hr>
Gruß Uwe