La recuperación de claves es una pregunta muy antigua y desde un punto de vista conceptual no ha cambiado durante siglos:
- si solo existe una clave (lea: solo una persona conoce el secreto ), solo el propietario de la clave puede abrir la caja fuerte, pero si la clave se destruye o se pierde (lea: el usuario olvida su contraseña), lo que está en la caja fuerte (leer: datos encriptados) se pierde (*) = > esto se puede utilizar para datos personales cuando el riesgo de compromiso es más grave que el riesgo de pérdida
- esto se puede mitigar creando una segunda clave (lea: un tercero tiene acceso al secreto). Si la clave se pierde o se destruye, el propietario de la caja fuerte solicita la copia e inmediatamente crea una nueva copia = > esto se utiliza cuando la pérdida de datos es un mayor riesgo, cuando la información es esencial para más de una persona, por ejemplo, los archivos confidenciales de una organización.
En este último caso, la parte difícil no es técnica, sino solo organizativa: ¿cómo puede el propietario de la clave confiar en el tercero? Para los restablecimientos de contraseñas web / servidor, los administradores siempre pueden hacer cualquier cosa en nombre de un usuario, por lo que conceptualmente tienen una clave y pueden dar una copia al propietario. En organizaciones medianas a grandes y datos altamente confidenciales, un uso común es tener un seguro (físico o numérico) que solo puede desbloquearse mediante dos claves diferentes, y nadie debería mantenga ambas teclas - nota: esto es más o menos cómo funcionan las cajas fuertes personales en el banco, el banco es responsable de la llave de la sala de cajas fuertes y el propietario tiene la llave de su caja fuerte personal. Para datos menos confidenciales, un oficial de seguridad puede guardar copias, así es como funciona la recuperación de claves con la carpeta encriptada de microsoft: la clave simétrica se cifra dos veces, una con la clave personal del usuario y una vez con una clave administrativa para permitir que un administrador se recupere los datos.
Entonces, la buena pregunta es cuál es su verdadero requisito de seguridad:
- el único usuario es responsable de sus propios datos
- el administrador (o la mesa de ayuda o ...) debería poder recuperar los datos si un usuario pierde su contraseña
- realmente necesita dos personas diferentes para cooperar con el fin de recuperar datos
La tercera forma se puede configurar simplemente codificando una clave simétrica secuencialmente con dos claves públicas diferentes, pero la recuperación será más compleja porque los propietarios de las claves privadas tendrán que trabajar juntos.
(*) siempre puedes intentar romper una caja de seguridad física, pero algunas pueden ser diseñadas especialmente para destruir su contenido en ese caso
Hablemos ahora de tu problema real. El juego de 3 preguntas es un intento de un sistema de autenticación de múltiples factores. El problema es que alguien que conoce a la persona puede adivinar las respuestas si son ciertas (y muchas personas saben mucho acerca de las celebridades) y el uso puede olvidar lo que contestó y no quiere que nadie pueda adivinarlo. La mejor manera para que un usuario no olvide una contraseña en particular es almacenarla en una caja fuerte segura como la excelente keypass . La analogía será: Pongo una copia de todas mis llaves en una caja fuerte y mantengo su llave adjunta a mi collar. Para evitar la pérdida del archivo de contraseñas, es fácil sincronizar un paso de teclado en un escritorio con uno en un teléfono inteligente. Desafortunadamente, solo puede ser utilizado por usuarios educables.
Si lo que necesita es permitir que los usuarios recuperen su contraseña, significa que tiene que crear una copia (en su servidor o en la máquina del usuario) cifrada con una clave pública de la cual es propietario la parte privada . Si el usuario conserva la copia, tendrá que enviársela para que la descifre y la envíe. Esta parte es muy sensible y puede intentar configurar una autenticación de múltiples factores: una autenticación normal y una cuenta de correo secundaria, por ejemplo. Si usted guarda la copia, debería pensar en las consecuencias de que su clave maestra se vea comprometida = > rompe toda la seguridad del sistema.