¿Se ha convertido SHA-1 en un peligro para Internet?
Hace dos semanas Google anunció que había roto la función criptográfica de hash SHA-1 mediante un ataque de colisión. Este hecho ha generado bastante revuelo en Internet y ha puesto en duda la seguridad de algunos servicios que a día de hoy siguen apoyándose en SHA-1 a pesar de ser considerado como poco seguro desde hace tiempo. Este último punto ha obligado a Google a tener emplear un cifrado más fuerte a la hora distribuir Chrome para Ubuntu.
Algunos posiblemente se estén preguntando: ¿Qué es un ataque de colisión? Básicamente, se trata de la obtención de un mismo resultado cifrado cuando se pasan dos valores distintos a cifrar. En realidad todas las funciones criptográficas son susceptibles de tener colisiones, ya que se pueden pasar por estas una cantidad infinita de valores, pero los posibles resultados sí son finitos. Entonces, ¿dónde está la seguridad? Básicamente, en la falta de potencia de procesamiento de los ordenadores actuales, con los cuales no se puede provocar una colisión en un periodo de tiempo razonable (de hecho en la infografía se menciona 1 año). Cuanto mayor sea la longitud de salida, más difícil será provocar una colisión con el hardware actual. Actualmente existen tanto SHA-2 como SHA-3, así como SHA-224, SHA-256, SHA-384 y SHA-512, siendo el sufijo la longitud de bits empleado por la función criptográfica de hash.
Esta imagen explica de manera muy simple lo que es un ataque de colisión, en el cual vemos cómo se obtiene el mismo resultado tras cifrar dos ficheros diferentes.
Un poco de la historia de SHA-1
SHA-1 (Secure Hash Algorithm 1) fue diseñada por la NSA y publicada en 1995. Como ya hemos comentado, todavía sigue siendo usada a pesar de que no se recomienda, debido a que en 2005 los analistas en criptografía descubrieron fallos teóricos que podrían ser usados para provocar ataques de colisión. Esta situación es bastante peligrosa, ya que permitiría a los atacantes reemplazar ficheros sin levantar ninguna sospecha.
Esto provocó que los analistas recomendasen cambiar SHA-1 por versiones más recientes, como SHA-2 y SHA-3. Por otro lado, SHA-1 fue declarado oficialmente obsoleto en otoño de 2015, cuando investigadores de distintas universidades publicaron un informe relacionado con una investigación que fue bautizado como The SHAppening.
Los científicos demostraron a través de aquel informe que los avances tecnológicos a nivel de computación habían puesto las posibilidades de SHA-1 al límite, argumentando que costaría entre 75.000 y 120.000 dólares romper la misma función criptográfica utilizada por el servicio EC2 de Amazon. Aunque es una cantidad de dinero considerable para una persona normal, no se puede decir lo mismo de estados y empresas medianas, los cuales sí se pueden permitirse invertir esas cantidades de dinero.
Desde que se publicó el informe, compañías proveedoras de navegadores web como Mozilla, Microsoft y Google empezaron un proceso acelerado para reemplazar SHA-1 como función de hash en los certificados TLS/SSL.
Google consiguió provocar el ataque de colisión con la ayuda de investigadores neerlandeses
Google se alió con dos investigadores neerlandeses que formaron parte del equipo tras The SHAppening para realizar con éxito el ataque de colisión con SHA-1.
Aun así, para conseguir esa hazaña el equipo ha tenido que contar con grandes medios, como una inmensa potencia computacional y la ayuda de cinco de los mayores expertos de Google en criptografía, que se han sumado a los dos neerlandeses.
Los investigadores publicaron su descubrimiento el mes pasado, detallando todo el proceso de colisión. Sin embargo, la prueba de concepto no será publicada hasta el mes de mayo, tras pasar pasar 90 días contando a partir del 23 de febrero.
Google ha publicado los dos ficheros PDF (fichero 1 y fichero 2) con los cuales ha conseguido obtener el mismo resultado tras aplicarles SHA-1. La siguiente infografía muestra cómo ha sido producido, además de los sistemas y servicios que pueden ser potenciales víctimas del mismo tipo de ataque.
Surgen dudas en torno a la seguridad de algunos repositorios Git
En la infografía se menciona de forma explícita al sistema de control de versiones Git, creado en su día por Linus Torvalds como una herramienta orientada al desarrollo de Linux, aunque con el tiempo se ha convertido en la más utilizada en su área.
De hecho ha sido el mismo Linus Torvalds quien ha comentado que “el cielo no se ha caído” tras la noticia dada por Google, argumentando lo siguiente a través de su cuenta de Google+:
Primero, hay una gran diferencia entre usar un hash criptográfico para cosas como claves de seguridad y usarla para generar un “identificador de contenido” para un sistema de contenido direccionable como Git.
Segundo, la naturaleza de este particular ataque SHA-1 significa que actualmente es muy fácil de mitigar, y de hecho hay dos conjuntos de parches publicados para aplicar esa mitigación.
Y por último, hay de hecho una transición razonablemente sencilla hacia otro hash que no rompa el mundo, o incluso viejos repositorios de Git.
Linus Torvalds resta importancia a la hazaña de Google y los investigadores neerlandeseses, diciendo que “no parece todo tan desagradable, ni siquiera tienes que convertir tu repositorio (Git). Hay muchos detalles de esto y tomará un tiempo, pero debido a las cuestiones planteadas antes, no es tan crítico como el hecho de ‘tener que ocurrir tal cosa a nivel de seguridad’”. Pese a todo, el archiconocido ingeniero informático ha anunciado que SHA-1 pasará a estar obsoleto en Git.
Un punto a destacar en la publicación de Google+ es el hecho de que “el atacante no puede generar ninguna colisión aleatoria, necesita ser capaz de controlar y generar ambos objetos, tanto el ‘bueno’ como el ‘malo’”, además que se “puede detectar los signos del ataque en ambos lados de la colisión”. En resumidas cuentas, no parece algo sencillo de llevar a cabo.
SHA-1 lleva años tecnológicamente desfasado
Como ya hemos contado, SHA-1 lleva años siendo no recomendable aunque sigue siendo muy utilizado. Parece que de momento no es sencillo realizar un ataque de colisión, de hecho Google necesitó de una gran potencia computacional para provocarla, sin embargo, la tecnología sigue avanzando y será cuestión de tiempo de que dicha colisión empiece a estar al alcance de la gente de a pie.
Con el fin de ayudar a los administradores de sistemas, sobre todo aquellos que manejan certificados, Microsoft ha publicado unas instrucciones para pasar de SHA-1 a SHA-256, el cual es mucho más fuerte y tardará muchos más años en ser roto mediante colisión.
Fuentes | BleepingComputer, ZDNet y The Register
Via: muyseguridad.net