¿Cuál es la forma más segura de evitar el cifrado para permitir la recuperación de la contraseña?

8

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?

    
pregunta ArtOfCode 30.03.2016 - 22:06
fuente

1 respuesta

6

Para continuar con el pensamiento de @ Matthew, hagámoslo muy simple: ¿quieres que tus administradores tengan acceso a los datos del usuario o no?

Nunca he visto un sistema que prohíba completamente a los administradores acceder a los datos, y también permite la recuperación de datos en el caso de pérdida de contraseña ... esos dos realmente parecen contradictorios.

Todos los servicios en la nube que se me ocurren con el enfoque "tampoco podemos acceder a él" también tienen un borrado de datos como parte del proceso de recuperación de contraseña. Ejemplos:

  • Contraseñas / marcadores de Google Chrome en su Panel de control .

  • Los 4 principales proveedores de almacenamiento en la nube en esta lista todos tienen una política de "¿Olvidó su contraseña? ¡Lástima, por cierto, datos"!

EDITAR:

Lo anterior supone que usted desea un proceso de registro / recuperación de usuario estándar y ligero. @Xander señala que si estás dispuesto a poner una carga adicional sobre los usuarios, entonces tienes opciones.

Como sugiere en su pregunta, puede (por ejemplo) poner una copia cifrada de la clave de descifrado en el servidor con los archivos, siempre que haya cifrado esta clave con otra cosa, como una clave derivada de una segunda contraseña, o una clave almacenada en un archivo de clave que la aplicación genera como parte del proceso de registro. (pero luego, si el usuario deja el archivo de la clave de recuperación en el mismo dispositivo en el que se encuentra la aplicación, niega toda la seguridad).

Al final del día, si olvidaron su contraseña, ¿quién puede decir que son confiables con estas cosas? No estoy seguro de que realmente resuelva el problema central de "hacer que su sistema sea a prueba de idiotas".

    
respondido por el Mike Ounsworth 30.03.2016 - 22:23
fuente

Lea otras preguntas en las etiquetas