The normative portion of this draft (sections 4, 5) is pretty boring (in the 
best possible way); it pretty much says "insert ML-KEM into TLS in the obvious 
way, and use these code points".

On a minor note: when talking about failures (5.2), well, yes, decryption 
failure (that is, both sides do the protocol honestly, both sides receive the 
key shares correctly, but the two sides generate different secrets) is 
possible; however the probability is so low that almost certainly no such 
failure will ever occur anywhere in the world for this protocol.  A failure is 
far more likely to be due to a transmission error, an implementation bug or an 
active attack (each of which have, in my estimation, a probability greater than 
2^-138 of happening).

On the other hand, if we look at the security considerations (section 6), it 
looks misguided.  In my view, the security considerations of a draft or RFC 
should give actionable advice on how to implement the protocol securely.  This 
does that only to a limited extent.

Section 6.1 mainly talks about the dangers of variable length secrets.  This 
has nothing to do with ML-KEM, which has fixed length secrets.  In addition, it 
cites Aviram et al which talks about the possible weaknesses when using a 
hybrid construction with a non-collision resistant hash function - that doesn't 
apply for several reasons.

Section 6.2 starts to talk about IND-CCA2 and Fujisaki-Okamoto transforms 
(academic concepts that may mean little to an implementor) and DH (which has 
nothing to do with this draft).  On the other hand, at the bottom of the 
section, it does give some advice ("recommended not to reuse KEM public keys; 
if you have to, abide by any a bound on the number of reuses that the KEM 
mandates (ML-KEM has no such bound); MUST NOT reuse randomness in the 
generation of KEM ciphertexts).

Section 6.3 talks about binding properties and admits that they don't apply to 
TLS 1.3 (in which case, why bring it up?)

IMHO, this security considerations section should be replaced with only those 
things relevant to the implementor and things he can address, such as:
-  Public key reuse (the current draft permits it; I can see the argument that 
it should be forbidden, especially given how cheap key generation is in ML-KEM)
-  MUST NOT reuse randomness in the generation of KEM ciphertexts - that text 
from the draft is good
-  Good randomness is essential
-  Possibly some statements about side channels (although, without reuse, the 
attacker gets only a single trace, and there are likely larger side channel 
vulnerabilities available in a TLS implementation).

Also, why is RFC 9180 a normative reference?
_______________________________________________
TLS mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to