Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

JOSE, la cryptographie pour JSON

Première rédaction de cet article le 20 mai 2015


Le format JSON a largement remplacé XML dans les applications Web et sert aujourd'hui de base à plein d'applications. Il était donc logique qu'on cherche à la sécuriser par la cryptographie et c'est le rôle du groupe de travail JOSE (JavaScript Object Signing and Encryption) de l'IETF qui vient de publier une série de normes sur la signature et le chiffrement de textes JSON.

Un premier RFC avait déjà débroussaillé le terrain en expliquant les scénarios d'usage et le cahier des charges, c'était le RFC 7165. Les nouveaux RFC, eux, définissent les normes techniques. Ce sont :

  • RFC 7518 : JSON Web Algorithms (JWA) décrit les registres où sont stockés les identificateurs des algorithmes de cryptographie utilisables.
  • RFC 7517 : JSON Web Key (JWK) explique le format des clés.
  • RFC 7515 : JSON Web Signature (JWS) expose le mécanisme de signature cryptographique, qui permet d'authentifier des documents JSON.
  • RFC 7516 : JSON Web Encryption (JWE) normalise le chiffrement, grâce auquel les textes JSON peuvent rester confidentiels.
  • RFC 7520 : Examples of Protecting Content using JavaScript Object Signing and Encryption (JOSE) est simplement un recueil d'exemples.
  • En même temps que les RFC du groupe JOSE ont été publiés une autre série du groupe OAUTH décrivant notamment des utilisations de JOSE dans le contexte d'OAuth. C'est par exemple le cas du RFC 7519, JSON Web Token (JWT).

Si vous voulez une très bonne explication de JOSE, avec plein d'explications simples, il y a l'article de Jan Rusnacko.

Si vous voulez plutôt pratiquer, il existe de nombreuses mises en œuvre de JOSE :

Merci à Virgine Galindo pour sa relecture.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)