Sobes.tech
Middle+

¿Qué es HMAC?

sobes.tech AI

Respuesta de la IA

HMAC (Código de Autenticación de Mensajes basado en Hash) es un mecanismo para verificar la autenticidad e integridad de un mensaje utilizando una función hash y una clave secreta.

Funciona de la siguiente manera:

  1. El mensaje y la clave secreta se procesan a través de una función hash de una manera específica.
  2. Como resultado, se obtiene un código hash único (HMAC).
  3. Este HMAC se envía junto con el mensaje.
  4. El receptor, teniendo el mismo mensaje y clave secreta, vuelve a calcular el HMAC.
  5. Si el HMAC calculado coincide con el recibido, se considera que el mensaje no ha sido modificado y proviene de una fuente que posee la clave secreta.

HMAC_K(m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))

Donde:

  • K — clave secreta.
  • m — mensaje.
  • Hash — función hash utilizada (por ejemplo, SHA-256).
  • || — concatenación.
  • — operación XOR.
  • ipad (almohadilla interior) y opad (almohadilla exterior) — constantes utilizadas en el algoritmo.

La diferencia con una función hash normal es que HMAC utiliza una clave secreta, lo que lo hace resistente a ciertos tipos de ataques dirigidos a falsificar el hash.

Aplicaciones en desarrollo web:

  • Tokens Bearer: Para crear y verificar tokens de autenticación.
  • Firma de solicitudes: Para verificar la autenticidad de las solicitudes a la API.
  • Verificación de datos: Garantiza que los datos no hayan sido modificados durante la transmisión.

Ventajas:

  • Alta resistencia criptográfica.
  • Compatible con diferentes funciones hash.
  • Fácil de implementar.