Question
Worauf wird beim Passwortqualitätscheck geprüft?
Answer
Die Passwortprüfung durch UDM wird über konfigurierbare Tests und durch die Bibliothek cracklib mit festen Tests inklusive eines Wörterbuchabgleichs realisiert. Im folgenden wird die Funktionsweise dieser Kategorien beschrieben. Die hier dargestellte Reihenfolge entspricht auch der Reihenfolge der Prüfung eines Passwortes.
Genaueres zum Konfigurieren der Passwortprüfung ist im Blogartikel Sichere Passwörter für die UCS-Domäne beschrieben, ebenso findet sich eine Erklärung der Samba-Passworteinstellungen im Artikel Can you explain the samba passwordsettings.
Tests
Konfigurierbare Tests
Zur Konfiguration werden Richtlinien und UCR-Variablen herangezogen.
Als Richtlinie ist dabei:
- Die Passwortlänge
- Das Ablaufintervall
- Die Länge der durch vormalige Verwendung geblockten Historie
bestimmbar.
Per UCR-Variable lassen sich folgende Optionen setzen:
- Die ausschließliche („sufficient“) oder zusätzliche Anwendung der AD-Passwort-Richtlinien durch Samba -
password/quality/mspolicy
- Daran anknüpfend wird nun auch nach Verwendung des Benutzernamens oder mindestens 3 Zeichen Übereinstimmung zum Anzeigenamen geprüft
- Die Mindestmenge an Zahlen, Großbuchstaben, Kleinbuchstaben und Sonderzeichen -
password/quality/credit/
digits
|lower
|upper
|other
- Verbotene und Gebotene Zeichen -
password/quality/forbidden/chars
&password/quality/required/chars
- Die Anzahl ungleicher Zeichen zu vorigen Passwörtern
Feste Tests
Durch cracklib werden zusätzlich folgende Muster erfasst:
- Weniger als 4 Zeichen Länge
- Ausschließlich Leerraum-Zeichen
- Sich zu oft wiederholende Zeichen nach der Formel 3+0,09*Länge (4 Zeichen = 3,36 → max. dreimal dasselbe Zeichen hintereinander, 12 Zeichen = 4,08 → max. viermal dasselbe Zeichen hintereinander)
- Die Form der britischen Sozialversicherungsnummer (AA123456A)
- Palindrome
Die Prüfung auf Verwendung des Username geschieht innerhalb der mspolicy statt in cracklib und ist somit kein fester Bestandteil der Passwortprüfung
Wörterbuchprüfungen
Zuletzt schließt sich die Prüfung gegen Wörterbücher an. Hierbei werden die konfigurierten Wörterbücher vom Programm zu einer Liste zusammengeführt und es wird immer jeweils gegen ein Wort geprüft. Dabei werden auch leichte Abwandlungen erfasst:
- Alphanumerische Transliteration im Sinne von Leetspeak (A → 4, e → 3)
- Die Ergänzung von max. drei alphanumerischen Zeichen vor oder nach dem Wort (waterfall → waterfallx3d)
- Die beliebige Ergänzung von ausschließlich Sonderzeichen vor und nach dem Wort (waterfall → %^&waterfall^&*)
Sofern eine andere Variation des Wortes wie beispielsweise die Aneinanderreihung mehrere Worte, alphanumerische Zeichen vor und nach dem Wort, Sonderzeichen und alphanumerische Zeichen gemeinsam vor oder nach Wort, vorliegt, wird das Wort nicht mehr erkannt.
Als Wörterbücher werden die durch cracklib standardmäßig verwendeten Wörterbücher unter /usr/share/dict/
verwendet. Um ein eigenes Wörterbuch hinzuzufügen, muss dieses von der Form als Textdatei mit einem Wort pro Zeile in das Verzeichnis gelegt werden und wird daraufhin beim nächsten Lauf des täglichen cracklib-runtime-Cronjobs erfasst und eingepflegt.
Eine Anleitung dazu findet sich hier: Disallowing specific passwords - Password Blacklist
Troubleshooting
- Trotz setzen aller Variablen aus dem Blog-Artikel können Benutzer ihr über das Portal auf ein Wörterbuch-Eintrag einstellen
- Schuld daran ist aller Warscheinlichkeit nach die Variable
ldap/acl/user/password/change
.
Wenn diese aufyes
gesetzt wird, kann der Benutzer an der cracklib-Prüfung vorbei sein Passwort auf einen Wörterbuch-Eintrag ändern.
- Schuld daran ist aller Warscheinlichkeit nach die Variable