Aller au contenu

ES256 : ECDSA using P-256 and SHA-256

Cryptographie

ES256 : ECDSA using P-256 and SHA-256. « Signature ECDSA sur la courbe P-256 avec le condensé SHA-256 », par analogie avec le modèle de tampon officiel inscrit en tête d'un formulaire pour que le guichetier sache quoi vérifier.

Un identifiant : C'est le nom d'algorithme employé dans l'en-tête d'un JWS ou d'un JWT, et, sous le code -7, dans COSE et WebAuthn. Il fixe à la fois la courbe, la fonction de hachage et le schéma de signature.

Compacité : La signature fait 64 octets, deux entiers de 32 octets simplement concaténés et non encodés en DER. Face à RS256 et ses clés RSA volumineuses, clés et signatures sont nettement plus courtes.

Le nonce : Chaque signature ECDSA exige une valeur secrète unique et imprévisible. La réutiliser une seule fois livre la clé privée : l'aléa, comme la vertu, ne supporte pas l'approximation. Les implémentations sérieuses la dérivent de façon déterministe.

Côté vérificateur : On fixe l'algorithme attendu au lieu de croire celui que le jeton annonce, sinon un attaquant propose « none » ou un algorithme symétrique et signe lui-même.

Ce qui arrive si on s'en passe

Un jeton non signé, ou signé mais jamais vérifié, se modifie à volonté : il suffit de changer l'identifiant ou le rôle dans la charge utile pour usurper un compte. La signature seule ne suffit pas : si le vérificateur accepte l'algorithme que le jeton déclare, un attaquant peut annoncer « none » et supprimer la signature, ou basculer vers un algorithme symétrique en se servant de la clé publique comme secret. Il faut donc épingler ES256 (ou la liste fermée des algorithmes admis) côté vérification, contrôler la courbe de la clé, et s'appuyer sur une bibliothèque qui produit des nonces sûrs, puisqu'un nonce répété ou prévisible révèle la clé privée à quiconque observe deux signatures.

Explication de la marmotte

Sur internet, on a souvent besoin de prouver qu'un petit message, par exemple un laissez-passer de connexion, vient bien de celui qui prétend l'avoir écrit et n'a pas été modifié. On y appose alors une sorte de signature mathématique. Ce nom court est simplement l'étiquette qui indique quelle recette de signature a été utilisée, un peu comme le nom d'un modèle de cadenas. Celui qui reçoit le message lit l'étiquette et sait comment vérifier que la signature est authentique.

Où ce terme est utilisé

← Tout le glossaire