Aller au contenu principal

Annexe B. Deux couches d'informations sur le destinataire

Toutes les classes d'algorithmes de destinataire actuellement définies n'utilisent que deux couches de la structure COSE. La première couche (COSE_Encrypt) est le contenu du message, et la deuxième couche (COSE_Recipient) est le chiffrement de la clé de contenu. Cependant, si l'on utilise un algorithme de destinataire tel que le mécanisme d'encapsulation de clé RSA (RSA-KEM) (voir l'annexe A de RSA-KEM [RFC5990]), alors il est logique d'avoir deux couches de la structure COSE_Recipient.

Ces couches seraient :

  • Couche 0 : La couche de chiffrement de contenu. Cette couche contient la charge utile du message.

  • Couche 1 : Le chiffrement de la CEK par une KEK.

  • Couche 2 : Le chiffrement d'un long secret aléatoire à l'aide d'une clé RSA et d'une fonction de dérivation de clé pour convertir ce secret en KEK.

Ceci est un exemple de ce à quoi ressemblerait un message à trois couches. Pour le rendre plus facile à lire, il est présenté en utilisant la notation de diagnostic CBOR étendue (définie dans [RFC8610]) plutôt que comme un vidage binaire. Le message a les couches suivantes :

  • Couche 0 : A le contenu chiffré avec AES-GCM en utilisant une clé de 128 bits.

  • Couche 1 : Utilise l'algorithme AES Key Wrap avec une clé de 128 bits.

  • Couche 2 : Utilise ECDH Ephemeral-Static direct pour générer la clé de la couche 1.

En effet, cet exemple est une version décomposée de l'utilisation de l'algorithme ECDH-ES+A128KW.

La taille du fichier binaire est de 183 octets

96(
[ / COSE_Encrypt /
/ protected h'a10101' / << {
/ alg / 1:1 / AES-GCM 128 /
} >>,
/ unprotected / {
/ iv / 5:h'02d1f7e6f26c43d4868d87ce'
},
/ ciphertext / h'64f84d913ba60a76070a9a48f26e97e863e2852948658f0
811139868826e89218a75715b',
/ recipients / [
[ / COSE_Recipient /
/ protected / h'',
/ unprotected / {
/ alg / 1:-3 / A128KW /
},
/ ciphertext / h'dbd43c4e9d719c27c6275c67d628d493f090593db82
18f11',
/ recipients / [
[ / COSE_Recipient /
/ protected h'a1013818' / << {
/ alg / 1:-25 / ECDH-ES + HKDF-256 /
} >> ,
/ unprotected / {
/ ephemeral / -1:{
/ kty / 1:2,
/ crv / -1:1,
/ x / -2:h'b2add44368ea6d641f9ca9af308b4079aeb519f11
e9b8a55a600b21233e86e68',
/ y / -3:false
},
/ kid / 4:'[email protected]'
},
/ ciphertext / h''
]
]
]
]
]
)