Similitud de contraseña

9

Quería cambiar mi contraseña en una máquina Unix. Hice un "passwd" normal y escribí mi contraseña anterior y la nueva.

Entonces la máquina volvió a mí con el siguiente mensaje:

BAD PASSWORD: is too similar to the old one

Eso me hizo pensar ... ¿Eso significa que la máquina tiene mi contraseña en texto claro en alguna parte? De lo contrario, no debería poder comparar la contraseña antigua y la nueva, ¿verdad? ¿O hay una función hash que lo habilita?

dertoni
fuente

Respuestas:

6

OK, así que seguí la sugerencia de Michael Hampton y fui y miré el código de pam_cracklib.c y parece que pam_cracklib obtiene la contraseña antigua (también conocida como actual) del PAM a través de una llamada de función (que considero totalmente correcta, ya que Acabo de ingresar esa contraseña actual para autenticar) y luego realizo un análisis de similitud (función de distancia) entre esa contraseña anterior y la nueva que acabo de ingresar.

Pero no hace este análisis para todas las contraseñas antiguas de su historia. Eso no sería posible, porque solo se almacenan como hashes. Para ellos solo puede haber un cheque si son iguales. Así que todo parece estar en orden, como esperaba, pero ahora entiendo por qué está ... gracias a todos.

dertoni
fuente
3

Sus viejas contraseñas no se almacenan en texto sin formato.

En cambio, sus antiguos hashes de contraseña son almacenados /etc/security/opasswdpor PAM. Luego realiza la comparación cuando va a cambiar su contraseña, en función de lo que se ha especificado en la configuración de PAM.

Un ejemplo de configuración PAM:

password required pam_unix.so sha512 remember=12 use_authtok

Aquí, rememberhace que recuerde 12 contraseñas anteriores.

Para obtener más detalles, consulte Seguridad de contraseña de Linux con pam_cracklib .

Michael Hampton
fuente
Mhm ... bueno, definitivamente no es una contraseña que haya usado antes ... Por lo tanto, debe verificar los cambios de caracteres en una contraseña anterior. Pero si todo lo que se guarda es un hash de esa contraseña, ¿cómo logra la comparación entonces? ¿No es una de las funciones principales de los hashes criptográficamente seguros para no permitir una comparación entre diferentes textos claros?
dertoni
Me atrapaste. Creo que tendrías que leer el código fuente para responder con seguridad.
Michael Hampton
Esperaría que haga variaciones en la nueva contraseña y si alguno de los hash de estas variaciones coincide con el hash de una contraseña anterior, es demasiado similar. De esa manera, solo se almacenan los hashes. Por supuesto, tampoco he verificado esto en el código fuente ...
Ladadadada
ok, lee el código ... agregué una respuesta sobre mis hallazgos. +1 por ayudarme a encontrar la respuesta ;-) gracias.
dertoni
0

Algunos sistemas pueden almacenar / calcular la entropía (complejidad de la contraseña) y compararlos, no sé si es el caso de PAM.

vn.
fuente