Glosario

¿Qué es HMAC?

HMAC (Hash-Based Message Authentication Code) es un mecanismo criptográfico que combina una función hash criptográfica con una clave secreta para producir un código de autenticación de tamaño fijo, permitiendo al destinatario verificar tanto la integridad como la autenticidad de un mensaje.

También conocido como: Hash-Based Message Authentication Code, HMAC-SHA256

Una función hash simple como SHA-256 puede verificar la integridad de los datos: si el hash coincide, los datos no se han alterado. Pero un hash por sí solo no puede verificar la autenticidad, porque cualquiera puede calcular un hash. HMAC resuelve esto incorporando una clave secreta al proceso de hashing. Solo las partes que poseen la clave pueden generar o verificar el valor HMAC correcto, proporcionando integridad y autenticación en una sola operación.

La construcción HMAC, definida en el RFC 2104, aplica la función hash dos veces con la clave mezclada en etapas específicas. Esta estructura de doble paso protege frente a los ataques de extensión de longitud y otras vulnerabilidades que surgirían de concatenar ingenuamente una clave con el mensaje antes del hashing. HMAC-SHA256 (HMAC usando SHA-256 como hash subyacente) es la variante más común y produce un código de autenticación de 256 bits.

HMAC se usa de forma extensa en los protocolos de seguridad: las firmas JWT, la autenticación de API, la verificación de webhooks, la protección de registros TLS y OAuth dependen todos de HMAC. Su eficiencia lo hace práctico para autenticar datos de alto volumen como paquetes de red o peticiones de API, donde los esquemas de firma asimétrica introducirían una latencia inaceptable.

Sign a message with HMAC-SHA256

Edit either the key or the message and watch the signature change completely — the avalanche effect that makes HMAC forgery-resistant.

HMAC-SHA256 signature (256 bits, hex)
computing…

A verifier with the same key recomputes the HMAC over the received message; if it matches, the message was authored by someone who knows the key andwasn't modified in transit. Vaulted uses this exact construction to issue tamper-proof status-page tokens.

Cómo usa Vaulted HMAC

Vaulted utiliza HMAC-SHA256 para generar tokens seguros para las páginas de estado de los secretos. Cuando se crea un secreto, se calcula un HMAC sobre el ID del secreto usando una clave del lado del servidor. Este token HMAC se incluye en la URL de la página de estado, permitiendo al creador del secreto comprobar si su secreto se ha visto o ha expirado, sin darle al endpoint de estado ninguna forma de consumir visualizaciones ni acceder al contenido cifrado. HMAC también lo usa internamente PBKDF2 como su función pseudoaleatoria al derivar claves a partir de frases de contraseña.