El problema principal es que las contraseñas incorrectas deben almacenarse de una manera que les permita ser mostradas posteriormente a los usuarios. Lo que, como señaló su desarrollador, significa que no pueden ser criptográficamente procesados primero. El resultado es que los almacena como texto sin formato (incorrecto) o cifrado (mejor, pero normalmente no se recomienda).
El mayor riesgo es si esta base de datos de contraseñas no válidas se vuelve accesible para los atacantes. O comprometen el servidor, realizan la inyección de SQL o lo recuperan de alguna otra manera. En lugar de descifrar las contraseñas principales, las cuales, con suerte, están fuertemente ocultas y, por lo tanto, son objetivos más difíciles, podrían decidir comprometer las cuentas utilizando la información del historial de contraseñas no válidas. O acceden fácilmente a las contraseñas de texto simple o intentan encontrar la clave de cifrado que les permite descifrar las contraseñas de texto simple.
Una fuente común de errores de inicio de sesión son los errores menores durante el proceso de ingreso de la contraseña. Así que mi contraseña es Muffins16 pero escribo mUFFINS16 porque mi bloqueo de mayúsculas está activado. O Muffins166 porque presioné la misma tecla dos veces. O Muffina16 porque mi dedo golpeó la tecla equivocada. Como puede ver, estas variaciones son lo suficientemente cercanas al original como para que los atacantes puedan determinar la contraseña válida de las contraseñas no válidas al intentar algunas modificaciones menores o comparar contraseñas incorrectas con palabras o nombres de diccionarios probables.
Este problema se agrava porque la mayoría de las personas usan opciones de contraseña similares a estos formatos y no cadenas aleatorias. Es más difícil para un atacante identificar el error tipográfico si su contraseña no válida es V8Az $ p4 / fA, aunque todavía es mucho más fácil probar variaciones de eso y luego adivinarlo sin ninguna información.
Otro riesgo es que los usuarios no recuerden cuál de sus contraseñas usaron en este sitio, por lo que intentan las comunes. Ahora, este sitio es repentinamente un objetivo más grande porque un atacante podría no solo comprometer la cuenta de un usuario allí, sino también en otros sitios con la útil lista de contraseñas "no válidas".
Puede mitigar algunos de estos riesgos borrando el almacenamiento de contraseñas no válidas inmediatamente después de mostrarlas luego de un inicio de sesión válido. Eso debería limitar la ventana de oportunidad para que un atacante acceda y se beneficie de los datos.
La pregunta que probablemente debería hacerle a su cliente es cómo predicen que los usuarios se beneficiarán al ver sus contraseñas no válidas. ¿Es así que los usuarios pueden identificar cómo escribieron mal su contraseña? Los errores tipográficos no son intencionales, por lo que no es probable que mostrarles su error mejore los intentos de inicio de sesión futuros. ¿Los usuarios pueden identificar a un atacante que intenta adivinar sus contraseñas? Se pueden proporcionar comentarios similares por fecha de lista, hora, IP / geolocalización u otra información para intentos inválidos sin el intento de contraseña. ¿Los usuarios saben que cometieron errores al ingresar la contraseña y no culpan al sistema de inicio de sesión del sitio? Este parece ser el único con mérito y no estoy seguro de que proporcione suficiente valor para justificar el riesgo.
Mi opinión es que una vez que entiendas mejor lo que están tratando de lograr con esta función, probablemente puedas sugerir alternativas más seguras.