Passwörter in HumHub auf Komplexität prüfen

Vor zwei Tagen stellte ich euch das Social Intranet HumHub vor. Während meines Testphase warf ich auch einen Blick auf die Passwortsicherheit bei der Registrierung. Dabei fiel mir auf, dass die Anforderungen recht gering sind. Gerade einmal fünf Zeichen werden mindestens verlangt. Das ist entschieden zu wenig. Dazu kommt eine fehlende Überprüfung auf komplexe Kennwörter. Das setzt ein hohes Maß an Vertrauen in seine Nutzerschaft voraus. Im eigenen Unternehmen lässt sich das noch kontrollieren, aber keinesfalls, wenn die Plattform in einem etwas größeren Kreis verwendet wird. Beispielsweise als privates soziales Netzwerk für Familie, Freunde, Bekannte und Arbeitskollegen.

die Mindestpasswortlänge beträgt bei HumHub fünf Zeichen
die Mindestpasswortlänge beträgt bei HumHub fünf Zeichen

Dann schaut die Welt möglicherweise anders aus. Es liegt am Administrator, seine Seite abzusichern. Meist sind unsichere Kennwörter, neben Sicherheitslücken, das Haupteinfallstor für Angreifer. Daher habe ich mich dem Thema angenommen und erkläre euch nachfolgend wie ihr eine Überprüfung auf komplexe Passwörter in HumHub integrieren könnt.

Minimale Zeichen für Passwörter erhöhen

Als Erstes setzen wir zunächst die minimale Zeichenanzahl der Kennwörter herauf. Acht oder mehr Zeichen sind in jedem Fall empfehlenswert. Hier liegt es im eigenen Ermessen, wie groß man das Wort Sicherheit schreiben möchte. Persönlich würde ich 12 bis 20 Zeichen als angemessen erachten. Die Änderung des Mindestwertes ist schnell gemacht. Öffnet die Datei UserPassword.php unter dem Pfad /protected/modules_core/user/models/. Sucht innerhalb des Dokuments nach folgender Zeile:

$rules[] = array('newPassword', 'length', 'min' => 5, 'max' => 255);

Die Fünf ändert ihr einfach in euren gewünschten Minimalwert ab und speichert die Anpassung. Will ein neuer Nutzer bei der Registrierung ein Passwort kürzer als eure Vorgabe eingeben, bekommt er eine entsprechende Fehlermeldung. Damit wird jedoch nicht auf komplexe Passwörter geprüft. Das sieht HumHub dummerweise gar nicht vor. Schade, denn die Implementierung ist im Grunde ganz simpel. Vielleicht bauen die Entwickler diesen Mechanismus eines Tages ein. Derweil muss das Feature selbstständig nachgerüstet werden.

Prüfung auf komplexe Kennwörter implementieren

Glücklicherweise setzt HumHub das Yii PHP Framework ein. Dieses lässt sich relativ leicht erweitern. Im Web gibt es auch einige Erweiterungen zur Prüfung komplexer Passwörter. Ich habe mich für das simple Skript EPasswordStrength entschieden. Den Download findet ihr direkt im Yii Forum. Um das kleine Skript herunterzuladen, bedarf es jedoch einer Anmeldung im Forum. Um die Passwortprüfung in HumHub zu Integrierung müssen vier Schritte erledigt werden.

Schritt 1

Verschiebt die Datei EPasswordStrength.php nach /protected/vendors/yii/validators/.

Schritt 2

Sucht in dem Dokument CValidator.php im Verzeichnis /protected/vendors/yii/validators/ nach folgender Zeile:

'date'=>'CDateValidator',

Fügt direkt darunter nachstehende Zeile ein und speichert die Änderung.

'epasswordstrength'=>'EPasswordStrength',

Schritt 3

Öffnet die YiiBase.php, zu finden unter /protected/vendors/yii/ und sucht nach:

'CValidator' => '/validators/CValidator.php',

Fügt direkt darunter nachstehende Zeile ein und speichert diese Änderung.

'EPasswordStrength' => '/validators/EPasswordStrength.php',

Schritt 4

Öffnet erneut das Skript UserPassword.php (/protected/modules_core/user/models/) und sucht abermals nach:

$rules[] = array('newPassword', 'length', 'min' => 12, 'max' => 255);

Beachtet dabei eure eigene Änderung betreffend der Mindestlänge für Kennwörter. Darunter fügt ihr nun noch folgende Zeile ein:

$rules[] = array('newPassword', 'EPasswordStrength', 'min' => 12, 'message' => 'Das Passwort ist ungültig. Verwende Großbuchstaben, Kleinbuchstaben und Zahlen (Mindestens 12 Zeichen).');

Die Fehlermeldung könnt ihr individuell gestalten. Sie soll hier nur als Beispiel dienen. Fortan prüft HumHub bei der Registrierung neuer Mitglieder nicht nur die Länge des Passwortes, sondern auch dessen Komplexität. Wer möchte, kann die EPasswordStrength.php seinen Vorstellungen anpassen. Denkbar wäre beispielsweise die Verwendung von Sonderzeichen oder die Verpflichtung zwei Zahlen hintereinander zu verwenden.

Die Sicherheit sollte im Vordergrund stehen

Nach jedem HumHub-Update muss der ganze Spaß leider erneut vollzogen werden. Daher sollte man möglichst wenig Änderungen an Core-Files vornehmen. Besser ein Modul entwickeln. Dafür stecke ich aber noch nicht tief genug im Quellcode drin. Wie ihr sehen konntet, ist die Prüfung komplexer Kennwörter simpel integrierbar. Daher finde ich es schade, dass die HumHub-Entwickler dieses Feature bis dato nicht selbst eingebaut haben. Eine Option im Administrations-Menü oder in der Konfigurationsdatei der Installation würde vollkommen ausreichen. Gerade bei einem sozialen Intranet steht die Sicherheit des Systems meiner Auffassung nach besonders im Vordergrund.

Passwörter bei der Registrierung auf Komplexität prüfen
Passwörter bei der Registrierung auf Komplexität prüfen

Ich hoffe darauf, dass HumHub das nachrüsten wird. In der Zwischenzeit klappt es auf diesem Wege wunderbar.


Avatar von reraiseace
Autor: Markus Werner (reraiseace) Twitterreraiseace, Google+reraiseace, Twittercb_werner
Ich bin Redaktionsvolontär bei der COMPUTER BILD in Hamburg, Fernstudent am Deutschen Journalistenkolleg und schreibe auf re{raise}ace privat über Webdesign und Programmierung. Seit 2015 schrieb ich auch regelmäßig für andere Medien.

0 Kommentare

Du kannst diesen Artikel nicht mehr kommentieren.