Laboratorio de HMAC y autenticación de mensajes
Calcula etiquetas HMAC-SHA256 reales en tu navegador, detecta los mensajes manipulados y aprende por qué SHA256(clave‖mensaje) no es seguro y por qué las etiquetas se comparan en tiempo constante.
Abrir la herramienta →La herramienta interactiva se abre en inglés.
Una etiqueta con clave compartida es la forma en que un webhook, una petición de API o un JWT demuestran que no se alteraron y que de verdad vienen de quien dicen. Este laboratorio en el navegador ejecuta HMAC-SHA256 real mediante la Web Crypto API, la misma primitiva que firma webhooks, peticiones de API y JWT, sin servidor ni simulaciones. Un banco de trabajo en vivo etiqueta un mensaje con una clave compartida; cambia un carácter de la copia recibida y verás que la etiqueta deja de verificarse: eso es la detección de manipulaciones. Una partida calificada te sienta en el puesto del verificador: decides si cada par (mensaje, etiqueta) entrante es auténtico o está manipulado, y se puntúa contra una verificación real con crypto.subtle. Las manipulaciones se vuelven más sutiles según el nivel (un dígito cambiado, un espacio al final, un homoglifo, incluso un carácter invisible de anchura cero) para demostrar que HMAC detecta cualquier cambio de byte que tus ojos no ven. Dos rondas de trampas enseñan la teoría que importa: por qué SHA256(secreto ‖ mensaje) está expuesto a un ataque de extensión de longitud y HMAC no, y por qué las etiquetas deben compararse en tiempo constante. Es un laboratorio Pro: con una cuenta gratuita tienes 3 usos y después necesitas Pro.
- Etiqueta un mensaje con una clave compartida en el banco de trabajo.
- Cambia un carácter de la copia recibida y comprueba que la etiqueta deja de verificarse.
- En la partida calificada, clasifica cada par (mensaje, etiqueta) como auténtico o manipulado.
- Completa las rondas de extensión de longitud y de comparación en tiempo constante.
Preguntas frecuentes
¿Qué es el laboratorio de HMAC y autenticación de mensajes?
Un ejercicio en el navegador que enseña la autenticación de mensajes con criptografía real. Un banco de trabajo calcula una etiqueta HMAC-SHA256 auténtica sobre un mensaje y una clave compartida con la Web Crypto API, y una partida calificada te pide clasificar pares (mensaje, etiqueta) entrantes como auténticos o manipulados, comprobando cada decisión contra un crypto.subtle.verify real. También cubre dos trampas clásicas: la extensión de longitud y la comparación de etiquetas que no es de tiempo constante.
¿Es HMAC real o una simulación?
Real. Cada etiqueta la produce crypto.subtle.sign con HMAC sobre SHA-256, y cada veredicto sale de crypto.subtle.verify, el mismo camino de código que usa un servicio en producción. No hay nada falseado ni precalculado en un servidor; todo funciona localmente en tu navegador, sin subidas ni instalación.
¿Por qué SHA256(secreto ‖ mensaje) no es seguro?
Porque SHA-256 es un hash Merkle–Damgård: un atacante que conoce SHA256(secreto ‖ mensaje) y la longitud del secreto puede añadir datos y calcular un resumen válido para el mensaje extendido sin conocer nunca el secreto, lo que se llama un ataque de extensión de longitud. HMAC envuelve el hash interno con clave en un segundo hash con clave, así que el valor que ve el atacante nunca es un estado de hash en bruto que pueda extender. Usa HMAC, nunca un hash con clave ingenuo.
¿Por qué hay que comparar las etiquetas en tiempo constante?
Una comparación que se corta al primer fallo, como a === b, termina en cuanto encuentra el primer byte distinto, así que lo que tarda revela cuántos bytes iniciales coincidieron. Un atacante puede medir ese tiempo para recuperar una etiqueta válida byte a byte. Una comparación en tiempo constante revisa todos los bytes pase lo que pase y no filtra nada; crypto.subtle.verify ya lo hace por ti.
¿Para quién es?
Para ingenieros que firman o verifican webhooks y peticiones de API, profesionales de seguridad que aprenden cómo se comportan de verdad los MAC y cualquiera que prepare una entrevista de criptografía o de seguridad de aplicaciones. La lección (una etiqueta válida demuestra tanto la integridad como el origen, y cualquier cambio la rompe por completo) se entiende antes cuando puedes verlo ocurrir.
¿Es gratis?
No, es un laboratorio Pro. Con una cuenta gratuita tienes 3 usos de prueba; después necesitas Pro.