¿Sabes qué es un length extension attack? Los algoritmos de funciones hash han permitido almacenar contraseñas con métodos seguros y cumplen un rol muy importante en las comunicaciones por internet. Por ende, son indispensables para la tecnología tal y como la conocemos hoy en día.
Sin embargo, para que las funciones hash sirvan para proteger la confidencialidad, la integridad y la autenticidad de la información, es necesario utilizarlas de forma correcta. De lo contrario, nos podemos ver ante ciberataques criptográficos como el que explicaremos a continuación. En este post, te hablaremos sobre qué es un length extension attack.
¿Qué es un length extension attack?
Un lenght extension attack es un tipo de ciberataque que consiste en agregarle datos a un mensaje hasheado con el objetivo de generar un código hash totalmente distinto al original. Este ciberataque es, en teoría, muy sencillo de hacer cuando la información no se intercambia de forma segura entre usuarios y esto depende de que la configuración de las comunicaciones se haga correctamente.
Supón que cuentas con el código hash, pero no con los datos originales, de un mensaje que le ha enviado Alice a Bob. Recordemos que una de las propiedades de una función hash es que no es reversible; por lo tanto, no podrías descubrir el contenido del mensaje a partir de dicho código.
No obstante, supón también que deseas agregarle datos al mensaje original para que genere un hash totalmente diferente al verdadero. De este modo, podrías agregarle información maliciosa al mensaje o causar un ataque de denegación de servicio.
Matemáticamente, qué es un legth extensión attack puede describirse del siguiente modo:
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaHash original = H(mensaje)
Length extension attack = H(mensaje || datos adicionales)
¿Cómo funciona un length extension attack?
Ya hemos visto qué es un length extension attack y, ahora, te explicaremos cómo es su funcionamiento. Un hacker informático puede reconstruir el estado interno del algoritmo de hash y retomar desde ahí el proceso de la función para seguir agregándole información a la cadena de datos original. El atacante no puede acceder a la información hasheada (a menos que utilice un algoritmo inseguro), pero puede sabotear el contenido del mensaje agregándole más datos.
Para hacer este ciberataque, un hacker debe conocer el tipo de padding utilizado por el algoritmo de hash, ya que este viene al final del mensaje y lo que se desea es agregar información después de esa parte. Sin embargo, existen herramientas como hash_extender, creada por Ron Bowes, para realizar estos ataques de forma más práctica.
¿Cómo evitar un length extension attack?
Ya sabes qué es un length extension attack y cómo funciona. Ahora, hablaremos sobre cómo evitar este tipo de fallos en criptografía.
- Una de las principales soluciones para evitar este tipo de ataque es no confiarle información hasheada a los usuarios, siempre dentro de lo posible. De este modo, si la función hash es vulnerable a este ataque, será menos probable que suceda.
- Utilizar un código de autenticación de mensajes basado en hash (HMAC), que permite hasehar información, pero además ofrece una clave secreta para autenticar los datos. Así, resulta imposible ampliar la cadena de datos original, incluso si se tiene acceso al estado interno del algoritmo hash.
HMAC
Un código de autenticación de mensajes (MAC) se envía junto a la función hash de una cadena de datos con el propósito de verificar la fuente original del mensaje. El modo HMAC es básicamente una función hash que, en suma, cuenta con una clave secreta para, de esta forma, confirmar de manera irrefutable la autenticidad de los datos recibidos.
HMAC es un sistema seguro para autenticar funciones hash y, además, es uno de los principales mecanismos que hay que tener en cuenta para evitar un length extension attack.
Más vulnerabilidades criptográficas
Ahora que sabes qué es un length extension attack, probablemente te estés preguntando qué otros tipos de ciberataques criptográficos existen. Por eso, dedicaremos un breve espacio para mencionar algunos de los más comunes.
- Ataque de diccionario: consiste en automatizar la prueba de contraseñas halladas en bases de datos filtradas para comprobar si los usuarios las han reutilizado en otras cuentas y, así, obtener acceso sin permiso.
- Ataque de fuerza bruta: consiste en automatizar la prueba de valores aleatorios hasta encontrar el valor correcto de una contraseña. La longitud y la complejidad de una contraseña son una defensa suficiente para evitar un ataque de fuerza bruta en contraseñas. No obstante, también hay algoritmos de cifrado que son imposibles de romper actualmente con este método.
- Ataque de cambio de bits: consiste en alterar uno o más bits de un bloque de datos, para alterar el resultado de su encriptación por medio de un algoritmo de datos.
¿Cómo aprender más?
Ya conoces qué es un length extension attack, cómo funciona y cómo evitar que ocurra. Si quieres aprender más para convertirte en un experto en ciberseguridad, aquí tenemos la opción indicada para ti. Accede a nuestro Ciberseguridad Full Stack Bootcamp y podrás especializarte en menos de 7 meses. ¡No lo dudes más e inscríbete ahora!