Conversión de contraseñas de usuario de SHA-1 y cifrado de datos de texto simple [duplicado]

0

Actualmente estoy trabajando en la conversión de un antiguo formato de base de datos donde las contraseñas de inicio de sesión del usuario se almacenaron como hashes SHA-1. Esa misma tabla también contiene otros datos de usuario almacenados en texto sin formato.

Mi objetivo ahora es convertir los hashes SHA-1 de contraseña en el algoritmo PBKDF2 y luego cifrar los datos de texto simple (no relacionados con la contraseña) con el cifrado simétrico AES-256-GCM usando la clave derivada del resultado de la ejecución de una contraseña de usuario PBKDF2. La parte GCM también permitirá la autenticación de contraseñas de usuario y amp; para la integridad de los datos.

Así que estoy tratando de investigar cómo hacerlo correctamente. Es decir, ¿convierto estos registros cuando los usuarios intentan iniciar sesión? En ese caso, un buen número de entradas se mantendrán con hash SHA-1 durante un tiempo, si no de forma indefinida, lo que NO es bueno.

Entonces, ¿cuál es el enfoque recomendado aquí?

    
pregunta c00000fd 12.04.2018 - 23:19
fuente

1 respuesta

0

Tendrá que esperar a los usuarios para iniciar sesión para cambiar las contraseñas. Tan pronto como valide la contraseña, vuelva a cifrarla con el nuevo algoritmo y guárdela en la base de datos.

Pero no use la contraseña de usuario como clave para cifrar los datos del otro usuario. Para ello, deberá volver a cifrar todo de nuevo cada vez que el usuario cambie la contraseña. En su lugar, genere una clave aleatoria segura y cifre esta clave con la contraseña del usuario. Utilice esta clave para cifrar los datos. Cuando el usuario cambia la contraseña, solo tendrá que volver a cifrar la clave, todos los demás datos no tienen que cambiar.

Si no desea dejar SHA1 en el servidor para siempre, especifique una fecha límite para cambiar (~ 3 meses), o el umbral de hashes convertidos (75%), y cuando se alcance la marca, caduque todas las contraseñas de SHA1 e instruye a esos usuarios para restablecer sus contraseñas cuando intenten iniciar sesión semanas (o décadas) más tarde. Esta página de OWASP tiene una buena hoja de trucos para eso. Básicamente, usted identifica al usuario (pida un nombre de usuario Y un correo electrónico registrado, por ejemplo), envía un enlace único con un token que caduca y le permite al usuario crear otra contraseña utilizando este enlace único.

    
respondido por el ThoriumBR 12.04.2018 - 23:26
fuente

Lea otras preguntas en las etiquetas