¿La aleatoriedad evita los ataques de colisión?

8

Google ha anunciado recientemente una práctica colisión SHA-1 .

Hace unos años, el MD5 tenía problemas similares y los investigadores incluso crearon una CA falsa .

Esto no sería posible hoy, incluso con MD5, porque las CA deben incluir al menos 20 bits de datos aleatorios en el número de serie (consulte Requisitos de Mozilla ).

Mi pregunta es un poco más general: ¿son importantes los ataques de colisión si los mensajes firmados incluyen datos aleatorios generados por el firmante?

Para todos los usos de los hashes, creo que solo son las firmas donde las colisiones son importantes. Y luego, solo cuando el firmante está firmando un mensaje de alguien que no es de confianza. ¿Hay otros casos de uso donde importa? Y en este caso de uso, si el firmante siempre incluye datos aleatorios en el mensaje, eso evita ataques de colisión.

Por cierto, sigo pensando que abandonar SHA-1 es una buena idea, esta pregunta es más teórica.

    
pregunta paj28 23.02.2017 - 15:05
fuente

2 respuestas

4
Sí, la aleatoriedad controlada por el firmante y (fundamentalmente) es impredecible por el atacante elimina la posibilidad de que se genere una colisión, incluido el estilo de prefijo elegido de los ataques de colisión que se produjeron utilizado por el investigador para crear una CA falsa en 2008, y los autores del malware Flame para crear un certificado de firma falso unos años más tarde.

El motivo es el siguiente: para crear un ataque de colisión, el atacante debe tener control sobre ambas entradas. Eso no significa que ambas entradas sean necesariamente totalmente arbitrarias. De hecho, como saben, ciertamente no lo son, ni para los certificados falsificados ni para los PDF que Google creó en su experimento. De hecho, hay bastante estructura. Sin embargo, el atacante todavía necesita saber exactamente cuáles son los componentes fijos de las dos entradas, para poder generar los componentes de ambas entradas que finalmente permitirán que los hashes de las entradas completas colisionen .

Entonces, cuando el atacante no controla y no puede predecir cuál es la forma final de una de las entradas, no puede crear de antemano los datos que deberían estar en la entrada que envía al firmante para firmar. Después, solo descubre los datos de entrada completos (incluido el nonce) y el hash resultante. Esto cambia fundamentalmente el problema de la necesidad de crear una colisión, a la necesidad de crear una segunda imagen previa, que, como se ha señalado, es un problema mucho más difícil y algo que actualmente no es posible con MD5, si siempre lo será

Entonces, diría que sí, la introducción de una aleatoriedad impredecible elimina el potencial de ataques de colisión como clase.

    
respondido por el Xander 24.02.2017 - 15:47
fuente
-1

"Mi pregunta es un poco más general: ¿son importantes los ataques de colisión si los mensajes firmados incluyen datos aleatorios generados por el firmante?"

Los datos aleatorios pueden mejorar la seguridad al hacer que los ataques de colisión sean más difíciles. Sin información completa sobre el ataque, es imposible responder con seguridad, pero parece que los datos aleatorios no mejoran la seguridad en este escenario, ya que el atacante puede generar la colisión a pedido, sobre la base de un mensaje de inicio arbitrario.

"¿Hay otros casos de uso donde sea importante?"

Sí. Google, en su artículo sobre el tema, señala que alguien podría enviar dos contratos diferentes con hashes idénticos, pero términos diferentes en el contrato. Esta podría ser una parte de confianza que trata de engañarte (¡eso sucede!) O podría ser alguien que se hace pasar por la parte de confianza. El hash allí se usaría para la verificación de la integridad del archivo, no como una firma. Otro caso de uso es git. Git usa hash hashes para identificar el código. Si alguien puede generar un código nuevo con hashes idénticos, git no puede distinguir entre los dos, y un usuario de git podría crear / ejecutar software malicioso.

    
respondido por el Jesse Keilson 23.02.2017 - 20:12
fuente

Lea otras preguntas en las etiquetas