¿cuál es el hash más seguro para las bases de datos de definición de virus en 2015?

1

Me han dicho que, si quisiera crear firmas de virus a partir de archivos infectados para usarlos en el futuro, debería tener cuidado, ya que algunos de ellos son propensos a ataques de colisión.     

pregunta macphail magwira 31.08.2015 - 19:10
fuente

1 respuesta

3

Una colisión para una función de cifrado criptográfico h es un par de elementos de datos (dos secuencias de bits) m y m ', que son distintos entre sí, pero tienen el mismo valor ( m m' pero h ( m ) = h ( m ')). Como una función hash acepta como secuencias de entrada de bits que pueden ser mucho más largas que el tamaño de salida fijo, el número de entradas posibles para una función hash excede el número de salidas posibles; por lo tanto, es una certeza matemática que existen colisiones para cualquier función hash dada. Una función hash criptográficamente segura es tal que encontrar una colisión es computacionalmente inviable (sabemos que existen colisiones, pero no queremos que las personas puedan encontrarlas).

Un ataque de colisión es un ataque que explota las debilidades estructurales de una función hash específica para generar colisiones. Esto funciona solo para la función hash para la que se conoce una debilidad, es decir, funciones que, por definición, se ha demostrado que no son criptográficamente seguras.

Lo que un ataque de colisión permitiría a un atacante, en su caso, no está claro. Su "base de datos de virus" prevista almacena valores de hash calculados sobre secuencias de bytes que se han considerado "maliciosos" y que deben dispararse a la vista; desea almacenar valores hash y no las secuencias maliciosas en su mayoría para hacer que las búsquedas sean más eficientes y mantener los costos de almacenamiento bajos. Si el atacante hace arreglos para que dos de sus virus hagan un hash con el mismo valor, entonces esto significa que la inclusión en la base de datos del valor de hash (común) resultaría en la prohibición del virus ambos de una sola vez, que sobre lo opuesto a lo que le gustaría al atacante: el atacante desea que su virus pase desapercibido, para que no lo detecten de manera más eficiente.

Los ataques de colisión serían un gran problema en el caso de una base de datos de no virus. Si creas una base de datos de ejecutables "sanos", el atacante intentaría hacer una colisión entre un ejecutable inofensivo m y algún malware m '; luego enviaría m para su verificación, de modo que h ( m ) se agregue a la lista de "archivos inofensivos verificados". Dado que el atacante organizó las cosas de modo que h ( m ) = h ( m '), esa colisión significaría que m ' (el virus) también se declararía sano.

Si bien no está claro qué se puede obtener (para el atacante) de las colisiones de hash en una base de datos de virus, se considera mejor utilizar una función de hash criptográficamente segura, por si acaso. El ejemplo principal de una función hash segura non es MD5: las colisiones pueden producirse de manera muy eficiente para esta función. La situación de SHA-1 es menos clara: aún no se ha exhibido una colisión, pero se ha descrito un ataque teórico, que debería dar como resultado colisiones con un esfuerzo computacional que es enorme (2 61 evaluaciones función) pero aún así sustancialmente menos que los esfuerzos que se requerirían para una función hash "perfecta" con el mismo tamaño de salida (2 80 ).

La recomendación habitual para una función hash segura es SHA-256 o, más generalmente, cualquier función de la familia SHA-2 (SHA-256 es uno de los seis miembros actuales de esa familia).

    
respondido por el Tom Leek 31.08.2015 - 19:29
fuente

Lea otras preguntas en las etiquetas