Verschlüsselung der Passwörter bei phpBB3
Beschreibung: Erklärt wie in phpBB 3 die Passwörter verschlüsselt werden
Kategorie: Allgemeine Funktionen
Link zu diesem Artikel: Alles auswählen
[url=https://www.phpbb.de/kb/viewarticle?a=74&sid=8434c4c0fa7a1d91fd5076291979e46e]Knowledge Base - Verschlüsselung der Passwörter bei phpBB3[/url]
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 generierten Hash-Wert des Passwortes (hier übrigens "phpBB 3.0").$H$9ASHca2xFIq35cwWe4KQkTzDnFU6ZS/
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 wurde auch bei phpBB bis Version 2.0 verwendet. Allerdings hat MD5 eine Sicherheitslücke und ist somit (wenn auch mit viel Aufwand) knackbar. Aus diesem Grund werden in phpBB 3.0 neben dem einfachen md5 Hash weitere Sicherheitsmaßnahmen ergriffen um Rückschlüsse vom Hashwert auf das Passwort zu verhindern.
- SHA: 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.
- bcrypt: Dieses Verfahren basiert auf dem Blowfish-Algorithmus und wird seit phpBB 3.1 angewendet. Es gilt als sicherer als SHA-1 oder MD5, da es mit bcrypt aufwendiger ist, eine Brute-Force-Attacke durchzuführen (also den Hash-Wert zu knacken).
- Argon2i: Dieses Verfahren wird seit phpBB 3.3.0 angewendet, wenn die PHP Version mind. 7.2.0 beträgt.
- Argon2id: Dieses Verfahren wird seit phpBB 3.3.0 angewendet, wenn die PHP Version mind. 7.3.0 beträgt.
Siehe dazu: Release_Highlights/3.3.0-b1
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 SHA/SHA-1 auszuweichen. (Wer es genau wissen will: md5_someday.pdf) Auch bei SHA-1 wird über ein entsprechendes Problem diskutiert (http://www.schneier.com/blog/archives/2 ... roken.html).