1. Introduction
- Introduction
L'accent est de plus en plus mis sur les petits appareils contraints qui composent l'Internet des objets (IoT). L'une des normes issues de ce processus est la "Représentation d'objets binaires concis (CBOR)" [STD94]. CBOR a étendu le modèle de données de JavaScript Object Notation (JSON) [STD90] en autorisant les données binaires, entre autres changements. CBOR a été adopté par plusieurs groupes de travail de l'IETF traitant du monde de l'IoT comme méthode d'encodage des structures de données. CBOR a été conçu spécifiquement pour être petit en termes de messages transportés et de taille d'implémentation et pour avoir un décodeur sans schéma. Il est nécessaire de fournir des services de sécurité des messages pour l'IoT, et l'utilisation de CBOR comme format d'encodage des messages est logique.
La spécification COSE de base se compose de deux documents. [RFC9052] contient les structures de sérialisation et les procédures d'utilisation des différents algorithmes cryptographiques. Ce document fournit un ensemble initial d'algorithmes à utiliser avec ces structures.
1.1. Terminologie des exigences
Les mots clés "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", et "OPTIONAL" dans ce document doivent être interprétés comme décrit dans BCP 14 [RFC2119] [RFC8174] lorsque, et seulement lorsque, ils apparaissent en majuscules, comme indiqué ici.
1.2. Changements par rapport à la RFC 8152
-
Extraction des sections traitant d'algorithmes spécifiques et placement de celles-ci dans ce document. Les sections traitant de la structure et des règles générales de traitement sont placées dans [RFC9052].
-
Clarifications textuelles et changements de terminologie.
-
Suppression de tous les détails relatifs aux contresignatures et placement de ceux-ci dans [COUNTERSIGN].
1.3. Terminologie du document
Dans ce document, nous utilisons la terminologie suivante :
Byte : Un synonyme d'octet.
Constrained Application Protocol (CoAP) : Un protocole de transfert web spécialisé pour une utilisation dans des systèmes contraints. Il est défini dans [RFC7252].
Authenticated Encryption (AE) algorithms [RFC5116] : Algorithmes de chiffrement qui fournissent une vérification d'authentification du contenu en plus du service de chiffrement. Un exemple d'algorithme AE utilisé dans COSE est AES Key Wrap [RFC3394]. Ces algorithmes sont utilisés pour le chiffrement de clés, mais les algorithmes de chiffrement authentifié avec données associées (AEAD) seraient préférés.
AEAD algorithms [RFC5116] : Algorithmes de chiffrement qui fournissent le même service d'authentification du contenu que les algorithmes AE, et permettent également d'inclure des données associées qui ne font pas partie du corps chiffré dans le service d'authentification. Un exemple d'algorithme AEAD utilisé dans COSE est AES-GCM [RFC5116]. Ces algorithmes sont utilisés pour le chiffrement de contenu et peuvent également être utilisés pour le chiffrement de clés.
Le terme "byte string" est utilisé pour des séquences d'octets, tandis que le terme "text string" est utilisé pour des séquences de caractères.
Les tableaux d'algorithmes contiennent les colonnes suivantes :
-
Un nom pour l'algorithme à utiliser dans les documents.
-
La valeur utilisée sur le fil pour l'algorithme. L'un des endroits où cela est utilisé est le paramètre d'en-tête d'algorithme d'un message.
-
Une brève description afin que l'algorithme puisse être facilement identifié lors de l'analyse du registre IANA.
Des colonnes supplémentaires peuvent être présentes dans un tableau selon les algorithmes.
1.4. Grammaire CDDL pour les structures de données CBOR
Lorsque COSE a été écrit à l'origine, le langage de définition de données concis (CDDL) [RFC8610] n'avait pas encore été publié dans une RFC, il ne pouvait donc pas être utilisé comme langage de description de données pour décrire normativement les structures de données CBOR employées par COSE. Pour cette raison, les objets de données CBOR définis ici sont décrits en prose. Des descriptions supplémentaires (non normatives) des objets de données COSE sont fournies dans un sous-ensemble de CDDL, décrit dans [RFC9052].
1.5. Exemples
Un projet GitHub a été créé à [GitHub-Examples] qui contient un ensemble d'exemples de test. Chaque exemple se trouve dans un fichier JSON qui contient les entrées utilisées pour créer l'exemple, certaines des valeurs intermédiaires pouvant être utilisées pour le débogage, et la sortie de l'exemple. Les résultats sont encodés en utilisant à la fois le format hexadécimal et le format de notation de diagnostic CBOR.
Certains des exemples sont conçus pour être des cas de test d'échec ; ceux-ci sont clairement marqués comme tels dans le fichier JSON.