Wie wird die zufällige Zeichenfolge M1uG*xgRCthKWwjIjWc*010iSthY9buc
als zu einfach / systematisch für ein Kennwort gemäß passwd und cracklib-check erkannt ? Probieren Sie es auf Ihrem Computer und sehen Sie
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
Beachten Sie, dass dies nicht mein Kennwort ist, sondern eine andere zufällig generierte Zeichenfolge aus demselben Generator für zufällige Kennwörter, die dasselbe Ergebnis liefert.
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
/dev/urandom
generierst du nicht stattdessen ein Passwort?Antworten:
Da es sich bei cracklib um Open Source handelt, finden Sie die Antwort im Quellcode .
"Zu simpel / systematisch" bedeutet, dass zu viele Zeichen von einem ihrer alphabetischen Nachbarn vorangestellt werden. Daher werden "ab" oder "ba" als schlecht angesehen, aber "ac" oder "ca" sind in Ordnung, da das b weggelassen wird.
Vor diesem Patch vom 02.03.2010 sind maximal vier Zeichen zulässig , die dieses Merkmal aufweisen. Beispielsweise würde "bar12345" fehlschlagen, da die Zeichen "a", "2", "3", "4" und "5" alphabetische Nachbarn der vorhergehenden Zeichen sind.
slm fand in seiner antwort heraus, dass
M1uG*xgRCthKWwjIjWc*010iS
das ok ist, währendM1uG*xgRCthKWwjIjWc*010iSt
nicht. Lassen Sie uns analysieren. Hier sind die Zeichen, die cracklib-check für ein systematisches Passwort hält:was unter dem Maximum von vier liegt, aber das t hinzufügt:
schiebt es über die Grenze, da T S folgt (es scheint, der Test ist case-unempfindlich).
Der Patch ändert das maximale Limit, sodass es von der Gesamtlänge des Passworts abhängt, um solche Fehlalarme zu vermeiden.
quelle
Ww
)?Auf Fedora 19
Wenn ich es laufen lasse, bekomme ich OK. Ich bin auf Fedora 19.
Hier ist die Versionsinfo:
ANMERKUNG: Ich würde es auch mit einfachen Anführungszeichen anstelle von doppelten Qutos versuchen, da Sie es mit
*
's zu tun haben , die auf seltsame Weise auf Sie erweitert werden könnten.CentOS 5 & 6
Es war in Ordnung, Ihr Beispiel unter CentOS 6 zu testen. Sie haben ein OK erhalten, aber es ist fehlgeschlagen, wie Sie es unter CentOS 5.9 beschrieben haben.
Versions Information:
Ein Käfer?
Was Sie gestolpert sind, scheint ein Fehler zu sein. Wenn Sie Ihre Zeichenkette nehmen und mehr und mehr in Ihre Zeichenkette einführen, werden
cracklib-check
Sie feststellen, dass sie beim 26. Zeichen anfängt zu scheitern:Wenn ich das letzte Zeichen von a ändere, um
t
zu sagen, dassv
es weiterhin funktioniert, gehe ich näher darauf ein .Es scheint also, dass in der Version von
cracklib-check
auf dem Teilstring aufgehängt wirdSth
.Es ist definitiv etwas Seltsames an den Stücken der Schnur, die Sie zur Verfügung gestellt haben. Wenn ich das hintere Endstück nehme und den vorderen Teil weglasse, kann auch dieser Teil versagen.
Dieselbe Saite führt auch unter Fedora 19 und CentOS 6 zu Problemen!
UPDATE # 1Basierend auf @ waxwings sehr nettem Sleuthing wissen wir jetzt, dass die verwendete Heuristik ausgelöst wurde, wenn> 4 Zeichen zu nahe beieinander lagen. Es wurde ein Patch eingeführt , der diese Heuristik so änderte, dass die Gesamtlänge des betrachteten Passworts berücksichtigt wurde, um diese Fehlalarme zu beseitigen.
Schlussfolgerungen
Basierend auf einigen meiner begrenzten Tests scheint es, dass hier einige seltsame Heuristiken im Spiel sind. Bestimmte Zeichenfolgen, die anscheinend in Ordnung sind, lösen sie aus.
Wenn Sie versuchen, dies zu kodifizieren, würde ich vorschlagen, die Generierung und Auswertung eines Passworts zu verpacken und dann die Schleife zu verlassen, sobald ein Passwort generiert wurde, das beschwichtigt
cracklib-check
.Zumindest würde ich vorschlagen, auf eine neuere Version zu aktualisieren, die die von @maxwing in seiner Antwort erwähnten Korrekturen enthält.
Passwort Gen Alternativen
pwgenIch werde auch hinzufügen, dass ich normalerweise
urandompwgen
zum Generieren von Passwörtern verwende. Das könnte Ihnen auch hier weiterhelfen.Sie können auch ein wenig Skriptmagie mit
tr
,/dev/urandom
und verwendenfold
, um ein extrem hochwertiges Zufallspasswort zu erhalten.Der
fold
Befehl kann die Länge steuern. Alternativ können Sie dies auch tun:quelle
Tm7U:n=@*+4$*gf$6hOngEHJ;mnh$+R6
auf derselben Maschine vollkommen in Ordnung.