Almacenando la contraseña de AES para verificación

1

Me preguntaba si tal práctica sería segura:

  • Tengo una tabla que almacena notas cifradas
  • Cada nota tiene un campo de datos y un campo de contraseña
  • Cuando se ingresa una contraseña, quiero seleccionar todas las notas, cifradas con esa contraseña
  • Para este propósito, necesito almacenar de forma segura la contraseña junto a los datos
  • Puede haber muchas notas y muchas contraseñas diferentes

Para resolver este problema, esto es lo que hago:

  • Cifre los datos que se almacenarán con una clave AES, generada por PBKDF
  • hash la clave con md5
  • Almacene la versión md5 de la clave junto a los datos

Esto es lo que estoy pensando:

  • MD5 es super inseguro!
  • Por lo tanto, tenemos una mejor posibilidad de que los brutos obliguen al hash MD5 a recuperar la clave original
  • Pero ...
  • La clave es de 256 bits
  • Entonces, en teoría, la fuerza bruta de tal hash md5 debería ser una pesadilla ... ¿o me equivoco?

¿Cuál sería una mejor alternativa para almacenar un hash de contraseña (solo lo necesito para determinar qué notas seleccionar de db)?

Gracias por tus pensamientos

    
pregunta Marius 18.11.2014 - 09:20
fuente

2 respuestas

3

Por lo que puedo decir de los comentarios, desea utilizar contraseñas más seguras y más débiles, dependiendo de la sensibilidad del archivo. Para eso, sugiero un enfoque diferente: en lugar de tener contraseñas diferentes, se requiere una contraseña adicional para los documentos más confidenciales. Por lo tanto, todos los archivos se cifran de forma predeterminada mediante la contraseña estándar, y los archivos más confidenciales se cifran de nuevo con la contraseña más segura. Haga que el usuario se autentique utilizando su contraseña predeterminada cuando inicie la aplicación, y luego pídale la contraseña confidencial cada vez que quiera acceder a los archivos confidenciales.

Si desea almacenar qué notas están cifradas con la misma contraseña, no necesita almacenar la contraseña en sí. De hecho, no almacene la contraseña en absoluto. Almacene el nivel de seguridad del archivo (bajo / medio / alto) y solicite contraseñas basadas en ese nivel de seguridad.

    
respondido por el Nzall 18.11.2014 - 11:50
fuente
3

De Wikipedia :

  

Un ataque de 2013 de Xie Tao, Fanbao Liu y Dengguo Feng rompe la resistencia a la colisión del MD5 en 2 ^ 18. Este ataque se ejecuta en menos de un segundo en una computadora normal. [2]

Esto significa que hay una debilidad en la capacidad de MD5 para distinguir entre diferentes datos de entrada, ya que dos entradas arbitrarias pueden calcular el mismo hash.

  

En abril de 2009, se publicó un ataque de preimagen contra MD5 que rompe la resistencia de preimagen de MD5. Este ataque es solo teórico, con una complejidad computacional de 2 ^ 123.4 para la preimagen completa. [40] [41]

Esto significa que hay una debilidad teórica en MD5, que le permite localizar una preimagen desde el valor del resultado. Si su MD5 es 508e01033ebe14c9c339b9928d7ce4bd, es posible que alguien en el futuro (dado suficiente poder de cómputo) use el ataque de preimagen para encontrar que la contraseña original era hfghfhghfhgf.

    
respondido por el Henning Klevjer 18.11.2014 - 09:39
fuente

Lea otras preguntas en las etiquetas