Conecta con nosotros

Noticias

Demostrada la falta de seguridad de SHA-1

Publicado el

Candado

Hace ya tiempo que sabíamos que las funciones hash basadas en SHA-1 tenía los días contados. Y es que, ya en 2005, el NIST (National Institute of Standards and Technology) estadounidense prohibió su uso, debido a que determinadas investigaciones afirmaban que, teóricamente, era posible emplear alguna vulnerabilidad en su funcionamiento para replicar firmas en dos archivos distintos, algo que invalidaría por completo su utilidad. Desde entonces, no obstante, se ha seguido utilizando, algo que debería de cesar de inmediato ya que, como publica hoy Computerworld, un grupo de investigadores de seguridad han logrado, finalmente, poner en práctica esas teorías, generando así dos documentos PDF distintos que, no obstante, comparten la misma firma SHA-1.

Para entender el problema, es necesario que comprendamos en qué consisten las funciones hash, qué función tienen y, por lo tanto, por qué son tan importantes en relación con la seguridad. Diseñado en 1995, SHA-1 (Secure Hash Algorithm 1) es un algoritmo que analiza un archivo concreto, y genera un código único para el mismo, en base a determinados aspectos (tamaño, contenido, fecha, etcétera). La teoría es que cada fichero genera un código único e irrepetible, por lo que dichos códigos son empleados como «firmas», que validan la autenticidad de un fichero.

De esta manera, por ejemplo, cuando un fabricante publica una actualización de su software, si añade la firma del fichero en la página desde la que se descarga, los usuarios que la bajen pueden someter dicho archivo a la misma comprobación, para verificar (mediante el software adecuado) que el archivo descargado genera la misma firma, lo que demuestra que el archivo no ha sufrido algún tipo de modificación. Pongamos un ejemplo (muy simple, eso sí) para entenderlo mejor. Imaginemos un fichero que se llama uptade.exe, con un tamaño de 24.601 bytes, y creado el uno de enero de 2017. Y ahora imaginemos que la firma del archivo se genera con esos datos, que en base a un algoritmo son pasados a valores binarios, con los que se realizan determinadas (y conocidas) operaciones, que dan por resultado el valor alfanumérico sAai8e54a331c. Entonces, el creador de dicha actualización, publica en su web un enlace de descarga y, en la misma, pone también que la firma SHA-1 del mismo essAai8e54a331c.

El paso siguiente es que un usuario descarga la actualización y, una vez bajada pero antes de instalarla, analiza el archivo con el software adecuado para tal fin. Si la descarga se ha efectuado adecuadamente y el fichero no ha sufrido modificaciones, el resultado de la operación será el mismo, y por lo tanto el usuario podrá instalar ese software (o actualización) con tranquilidad. Sin embargo, si el resultado de la operación es distinto al de la firma SHA-1 publicada por el creador de ese fichero, eso puede indicar dos cosas: que la descarga no se ha efectuado correctamente, o que el fichero que quería descargar ha sufrido algún tipo de modificación no autorizada (por ejemplo, que ha sido infectado por algún patógeno) y que, en cualquiera de los casos, no es seguro instalar dicho software.

Así, la seguridad de una firma permite evitar que instalemos algo que ha sido manipulado (lo que suele una de las principales vías de difusión de malware) pero, claro, su seguridad depende de que sea imposible que dos archivos distintos puedan dar, como resultado, una misma firma, algo que sería similar a encontrar a dos personas con exactamente las mismas huellas dactilares. En tal caso, la seguridad del sistema quedaría comprometida y, por lo tanto ya no sería fiable.

Y esto es lo que, finalmente, ha ocurrido con SHA-1. Tras bastante tiempo trabajando en ello, y apoyándose en los servicios de computación en la nube de Google, han logrado encontrar dos ficheros PDF distintos, que aún así al ser sometidos a la función SHA-1 devuelven exactamente la misma firma. No ha sido un proceso sencillo: la capacidad de cálculo empleada ha sido similar a la de 6.500 años de proceso por parte de una CPU simple, un ataque que, allá por 2012, se valoró que costaría 700.000 dólares (en servicios públicos de computación en la nube) en 2015, cifra que descendería hasta los 173.000 dólares en 2018. No obstante, investigaciones recientes llevadas a cabo en Holanda, Singapur y Francia, apuntan a nuevas debilidades en esta función que podría reducir sustancialmente los costes de llevar a cabo nuevos ataques de este tipo. Algo que puede resultar muy rentables, especialmente si tenemos en cuenta que SHA-1 se sigue empleando, por ejemplo, en sistemas de validación de compras efectuadas con tarjetas de crédito, firma de documentos y mensajes electrónicos con sistemas de cifrado, etcétera.

Así, en la opinión expresada por Google en su blog, ahora es más urgente que nunca cambiar a firmas basadas en SHA-256 y SHA-3, que sí que ofrecen el nivel de seguridad necesario para evitar los riesgos de las vulnerabilidades de SHA-1. También afirman que ya han tomado las medidas de seguridad necesarias en sus servicios, y que a partir de la versión 56 de Google Chrome, todas las conexiones HTTPS con certificados marcados con firmas SHA-1 pasarán a ser consideradas no seguras, y se informará a los usuarios de dicha situación.

 

Imagen: Nick Carter

Lo más leído