Similitude de mot de passe

9

Je voulais changer mon mot de passe sur une machine Unix. J'ai fait un "passwd" normal et j'ai tapé mon ancien et mon nouveau mot de passe.

Puis la machine m'est revenue avec le message suivant:

BAD PASSWORD: is too similar to the old one

Cela m'a fait réfléchir ... Est-ce que cela signifie que la machine a mon mot de passe en texte clair quelque part? Sinon, il ne devrait pas pouvoir comparer l'ancien et le nouveau mot de passe, non? Ou existe-t-il une fonction de hachage qui permet cela?

dertoni
la source

Réponses:

6

OK, j'ai donc suivi la suggestion de Michael Hampton et je suis allé voir le code de pam_cracklib.c et il semble que pam_cracklib obtient l'ancien mot de passe (aka actuel) du PAM via un appel de fonction (que je juge totalement ok, car Je viens de saisir ce mot de passe actuel pour m'authentifier), puis effectue une analyse de similitude (fonction de distance) entre cet ancien mot de passe et le nouveau que je viens d'entrer.

Mais il ne fait pas cette analyse pour tous les anciens mots de passe de son histoire. Ce ne serait pas possible, car ils ne sont stockés que sous forme de hachage. Pour eux, il ne peut y avoir de contrôle que s'ils sont identiques. Donc, tout semble être en ordre, comme je m'y attendais, mais maintenant je comprends pourquoi c'est ... merci à tous.

dertoni
la source
3

Vos anciens mots de passe ne sont pas stockés en texte brut.

Au lieu de cela, vos anciens hachages de mot de passe sont stockés /etc/security/opasswdpar PAM. Il effectue ensuite la comparaison lorsque vous allez modifier votre mot de passe, en fonction de ce qui a été spécifié dans la configuration PAM.

Un exemple de configuration PAM:

password required pam_unix.so sha512 remember=12 use_authtok

Ici, rememberil se souvient de 12 mots de passe précédents.

Pour plus de détails, voir Linux Password Security avec pam_cracklib .

Michael Hampton
la source
Mhm ... eh bien ce n'est certainement pas un mot de passe que j'ai jamais utilisé auparavant ... Il doit donc vérifier les changements de caractères d'un ancien mot de passe. Mais si tout ce qui est enregistré est un hachage de ce mot de passe, comment fait-il alors la comparaison? N'est-ce pas l'une des principales fonctions des hachages cryptographiquement sûrs de ne pas permettre une comparaison entre différents textes clairs?
dertoni
Vous m'avez bien eu. Je pense qu'il faudrait lire le code source pour y répondre avec certitude.
Michael Hampton
Je m'attendrais à ce qu'il fasse des variations sur le nouveau mot de passe et si l'un des hachages de ces variations correspond au hachage d'un ancien mot de passe, il est trop similaire. De cette façon, seuls les hachages sont stockés. Bien sûr, je n'ai pas vérifié cela dans le code source non plus ...
Ladadadada
ok, lisez le code ... a ajouté une réponse à mes découvertes. +1 pour m'aider à trouver la réponse ;-) thx.
dertoni
0

Certains systèmes peuvent stocker / calculer l'entropie (complexité des mots de passe) et les comparer, je ne sais pas si c'est le cas de PAM.

vn.
la source