¿Debo preocuparme por las contraseñas de acceso forzoso que cifran AES?

5

Estoy creando una aplicación que necesita almacenar datos confidenciales localmente, que se encripta con el SHA-256 de una contraseña proporcionada por el usuario. Utiliza AES para el cifrado.

Me preocupa que algunos usuarios puedan optar por usar una contraseña débil, que podría ser impuesta por un atacante que obtiene ese archivo y quiere leer el contenido.

Estoy pensando que, para obtener el hash, se debe adjuntar un nonce a esa contraseña, y el primer nonce para el cual el hash tiene los primeros X bits establecidos en cero, esa es la clave que se debe usar. Si X se establece en 20, alrededor de 1 millón de hash deben calcularse en promedio para obtener la clave válida de la contraseña proporcionada por el usuario.

De esta manera, el usuario puede tardar 1 segundo en calcular la clave (dependiendo de su máquina), haciendo que sea extremadamente más difícil forzarla bruscamente al adivinar las contraseñas.

Por supuesto, esto es algo que se me ocurrió, y supongo que eso es por qué no debería usarlo . ¿Existe alguna alternativa ampliamente probada para esto?

    
pregunta Nathan Parker 03.11.2015 - 12:46
fuente

1 respuesta

16
  

.. cifrado usando el sha256 de una contraseña provista por el usuario.

No debes usar un hash simple para crear la clave de la frase de contraseña. Estos hashes están optimizados para la velocidad y, por lo tanto, es posible la fuerza bruta. En su lugar, debe usar funciones de derivación de claves probadas como PBKDF2 o similar. Consulte el artículo de Wikipedia sobre las funciones de derivación de claves para obtener más detalles.

    
respondido por el Steffen Ullrich 03.11.2015 - 13:01
fuente

Lea otras preguntas en las etiquetas