Colisiones en MD5

Junio 13th, 2005

En un artículo de la universidad Ruhr-Universitat Bochum nos cuentan como unos investigadores han encontrado un método para producir dos documentos diferentes cuyo resumen MD5 es el mismo. Aunque el método usado no es generalizable a cualquier tipo de documento, los resultados son bastante claro: MD5 debe ser desterrado.


Para obtener este resultado utilizaron un par de documentos Postscript y una técnica que consiste en buscar dos prefijos diferentes que tengan el mismo resumen y mostrar un texto u otro dependiendo de cual de estos prefijos se está utilizando.

Como es un poco complicado de explicar lo haremos mediante un pseudo-algoritmo. Este sería el primero de los documentos:

prefijo = “11223344”
if (prefijo = “11223344”) {
   mostrar “Texto 1”
} else {
   mostrar “Texto 2”
}

 y este el segundo:

prefijo = “99887766”
if (prefijo = “11223344”) {
   mostrar “Texto 1”
} else {
   mostrar “Texto 2”
}

Como Postscript es un lenguaje de programación permite hacer cosas como estas. De este modo, dependiendo del prefijo mostrará un texto u otro. Si los prefijos tienen el mismo resumen, los dos documentos también tendrán el mismo resumen.

Esto no es exclusivo de Postscript, sino que podría utilizarse en casi cualquier documento que acepte código dentro de los ficheros de datos (por ejemplo, documentos de Office o incluso ficheros ejecutables) y está causado por la facilidad para encontrar colisiones aleatorias en MD5.

Podemos ver la presentación donde se explica más gráficamente o una interesante discusión en Slashdot.

 

Guardado en General, Seguridad avanzada | Comentarios desactivados en Colisiones en MD5

Los comentarios están cerrados.