Saltar al contenido
PwnDeck logoPwnDeck

Generador de Firmas HMAC

Genera códigos de autenticación de mensajes basados en hash usando SHA-256, SHA-512 y otros algoritmos con una clave secreta.

---
Advertisement

Cómo Usar el Generador HMAC

  1. Ingresa o pega el mensaje que deseas autenticar.
  2. Ingresa la clave secreta utilizada para la generación del HMAC.
  3. Selecciona el algoritmo de hashing (SHA-256, SHA-512, SHA-1 o MD5).
  4. El HMAC se calcula al instante en tu navegador.
  5. Copia el valor HMAC generado para usarlo en tu solicitud de API o verificación de webhook.

¿Qué es HMAC (Código de Autenticación de Mensajes Basado en Hash)?

HMAC es una construcción específica para crear un código de autenticación de mensajes utilizando una función hash criptográfica combinada con una clave secreta. Definido por RFC 2104, HMAC proporciona tanto integridad de datos como autenticación. A diferencia de un hash simple, un HMAC no puede ser calculado ni verificado sin la clave secreta, asegurando que solo las partes que poseen la clave puedan generar o validar el código. HMAC se utiliza extensamente en seguridad de APIs, verificación de webhooks y autenticación de protocolos. Cuando firmas solicitudes de API con HMAC-SHA256 (como lo usan AWS, Stripe, webhooks de GitHub y muchos otros), el servidor puede verificar que la solicitud fue enviada por alguien que conoce la clave secreta y que el mensaje no ha sido alterado en tránsito. HMAC también se usa en TOTP (contraseñas de un solo uso basadas en tiempo) para autenticación de dos factores. La seguridad de HMAC depende del secreto y la fortaleza de la clave. Usa una clave que sea al menos tan larga como la salida del hash (32 bytes para SHA-256) y generada desde una fuente aleatoria criptográficamente segura. HMAC es resistente a los ataques de extensión de longitud que afectan a funciones hash simples como SHA-256, por lo que HMAC-SHA256 es preferido sobre construcciones ingenuas como SHA256(clave + mensaje) para autenticación. Siempre usa comparación en tiempo constante al verificar valores HMAC para prevenir ataques de timing.

Advertisement

Preguntas Frecuentes

Un hash regular solo garantiza la integridad de los datos. Cualquiera puede calcular el hash de un mensaje. HMAC incorpora una clave secreta, por lo que solo las partes que conocen la clave pueden generar o verificar el código. Esto proporciona tanto integridad (el mensaje no fue alterado) como autenticación (el mensaje proviene de alguien con la clave).

HMAC-SHA256 es la opción más recomendada, ofreciendo un buen equilibrio entre seguridad y rendimiento. HMAC-SHA512 proporciona una salida más grande y puede ser más rápido en sistemas de 64 bits. Evita HMAC-MD5 y HMAC-SHA1 para nuevas implementaciones, ya que las funciones hash subyacentes tienen debilidades conocidas, aunque la construcción HMAC mitiga muchas de ellas.

Servicios como GitHub, Stripe y Slack firman los payloads de webhooks usando HMAC con un secreto compartido. Cuando tu servidor recibe un webhook, calculas el HMAC del cuerpo de la solicitud usando tu clave secreta y lo comparas con la firma en la cabecera de la solicitud. Si coinciden, el webhook es auténtico y no ha sido manipulado. Siempre usa comparación en tiempo constante para esta verificación.