Proteger las credenciales de terceros en una base de datos web a la luz de contraseñas débiles

0

Necesito almacenar credenciales de terceros en una base de datos para una aplicación web. El tercero es compatible con OAUTH y planeo obtener un token de larga duración para permitir que mi aplicación acceda al tercero, pero me gustaría proteger el token de OAUTH almacenado en mi base de datos mediante la encriptación con la contraseña de inicio de sesión del usuario (usando PBKDF2 o bcrypt).

Como los usuarios habitualmente escogen contraseñas muy malas, estoy solicitando una autenticación de dos factores para mi aplicación usando TOTP ( RFC 6238 ).

¿Hay alguna forma de incorporar el token TOTP en un esquema para cifrar el token OAUTH de terceros?

    
pregunta Ralph 18.05.2016 - 22:32
fuente

1 respuesta

-1

Esto no tiene sentido. Hay una diferencia básica interesante entre las contraseñas y TOTP / HOTP. TOTP es un algoritmo simétrico. El servidor y el cliente comparten la misma información. Comparten la clave secreta OTP, la hora sincronizada y el último contador de tiempo para evitar la repetición.

En contraste, el mecanismo de autenticación de contraseña no comparte información. El usuario conoce la contraseña, pero el servidor no conoce la contraseña. Solo conoce el hash salado y tal vez salpicado de la contraseña. Es decir. El servidor no tiene todos los componentes necesarios para conocer, lo que el usuario sabe, es decir, la contraseña.

Nuevamente, en el caso de TOTP, el servidor tiene toda la información. El usuario no tiene ninguna información adicional. Esto significa que si desea usar TOTP para cifrar algo en el servidor, el servidor también tendrá toda la información para cifrar / descifrar esto. Y esto significa que los datos cifrados y la clave de cifrado (o la información que utiliza para crear la clave de cifrado) se encuentran en el servidor.

La pregunta es, qué amenazas desea mitigar.

La mitigación de la amenaza de las inyecciones de SQL y el robo de la base de datos se puede enfrentar mediante el uso de una clave de cifrado de nivel de aplicación, que no se almacena en la base de datos. En este caso, esto es incluso mejor que crear una clave de cifrado a partir de cualquier material TOTP, que probablemente también esté almacenado en la base de datos, ya que el atacante obtendría los datos cifrados y la información para crear la clave de encriptación cuando robó la base de datos. p>     

respondido por el cornelinux 21.05.2016 - 09:03
fuente

Lea otras preguntas en las etiquetas