almacenando de forma segura las contraseñas que se pueden recuperar

0

Estoy intentando crear una aplicación web que pueda almacenar contraseñas de otros servicios como Facebook, Gmail ... etc.

Estas contraseñas se pueden recuperar y luego mostrar al usuario. Esto tiene que ser una aplicación web y tiene que funcionar con navegadores modernos. La aplicación no puede tener el concepto de una contraseña maestra que pueda ingresar el usuario. Tiene que funcionar sin ninguna aportación del usuario. Por lo tanto, el cifrado y descifrado local del dispositivo con la contraseña maestra puede no ser una opción como la forma en que lo hacen los siguientes servicios.

¿Hay una forma segura de hacerlo con encriptación como AES? Si el servidor está comprometido, por ejemplo, ¿hay alguna forma de proteger las claves?

EDITAR: En la aplicación, el usuario tiene autenticación. Para que el usuario pueda iniciar sesión y luego ingresar sus credenciales a otras plataformas. Pero esa contraseña maestra no se puede usar para cifrar las claves porque en el sistema el usuario puede compartir la contraseña con otros usuarios de esta elección. En ese caso, el otro usuario puede ver la contraseña sin la contraseña maestra. Espero que quede claro el requisito

    
pregunta Prasanth 28.08.2015 - 17:45
fuente

3 respuestas

1

En general, almacenar contraseñas en un formato reversible es una mala idea.

Dicho esto, podría usar AES, con la contraseña del usuario como clave (imponer una política de contraseña segura). De esa manera, los usuarios no podrían ver los datos encriptados de los demás, y un compromiso del servidor no revelará la clave de los datos de todos sin descifrar los hashes de la contraseña del usuario primero.

EDITAR: Esto solo se aplica si su aplicación tiene algún tipo de autenticación de usuario. Si solo tienes una aplicación en la que alguien puede cargar datos, entonces no será seguro. Un ataque SQLi no obtendrá la clave si lo mantiene fuera del esquema de base de datos, pero un compromiso completo de la casilla permitirá que un atacante encuentre y use la clave.

    
respondido por el Jay 28.08.2015 - 17:56
fuente
0

Podría generar una clave de 128 bits protegida criptográficamente y almacenarla en el almacenamiento HTML5 en el navegador.

Esto cifraría los datos sin ninguna entrada del usuario.

Sin embargo, el usuario tendría que usar el mismo navegador y la misma computadora todo el tiempo. Puede agregar la opción para exportar el valor, por ejemplo, una extensión del navegador que extrae la clave en el almacenamiento HTML5 y la escribe en una ubicación local de la elección del usuario (por ejemplo, una memoria USB). Puede solicitar al usuario una contraseña para cifrar la clave extraída, para protegerla en tránsito a otro navegador. Se recomienda reforzar esta clave con bcrypt / pbdkdf2.

En cuanto al envío de ciertas credenciales a otros, puede utilizar la criptografía de clave pública implementada en JavaScript para cifrar los datos con los usuarios de destino. clave pública y luego enviarla a ellos usando su sistema.

    
respondido por el SilverlightFox 30.08.2015 - 16:06
fuente
0

¿Qué hay de usar las claves de cifrado de padres e hijos? Las contraseñas cifradas son definitivamente la solución, lo que se debe lograr es asegurar las claves de cifrado de modo que solo el usuario legítimo pueda descifrar y usar los datos (contraseña aquí). Es posible que necesite algo como el modelo de gestión de claves de cifrado Bring Your Own Keys (BYOK). Intente un cifrado como una solución de servicio como SecureDB.

    
respondido por el Vibs 01.09.2015 - 11:40
fuente

Lea otras preguntas en las etiquetas