Para un proyecto universitario mío, estoy creando un administrador de contraseñas en línea y quiero poder almacenar las contraseñas de los usuarios en mi servidor sin poder acceder a ellas. Esto es lo que pretendo hacer:
- cifrar las contraseñas de los usuarios con el cifrado RSA
- almacene las claves utilizadas para el cifrado, cifradas con un hash largo generado en el lado del cliente utilizando el
master password
- Hacer que el usuario escriba su
master password
cada vez que se usen algunas de las claves
Pero en este proceso hay un gran problema . No puedo recuperar / generar una nueva contraseña de usuario. ¿Qué pasa si se olvidaron de su contraseña.
Según lo que se me ocurrió, hay dos opciones:
-
No le da a los usuarios la capacidad de cambiar su contraseña, bueno esto Parece que está matando el producto antes del lanzamiento
-
Cambie la contraseña del usuario manteniendo una copia de la clave cifrada con Algún otro tipo de hash es una pregunta de seguridad: esto no parece ser una opción, ya que las preguntas de seguridad están obsoletas en la mayoría de los sitios web modernos debido a los riesgos de seguridad.
¿Tengo otras opciones excepto estas? Supongo que necesito una arquitectura 'Trust No One' (TNO) o 'Zero Trust' pero hay algunos agujeros en mi diseño.