Actualmente estoy tratando con un par de cuentas de usuario que contienen contraseñas de hash MD5. Estas cuentas se migraron de un sistema antiguo a nuestro sistema actual que utiliza PBKDF2 para el hashing de contraseñas. Me gustaría levantar las cuentas antiguas al hash de contraseña PBKDF2 también.
Descifrar nuestros propios hashes MD5 y volver a utilizarlos con PBKDF2 está fuera de discusión.
Lo primero que me vino a la mente fue migrar las contraseñas de los usuarios al iniciar sesión, tal como se describe aquí .
Sin embargo, nunca podré migrar todas las contraseñas de los usuarios porque algunos de ellos nunca volverán y, por lo tanto, nunca volverán a iniciar sesión, dejándome para siempre con hashes no seguros.
Quedan dos opciones:
- Restablecer todas las contraseñas e informar a los usuarios por correo electrónico
- Vuelva a cargar los hashes MD5 en la base de datos con PBKDF2 y use este hash doble cuando se registre un "usuario legado". Lo que significa
PBKDF2(MD5(plaintext))
.
La primera solución sería muy desagradable para los usuarios, ya que tendrían que establecer una nueva contraseña, por lo que estoy tendiendo a la segunda solución. Esto parece apoyar este enfoque, aunque se refiere principalmente a bcrypt y no a PBDKF2
¿Está envolviendo MD5 en PBKDF2 (o, para lo que vale, otros algoritmos de hashing seguro) algo que se puede hacer de manera segura, o existen mejores métodos para lidiar con hashes MD5 antiguos e inseguros?