La reutilización de contraseñas puede considerarse una pandemia de seguridad. La forma obvia de solucionar esto es alentar a las personas a usar administradores de contraseñas, pero (comparativamente) pocas personas lo hacen.
Mi idea es tener sitios web, una vez que un usuario se registre o cambie su contraseña, para verificar la misma contraseña en todas las demás cuentas. Si se encuentra uno, luego de un retraso establecido de aproximadamente un día, se enviará un correo electrónico al usuario que se registró o cambió su contraseña, alertándolos de este hecho y recomendándoles que cambien su contraseña.
Puedo imaginar un problema inmediato con esto, que son los recursos del sistema. Es costoso codificar de forma segura las contraseñas, y el hash de una sola contraseña para compararlas con miles, posiblemente millones de cuentas podrían ser gravadas. Otro problema posible es el spam, pero creo que esto puede solucionarse fácilmente con la verificación del correo electrónico.
Suponiendo que las prácticas de almacenamiento de contraseñas son correctas, y suponiendo que los recursos del sistema no son un problema, ¿hay algún problema de seguridad al hacer esto?
Para reiterar:
- Un usuario se registra o cambia su contraseña.
- El sistema verifica si esa contraseña se usa en otra cuenta. Durante este tiempo, la contraseña se almacena en la memoria. Si el sistema experimenta una falla durante este tiempo, la verificación se cancela y se asume que la contraseña es única.
- Si se reutiliza, el usuario recibe un correo electrónico al día siguiente simplemente diciendo que su contraseña se usa en otro lugar y recomendar que el usuario la cambie.