Aller au contenu

HS256 : HMAC using SHA-256

Cryptographie

HS256 : HMAC using SHA-256. « Code d'authentification HMAC fondé sur SHA-256 », par analogie avec un tampon secret dont l'émetteur et le vérificateur possèdent chacun un exemplaire identique.

Usage : Identifiant d'algorithme employé dans l'en-tête des JWT et des JWS : le jeton est scellé par un HMAC calculé avec SHA-256 et une clé secrète partagée.

Symétrique : La même clé sert à produire et à vérifier le sceau ; quiconque peut vérifier peut donc aussi forger. Le partage du secret est une vertu en morale, beaucoup moins en cryptographie.

Confusion d'algorithme : Un vérificateur qui obéit au champ « alg » du jeton peut être amené à traiter une clé publique RSA comme un secret HMAC ; on fige donc l'algorithme attendu côté vérification, au lieu de laisser le jeton le choisir.

Force du secret : Un secret court ou devinable se retrouve par force brute hors ligne à partir d'un seul jeton ; il faut une clé aléatoire d'au moins la taille de la sortie du hachage.

Ce qui arrive si on s'en passe

Sans sceau cryptographique sur un jeton, rien n'empêche un utilisateur de modifier son contenu : changer son identifiant, s'ajouter un rôle d'administrateur ou prolonger la date d'expiration, et le serveur l'accepte tel quel. Un jeton déclaré sans algorithme produit exactement cet effet si le vérificateur l'accepte. Avec ce mécanisme, la vérification du sceau devient obligatoire, à condition que l'algorithme soit imposé par le serveur et que le secret partagé soit long, aléatoire et connu des seuls services qui en ont besoin, puisque chacun d'eux peut aussi fabriquer des jetons valides.

Explication de la marmotte

Quand on se connecte à un site, il remet souvent une sorte de badge numérique qui prouve qui on est. Pour qu'on ne puisse pas trafiquer ce badge, le site y appose un sceau calculé avec un mot secret que lui seul connaît. À chaque visite, il recalcule le sceau : si le badge a été modifié, le sceau ne correspond plus et le badge est refusé. Cette méthode est rapide, mais le mot secret doit rester vraiment secret et être long, sinon un tricheur pourrait le deviner et fabriquer de faux badges.

Où ce terme est utilisé

← Tout le glossaire