HMAC es un código de autenticación de mensajes basado en hash y protegido por una clave: el mismo mensaje produce resultados completamente diferentes con claves distintas. Por ello permite comprobar si los datos han sido modificados y confirmar que el mensaje procede de alguien que posee la clave. Las firmas de API, la verificación de callbacks Webhook y la protección contra modificaciones de URL de descarga utilizan HMAC.
Los algoritmos incluyen HMAC-SHA1, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 y HMAC-SHA3-224, SHA3-256, SHA3-384 y SHA3-512, con un total de 8. SHA1 aparece marcado como no recomendado y SHA256 se utiliza por defecto. Tanto la clave como el mensaje pueden interpretarse por separado como UTF-8, Hex o Base64, mientras que la salida puede ser Hex o Base64, permitiendo adaptarse directamente a los requisitos de codificación de distintas documentaciones de API.
El modo de verificación utiliza una comparación en tiempo constante para evitar filtrar información mediante diferencias en el tiempo de comparación. La sección de resultados muestra la longitud del resumen, del mensaje y de la clave, ayudando a comprobar si la clave fue truncada o contiene espacios adicionales. La página también explica que las firmas JWT utilizan Base64URL, que se diferencia de Base64 estándar en el relleno y en dos caracteres; esto debe tenerse en cuenta al comparar resultados.
Al interpretar la clave o el mensaje como Hex, los caracteres no válidos o una longitud impar se indican directamente. Los errores de análisis Base64 también se muestran claramente, en lugar de producir una firma incorrecta. Los mensajes o claves vacíos y la ausencia del HMAC esperado durante la verificación solicitan completar los datos.
Todo el cálculo HMAC se realiza localmente en el navegador. No existe una API de cálculo en el servidor y las claves y mensajes no se suben ni se guardan. Aun así, se recomienda utilizar claves de prueba en lugar de claves reales de producción.
Comentarios 0