Aller au contenu

COSE : CBOR Object Signing and Encryption

Cryptographie

COSE : CBOR Object Signing and Encryption. « Signature et chiffrement d'objets CBOR », par analogie avec l'édition de poche d'un acte notarié : même valeur juridique, beaucoup moins de papier.

Principe : COSE transpose au format binaire CBOR ce que JOSE fait en JSON : des structures normalisées pour signer, calculer un MAC ou chiffrer un contenu, avec des en-têtes protégés et non protégés.

Structures : Des objets distincts selon l'usage : signature à un ou plusieurs signataires, MAC, chiffrement à un ou plusieurs destinataires, plus une représentation normalisée des clés. Les algorithmes y sont désignés par des entiers d'un registre public, ce qui économise des octets et un peu de lisibilité.

Usages : Clés publiques des authentificateurs WebAuthn, attestations d'objets connectés, jetons CWT (CBOR Web Token) : partout où chaque octet compte, sur une puce contrainte ou dans un code imprimé.

Pièges hérités : Comme dans JOSE, l'algorithme annoncé dans l'en-tête ne doit jamais dicter seul la vérification. Le format a changé, la tentation de faire confiance à l'expéditeur, elle, a traversé les encodages sans une égratignure.

Ce qui arrive si on s'en passe

Un vérificateur COSE qui laisse l'algorithme annoncé dans l'en-tête dicter seul la vérification accepte ce que l'expéditeur a décidé d'accepter : l'attaquant choisit l'algorithme qui l'arrange, et la signature ou le MAC n'engagent plus que lui. Fonder une décision sur un en-tête non protégé mène au même résultat par un autre chemin, puisque personne n'a signé ce champ. Pour des clés WebAuthn ou des attestations d'objets connectés, cela revient à authentifier la bonne foi de l'émetteur plutôt que son identité. Le binaire a fait gagner des octets ; il n'a jamais fait gagner la moindre prudence.

Explication de la marmotte

Pour prouver qu'un document vient bien de quelqu'un et n'a pas été modifié, on y ajoute une sorte de signature numérique. Pour le garder secret, on le brouille. Il existe des façons standard d'emballer tout cela, mais certaines prennent beaucoup de place. Cette méthode-ci fait la même chose en version très compacte, pensée pour les petits appareils comme une clé de connexion à brancher sur l'ordinateur ou un code imprimé qu'on scanne avec un téléphone. Tout le monde suit la même recette, donc n'importe quel appareil compatible sait vérifier ou ouvrir le paquet.

Où ce terme est utilisé

← Tout le glossaire