[TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt

2025-03-10 Thread Viktor Dukhovni
On Mon, Mar 10, 2025 at 10:54:16AM +, Peter C wrote:

> In ML-KEM, Bob derives b deterministically from m and H(ek).
> If Bob tried to reuse b with a different public key, then the
> re-encryption check would fail during decapsulation. 

Thanks for filling in my "momentary" lapse.  Indeed the server is not
free to choose a fixed "b" (ŷ).  So server-side reuse is not possible as
originally claimed.

-- 
Viktor.

___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt

2025-03-10 Thread John Mattsson
Dang, Quynh wrote:
>My guess is that that would be an expensive operation because of many reasons.

Yes, and to make sure that the first two keys were not just before and just 
after a rekeying, you would need to look at three keys…

While any timing side channels in X25519MLKEM768 are hopefully mitigated by the 
hybrid construction, this is not true with standalone ML-KEM. For standalone 
ML-KEM, it is even more important to forbid reuse of encapsulation keys when 
communicating with several peers. Also, standalone ML-KEM is even faster than 
the already very fast X25519MLKEM768, so there is even less justification for 
any reuse.

Cheers,
John

From: Dang, Quynh H. (Fed) 
Date: Monday, 10 March 2025 at 14:09
To: tls@ietf.org 
Subject: [TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt
The server can detect a reused encapsulation key if it saves the keys which 
have been received and check the newly received key against the list of its 
saved keys. The server could just save the hashes of the keys or a "small" 
portion of the keys as the key IDs.  My guess is that that would be an 
expensive operation because of many reasons.

Regards,
Quynh.
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] RFC 8773bis status

2025-03-10 Thread Joseph Salowey
draft-ietf-tls-8773bis has been in the “Held By WG” state since the Update
to Standards Track / Working Group Last Call ended on 01 January 2024, see
[0]. On 23 August 2024, we issued a consensus call to determine whether to
require formal analysis in the symbolic model; see [1]. Between then and
now, we tweaked the process somewhat to introduce a FATT point person and
better described the process; see [2].  As a result, we:

1) Identified a FATT point person; Britta Hale generously offered to act as
the point person for this draft - many thanks.

2) Received a FATT review report for draft-ietf-tls-8773bis; see [3] and
please note the usage restrictions - many thanks again to the FATT members
who participated in the review and to Britta for pulling it together.

>From that report, we would like to note the following:

Reviewer comments highlighted that the [-8773bis] technical changes to TLS
through use of PSK are unlikely to introduce vulnerabilities to TLS in its
current form, which should allay concerns from developers who rely on TLS
security as-is and may have reservations about issues introduced by
[-8773bis]. However, there were concerns about the claims of security
offered under a quantum attacker and the [-8773bis] technical changes not
aligning.

To resolve the FATT comments, two courses of action were presented, namely
reducing/revising security claims or seeking an analysis. Russ, the author,
made adjustments to some of the security claims in the draft (see [4])
specially addressing some reviewer concerns about authenticity claims from
the PSK.

Some FATT open notes still remain, specifically that the draft claims
continued TLS security against HNDL attacks. However, since the draft
allows PSK reuse as well as group use, under a quantum attacker the draft
does not provide “TLS security” but some form of group-like static key
protection without the FS guarantees TLS now provides nor uniqueness of
session keys. While this is not an issue with group PSKs under traditional
attackers for the reason that the rest of the TLS handshake ensures unique
client-server channel keys, it is an issue under a quantum attacker, which
is the scenario that this draft claims TLS security against.

The FATT recommendation was to select one of the following courses of
action: a) restrict such PSK from reuse and group use to better match the
intended TLS security, b) reduce or remove security claims on the TLS
security provided under a quantum attacker, or c) seek analysis that will
breakdown the exact security model that the draft provides and ensure the
security considerations section matches that model.

We will have time to discuss this at the IETF 122 meeting in Bangkok and
will run a consensus call on the way forward soon after.

Cheers,

Sean, Deirdre, and Joe

[0] Link to Update to Standards Track/Working Group Last Call completion
message:
https://mailarchive.ietf.org/arch/msg/tls/YLDjIzpwNB17dYlxmCPv-G3IdSk/
[1] Link to Consensus Call for Formal Analysis Requirement message:
https://mailarchive.ietf.org/arch/msg/tls/M-ZBViaDQ0adftLrjZfZ-l7BMfI/
[2] Link to FATT process: https://github.com/tlswg/tls-fatt
[3] Link to FATT report:
https://github.com/tlswg/rfc8773bis/blob/main/fatt-review/IETF%20FATT%20Report%20-%208773bis.pdf
[4] Link to diffs:
https://author-tools.ietf.org/iddiff?url1=draft-ietf-tls-8773bis-04&url2=draft-ietf-tls-8773bis-05&difftype=--hwdiff
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt

2025-03-10 Thread Dang, Quynh H. (Fed)
The server can detect a reused encapsulation key if it saves the keys which 
have been received and check the newly received key against the list of its 
saved keys. The server could just save the hashes of the keys or a "small" 
portion of the keys as the key IDs.  My guess is that that would be an 
expensive operation because of many reasons. 

Regards,
Quynh. 
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] Exporter compatibility pitfall between (D)TLS 1.2 and 1.3

2025-03-10 Thread David Benjamin
Hi all,

I recently spent some time debugging an interop issue between WebRTC + DTLS
1.3 in Chrome and WebRTC + DTLS 1.3 in Firefox. The cause of the issue was
a minor but interesting incompatibility between (D)TLS 1.2 and (D)TLS 1.3
that doesn't seem to have been flagged in RFC 8446 anywhere. Nothing
actionable for this group, apart from maybe a last minute sentence to add
to 8446bis (way too late to change how exporters work), but I thought I
would pass it along for general awareness.

WebRTC uses DTLS-SRTP, which uses export keying material to generate some
specified number of bytes of data:
https://www.rfc-editor.org/rfc/rfc5764.html#section-4.2

It turns out Firefox exported the maximum key+salt length and then only
used a prefix of the output, rather than exporting the length as specified
in RFC 5764. Back in 1.2, this was just fine and gave the right output. The
requested length didn't figure into the derivation. But 1.3 incorporates
the requested length into the derivation, so now this computes the wrong
value.

This means, starting with 1.3, applications must be sure to pass in exactly
the length specified by the protocol they're implementing. Applications
that relied on this 1.2 property will silently do the wrong thing when
upgrading to 1.3.

David
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] Re: Exporter compatibility pitfall between (D)TLS 1.2 and 1.3

2025-03-10 Thread John Mattsson
Hi David,

I remember that the same problem was discussed when standardizing EAP-TLS 1.3. 
The following text is in RFC 9190:

  “Note that the key derivation MUST use the length values given above.
   While in TLS 1.2 and earlier it was possible to truncate the output
   by requesting less data from the TLS-Exporter function, this practice
   is not possible with TLS 1.3.  If an implementation intends to use
   only a part of the output of the TLS-Exporter function, then it MUST
   ask for the full output and then only use the desired part.  Failure
   to do so will result in incorrect values being calculated for the
   above keying material.”

I agree that it would be good if 8446bis discussed the problem.

Cheers,
John

From: David Benjamin 
Date: Monday, 10 March 2025 at 21:20
To: 
Subject: [TLS] Exporter compatibility pitfall between (D)TLS 1.2 and 1.3
Hi all,

I recently spent some time debugging an interop issue between WebRTC + DTLS 1.3 
in Chrome and WebRTC + DTLS 1.3 in Firefox. The cause of the issue was a minor 
but interesting incompatibility between (D)TLS 1.2 and (D)TLS 1.3 that doesn't 
seem to have been flagged in RFC 8446 anywhere. Nothing actionable for this 
group, apart from maybe a last minute sentence to add to 8446bis (way too late 
to change how exporters work), but I thought I would pass it along for general 
awareness.

WebRTC uses DTLS-SRTP, which uses export keying material to generate some 
specified number of bytes of data:
https://www.rfc-editor.org/rfc/rfc5764.html#section-4.2

It turns out Firefox exported the maximum key+salt length and then only used a 
prefix of the output, rather than exporting the length as specified in RFC 
5764. Back in 1.2, this was just fine and gave the right output. The requested 
length didn't figure into the derivation. But 1.3 incorporates the requested 
length into the derivation, so now this computes the wrong value.

This means, starting with 1.3, applications must be sure to pass in exactly the 
length specified by the protocol they're implementing. Applications that relied 
on this 1.2 property will silently do the wrong thing when upgrading to 1.3.

David
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt

2025-03-10 Thread Peter C
In ML-KEM, Bob derives b deterministically from m and H(ek).
If Bob tried to reuse b with a different public key, then the
re-encryption check would fail during decapsulation. 

Peter

> -Original Message-
> From: Viktor Dukhovni 
> Sent: 10 March 2025 00:47
> To: tls@ietf.org
> Subject: [TLS] Re: FW: I-D Action: draft-kwiatkowski-tls-ecdhe-mlkem-03.txt
> 
> On Sun, Mar 09, 2025 at 11:17:10PM -, D. J. Bernstein wrote:
> 
> > Viktor Dukhovni writes:
> > > However, you'll be thrilled to learn that it is not possible for a TLS
> > > server to reuse its ML-KEM keyshare when a client uses a fresh ephemeral
> > > ML-KEM keyshare.
> >
> > "Not possible"?
> >
> > In ECDH, or more precisely ElGamal encrypton: Alice sends A = aG; Bob
> > sends B = bG and C = bA+M; Alice recovers M as C-aB.
> >
> > In Kyber, Alice sends G and A = aG+e; Bob sends B = Gb+d and C = Ab+M+c;
> > Alice recovers M by rounding C-aB.
> >
> > Bob can save time by reusing b. The speedup isn't as big as in the ECDH
> > context if Alice chooses fresh G and A, but there's still _some_
> > savings, notably the time to prepare b for multiplication.
> >
> > I'm not saying that this is safe. I'm saying that it's what will happen
> > if Bob is looking for the best speed that interoperates. It can also
> > happen by accident, of course.
> 
> I'd expect such designs to be quite unlikely, because in constrast with
> static DH keys, there is no notion of "ŷ" as a static ML-KEM key.  Also,
> the APIs are not structured to support ŷ as an input to either
> ML-KEM.Encaps(ek), or the derandomised ML-KEM.Encaps_internal(ek, 𝑚).
> 
> One might also hypothetically use a constant "𝑚", compromising the
> derived shared key: (𝐾, 𝑟) ← G(𝑚 ‖ H(ek)).
> 
> I think the concern here is what "plasibly mainstream" implementations
> are likely to do, where some reuse of client ephemeral keys can be
> expected, but reuse of ŷ does not look particularly plausible.
> 
> --
> Viktor.
> 
> ___
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-le...@ietf.org
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org