Passa al contenuto principale

Appendice B. Due livelli di informazioni sul destinatario

Tutte le classi di algoritmi del destinatario attualmente definite utilizzano solo due livelli della struttura COSE. Il primo livello (COSE_Encrypt) è il contenuto del messaggio e il secondo livello (COSE_Recipient) è la crittografia della chiave del contenuto. Tuttavia, se si utilizza un algoritmo del destinatario come il meccanismo di incapsulamento della chiave RSA (RSA-KEM) (vedere l'appendice A di RSA-KEM [RFC5990]), allora ha senso avere due livelli della struttura COSE_Recipient.

Questi livelli sarebbero:

  • Livello 0: Il livello di crittografia del contenuto. Questo livello contiene il payload del messaggio.

  • Livello 1: La crittografia della CEK da parte di una KEK.

  • Livello 2: La crittografia di un lungo segreto casuale utilizzando una chiave RSA e una funzione di derivazione della chiave per convertire quel segreto nella KEK.

Questo è un esempio di come apparirebbe un messaggio a tre livelli. Per renderlo più facile da leggere, viene presentato utilizzando la notazione diagnostica CBOR estesa (definita in [RFC8610]) piuttosto che come dump binario. Il messaggio ha i seguenti livelli:

  • Livello 0: Ha il contenuto crittografato con AES-GCM utilizzando una chiave a 128 bit.

  • Livello 1: Utilizza l'algoritmo AES Key Wrap con una chiave a 128 bit.

  • Livello 2: Utilizza ECDH Ephemeral-Static diretto per generare la chiave del Livello 1.

In effetti, questo esempio è una versione scomposta dell'utilizzo dell'algoritmo ECDH-ES+A128KW.

La dimensione del file binario è di 183 byte

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''
]
]
]
]
]
)