Un
grupo de investigadores ha anunciado
que han logrado desarrollar una técnica que hace práctico para elaborar dos archivos con la misma huella digital
SHA-1.
Por supuesto, como es habitual en
los últimos años un descubrimiento de estas características necesitaba un
nombre atractivo, una página web y un logo chulo: SHAttered http://shattered.io/
Hay que recordar que una función
hash no cifra, sino que crea un resumen o "firma" de un conjunto de datos, que es pasado como parámetro a esta función. Así, nos es útil para verificar la integridad, por ejemplo, de un archivo. Tan solo tenemos que aplicar dicha función sobre el archivo recibido y verificar que el hash obtenido es el mismo que el anunciado por el emisor.
Un "hash" es una función
criptográfica que produce una salida de longitud fija a partir de una entrada
arbitrariamente larga. Un buen "hash"
debe cumplir las siguientes propiedades:
a) El resultado final no debe
dejar traslucir ninguna información sobre los datos originales.
b) Dado un resultado determinado,
no hay otro sistema aparte de la fuerza bruta que genere datos de entrada
capaces de producir dicho resultado.
c) Dados unos datos de entrada y
su "hash", no debe haber un
atajo (aparte de la fuerza bruta) para generar otros datos de entrada distintos
y con el mismo "hash".
10 años después de la
introducción del algoritmo SHA-1 como función hash, se ha anunciado la primera
técnica práctica para generar una colisión. Esto es dado un "archivo A", generar otro "archivo B" que produzca el mismo
hash que el del "archivo A".
Tras dos años de investigación y
la colaboración del CWI Institute en Amsterdam
y Google, este equipo de investigadores ha conseguido crear un método para
generar colisiones. Como prueba del ataque, publican dos archivos PDF que tienen
hash SHA-1 idénticos pero con contenido diferente (PDF 1 y PDF 2).
En la actualidad, muchas aplicaciones todavía dependen de SHA-1, a pesar de que fue oficialmente desaprobado por el NIST en 2011. Esperamos que esta demostración práctica aumentará la conciencia y convenza a la industria, de manera definitiva, a migrar a alternativas más seguras, como SHA-256 o superiores.
Por otra parte el propio SANS señala
que en la práctica poco han cambiado las
cosas. El ataque sigue considerándose complicado y según el instituto, para muchas aplicaciones, SHA-1 seguirá
siendo un nivel adecuado de protección. Sin embargo, presenta un riego alto
en entornos y aplicaciones donde los niveles de confianza sean máximos, como:
la banca, los contratos legales o las firmas digitales. Un uso muy común de
SHA-1 es para la integridad de archives, incluso Git y muchos desarrolladores y
compañías lo emplean con ese propósito.
La complejidad del ataque aún
sigue siendo elevada, y requiere una gran potencia de cálculo. El ataque
requirió más de 9,223,372,036,854,775,808 cálculos SHA1. Esto conlleva una
potencia de procesamiento de unos 6.500 años para una sola CPU o 110 años de
cálculos GPU. A pesar de ello, SHAttered
es 100.000 veces más rápido que el ataque de fuerza bruta que se basa en la
paradoja del cumpleaños y que requeriría 12 millones de años de cálculos GPU.
También desde VirusTotal
confirman que ya han encontrado más ejemplos de colisiones SHA-1.
more SHA1 collisions.https://t.co/qPegYnjLl6https://t.co/y33sExu610— Karl Hiramoto (@karlhiramoto) 24 de febrero de 2017
Como es habitual Google sigue su
política de publicación de detalles sobre las vulnerabilidades, por lo que la
información completa sobre el ataque no se publicará hasta dentro de 90 días.
Esto da tiempo para que muchos empiecen a migrar a sistemas de hash más seguros
como SHA-256.
Tras un muy superado MD5, Bruce
Schneier ya nos avisaba 10 años atrás que la vida de SHA-1 no iba a ser muy
larga. Incluso desde Hispasec, en
una-al-día, mucho antes ya informábamos
en varias ocasiones
de los avances que se efectuaban al reducir la complejidad de romper este algoritmo. De hecho, desde hace unos pocos años se recomendaba no usarlo para la firma de certificados digitales hasta que, definitivamente, la
industria optó por dar dejar de confiar en certificados SSL a partir del año
pasado.
Más información:
SHAttered
Announcing the first SHA1 collision
Practical collision attack against SHA-1
una-al-dia (04/09/2005)
Colisiones en MD-5 y SHA-1
una-al-dia (14/06/2009) Se reduce
la complejidad para provocar colisiones en SHA1
Cryptanalysis of SHA-1
Gradually sunsetting SHA-1
Antonio Ropero
Twitter: @aropero

No hay comentarios:
Publicar un comentario