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.