Diese Informationen sind ab Version 4.1.0 (bzw. Build 4.00.50) gültig. Vorherige Verfahren sind damit obsolet.
Speicherung von Passwörtern
Kennworte von Benutzern und Administratoren werden über eine Hashfunktion gesichert. Deren "Formel" lautet:
- Code: Select all
MD5( <Benutzername> + ':' + <Salt> + ':' + <Kennwort> )
Dies entspricht damit weitest gehend dem sog. Digest A1 in der HTTP Digest Access Authentication. Im Gegensatz zu einem schlichten MD5-Hash des Passworts (wie er bis zur Version 4.1 benutzt wurde) ist dieser Digest weitest gehend sicher gegenüber vorberechneten Rainbow-Tabellen. Der vorerwähnte "Salt" - ein weiteres Konzept der Kryptographie - wird von phlyMail bei der Installation vergeben, bzw. im Falle eines Upgrades von einer Vorversion in dessen Zuge. Dieses Salt ist eine zufällige, 13 Zeichen lange Zeichenkette. Damit sollte selbst dann, wenn auf zwei Installationen der gleiche User mit dem gleichen Passwort existiert, der resultierende Hash verschieden sein.
Eine negative Konsequenz dieses aufwändigeren Verfahrens sei nicht verschwiegen: Es ist über das Frontend nicht mehr möglich, dass Benutzernamen geändert werden, da dies den Hash ungültig macht - und ohne Kenntnis des Passworts auch kein gültiger neuer erzeugt werden kann.
Weiterhin können Sie auch nicht einfach Benutzer aus einer Installation in eine andere kopieren, wenn sich deren Salts unterscheiden - und das sollten sie! Das Neueinspielen aller Nutzer und der kompletten Konfiguration in eine neue Installation hingegen funktioniert.
Erstellen eines neuen Passwort, wenn es vergessen wurde
phlyMail bietet für Admins und User jeweils Links an, wenn diese ihr Passwort vergessen haben sollten. Im Gegensatz zu vorherigen Versionen, wird nun eine Mail an den User geschickt, in der er einen Opt-In-Link vorfindet. Dieser Link hat derzeit eine Gültigkeitsdauer von 48h. Durch Betätigen dieses Links kommt er auf eine Maske, mit der er sich selbst ein neues Passwort vergeben kann.
Erst mit Abschluss dieser Schritte hat der User ein neues, nur ihm bekanntes Passwort.
Manuelles Neusetzen eines Passworts in der Datenbank
Sollten Sie unter bestimmten Umständen als Admin einer Installation ein Passwort manuell setzen müssen, können Sie bis auf Weiteres das alte Passwortfeld ("password") weiter benutzen. Das Format ist dort weiterhin MD5(<Passwort>). Löschen Sie dann aber den Inhalts des Feldes pw_digesta1 des betroffenen Datensatzes.
Beim ersten erfolgreichen Login über das Feld password wird dessen Inhalt entfernt und der Digest neu gesetzt.

