Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Ataques de extensión de longitud y la necesidad de HMAC

4 tareas · 25 min · Principiante

Muchos desarrolladores cometen el error de crear un código de autenticación concatenando una clave secreta y un mensaje dentro de un hash común: H(clave || mensaje). En funciones basadas en la construcción Merkle-Damgård como SHA-1 o SHA-256, esto abre la puerta a un ataque devastador. En esta sala aprenderás qué es un Length Extension Attack y por qué HMAC es el estándar obligatorio.

0 de 4 · 0%

Objetivo de la sala

Muchos desarrolladores cometen el error de crear un código de autenticación concatenando una clave secreta y un mensaje dentro de un hash común: H(clave || mensaje). En funciones basadas en la construcción Merkle-Damgård como SHA-1 o SHA-256, esto abre la puerta a un ataque devastador. En esta sala aprenderás qué es un Length Extension Attack y por qué HMAC es el estándar obligatorio.

Las funciones hash como SHA-1 y SHA-256 dividen el mensaje en bloques y van actualizando un vector de estado interno paso a paso. Cuando el cálculo termina, el resumen final resultante expone directamente ese estado interno. Si un desarrollador firma una cookie o una API con H(secreto || datos), un atacante que conozca los datos y el hash resultante puede calcular el estado interno del algoritmo y concatenar bytes adicionales a los datos originales, calculando el nuevo hash legítimo sin saber jamás cuál era el secreto original.

Responde para continuar

¿Qué debilidad estructural de las funciones Merkle-Damgård permite el ataque de extensión de longitud cuando se firma con H(secreto || mensaje)?

Ver pista de ayuda

Al conocer el estado interno, el atacante puede reanudar la función hash e inyectar más bloques.

Para solucionar este defecto de raíz sin rediseñar las funciones hash existentes, Mihir Bellare y sus colaboradores diseñaron HMAC (RFC 2104). HMAC utiliza dos rondas anidadas con dos máscaras constantes derivadas de la clave: HMAC(K, m) = H((K xor opad) || H((K xor ipad) || m)). La primera pasada procesa la clave con la máscara interna (ipad) y el mensaje. La segunda pasada vuelve a procesar el resultado con la máscara externa (opad), blindando el estado interno frente a extensiones.

Responde para continuar

¿Por qué el esquema de doble pasada de HMAC neutraliza los ataques de extensión de longitud?

Ver pista de ayuda

La capa exterior de hash impide que un atacante reutilice el digest para extender el mensaje interno.

Las funciones criptográficas de nueva generación no utilizan la construcción tradicional de Merkle-Damgård: SHA-3 utiliza la construcción Sponge (Keccak) y BLAKE3 utiliza una estructura en árbol binario. Por esta razón, disponen de modos de autenticación nativos por clave (como KMAC o el modo keyed nativo de BLAKE3) que no necesitan la doble pasada de HMAC y alcanzan velocidades de procesamiento de varios gigabytes por segundo en hardware común.

Responde para continuar

¿Cuál es la ventaja de primitivas modernas como KMAC (Keccak) o BLAKE3 frente a HMAC-SHA256 tradicional?

Ver pista de ayuda

Sus construcciones no son vulnerables a extensión de longitud y permiten operar en modo autenticado directo.

Tener un HMAC criptográficamente perfecto no sirve de nada si se verifica en el código con un operador de igualdad ordinario (==). Los operadores comunes comparan los caracteres de izquierda a derecha y se detienen en el primer byte que no coincide (Short-circuit evaluation). Un atacante en red puede enviar millones de peticiones y medir nanosegundos: si la respuesta tarda un microsegundo más, sabe que acertó el primer byte. Por ello es obligatorio usar comparación en tiempo constante (como hash_equals en PHP o hmac.compare_digest en Python).

Responde para continuar

¿Qué vulnerabilidad se introduce al validar una firma HMAC mediante el operador de igualdad estándar ==?

Ver pista de ayuda

El cortocircuito al primer byte fallido filtra información temporal que el atacante puede medir.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad