HMAC est un code d authentification de message basé sur un hash et protégé par une clé : un même message produit des résultats complètement différents avec des clés différentes. Il permet ainsi de vérifier si les données ont été modifiées et de confirmer que le message provient bien d une partie possédant la clé. Les signatures API, la vérification des callbacks Webhook et la protection des URL de téléchargement contre les modifications utilisent HMAC.
Les algorithmes pris en charge sont HMAC-SHA1, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 ainsi que HMAC-SHA3-224, SHA3-256, SHA3-384 et SHA3-512, soit 8 algorithmes. SHA1 est signalé comme déconseillé et SHA256 est utilisé par défaut. La clé et le message peuvent chacun être interprétés en UTF-8, Hex ou Base64, tandis que la sortie peut être en Hex ou Base64, afin de s adapter directement aux exigences d encodage des différentes documentations d API.
Le mode de vérification utilise une comparaison en temps constant afin d éviter les fuites d informations liées aux différences de durée de comparaison. La zone de résultat affiche la longueur du condensé, du message et de la clé, ce qui aide à vérifier si la clé a été tronquée ou contient des espaces supplémentaires. La page précise également que les signatures JWT utilisent Base64URL, qui diffère du Base64 standard au niveau du remplissage et de deux caractères.
Lors de l interprétation de la clé ou du message en Hex, les caractères invalides ou une longueur impaire sont signalés directement. Les échecs d analyse Base64 sont également indiqués clairement au lieu de produire une signature erronée. Un message ou une clé vide, ou l absence du HMAC attendu lors de la vérification, déclenche une demande de compléter les données.
Tout le calcul HMAC est effectué localement dans le navigateur. Il n existe aucune API de calcul côté serveur et les clés et messages ne sont ni envoyés au serveur ni enregistrés. Il reste recommandé d utiliser des clés de test plutôt que de véritables clés de production.
Commentaires 0