Tengo una aplicación web (que tengo comentado aquí antes ). Los usuarios pueden usarlo para guardar los detalles de contacto de las personas. Estos detalles de contacto están encriptados para garantizar que sean difíciles de obtener si se filtran.
El sistema de cifrado también está diseñado para que los administradores tampoco puedan acceder a los datos. La clave de cifrado se basa en la contraseña del usuario.
Estoy buscando formas de habilitar la recuperación de contraseña. El problema aquí es que una contraseña olvidada, en este momento, también conlleva una pérdida total de datos, ya que la clave se basa en la contraseña. Si no conoce su contraseña, entonces no se puede calcular su clave y sus datos. no puede ser descifrado No es ideal.
Tengo un par de maneras de resolver esto:
- Guarde las claves de descifrado. Esto parece una idea terrible desde una perspectiva de seguridad, por lo que preferiría no hacerlo si es evitable.
- Tiene dos contraseñas. Una para ingresar a la cuenta, una para usar para la clave de cifrado. Esto tiene un impacto en los usuarios: tienen que recordar dos contraseñas.
También puede haber otros métodos válidos en los que no pueda pensar. Ninguno de estos parece muy seguro, ¿o me equivoco? ¿Qué formas seguras hay de hacer esto?