En Fedora 19
Cuando lo ejecuto me sale bien. Estoy en Fedora 19.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
Aquí está la información de la versión:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.22
Release : 3.fc19
NOTA: También lo probaría con comillas simples en lugar de dobles qutoes, ya que se trata de *
que se estén expandiendo de manera extraña en usted.
CentOS 5 y 6
Probar su ejemplo en CentOS 6 estuvo bien, obtuve un OK, pero falló como lo describió en CentOS 5.9.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: it is too simplistic/systematic
Información de la versión:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.9
Release : 3.3
¿Un insecto?
En lo que te has topado parece ser un error. Si toma su cadena y ejecuta más y más de su cadena cracklib-check
, notará que cuando llegue al 26 ° carácter, comenzará a fallar:
# 25
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iS"
M1uG*xgRCthKWwjIjWc*010iS: OK
# 26
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSt"
M1uG*xgRCthKWwjIjWc*010iSt: it is too simplistic/systematic
Profundizando en esto si cambio el último personaje de a t
para decir v
que continúa funcionando.
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK
Entonces parece que en la versión de cracklib-check
se está colgando en la subcadena Sth
.
Definitivamente hay algo extraño en los trozos de la cadena que ha proporcionado. Si tomo la pieza del extremo de la cola y omito la parte frontal, también puedo hacer que esta parte falle.
$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic
¡Esa misma cadena también causa problemas en Fedora 19 y CentOS 6!
ACTUALIZACIÓN # 1
Basado en la muy buena investigación de @ waxwing , ahora sabemos que la heurística utilizada se disparó si> 4 caracteres eran demasiado adyacentes entre sí. Se introdujo un parche que cambió esta heurística para que se tuviera en cuenta la longitud total de la contraseña considerada para eliminar estos falsos positivos.
Conclusiones?
Según algunas de mis pruebas limitadas, parece que hay algunas heurísticas extrañas en juego aquí. Ciertas cadenas que aparentemente estarían bien lo están tropezando.
Si está tratando de codificar esto, sugeriría concluir la generación y evaluación de una contraseña y luego salir del ciclo una vez que se ha generado una contraseña que apacigua cracklib-check
.
O al menos sugeriría actualizar a una versión más nueva que incluya las soluciones que @maxwing menciona en su respuesta.
Alternativas de contraseña de generación
pwgen
También agregaré que generalmente uso pwgen
para generar contraseñas. Eso podría ser útil para usted aquí también.
$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
urandom
También puede utilizar un poco de magia con secuencias de comandos tr
, /dev/urandom
y fold
para obtener una contraseña aleatoria de muy alta calidad.
$ tr -dc '[:graph:]' </dev/urandom | fold -w 32 | head -n 1
;>$7\`Hl$=zn}R.b3h/uf7mY54xp}zSF
El fold
comando puede controlar la longitud. Como alternativa, también puedes hacer esto:
$ echo $(tr -dc '[:graph:]' </dev/urandom | head -c 32)
/_U>s[#_eLKAl(mrE@oo%X~/pcg$6-kr
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK