Dado que hash de contraseña segura es una segunda línea de defence , su efectividad no se puede probar hasta que se rompa la línea de defensa first , es decir, se piratee el servidor o hacen algo estúpido como enviar su contraseña por correo electrónico.
Como han explicado otros, si el sitio puede devolverle su propia contraseña, entonces, por definición, la almacenaron, y no solo un token de verificación de una sola vía (generalmente designado por "hash de contraseña"). Esta es una pista definitiva sobre el almacenamiento muy inseguro. Sin embargo, si no devuelve su contraseña, no significa que la almacenen de forma segura. Aún podrían almacenarlo de manera reversible (por ejemplo, encriptado en lugar de hash), o incluso podrían hacerlo con una función de hashing de contraseña débil (por ejemplo, sin sal, o con una función de hash que es demasiado rápida, o ambas) - vea esta respuesta para más detalles).
Otras pistas de almacenamiento de contraseña incorrecta incluyen:
-
Detección posterior a los hechos de "contraseñas incorrectas": si le envían un correo electrónico indicando que su contraseña debe cambiarse porque no cumple con algunas reglas internas, entonces tenga acceso a la contraseña de forma asíncrona (es decir, no solo cuando la ingresa para la autenticación), y eso es malo.
-
Rechazo de contraseñas similares : si cambia su contraseña con una nueva contraseña que es muy similar (pero no idéntica) a una contraseña anterior que usó, y el sitio la rechaza sobre esa base, entonces el sitio puede saber qué contraseñas son similares entre sí, lo que nuevamente implica un almacenamiento reversible.
-
Tiempo de respuesta muy rápido. Este es difícil de medir y ciertamente no puedes hacerlo a mano; tiene que ser un guión Cuando envía una solicitud de autenticación, puede medir el tiempo que tomó el servidor para responder. Durante ese retraso, con el hash de contraseña normal, el servidor debe ha calculado la función de hash. Para una mayor precisión envíe muchas solicitudes de autenticación; Si el servidor puede manejar 100 solicitudes por segundo, entonces sabrá que cualquier hash que usen requiere no más de 1/100 de su capacidad de CPU. Advertencia: si lo hace, es posible que lo detecten como un atacante que intenta realizar un ataque de diccionario (a la inversa, si no es detectado, esto significa que el sitio no está protegido contra en línea ataques de diccionario, y eso también es malo).
Personalmente, diría que imponer un cambio de contraseña cada 90 días ya es un signo de mala gestión de la contraseña en general. En cualquier caso, no reutilizará las contraseñas . Cuando no reutiliza las contraseñas, la falta de seguridad en el almacenamiento de contraseñas en un sitio es mucho menos crítica.