Posible problema de seguridad con el nombre de archivo md5

1

He estado almacenando archivos usando un nombre de archivo del hash md5 del archivo. Esto me permite no almacenar duplicados del mismo archivo y evita cualquier conflicto de nombre de archivo. Cada archivo tiene un uso diferente de sal / iv.

Quiero comenzar a cifrar el contenido del lado de la aplicación (usando OpenSSL PKCS5), sin embargo, al tomar el md5 del archivo cifrado, pierdo los beneficios anteriores del nombre de archivo md5.

Suponiendo que se comprometió el almacenamiento de archivos, ¿la combinación del archivo cifrado y el md5 del archivo no cifrado sería un posible problema de seguridad?

    
pregunta tombroomfield 28.11.2018 - 01:18
fuente

1 respuesta

0

Si el rango posible del contenido del archivo era lo suficientemente pequeño (ya sea porque el archivo es muy corto, porque el atacante conoce todas las partes del archivo excepto por una parte muy corta, o porque el atacante sabe que el contenido del archivo es uno de un conjunto limitado de cosas, entonces el atacante puede realizar una búsqueda de fuerza bruta de los posibles contenidos del archivo y verificar el resumen de hash de cada resultado para ver si coincide con el nombre del archivo.

Tenga en cuenta que esta vulnerabilidad no tiene nada que ver con el hecho de que MD5 está criptográficamente roto y en desuso; Cualquier función hash sería vulnerable al mismo problema. Si desea evitar el riesgo, debe evitar el cifrado de archivos pequeños / predecibles, o no debe dejar que el resumen de hash de texto sin formato de cada archivo se coloque en el mismo texto (el nombre del archivo).

Otro ataque que podría ser posible es si el atacante conoce al menos algunos de los archivos que ha almacenado y puede generar un nuevo archivo para que lo almacene. Debido a que el MD5 está dañado, el atacante podría crear un archivo malicioso que tenga el mismo MD5 que el archivo que le interesa, y luego, cuando almacene el archivo provisto por el atacante, sobrescribirá su archivo original porque tendría el mismo nombre. El uso del cifrado es irrelevante aquí (excepto en la medida en que hace que sea más difícil para el atacante saber qué archivos ha almacenado); esto es simplemente una consecuencia de la desduplicación de archivos utilizando un algoritmo para el que sabemos cómo crear colisiones y pre-imágenes (parciales). Para evitar este riesgo, no permita que un atacante potencial sepa qué archivos almacenó, no almacene los archivos que suministra un atacante potencial y / o pase a utilizar un algoritmo hash seguro como un miembro de las familias SHA2 o SHA3.

    
respondido por el CBHacking 28.11.2018 - 01:39
fuente

Lea otras preguntas en las etiquetas