SHA-1 es un algoritmo hash utilizado en procesos criptográficos o validación de identidad. Este estándar ha sido considerado poco confiable durante varios años, y un gran número de actores comerciales han desfasado su uso, adoptando alternativas más seguras.
El 23 de febrero, Google dio el tiro de gracia a SHA-1 al anunciar que, en asociación con la Universidad CWI de Amsterdam, había hecho realidad la primera colisión SHA-1 de la historia.
“Nuestros resultados comprueban que el desfase de este algoritmo, por parte de gran parte del sector tecnológico, ha avanzado con demasiada lentitud. La transición hacia estándares más seguros debería realizarse lo antes posible”, comentó el analista en criptografía Marc Stevens”, en la página del anuncio.
El trabajo estuvo a cargo de Stevens y otros cuatro científicos; Pierre Karpman, también adscrito a Centrum Wiskunde & Informatica de Amsterdam, como asimismo Ellie Bursztein, Ange Albertini y Yarik Markov, de Google.
No se utilizó solo fuerza bruta
El logro fue resultado del intenso trabajo coordinado del grupo de científicos y, por cierto, de una formidable capacidad de cálculo, equivalente a 100 años de cálculos realizados por un procesador gráfico GPU o 6500 años por una CPU corriente. En el informe se precisa que no se utilizó únicamente fuerza bruta para vulnerar el algoritmo, ya que en tal caso se habría necesitado 100.000 veces más tiempo.
En conformidad con su política de publicación de vulnerabilidades (Project Zero) Google ha decidido esperar 90 días antes de dar a conocer los detalles del proceso. Tan pronto el concepto sea dado a conocer, todos los interesados que dispongan de la capacidad de cálculo necesaria podrán replicar el procedimiento. En otras palabras, SHA-1 pasará a la obsolescencia definitiva en 90 días.
Google describe el proceso en términos generales, señalando que elaboró dos documentos PDF con distinto contenido, constatando que ambos tenían la misma suma hash, aún cuando habían sido firmados con SHA-1. Con ello, se había conseguido una colisión, algo que nunca debería ocurrir al utilizar algoritmos hash seguros. El grupo de investigadores consiguió entonces elaborar un método práctico para vulnerar SHA-1.
La prueba aportada por los científicos consiste de ambos documentos, un contenido distinto, pero igual suma hash. Con ello, la poca confianza que aún tenía este algoritmo ha sido desvirtuada definitivamente. En términos prácticos, todo tipo de recurso (documentos, certificado SSL para sitios web, contratos, etc.) firmados con SHA-1 no implican garantía alguna de ser auténticos o falsificado.
Un ejemplo específico de lo anterior puede ser la incorporación de firma digital en un documento, y luego crear un documento distinto, con la misma firma. Así, sería posible firmar un contrato con SHA-1 y luego crear un contrato distinto, con cláusulas alteradas, que correspondería a la misma firma.
En el sitio dedicado al proyecto, Shattered.io ( en este contexto, la palabra “shattered” implica un juego de palabras, a significar “destrozado” o “hecho pedazos”), Google ofrece la posibilidad de subir documentos y comprobar si, eventualmente, forman parte de una colisión de SHA-1.