Es importante que conozcamos un poco de historia sobre estos algoritmos de «resumen» del contenido. Realmente el HASH utilizado por el eMule es un doble MD4. Este algoritmo de resumen del contenido fue creado en 1990 por el criptógrafo Ronald Riverst[1]. El mismo que también creo al poco tiempo el popular MD5 en 1992, que también ha sido vulnerado. (ver demo que duplica el HASH MD5 de dos archivos)
El MD4 quedó académicamente vulnerado en 1996 por el criptógrafo alemán Hans Dobbertin[2] donde presentó algunas debilidades.
Pero no ha sido hasta el año 2004 cuando un hecho importante ocurrió en la conferencia CRYPTO 2004 celebrada en California. Relataron las crónicas lo siguiente:
«El público respondió a la presentación del chino Dengguo Feng[3], con una ovación de pie, y la dramática afirmación de que las colisiones MD4 se pudieron calcular «a mano«. La aparición de estos ataques no fue una sorpresa repentina, teniendo en cuenta las advertencias de larga data, y las recomendaciones anteriores (Hans Dobbertin desde 1996) para utilizar el SHA1 más segura y estándar».
Pero ¿qué son las colisiones? En patatas y coles, centrándonos en la red eDonkey, es la posibilidad de que un mismo HASH de archivo pudiera ser asignado a más de dos archivos con diferente contenido o que el HASH de una instalación eMule pudiera ser asignada en más de una ocasión a otras instalaciones.
A partir de ahora emplearé indistintamente los términos MD4 y HASH como sinónimos ya que estamos tratando específicamente el uso del algoritmo MD4 en la red eDonkey (la del eMule).
¿Qué consecuencias pueden traer esta vulnerabilidad?
1) La primera y más importante consecuencia es que pueden existir en la red eDonkey dos archivos con contenido diferentes y con un mismo identificador HASH. No estamos ante lo que se conoce popularmente como un Fake file (archivo falso cuyo nombre no hace referencia a su contenido). Estamos ante algo mucho más peligroso, un FAKE HASH. Imaginemos una red llena de Fake Servers y de empresas cuya labor se centra en llenar las redes de archivos con HASH alterados para desmoralizar a los usuarios en sus descargas, ¿será esta una evolución de sus técnicas de creación de fakes?
2) Sin pretender rizar el rizo, la red eDonkey también utiliza el tamaño del archivo como señal diferenciadora. Hemos de tener presente que esta red utiliza también el MD4 para cada una de las partes (chunks) descargadas de un archivo. Cada parte tiene su propio HASH que sirve igualmente para garantizar la integridad. Empresa como CopeerRight Agency, ofrece entre sus soluciones anti piratería «Crear ficheros clones» o «Difundir partes de ficheros corruptas» . Quizás este sea el motivo de que muchas fuentes activas nunca inicien su difusión efectiva.
3) En España mensualmente se acontecen detenciones de usuarios de las redes P2P, relacionados con la difusión de archivos de pornografía infantil. Las investigaciones policiales se limitan a conectar a la red eDonkey como un simple peer. Los agentes no inician en ningún momento la descarga desde las IP públicas localizadas, atribuyéndose la difusión a los internautas por el mero hecho de aparecer como fuente disponible de un archivo cuyo HASH ha sido descargado en un momento anterior por «alguien» para confirmar que el contenido era delictivo. El error de interpretación técnica de los agentes es usar el HASH de archivo como metadato identificador, cuando realmente la función del HASH de archivo es comprobar la integridad una vez ha sido descargado. ¿Y si detrás de la fuente P2P que anuncia tener ese HASH de archivo existe otro contenido? ¿En cuántos registros domiciliarios encuentran los agentes los archivos investigados?. La comprobación de la DIFUSIÓN EFECTIVA de al menos una parte (chunk) de 9Mb es el requisito técnico mínimo para poder acreditar que detrás de esa fuente existe el archivo investigado. Aquí se presenta una limitación legal, los agentes no pueden inducir al delito y compartir.
4) Es indudable que estamos en una guerra abierta cuyo frente son las redes P2P. El Gobierno Español, abducido por la industria de contenidos protegidos por derechos lucrativos de autor, quiere acabar con las descargas P2P. La industria mundial de contenidos, en un verdadero acto de piratería informática, toma posesión de las web de algunos populares clientes P2P como Shareaza o Lphant. Sin ir más lejos, en las listas negras ofrecidas por PeerGuardian se confirma que la inmensa mayoría de servidores falsos pertenecen a la industria de contenidos protegidos por derechos lucrativos de autor. ¿Qué hacen estos servidores falsos en la red P2P eDonkey? ¿alterar HASH de partes de archivo? ¿introducir FAKES? ¿introducir archivos señuelo (decoying)? Si os fijais aquí se presenta una limitación técnico legal para aplicar el modelo Sarkozy a los usuarios de redes como eDonkey. ¿Cómo podrían filtrar los paquetes P2P las operadoras para discrimnar los contenidos protegidos con esta vulnerabilidad del HASH MD4? ¿Qué posibilidad existe de que los usuarios recibieran avisos de sus operadoras sobre archivos que no están bajo protección lucrativa de derechos de autor?
Pero llegados a este punto ¿por qué la red eDonkey sigue manteniendo un algoritmo obsoleto como el MD4 y no ha migrado hacia algoritmos más seguros de encriptación? Para mi la respuesta es que el eMule sigue siendo muy eficaz aunque no sea tan eficiente como otros protocolos P2P más modernos. El objetivo es compartir por encima de todo. Si esta descarga fue un fake, la próxima será la verdadera.
He abierto un hilo en el foro oficial de eMule al respecto
[1] R. L. Rivest, The MD4 Message Digest Algorithm, Request for Comments (RFC)1320, Internet Activities Board, Internet Privacy Task Force, April 1992
[2] H. Dobbertin, Cryptanalysis of MD4, Fast Software Encryption, LNCS 1039, D. , Springer-Verlag, 1996
[3] Dengguo Feng, Collisions for Hash Functions, Agosto 2004, web: http://eprint.iacr.org/2004/199.pdf