Aller au contenu principal

1. Introduction

JSON Web Signature (JWS) représente du contenu sécurisé avec des signatures numériques (Digital Signatures) ou des codes d'authentification de message (Message Authentication Codes, MACs) en utilisant des structures de données basées sur JSON [RFC7159]. Les mécanismes cryptographiques JWS fournissent une protection d'intégrité (Integrity Protection) pour une séquence arbitraire d'octets. Pour une discussion sur les différences entre les signatures numériques et les MACs, voir la section 10.5.

Deux sérialisations étroitement liées sont définies pour les JWS. La sérialisation compacte JWS (JWS Compact Serialization) est une représentation compacte et sûre pour les URL, destinée aux environnements à espace contraint tels que les en-têtes HTTP Authorization et les paramètres de requête URI. La sérialisation JSON JWS (JWS JSON Serialization) représente les JWS comme des objets JSON et permet d'appliquer plusieurs signatures et/ou MACs au même contenu. Les deux partagent les mêmes fondations cryptographiques.

Les algorithmes cryptographiques et les identifiants à utiliser avec cette spécification sont décrits dans la spécification JSON Web Algorithms (JWA) [JWA] séparée et dans un registre IANA défini par cette spécification. Les capacités de chiffrement associées sont décrites dans la spécification JSON Web Encryption (JWE) [JWE] séparée.

Les noms définis par cette spécification sont courts car un objectif principal est de rendre les représentations résultantes aussi compactes que possible.

1.1. Notational Conventions (Conventions de notation)

Les mots-clés « MUST » (doit), « MUST NOT » (ne doit pas), « REQUIRED » (requis), « SHALL » (doit), « SHALL NOT » (ne doit pas), « SHOULD » (devrait), « SHOULD NOT » (ne devrait pas), « RECOMMENDED » (recommandé), « NOT RECOMMENDED » (non recommandé), « MAY » (peut), et « OPTIONAL » (optionnel) dans ce document doivent être interprétés comme décrit dans « Key words for use in RFCs to Indicate Requirement Levels » [RFC2119]. Cette interprétation ne doit être appliquée que lorsque les termes apparaissent en lettres majuscules.

BASE64URL(OCTETS) désigne l'encodage base64url des OCTETS, selon la section 2.

UTF8(STRING) désigne les octets de la représentation UTF-8 [RFC3629] de STRING, où STRING est une séquence de zéro ou plusieurs caractères Unicode [UNICODE].

ASCII(STRING) désigne les octets de la représentation ASCII [RFC20] de STRING, où STRING est une séquence de zéro ou plusieurs caractères ASCII.

La concaténation de deux valeurs A et B est notée A || B.