¿Qué está fragmentado? Explicación de los ataques de colisión SHA-1

Mar 1, 2023
Privacidad y seguridad

El primer día de 2016, Mozilla canceló el soporte para una tecnología de seguridad debilitada llamada SHA-1 en el navegador web Firefox. Casi de inmediato, revocaron su decisión, ya que cortaría el acceso a algunos sitios web más antiguos. Pero en febrero de 2017, sus temores finalmente se hicieron realidad: los investigadores rompieron SHA-1 al crear el primer ataque de colisión del mundo real . Esto es lo que significa todo eso.

¿Qué es SHA-1?

El SHA en SHA-1 significa Algoritmo hash seguro y, en pocas palabras, puedes considerarlo como una especie de problema o método matemático que codifica los datos que se colocan en él . Desarrollado por la NSA de los Estados Unidos, es un componente central de muchas tecnologías que se utilizan para cifrar transmisiones importantes en Internet. Los métodos de cifrado comunes SSL y TLS, de los que quizás haya oído hablar, pueden usar una función hash como SHA-1 para crear los certificados firmados que ve en la barra de herramientas de su navegador.

No profundizaremos en las matemáticas y la informática de ninguna de las funciones SHA, pero esta es la idea básica. Un "hash" es un código único basado en la entrada de cualquier dato . Incluso una cadena pequeña y aleatoria de letras ingresadas en una función hash como SHA-1 devolverá un número largo y establecido de caracteres, lo que hace (potencialmente) imposible revertir la cadena de caracteres a los datos originales. Así es como suele funcionar el almacenamiento de contraseñas. Cuando crea una contraseña, su entrada de contraseña es hash y almacenada por el servidor. A su regreso, cuando escribe su contraseña, se vuelve a codificar. Si coincide con el hash original, se puede asumir que la entrada es la misma y se le otorgará acceso a sus datos.

Las funciones hash son útiles principalmente porque facilitan saber si la entrada, por ejemplo, un archivo o una contraseña, ha cambiado. Cuando los datos de entrada son secretos, como una contraseña, el hash es casi imposible de revertir y recuperar los datos originales (también conocido como la "clave"). Esto es un poco diferente del "cifrado", cuyo propósito es codificar datos con el fin de descifrarlos más tarde , utilizando cifrados y claves secretas. Los hash están destinados simplemente a garantizar la integridad de los datos, para asegurarse de que todo sea igual. Git, el software de distribución y control de versiones para código fuente abierto, utiliza hashes SHA-1 por esta misma razón .

Esa es mucha información técnica, pero en pocas palabras: un hash no es lo mismo que encriptación, ya que se usa para identificar si un archivo ha cambiado .

¿Cómo me afecta esta tecnología?

Supongamos que necesita visitar un sitio web de forma privada. Su banco, su correo electrónico, incluso su cuenta de Facebook, todos utilizan cifrado para mantener la privacidad de los datos que les envía. Un sitio web profesional proporcionará cifrado mediante la obtención de un certificado de una autoridad de confianza, un tercero, de confianza para garantizar que el cifrado sea de nivel, privado entre el sitio web y el usuario, y que no sea espiado por ninguna otra parte. Esta relación con el tercero, llamado Autoridades de certificación o ESE , es fundamental, ya que cualquier usuario puede crear un certificado "autofirmado"; incluso puede hágalo usted mismo en una máquina que ejecute Linux con Openssl . Symantec y Digicert son dos empresas de CA ampliamente conocidas, por ejemplo.

Repasemos un escenario teórico: How-To Geek quiere mantener privadas las sesiones de los usuarios conectados con cifrado, por lo que solicita a una CA como Symantec con un Solicitud de firma de certificado o RSE . Ellos crean un Llave pública y llave privada para cifrar y descifrar los datos enviados a través de Internet. La solicitud de CSR envía la clave pública a Symantec junto con información sobre el sitio web. Symantec compara la clave con su registro para verificar que los datos no hayan sido modificados por todas las partes, porque cualquier pequeño cambio en los datos hace que el hash sea radicalmente diferente.

Esas claves públicas y certificados digitales están firmados por funciones hash, porque el resultado de estas funciones es fácil de ver. Una clave pública y un certificado con un hash verificado de Symantec (en nuestro ejemplo), una autoridad, le asegura al usuario de How-To Geek que la clave no se modifica y que no se envía desde alguien malintencionado.

Debido a que el hash es fácil de monitorear e imposible (algunos dirían "difícil") de revertir, la firma hash correcta y verificada significa que el certificado y la conexión pueden ser confiables, y se puede acordar que los datos se envíen encriptados de un extremo a otro. . Pero y si el hash en realidad no era único ?

¿Qué es un ataque de colisión y es posible en el mundo real?

Es posible que hayas oído hablar del "Problema de cumpleaños" en matemáticas , aunque es posible que no supiera cómo se llamaba. La idea básica es que si reúne a un grupo lo suficientemente grande de personas, es muy probable que dos o más personas tengan el mismo cumpleaños. Más alto de lo que cabría esperar, de hecho, lo suficiente como para parecer una extraña coincidencia. En un grupo de tan solo 23 personas, hay un 50% de probabilidad de que dos compartan un cumpleaños.

Esta es la debilidad inherente a todos los hash, incluido SHA-1. Teóricamente, la función SHA debería crear un hash único para cualquier dato que se coloque en ella, pero a medida que aumenta el número de hashes, es más probable que diferentes pares de datos puedan crear el mismo hash. Por tanto, se podría crear un certificado que no sea de confianza con un hash idéntico al de un certificado de confianza. Si logran que instale ese certificado que no es de confianza, podría hacerse pasar por confiable y distribuir datos maliciosos.

Encontrar hashes coincidentes dentro de dos archivos se denomina ataque de colisión . Se sabe que ya ha ocurrido al menos un ataque de colisión a gran escala para los hash MD5. Pero el 27 de febrero de 2017, Google anunció Destrozada , la primera colisión diseñada para SHA-1. Google pudo crear un archivo PDF que tenía el mismo hash SHA-1 que otro archivo PDF, a pesar de tener un contenido diferente.

SHAtter se realizó en un archivo PDF. Los PDF son un formato de archivo relativamente flexible; Se pueden realizar muchos cambios pequeños a nivel de bits sin evitar que los lectores lo abran o sin causar diferencias visibles. Los PDF también se utilizan a menudo para distribuir malware. Si bien SHAtter podría funcionar en otros tipos de archivos, como los ISO, los certificados se especifican de manera rígida, lo que hace que tal ataque sea poco probable.

Entonces, ¿qué tan fácil es realizar este ataque? SHAtter se basó en un método descubierto por Marc Stevens en 2012, que requirió más de 2 ^ 60,3 (9,223 trillones) operaciones SHA-1, un número asombroso. Sin embargo, este método sigue siendo 100.000 veces menos operaciones de las que se requerirían para lograr el mismo resultado con fuerza bruta. Google descubrió que con 110 tarjetas gráficas de alta gama funcionando en paralelo, llevaría aproximadamente un año producir una colisión. Alquilar este tiempo de cómputo de Amazon AWS costaría alrededor de $ 110,000. Tenga en cuenta que a medida que bajan los precios de las piezas de la computadora y puede obtener más energía por menos, los ataques como SHAtter se vuelven más fáciles de realizar.

$ 110,000 puede parecer mucho, pero está dentro del ámbito de la asequibilidad para algunas organizaciones, lo que significa que los cibervillanos de la vida real podrían falsificar firmas de documentos digitales, interferir con sistemas de control de versiones y copias de seguridad como Git y SVN, o hacer que una ISO de Linux maliciosa parezca legítima.

Afortunadamente, existen factores atenuantes que previenen estos ataques. SHA-1 ya no se usa para firmas digitales. Las autoridades de certificación ya no proporcionan certificados firmados con SHA-1, y tanto Chrome como Firefox han dejado de admitirlos. Las distribuciones de Linux suelen lanzarse con más frecuencia que una vez al año, por lo que no es práctico para un atacante crear una versión maliciosa y luego generar una con relleno para tener el mismo hash SHA-1.

Por otro lado, algunos ataques basados ​​en SHAtter ya están ocurriendo en el mundo real. El sistema de control de versiones SVN usa SHA-1 para diferenciar archivos. Cargar los dos PDF con hash SHA-1 idénticos a un repositorio SVN provocará que corromper .

¿Cómo puedo protegerme de los ataques SHA-1?

El usuario típico no tiene mucho que hacer. Si usa sumas de verificación para comparar archivos, debe usar SHA-2 (SHA-256) o SHA-3 en lugar de SHA-1 o MD5. Del mismo modo, si es un desarrollador, asegúrese de utilizar algoritmos hash más modernos como SHA-2, SHA-3 o bcrypt. Si le preocupa que se haya utilizado SHAtter para asignar el mismo hash a dos archivos distintos, Google ha lanzado una herramienta en el Sitio fragmentado que puede comprobarlo por ti.

Créditos de imagen: Lego Firefox , Mucho hachís , Por favor, no lastime al autor web desconocido, Google .

.entrada-contenido .entry-footer

What Is SHAttered? SHA-1 Collision Attacks, Explained

Shattered SHA-1 Exploit Explained

SHA-1 Shattered: Overview Of SHA-1, How And Why It Broke

Looking At SHA-1 Collision

USENIX Security '17 - Speeding Up Detection Of SHA-1 Collision Attacks...

SHA1 Collision - What's It All About?

SHAttered - SHA-1 - CS50 Live - S3E1

How We Created The First SHA-1 Collision And What It Means For Hash Security

Security Snippets: MD5, SHA-1 And SHA-2

SHAttered - SHA1 Busted: Demo Of The Files Used For The Collision Attack

How We Created The First SHA-1 Collision And What It Means For Hash Security - Defcon 25

USENIX Security '20 - SHA-1 Is A Shambles: First Chosen-Prefix Collision On SHA-1 And Application


Privacidad y seguridad - Artículos más populares

¿Qué es el malware RAT y por qué es tan peligroso?

Privacidad y seguridad Apr 22, 2023

CONTENIDO NO CUBIERTO Chichinkin / Shutte rs y ck Un troyano de acceso remoto (RAT) es un tipo de malware que permite a los piratas informátic..


Cómo recuperar su contraseña de LinkedIn olvidada

Privacidad y seguridad Jul 6, 2023

Si no usa un administrador de contraseñas , esas contraseñas complejas pueden ser bastante difíciles de recordar. Si olvidó su contraseña de LinkedIn, no hay nec..


¿Qué es Project Treble en Android y lo conseguirá mi teléfono?

Privacidad y seguridad Mar 7, 2023

Las actualizaciones no consistentes en los dispositivos Android han afectado a la plataforma desde su popularidad inicial. Project Treble es el plan de Google para ayudar a los fabr..


Cómo bloquear mensajes de texto no deseados en un iPhone

Privacidad y seguridad Oct 9, 2022

CONTENIDO NO CUBIERTO iOS 11 agrega una nueva función de filtrado de SMS que le permite filtrar automáticamente los mensajes de texto no deseados en la aplicación M..


Un año después: ¿Escuchó Microsoft las quejas de Windows 10?

Privacidad y seguridad Aug 19, 2023

CONTENIDO NO CUBIERTO Windows 10 es una bestia extraña. Es un digna actualización a Windows 7 y una gran mejora con respecto a Windows 8. Pero Microsoft tomó alg..


Cómo restringir el acceso a su PlayStation 4 con una contraseña

Privacidad y seguridad Jul 11, 2023

CONTENIDO NO CUBIERTO Cualquiera con acceso físico a su PlayStation 4 puede simplemente tomar el controlador, encenderlo y comenzar a jugar, al menos de forma predeterminada. Pue..


Advertencia: sus "contraseñas específicas de la aplicación" no son específicas de la aplicación

Privacidad y seguridad Nov 2, 2022

CONTENIDO NO CUBIERTO Las contraseñas de aplicaciones específicas son más peligrosas de lo que parecen. A pesar de su nombre, son todo menos específicos de la aplicación. Cad..


Ayude a proteger a sus hijos con Internet Explorer 8 mejorado de CEOP

Privacidad y seguridad Jun 14, 2023

¿Quiere que Internet Explorer sea más seguro y útil para usted y su familia? Entonces únase a nosotros mientras miramos el CEOP ( Centro de protección en línea y explotación in..