First off, thanks for a very thorough, detailed, and transparent analysis as an author. More topical questions below are inline.

On 6/16/25 4:04 PM, Laurence Lundblade wrote:

There ARE use cases for non-AEAD ciphers like disk encryption.

Non-AEAD ciphers can be safe in COSE if the COSE_recipient [5.1] authenticates 
the ID of the non-AEAD cipher. (It also seems safer for the public key layer 
above the AEAD to authenticate the ID than self-authentication of the AEAD ID 
by the AEAD).

COSE-HPKE doesn’t allow non-AEAD in HPKE Direct Encryption Mode [3.1.1], but it 
does in HPKE Key Encryption Mode (multiple recipients) [3.1.2].

- COSE HPKE makes non-AEAD safe with the next_layer_alg member in the 
Recipient_structure [3.1.2.1]
- COSE algs -25 to -28  [Direct Key Agreement] make non-AEAD safe with 
AlgorithmID in the [Context Information Structure]
- COSE algs -29 to -34 [Key Agreement with Key Wrap] does NOT because key wrap 
(which doesn’t authenticate) is in between the level 0 bulk encryption and the 
Context Information Structure

I have two concerns with publishing COSE-HPKE:

First, I’m nervous about the amount of security analysis performed on the 
Recipient_structure [3.1.2.1]. I authored it and believe it is sound, but I 
don’t recall it being thoroughly blessed by others.

Second, I think Recipient_structure [3.1.2.1] is a major candidate to solve the 
problem with COSE algs -29 to -34. It would also be used to eliminate the use 
of the [Context Information Structure], which I consider very obscure and an 
impediment to the adoption of COSE encryption. I oppose the solution of an 
additional KDF layer proposed in [cek-hkdf] because it adds a wasteful layer 
and retains the burdensome [Context Information Structure]. It would be nice 
for the security fix for -29 to -34 [Key Agreement with Key Wrap] to be the 
same as used in COSE HPKE, but I don’t feel enough analysis has been done to 
know that Recipient_structure [3.1.2.1] is sufficient to replace the [Context 
Information Structure].

Actually maybe I take my approval back: is there a purposeful distinction between a Statement and Receipt in the content format? Isn't a Receipt just a Signed Statement with specific content in the unprotected header? I read this section a few times slowly, and I cannot tell if the concerns or possible mitigations are addressed given great detail here. Is the last sentence in this section a hint towards a shared theme with these concerns as they pertain to non-AEAD ciphers or am I off the mark?

I know we’re not supposed to admit any intellectual weakness whatsoever in the 
IETF, but this stuff makes my head hurt. The security analysis here is not 
easy, so I’m cautious. We missed the LAMPS attack for years.

LL

[3.1.1]:https://www.ietf.org/archive/id/draft-ietf-cose-hpke-13.html#name-hpke-direct-encryption-mode
[3.1.2]:https://www.ietf.org/archive/id/draft-ietf-cose-hpke-13.html#name-hpke-key-encryption-mode
[3.1.2.1]:https://www.ietf.org/archive/id/draft-ietf-cose-hpke-13.html#name-hpke-key-encryption-mode [Direct Key Agreement]:https://www.rfc-editor.org/rfc/rfc9053.html#name-direct-key-agreement
[Context Information 
Structure]:https://www.rfc-editor.org/rfc/rfc9053.html#name-context-information-structu
[Key Agreement with Key 
Wrap]:https://www.rfc-editor.org/rfc/rfc9053.html#name-key-agreement-with-key-wrap
[5.1]:https://www.rfc-editor.org/rfc/rfc9052.html#name-enveloped-cose-structure
[cek-hkdf] 
:https://www.ietf.org/archive/id/draft-tschofenig-cose-cek-hkdf-sha256-02.html

_______________________________________________
COSE mailing list --cose@ietf.org
To unsubscribe send an email tocose-le...@ietf.org
_______________________________________________
COSE mailing list -- cose@ietf.org
To unsubscribe send an email to cose-le...@ietf.org

Reply via email to