domingo, julio 12, 2009

Debilidad del SHA-1

.
Por Fernando Acero para Kriptópolis

Hace unos años investigadores chinos habían logrado reducir la complejidad del algoritmo SHA-1 a 2^69, es decir, habían logrado reducir su complejidad en 2^11 en relación con el ataque de cumpleaños de 2^80, dicho de otro modo, Shandong, Wang, Yin y Yu, durante la "Cripto Conference" de 2004, demostraron que habían debilitado el SHA-1 en un factor de 2048, lo que no es poco.

Ahora, según he podido leer en un boletín de Hispasec, unos investigadores australianos han logrado reducir su complejidad a 2^52, lo que es un logro impresionante, puesto que por cada unidad en la que se reduce el exponente, se reduce la fortaleza del algoritmo en un 50%. Dicho de otro modo, a fecha de hoy podemos decir que el algoritmo SHA-1 se ha debilitado en más de un 99% en relación con su fortaleza inicial derivada del ataque de cumpleaños, lo que es muy significativo, aunque nos parezca que 2^52 es una cifra suficientemente grande...

Si ya en el 2004/2005 se aconsejaba abandonar el SHA-1, con este nuevo avance logrado por los australianos, su sustitución por otros algoritmos más resistentes se hace indispensable. Una posible solución, hasta que se publique el SHA-3, es decir, el algoritmo que está llamado a sustituirlo, sería usar dos algoritmos consecutivos, por ejemplo SHA-1 Y RIPEMD-160, puesto que una colisión en SHA-1 es virtualmente imposible que coincida también en RIPEMD-160. Esta solución de la firma múltiple tiene como ventajas que usa algoritmos disponibles en sistemas criptográficos de todo tipo y no implica un excesiva computación.

Hay que señalar, que los documentos que hayamos firmado usando SHA-1 y que deban tener vigor en el tiempo, puede que no sean seguros dentro de unos meses. Como norma general, deberíamos usar algoritmos criptográficos que estimemos que vayan a ser seguros en un tiempo equivalente a la esperanza de vida de la persona que los utiliza y un 50% más.

Una caída del estándar SHA-1 también afectaría a la seguridad de los certificados digitales, puesto que sería factible generar certificados con el mismo fingerprint que otros, lo que permitiría suplantar la personalidad de personas, o de páginas web.

Hay que señalar, que el e-DNI se han establecido mecanismos que permiten construir el "PAHT" de Certificación (Cadena de Confianza) utilizando SHA-1 o SHA-256, para dar soporte a aquellos sistemas operativos que no contemplan el uso de SHA-256 como algoritmo de "hash" o resumen. Desgraciadamente, este mecanismo que depende del sistema operativo que estamos usando, es transparente al usuario la mayoría de las veces, siendo complicado saber la forma en la que se establece el "path" de confianza, sin embargo el e-DNI siempre usa el inseguro SHA-1 para firmar los documentos, según aparece en la página web oficial del mismo.

También hay que tener en cuenta, que las claves de los e-DNI de los usuarios están firmadas usando SHA-1, lo que puede ser un problema de seguridad a medio y largo plazo y con independencia de la validez en el futuro de los documentos que firmemos, o que hayamos firmado anteriormente, usando el omnipresente algoritmo SHA-1. Sin embargo, las claves raíz y subordinadas del e-DNI, con una vida de 30 y 15 años respectivamente, están firmadas usando SHA-1 y SHA-256, por lo que las podemos considerar seguras en este momento.

Ni que decir que ya he configurado mi GPG para que use la función SHA-256 en la firma de documentos y correos electrónicos, aunque también es cierto que en los correos uso siempre firma doble, GPG y de la FNMT, para que no haya problemas.

No hay comentarios.: