Como a sequência aleatória M1uG*xgRCthKWwjIjWc*010iSthY9buc
está sendo detectada como simplista / sistemática demais para uma senha de acordo com a senha passwd e cracklib-check ? Experimente na sua máquina e veja
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
Observe que essa não é minha senha, mas outra sequência gerada aleatoriamente a partir do mesmo gerador de senhas aleatórias que produz o mesmo resultado.
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
/dev/urandom
para gerar uma senha?Respostas:
Como o cracklib é de código aberto, a resposta pode ser encontrada no código-fonte .
"Simplista / sistemático demais" significa que há muitos caracteres precedidos por um de seus vizinhos alfabéticos. Portanto, "ab" ou "ba" são considerados ruins, mas "ac" ou "ca" são válidos, pois o b é omitido.
Antes deste patch, de 02/03/2010 , ele permite no máximo quatro caracteres que apresentam essa característica. Por exemplo, "bar12345" falharia, porque os caracteres "a", "2", "3", "4" e "5" são vizinhos alfabéticos dos caracteres anteriores.
slm descobriu em sua resposta que
M1uG*xgRCthKWwjIjWc*010iS
estava tudo bem, enquantoM1uG*xgRCthKWwjIjWc*010iSt
não estava. Vamos analisar. Aqui estão os caracteres que o cracklib-check acha que são indicações de uma senha sistemática:que está abaixo do máximo de quatro, mas adicionando t:
empurra-o acima do limite, pois T segue S (parece que o teste não diferencia maiúsculas de minúsculas).
O patch altera o limite máximo, portanto depende do tamanho total da senha, para evitar falsos positivos como esse.
fonte
Ww
)?No Fedora 19
Quando eu corro, eu fico bem. Estou no Fedora 19.
Aqui estão as informações da versão:
NOTA: Eu tentaria com aspas simples, em vez de aspas duplas, já que você está lidando com
*
elas. Elas podem estar sendo expandidas de maneiras estranhas para você.CentOS 5 e 6
Tentar o seu exemplo no CentOS 6 foi bom, tudo bem, mas falhou como você descreveu no CentOS 5.9.
Informação da versão:
Um inseto?
O que você encontrou parece um bug. Se você pegar sua string e executar cada vez mais,
cracklib-check
verá que, quando chegar ao 26º caractere, começa a falhar:Aprofundando isso se eu mudar o último caractere de a
t
para dizerv
que continua funcionando.Então, parece que na versão
cracklib-check
está ficando pendurado na substringSth
.Definitivamente, há algo estranho nos pedaços da corda que você forneceu. Se eu pegar a parte final da cauda e omitir a parte frontal, também posso fazer com que essa parte falhe.
Essa mesma string também causa problemas no Fedora 19 e no CentOS 6!
ATUALIZAÇÃO # 1Com base no excelente detalhamento do @ waxwing , agora sabemos que a heurística usada estava sendo disparada se> 4 caracteres estivessem muito próximos um do outro. Foi introduzido um patch que alterava essa heurística para que o comprimento total da senha em consideração fosse levado em consideração para eliminar esses falsos positivos.
Conclusões?
Com base em alguns dos meus testes limitados, parece que existem algumas heurísticas estranhas em jogo aqui. Certas seqüências de caracteres que aparentemente seriam boas estão tropeçando.
Se você estiver tentando codificar isso, sugiro agrupar a geração e a avaliação de uma senha e interromper o ciclo assim que uma senha for gerada e apaziguar
cracklib-check
.Ou, pelo menos, sugiro atualizar para uma versão mais recente que inclua as correções mencionadas pelo @maxwing em sua resposta.
Alternativas de geração de senha
pwgenTambém acrescentarei que costumo usar
urandompwgen
para gerar senhas. Isso pode ser útil para você aqui também.Você também pode usar um pouco de magia scripting com
tr
,/dev/urandom
efold
para obter uma senha aleatória de altíssima qualidade.O
fold
comando pode controlar o comprimento. Como alternativa, você também pode fazer isso:fonte
Tm7U:n=@*+4$*gf$6hOngEHJ;mnh$+R6
está perfeitamente correta na mesma máquina.