Contenido prüft nun auf sichere Passwörter

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
holger.librenz_4fb

Contenido prüft nun auf sichere Passwörter

Beitrag von holger.librenz_4fb »

Mit der Version 4.8.10 kam eine kleine, aber vor allem für größere Installationen interessante, Änderung mit.
Seit dieser Version ist es möglich, Passwörter für Backend-Nutzer prüfen zu lassen. Die Prüfung kann über einfache
Konfigurationswerte geschehen oder systemweit über die cracklib realisiert werden.


Prüfung über Konfigurationswerte
Die Konfiguration für die Passwortprüfung befindet sich in contenido/includes/config.misc.php. Die möglichen Werte werden
hier bereit mit kurzen Kommentaren mitgeliefert und warten darauf, von Euch angepasst zu werden. Im Einzelnen handelt es sich
um folgende Variablen:
$cfg['password']['check_password_mask']
Dies ist der "Hauptschalter" für die Passwortprüfung. Der Wert kann entweder true, für aktiviert, oder false, für deaktiviert, sein.
Ist dieser Wert nicht oder auf false gesetzt, werden die folgenden Werte ignoriert.

$cfg['password']['min_length']
Mit diesem Wert legt Ihr fest, wie lang ein Passwort mindestens sein soll. Ist die Passwortprüfung aktiviert und dieser Wert nicht gesetzt,
wird als Standardwert eine Länge von 8 Zeichen angenommen.

$cfg['password']['mixed_case_mandatory']
Passwörter sind nur so sicher, wie sie auch komplex sind. Eine Stufe mehr Komplexität erhalten wir, wenn der Nutzer nicht nur Klein- oder nur
Großbuchstaben benutzt, sondern sowohl als auch. Das kann mit diesem Wert erzwungen werden. Als Wert muss eine ganze Zahl angegeben werden, die
die Mindestanzahl an Groß- UND Kleinbuchstaben definiert. Ist der Wert zum Beispiel 3 muß der Nutzer mindestens 3 Klein- und 3 Großbuchstaben eingeben.

$cfg['password']['symbols_mandatory']
Neben Groß- und Kleinschreibung ist es natürlich auch wichtig Sonderzeichen im Passwort zu erzwingen. Diese Option definiert, wie viele Sonderzeichen
genutzt werden müssen. Welche Sonderzeichen Pflicht sind, kann über die Option $this->aCfg['password']['symbols_regex'] als regulärer Ausdruck definiert
werden. Standardmäßig, also wenn keine extra Maske definiert wird, gilt die Maske: "/[|!@#$%&*\/=?,;.:\-_+~^¨\\\]/".

$cfg['password']['numbers_mandatory'] = 3
Um auch Ziffern in den Passwörtern zu erzwingen, gibt es diese Konfigurationsvariable. Hier kann als ganze Zahl die Mindestmenge an Ziffern definiert
werden, die mindestens genutzt werden muss.

Prüfung mit der cracklib
Die cracklib ist eine Funktionsbibliothek, die einfache Wörterbuchattacken und Passwortprüfungen zur Verfügugn stellt. Sie existiert für Linux-basierte
Systeme und kann dort zum Beispiel für die Prüfung der Passwörter von lokalen Accounts genutzt werden.
Um die cracklib in PHP ebenfalls nutzen zu können, muss das PECL Modul cracklib installiert werden. Außerdem muss natürlich die cracklib auf dem System
vorhanden sein. Zusätzlich wird ein Wörterbuch benötigt, welches die Wörter und Wortteile enthällt, die für die Wörterbuchattacken genutzt werden soll.
Sind diese Bedingungen gegeben, kann über folgende Konfigurationswerte das Nutzen der cracklib in Contenido realisiert werden:

$cfg['password']['use_cracklib']
Mit diesem Wert, der true oder false sein kann, wird die Nutzung der cracklib an- bzw. ausgeschalten.

$cfg['password']['cracklib_dict']
Ist die cracklib Nutzung aktiviert, also $cfg['password']['use_cracklib'] = true, muss das zu verwendende Wörterbuch über diese Variable definiert werden.
Auf Debian-System findet man zum Beispiel das mitgelieferte Wörterbuch unter "/var/cache/cracklib/cracklib_dict".

Ist die Nutzung aktiviert, prüft die cracklib auch die Komplexität des Passwortes. Standardmäßig muss ein Passwort dann mindestens 10 Zeichen lang sein,
Ziffern und Groß- und Kleinbuchstaben enthalten.

So, dann wünsch ich mit der neuen Funktion viel Spass und freu mich natürlich auf Euer Feedback.

So long,
Holger
Antworten