Comment est la chaîne aléatoire M1uG*xgRCthKWwjIjWc*010iSthY9buc
être détecté comme trop simpliste/systématique pour un mot de passe selon passwd et cracklib-check ? Essayez-le sur votre machine et voyez
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
Notez qu'il ne s'agit pas de mon mot de passe, mais d'une autre chaîne générée aléatoirement par le même générateur de mot de passe aléatoire qui produit le même résultat.
Réponse acceptée :
Comme cracklib est open source, la réponse se trouve dans le code source.
"Trop simpliste/systématique" signifie qu'il y a trop de caractères précédés d'un de leurs voisins alphabétiques. Par conséquent, "ab" ou "ba" sont considérés comme mauvais, mais "ac" ou "ca" sont OK puisque le b est omis.
Avant ce patch du 2010-03-02, il autorise au maximum quatre caractères qui présentent ce trait. Par exemple, "bar12345" échouerait, car les caractères "a", "2", "3", "4" et "5" sont des voisins alphabétiques des caractères précédents.
slm a découvert dans sa réponse que M1uG*xgRCthKWwjIjWc*010iS
était OK, alors que M1uG*xgRCthKWwjIjWc*010iSt
n'est pas. Analysons. Voici les caractères qui, selon cracklib-check, sont des indications d'un mot de passe systématique :
M1uG*xgRCthKWwjIjWc*010iS
^^ ^^
qui est en dessous du maximum de quatre, mais en ajoutant le t :
M1uG*xgRCthKWwjIjWc*010iSt
^^ ^^ ^
le pousse au-dessus de la limite, puisque T suit S (il semble que le test ne soit pas sensible à la casse).
Le correctif modifie la limite maximale afin qu'elle dépende de la longueur totale du mot de passe, pour éviter les faux positifs comme celui-ci.