Qué ha pasado con SHA-1 y el nuevo ataque. Una explicación sencillaSergio de los Santos 14 mayo, 2019 Se ha anunciado “otro clavo en la tumba de SHA-1” en forma de estudio que demuestra, de otra manera y una vez más, su debilidad. Aunque suene complejo, no es tan complicado. Cada cierto tiempo se vienen oyendo noticias sobre la debilidad de los algoritmos de hash, pero no siempre somos conscientes de qué significa y si son ataques teóricos prácticos. Vamos a intentar aclararlo. Pequeña introducciónUna colisión en un algoritmo de hash es conseguir que dos flujos de datos diferentes tengan el mismo hash. SHA-1 son 160 bits y por tanto “solo” 2^160 combinaciones finitas. Pero el flujo de entrada de datos es infinito, así que teóricamente las colisiones son posibles, y de hecho necesitarías en 2^80 combinaciones de media por fuerza bruta para encontrarlas, algo que hoy por hoy es computacionalmente muy complejo. Las colisiones a su vez pueden ser de dos tipos, de prefijos “Idénticos” (o “clásico”) y de “Prefijos elegidos”. Prefijos idénticos y prefijos elegidosEn las idénticas, digamos que el atacante no tiene control sobre los mensajes en los que se encuentra la colisión, sino que los elige el algoritmo. Por tanto es menos útil desde el punto de vista práctico (para un atacante). Se tiene que partir de la base de que existe un prefijo con mismo hash,y a partir de ahí se le añaden payloads diferentes para que todo el conjunto tenga el mismo hash, aunque el contenido sea diferente. Esto es muy útil para crear documentos con un mismo hash y diferente contenido. Como un documento o binario con un formato compartido contiene muchas partes idénticas por esa misma razón, es bastante habitual realizar pruebas de concepto de este tipo. Prefijo idéntico usado por Google en 2017 para crear dos PDF idénticos Esto se popularizó con el algoritmo de Xiaoyun Wang y Yu en 2004. Diseñó un código para crear ficheros que podían llegar a ser diferentes en hasta 128 bytes, pero compartir un mismo hash MD5. Un año más tarde se publicó el famoso artículo «Attacking Hash Functions by Poisoned Messages – The Story of Alice and her Boss«, donde se mostraban dos ficheros PS (PostScript) con idéntico MD5. Lo consiguieron Magnus Daum y Stefan Lucks. Recordemos que MD5 son 128 bits y SHA-1, 160. Google no se consiguió lo mismo con SHA-1 hasta doce años más tarde y un coste más elevado. Esto se mejoró sustancialmente en 2007 cuando Marc Stevens, Arjen K. Lenstra, y Benne de Wege pudieron crear dos binarios ejecutables completamente diferentes con mismo MD5, gracias a los prefijos «elegidos». Con los prefijos elegidos se abría una nueva fórmula, en la que se ponían en peligro los certificados, por ejemplo, con firmas digitales completamente diferentes pero que se podía simular que disponían del mismo hash, puesto que en un certificado solo se firma el hash de su información. Por tanto, tenemos por un lado los ataques clásicos de Wang y demás con prefijo idéntico y por otro lado, Stevens y demás con sus prefijos elegidos. Uno más sencillo computacionalmente que el otro, y el segundo también más potente. Y ahora, la carrera por reducir la potencia en cada modalidadUna vez establecidas las bases de la teoría, tenemos una carrera para reducir la potencia necesaria para su cálculo, porque no olvidemos que todo esto se trata al final de fuerza bruta. No es lo mismo computar 2^80 que 2^60. Uno puede marcar la diferencia con respecto al otro sobre qué es factible hoy en día. Si reducimos el número, puede que se haya conseguido un logro, sin duda, pero quizás siga sin ser factible para la computación actual. Por tanto, tenemos ataques teóricos, donde con algoritmos en papel, reduce la potencia pero pueden ser imposibles hoy. Por otro lado, tenemos ataques prácticos con la computación actual. Por supuesto, con el tiempo los teóricos pueden volverse prácticos. Para entender qué ha pasado con SHA-1 y por qué debemos preocuparnos, se puede realizar un paralelismo con MD5. 1992: se publica MD5 y en teoría se debería poder romper en 2^64 con fuerza bruta (se le suele llamar ataque cumpleaños).1993: ya se habla de pseudo colisiones, pero nada preocupante para la época (vectores de inicialización diferentes que ofrecían el mismo digest).2004: como hemos mencionado, colisiones de prefijo idéntico conseguidas en 2^40. Algo ya «práctico» en una hora.2005: ficheros diferentes, mismo MD5 con prefijos elegidos. Crean dos certificados con mismo MD5.Curiosidad: en verano de 2005, un australiano consiguió anular una multa de tráfico. El abogado que representaba al amonestado recurrió una denuncia, argumentando que no se había probado que la imagen obtenida por la cámara asociada al radar no hubiese sido modificada de ninguna forma. Las autoridades australianas de tráfico respondieron que se utilizaba el algoritmo MD5 para obtener el hash de las imágenes obtenidas. No encontraron a ningún perito que demostrase ante el tribunal la validez de este algoritmo, y por tanto se libró de la multa.2006: colisiones de prefijo elegido en 2^49.2009: se perfeccionan los ataques hasta unos 2^16 los idénticos y 2^39 los elegidos. Se crea una autoridad de certificación falsa con mismo MD5 gracias a 200 consolas PlayStation calculando colisiones. Cualquier certificado puede aparecer como válido ante una CA que use MD5. Muere definitivamente en la práctica y en la teoría. Dos binarios con mismo MD5 y comportamiento diferente Por otro lado, la historia de SHA-1 va más o menos así. 1995: se publica SHA-1. En teoría se debería romper en 2^80 (la mitad de 160) con fuerza bruta.2005: SHA-1, se publica un primer ataque de colisión con prefijos idénticos en 2^69, algo computacionalmente costoso para el momento y por tanto complejo en la práctica. Aun así ya el NIST recomendó ir migrando. Lo consideraría obsoleto en 2011.2012: se consigue mejorar los ataques de prefijo idéntico en 2^61. Algo posible, pero muy caro. Ese mismo año se consiguen que los ataques de prefijo elegido caigan a 2^77.1.2017: Google consigue dos PDF diferentes con mismo hash. Utiliza ataques de prefijo idéntico, que en teoría estaban en 2^61, pero ellos lo consiguen en 2^63 tras varios meses de computación y un coste de más de 100.000 dólares (en GPU).2019: Se consigue reducir la complejidad del algoritmo de colisión de prefijos elegidos hasta entre 2^66 y 2^69. Esto hoy por hoy requeriría bastante computación, pero… ¿y mañana? Por tanto el paralelismo el claro, muy pronto podremos ver ataques prácticos de colisión de prefijos elegidos en SHA-1, bien porque se mejore aún más el algoritmo, bien porque la capacidad de computación lo permita. Como pasó con MD5, el siguiente paso será crear un certificado o entidad certificadora falsa con mismo SHA-1. Para entonces, más nos vale haber dejado de usar SHA-1 para siempre. Las modas en la superficie de ataque: se lleva lo retroLa importancia de la ciberseguridad en las empresas, tambien para las pymes
Carlos Rebato Criptografía, una herramienta para proteger los datos compartidos en la red Actualmente, la Ciberseguridad representa un aspecto primordial en las empresas. No obstante, cada día surgen nuevos modos de atentar contra ella. Muchos se han preguntado: ¿de qué manera las...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
David Prieto Marqués La importancia del control de acceso: ¿está tu empresa protegida? Por David Prieto y Rodrigo Rojas En un mundo cada vez más digitalizado y complejo, la seguridad de la información es fundamental para las empresas. A medida que las empresas...
Telefónica Tech Boletín semanal de Ciberseguridad, 22 – 26 de mayo GitLab parchea una vulnerabilidad crítica GitLab ha abordado una vulnerabilidad crítica que afecta a GitLab Community Edition (CE) y Enterprise Edition (EE) en la versión 16.0.0. En concreto, dicho fallo...
David García ¿Salvará Rust el mundo? (II) Segunda entrega en la que descubrimos cómo Rust, el lenguaje de programación de código abierto centrado en la seguridad, mejora el panorama en cuanto a vulnerabilidades basadas en errores...
Sergio de los Santos Cuatro hitos en Ciberseguridad que marcaron el futuro del malware Un recorrido por los 15 años que ha dedicado Microsoft para consolidar una estrategia que ha repercutido en la Ciberseguridad a nivel global