Su Fedora 19
Quando lo eseguo ottengo OK. Sono su Fedora 19.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
Ecco le informazioni sulla versione:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.22
Release : 3.fc19
NOTA: lo proverei con virgolette singole invece che con doppi quto, poiché hai a che fare con *
loro potrebbero essere espansi in modi strani su di te.
CentOS 5 e 6
Provare il tuo esempio su CentOS 6 è andato bene, ho ottenuto un OK, ma non è riuscito come descritto su CentOS 5.9.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: it is too simplistic/systematic
Informazioni sulla versione:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.9
Release : 3.3
Un insetto?
Ciò in cui ti sei imbattuto sembrerebbe essere un bug. Se prendi la tua stringa e la esegui sempre di più cracklib-check
, noterai che quando arrivi al 26 ° carattere inizia a fallire:
# 25
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iS"
M1uG*xgRCthKWwjIjWc*010iS: OK
# 26
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSt"
M1uG*xgRCthKWwjIjWc*010iSt: it is too simplistic/systematic
Scavando più a fondo su questo se cambio l'ultimo personaggio da a t
per dire v
che continua a funzionare.
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK
Quindi sembrerebbe che nella versione di cracklib-check
sia appeso sulla sottostringa Sth
.
C'è sicuramente qualcosa di strano nei pezzi della stringa che hai fornito. Se prendo il pezzo di coda e ometto la parte anteriore, posso far fallire anche questa parte.
$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic
La stessa stringa causa problemi anche su Fedora 19 e CentOS 6!
AGGIORNAMENTO N. 1
Basandoci sulla simpaticissima investigazione di @ waxwing , ora sappiamo che l'euristico usato si sarebbe fatto inciampare se> 4 personaggi fossero troppo vicini l'uno all'altro. È stata introdotta una patch che ha modificato questa euristica in modo da tenere conto della lunghezza complessiva della password in esame per eliminare questi falsi positivi.
Conclusioni?
Sulla base di alcuni dei miei test limitati sembrerebbe che qui ci siano delle strane euristiche. Alcune stringhe che sembrano andare bene lo stanno facendo scattare.
Se stai cercando di codificare questo, suggerirei di racchiudere la generazione e la valutazione di una password e di uscire dal ciclo una volta che è stata generata una password che appaga cracklib-check
.
O almeno suggerirei di passare a una versione più recente che includa le correzioni che @maxwing menziona nella sua risposta.
Password Gen Alternative
pwgen
Aggiungerò anche che di solito uso pwgen
per generare password. Potrebbe esserti utile anche qui.
$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
urandom
È inoltre possibile utilizzare un po 'di magia di scripting con tr
, /dev/urandom
e fold
per ottenere una password casuale di qualità estremamente elevata.
$ tr -dc '[:graph:]' </dev/urandom | fold -w 32 | head -n 1
;>$7\`Hl$=zn}R.b3h/uf7mY54xp}zSF
Il fold
comando può controllare la lunghezza. In alternativa puoi fare anche questo:
$ echo $(tr -dc '[:graph:]' </dev/urandom | head -c 32)
/_U>s[#_eLKAl(mrE@oo%X~/pcg$6-kr
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK