Crypt::Cracklib - Schwache Passwörter verhindern

Veröffentlicht von Thomas Fahle am (Permalink)

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 !!!

 

Siehe auch

Weitere Posts