Crypt::Cracklib von Dan Sully verhindert bzw. erschwert die Verwendung zu einfacher Passwörter.
Dazu führt Crypt::Cracklib eine Wörterbuch Attacke auf das Passwort durch und prüft auch die Verteilung der Zeichen, die Länge der Zeichenkette und die Groß- und Kleinschreibung.
Crypt::Cracklib sollte verwendet werden, wenn der Benutzer sein Passwort selbst festlegen kann.
Beispiel fascist_check
Die automatisch exportierte Funktion fascist_check() liefert folgende Zeichenketten, die Begründung für ein zu schwaches Passwort, zurück (in Klammern die deutsche Lokalisierung):
- it is based on a dictionary word (Es basiert auf einem Wörterbucheintrag)
- it is based on a (reversed) dictionary word (Es basiert auf einem (umgekehrten) Wörterbucheintrag)
- it is WAY too short! (Es ist VIEL zu kurz!)
- it is too short ((Es ist zu kurz)
- it does not contain enough DIFFERENT characters (Es enthält nicht genug unterschiedliche Zeichen)
- it is all whitespace
- it is too simplistic/systematic (Es ist zu einfach/systematisch)
- it looks like a National Insurance number (Es schaut nach Versicherungsnummer aus)
Falls das Password gut genug ist, wird ok zurück geliefert.
#!/usr/bin/perl use strict; use warnings; use Crypt::Cracklib; my @passwords = qw/123456 Schatzi abc z6IvPlOx6H oWOYNZI$bP geheym aaa2$ss iztahcS FH153436A /; foreach my $password (@passwords) { if ( fascist_check($password) eq 'ok' ) { print "Passwort $password ist OK.\n"; } else { print "Ooops - Passwort $password: ", fascist_check($password) , " !!!\n"; } }
Das Programm erzeugt folgende Ausgabe:
Ooops - Passwort 123456: Es ist zu einfach/systematisch !!! Ooops - Passwort Schatzi: Es basiert auf einem Wörterbucheintrag !!! Ooops - Passwort abc: Es ist VIEL zu kurz !!! Passwort z6IvPlOx6H ist OK. Passwort oWOYNZI$bP ist OK. Ooops - Passwort geheym: Es basiert auf einem Wörterbucheintrag !!! Ooops - Passwort aaa2$ss: Es enthält nicht genug unterschiedliche Zeichen !!! Ooops - Passwort iztahcS: Es basiert auf einem (umgekehrten) Wörterbucheintrag !!! Ooops - Passwort FH153436A: Es schaut nach Versicherungsnummer aus !!!
Jetzt kommentieren