Stand: 30.12.2008 04:56 aktuelle Version auf phpBB.de

Apache At Work Communities Community Building Informationen und Hinweise Installation/Konfiguration/Update MySQL PHP phpBB-Optimierungen phpBB3 Rechtliches Server & Technik Snippets Templates und Mods

Knowledge Base Offline -> At Work -> Verschlüsselung der Passwörter bei phpBB

Verschlüsselung der Passwörter bei phpBB
Autor: PhilippK
Stand: 30.12.2008 04:56
Neuste Version unter: http://www.phpbb.de/doku/kb/md5

### 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

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

Zitat:
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.

Der Trick dabei ist folgender: der Ursprungstext wird so umgewandelt, dass ein neuer Wert entsteht. Die Wahrscheinlichkeit, dass ein anderer Ursprungstext den gleichen Wert erzeugt, ist nahezu Null, gleiches gilt für die Wahrscheinlichkeit, vom Ergebnis auf den Ursprungstext zurück schließen zu können.
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.

Eine Übersicht über diese und andere Hash-Funktionen gibt es auf cipherbox.de. Wer es noch detaillierter haben will, kann unter http://einstein.offis.uni-oldenburg.de/rechnernetze/sha-1.htm (deutsch, aber sehr mathematisch) oder http://www.itl.nist.gov/fipspubs/fip180-1.htm (die offizielle Dokumentation in englisch, aber eigentlich recht gut verständlich) am Beispiel von SHS weitere Informationen finden.
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/2005/02/sha1_broken.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/

Knowledge Base Offline -> At Work -> Verschlüsselung der Passwörter bei phpBB

| phpBB.de Knowledge Base (Offline-Version) ©2005 Sascha Carlin und das phpBB.de-Team - Impressum Das Kopieren von Artikeln (auch auszugsweise) ist nur nach ausdrücklicher Genehmigung erlaubt! phpBB.de: Infos | Forum | Downloads | Dokumentation |