JSON Web Signature
JSON Web Signature est une norme proposée par l'Internet Engineering Task Force (IETF) (RFC 7515) pour la signature numérique de données arbitraires[1]. Cette norme est utilisée comme base pour toute une série de technologies basées sur le web, y compris le JSON Web Token.
Objet
Le JSON Web Signature est un moyen de garantir l'intégrité des informations dans un format hautement sérialisable et lisible par machine. Cela signifie qu'il s'agit d'une information, accompagnée de la preuve que l'information n'a pas changé depuis sa signature. Cette signature peut être utilisée pour envoyer des informations d'un site web à un autre, et est particulièrement destinée aux communications sur le web. La signature contient même un formulaire compact optimisé pour des applications telles que les paramètres de requête URI[2].
Commerce sur le web
La JSON Web Signature peut être utilisée pour des applications dans lesquelles des informations signées numériquement doivent être envoyées dans un format lisible par une machine, comme le commerce électronique. Par exemple, disons qu'un utilisateur nommé Bob consulte les prix des widgets sur un site web (widgets.com) et souhaite obtenir un devis pour l'un d'entre eux. Widgets.com pourrait alors fournir à Bob un objet JWS contenant toutes les informations pertinentes sur le widget, y compris le prix, puis le signer en utilisant sa clé privée. Bob disposerait alors d'une offre de prix non répudiable pour le produit.
Accès aux ressources de tiers
Peut-être que Widgets.com et WidgetStorage.com ont un accord selon lequel WidgetStorage.com acceptera des coupons de Widgets.com en échange de trafic. Widgets.com pourrait émettre des JWS donnant à Bob une réduction de 10 % sur le site WidgetStorage.com. Là encore, comme les données sont signées, WidgetStorage peut savoir que Widgets.com a émis le coupon. Si les données n'étaient pas signées, alors Bob pourrait changer sa réduction à 50 % et personne ne pourrait le savoir rien qu'en regardant les données.
Limitations
JWS est l'une des normes de la série JOSE[3] et est destinée à être utilisée en combinaison avec elles. Par exemple, pour le chiffrement, JSON Web Encryption (JWE)[4] est censé être utilisé en conjonction.
En 2015, le JWS était une norme proposée, et faisait partie de plusieurs autres projets de normes de l'IETF[5], et il y avait du code disponible sur le web pour mettre en œuvre le projet de norme[6] - [7].
Références
- « JSON Web Signature (JWS) [RFC7515] »
- « JWS Compact Serialization Overview »
- « JSON Object Signing and Encryption (JOSE) », sur Internet Assigned Numbers Authority, (consulté le )
- « JSON Web Encryption (JWE) [RFC7516] », sur ietf.org (consulté le )
- « JSON Web Key (JWK) [RFC7517] », sur ietf.org (consulté le )
- « google/google-oauth-java-client », sur GitHub (consulté le )
- « JSON Web Tokens - jwt.io », sur jwt.io (consulté le )