Français

Outils de développement · Décodeur JWT

RFC 7519 et la famille JOSE : JWT, JWS, JWE, JWK et JWA expliqués

· Contexte

jwt cryptographie normes

Une carte reliant les réclamations JWT aux enveloppes JOSE signées et cryptées
Illustration vectorielle originale de ToolAcre

JWT est un membre d'une famille de spécifications du groupe de travail IETF JOSE. Cet article explique ce que définit chaque RFC, comment ils s'articulent et pourquoi un JWT est généralement un JWS.

Cinq acronymes, un jeton : pourquoi la documentation mentionne JWS et JWE alors que vous ne posez des questions que sur JWT La documentation des jetons

se déplace entre JWT, JWS, JWE, JWK et JWA car ils décrivent différentes couches du même écosystème. La confusion commence lorsque « JWT » est utilisé comme raccourci pour chaque jeton compact signé en trois parties. Séparer les revendications de l'enveloppe et de la représentation clé facilite le raisonnement de la mise en œuvre.

Le décodeur de ToolAcre est intentionnellement plus étroit que la famille. Il gère les entrées en forme de JWS en trois parties dont les deux premiers segments décodés sont des objets JSON. Il détecte une entrée compacte cryptée en cinq parties et s'arrête, car la lecture du texte chiffré sans les clés du destinataire ne décoderait pas la même chose.

Les documents JOSE définissent les formats associés ; ce référentiel n'établit pas le calendrier de leur groupe de travail

Les spécifications associées proviennent des travaux de l'IETF JOSE, mais les sources du référentiel n'établissent pas le calendrier organisationnel détaillé demandé par le plan. Cet article évite donc d'inventer des dates ou des historiques de processus et se concentre sur les relations de format observables dans l'outil et le plan.

La question pratique est de savoir à quelle couche appartient chaque décision. Les noms de revendications décrivent les instructions d'application, les signatures protègent le matériel codé, le cryptage protège le contenu, les objets clés JSON représentent les informations clés et les identifiants d'algorithme nomment les opérations. Aucun acronyme ne remplace les autres.

JWS (RFC 7515) — signature de contenu arbitraire et utilisation des JWT de sérialisation compacte

JWS décrit le contenu signé ou protégé par MAC. Sa forme compacte comporte trois segments : en-tête protégé, charge utile et signature. L'entrée de signature utilise les deux premiers segments codés reliés par un point. Un JWT voyage généralement dans cette enveloppe, qui est le formulaire que ToolAcre divise et inspecte.

L'en-tête et la charge utile peuvent être décodés en JSON, tandis que la signature est constituée d'octets plutôt que d'un troisième objet. ToolAcre signale la présence et la taille de la signature mais la marque toujours comme non vérifiée. Ainsi, il peut illustrer la structure JWS sans revendiquer aucun résultat cryptographique.

JWE (RFC 7516) — cryptage du contenu, avec une sérialisation en cinq parties

JWE décrit le contenu crypté. Sa forme compacte comporte cinq segments représentant un en-tête protégé, une clé chiffrée, une valeur d'initialisation, un texte chiffré et une balise d'authentification. Quatre points constituent donc un indice structurel fort qu'un décodeur JWT en trois parties a reçu une enveloppe différente.

ToolAcre émet une erreur JWE spécifique et explique que le contenu ne peut pas être lu sans la clé de déchiffrement. Il ne traite pas le texte chiffré comme un JSON mal formé et n'essaie pas d'afficher des octets aléatoires. Le chiffrement et la signature peuvent également être composés, mais le traitement imbriqué se situe en dehors de cette voie.

JWK et JWA (RFC 7517 et 7518) — représentant les clés comme JSON et nommant les algorithmes

JWK fournit une représentation JSON pour les informations de clé cryptographique, tandis que JWA nomme les identifiants d'algorithme et les paramètres associés utilisés dans JOSE. Leur existence ne signifie pas qu’un jeton peut choisir sa propre clé ou son propre algorithme de confiance. Un vérificateur doit contraindre à la fois la politique de l'émetteur et celle de l'application.

Les notes de l'algorithme ToolAcre n'expliquent qu'un ensemble fini d'étiquettes présentes dans la source et appellent tout le reste non reconnu. Ce sont des descriptions, pas des implémentations. Le décodeur n'importe pas de JWK ni n'exécute d'algorithme à partir de JWA, ce qui maintient la limite d'inspection explicite.

JWT (RFC 7519) — le format de réclamation qui circule sur JWS ou JWE

JWT définit un objet de réclamation et des noms enregistrés tels que l'émetteur, le sujet, l'audience et NumericDates. Ces réclamations peuvent être transportées dans une structure JOSE signée ou cryptée. La couche de charge utile répond donc « quelles instructions sont représentées », tandis que l'enveloppe répond comment ces octets sont protégés ou masqués.

ToolAcre s'attend à ce que la charge utile décodée soit un objet JSON et répertorie ses revendications. Un tableau, un nombre ou une valeur nulle est rejeté pour cet outil. Même un objet bien formé reste non fiable jusqu'à ce que l'enveloppe correspondante soit traitée par un vérificateur ou un destinataire configuré.

Ce que cela ne couvre pas : les profils ultérieurs tels que les meilleures pratiques RFC 8725 et les jetons d'accès RFC 9068, qui ont leurs propres publications.

Les documents de bonnes pratiques et de profils ultérieurs peuvent préciser la manière dont ces mécanismes généraux doivent être utilisés. Ils méritent un traitement séparé car un format de base ne fournit pas de politique d'émetteur, d'audience ou de type de jeton spécifique à l'application. Cet article ne prétend pas que le décodeur implémente un tel profil.

Lors de l'examen d'un système, notez le profil exact, l'enveloppe attendue, les algorithmes acceptés, la source de clé et les règles de réclamation. Cette liste évite que la familiarité des acronymes ne se transforme en une hypothèse de compatibilité ou de sécurité.

À retenir : JWT correspond aux revendications, JWS est l'enveloppe - le décodeur ToolAcre JWT lit le formulaire compact JWS et affiche l'en-tête JWT et les revendications à l'intérieur

JWT nomme la couche de revendications ; JWS et JWE fournissent des enveloppes de protection ; JWK représente les données clés ; JWA nomme les choix d’algorithmes. ToolAcre lit la forme signée commune en trois parties et affiche l'en-tête et les revendications tout en refusant de vérifier ou de déchiffrer.

Utilisez cette carte pour poser la bonne question suivante. Lisible JSON identifie la couche de revendication. Trois ou cinq segments identifient les familles d'enveloppes probables. La confiance dépend toujours de la cryptographie et de la politique configurées indépendamment, et non de la reconnaissance d'un acronyme par le décodeur.