🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAtaques 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.
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.
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.