¿Qué tiene de malo que SHA-1 tenga colisiones? [duplicar]

0

Digamos que vas a un sitio web y estás descargando un programa. Junto al archivo hay una suma de comprobación SHA-1 del archivo. Usted descarga el programa, verifica la suma de comprobación y encuentra que es el mismo que el del sitio web, ¡perfecto! Sin embargo, pronto encontrará que la suma de comprobación SHA-1 no es la misma porque el programa es el mismo, pero un hombre en el centro parece haberle entregado una colisión del programa, y no es lo que pensaba que era en absoluto. Mi pregunta es, ¿cuál es el problema con eso? Sería extremadamente improbable que un atacante pudiera generar una colisión que fuera un programa ejecutable y que de alguna manera pudiera infectar su sistema. El mayor inconveniente que puedo ver es que tendrías que descargarlo nuevamente.

Entonces, ¿qué daño podría ser realmente causado por una colisión?

    
pregunta Melkor 17.05.2017 - 09:04
fuente

3 respuestas

1

Hace ya un tiempo que la colisión de SHA-1 se logró con éxito por G investigadores de Google Como prueba de concepto, la investigación presenta dos archivos PDF [PDF1 , PDF2] que tienen el mismo hash SHA1, pero muestran contenido totalmente diferente.

Puede obtener más información en este documento académico.

También vale la pena mencionar que esta función criptográfica hash tiene 22 años, pero en lo que a mí respecta, todavía estamos lejos de ver un ataque al mundo real, especialmente en el escenario que describiste, excepto si eres el objetivo de un gobierno o aa empresa criminal rica:

  

Un ataque práctico de colisión contra SHA-1 costaría $ 700,000 en   2015 y $ 143,000 en 2018. Supuso a ese costo ataques,   Especialmente si eran llevadas a cabo por una empresa criminal rica.   O entidad del gobierno, podría ser factible. ( Bruce Schneier )

Ahora para ser más prácticos, una colisión SHA-1 puede afectar a la Política de Firma de Código en Modo Kernel de Microsoft, por ejemplo. Este ataque se basó en la verificación de firmas para cargar solo controladores firmados en modo kernel. Puede encontrar más aquí pero por ahora no estoy seguro de que deba preocuparse por un ataque MITM que envíe un archivo alterado ...

    
respondido por el Soufiane Tahiri 17.05.2017 - 09:35
fuente
1

Aunque se demostró que es posible crear dos archivos con el mismo hash (colisión), no es posible crear un archivo que coincida con algún hash predeterminado (ataque de preimagen). Por lo tanto, el escenario que describe no es particularmente vulnerable a una colisión de hash.

Sin embargo, tenga en cuenta que si el atacante puede inyectar otro ejecutable, también puede inyectar otro valor de hash.

Las colisiones SHA1 son particularmente un problema al firmar documentos, como las solicitudes de certificado. Con la capacidad de crear una colisión de hash, un atacante puede crear dos solicitudes de certificado, una para legit.com y otra para evilattacker.com, con el mismo hash. La autoridad certificadora firmará entonces legit.com y el atacante puede usar la firma para crear un certificado válido para evilattacker.com, y viceversa.

    
respondido por el Sjoerd 17.05.2017 - 10:30
fuente
0

Usted pregunta sobre un escenario en el que un atacante puede crear una colisión de hash con un archivo arbitrario que el atacante no controla (en este caso, la descarga válida). Esto se denomina ataque de Preimage , y generalmente es más difícil que un ataque de colisión simple, pero su escenario implica un ataque de preimagen en lugar de Una simple colisión. En ese escenario, la siguiente afirmación no se mantiene :

  

Sería extremadamente improbable que un atacante pueda generar una colisión que sería un programa ejecutable y que de alguna manera podría infectar su sistema.

Suponiendo que haya determinado cómo producir cualquier archivo Y que tenga una colisión de hash con un archivo X válido, es probable que sea tan fácil para producir un binario funcional Z con el mismo valor hash. Los binarios tienen enormes grados de libertad: puede modificar recursos incrustados (tablas de cadenas e íconos, etc.), metadatos (nombre del programa, autor, fecha de compilación, etc.) y, por supuesto, pegar la "basura" utilizada para producir el hash colisión al final del archivo, después del programa real (malicioso).

Cuando las personas producen una colisión de hash, no están trabajando desde un estado prístino en el que no hay hash, la creación cuidadosa de los datos que bit a bit produce el hash deseado (al menos, no si lo están usando de forma vaga -Moderno algoritmo hash). Todas las entradas posibles, incluida la cadena vacía , tienen un resumen de hash válido. El objetivo del buscador de colisiones es encontrar una entrada que produzca la salida deseada, pero no hay razón para que la entrada no sea parcialmente una mancha de datos fijos (como un programa de malware). Sí, ese blob tendrá su propio valor de hash inicial (resumen) ... ¡pero también lo tiene la cadena vacía!

Así que sí, si el blob A arbitrario produce la colisión deseada, el blob A (como un archivo) es extremadamente improbable que sea un programa significativo, y mucho menos malicioso. Sin embargo, la cantidad de trabajo que se necesita para encontrar el blob A es la misma cantidad que se necesita para encontrar el blob B que, cuando se concatena al final del programa M malicioso fijo, produce el resumen de M + B la colisión.

Ahora, dicho esto, las colisiones encontradas hasta ahora en SHA1 no son imágenes previas. Es decir, los investigadores de seguridad encontraron dos burbujas A y B arbitrarias que tienen el mismo resumen SHA1, pero no demostraron la capacidad de, para un especificado archivo X (o especificado el compendio D, donde presumiblemente D = SHA1 (X) para algunos X), produce un archivo Y que tiene el mismo compendio SHA1 D que X. Producieron una colisión, pero no un ataque previo a la imagen.

La resistencia a la colisión es una característica de una función hash segura, por lo que encontrar cualquier colisión ha puesto en duda la seguridad general de SHA1. Sin embargo, todavía estamos lejos de poder producir ataques de preimagen (contra compendios arbitrarios o archivos arbitrarios) contra SHA1.

    
respondido por el CBHacking 17.05.2017 - 10:09
fuente

Lea otras preguntas en las etiquetas