HMAC (Código de Autenticación de Mensaje Basado en Hash, Hash-Based Message Authentication Code) es una técnica utilizada para garantizar la integridad de los datos y la autenticidad del mensaje durante la transmisión o almacenamiento de datos. Combina una función hash criptográfica y una clave secreta para detectar la integridad de los datos y la autenticación de mensajes en la comunicación de red y el almacenamiento de datos.
El funcionamiento de HMAC implica el uso combinado de una función hash estándar (como SHA-256) y una clave secreta. Primero, se genera un valor hash utilizando la clave y los datos de entrada (como un mensaje de texto), y luego este valor hash se envía junto con los datos. El receptor utiliza la misma clave y función hash para recalcular el valor hash y compararlo con el hash recibido. Si ambos valores hash coinciden, demuestra que los datos no han sido alterados durante la transmisión, asegurando la integridad y seguridad de los datos.
Una de las principales ventajas de HMAC es su seguridad. Dado que HMAC combina una clave y una función hash, incluso si un atacante conoce el algoritmo hash, no puede falsificar un valor hash válido sin conocer la clave. Esto hace que HMAC sea muy útil en situaciones que requieren alta seguridad (como pagos electrónicos, firmas digitales y seguridad de comunicaciones en red).
El uso de HMAC no se limita a ninguna función hash específica; teóricamente, puede combinarse con cualquier función hash criptográfica. Esto significa que a medida que la tecnología de encriptación evoluciona, HMAC puede adaptarse a algoritmos hash más avanzados, aumentando así la seguridad.