On Tue, Oct 10, 2023 at 10:01 AM David Benjamin <david...@chromium.org>
wrote:

> On Tue, Oct 10, 2023 at 12:42 PM Rob Sayre <say...@gmail.com> wrote:
>
>> On Tue, Oct 10, 2023 at 8:28 AM David Benjamin <david...@chromium.org>
>> wrote:
>>
>>> On Tue, Oct 10, 2023 at 6:06 AM Dennis Jackson <ietf=
>>> 40dennis-jackson...@dmarc.ietf.org> wrote:
>>>
>>>> To make sure I've understood correctly, we're trying to solve three
>>>> problems:
>>>>
>>>>    - Some servers don't tolerate large Client Hellos
>>>>    - Some servers don't implement HelloRetryRequest correctly
>>>>    - Some servers prefer fewer round trips and accept an offered key
>>>>    share even if both client and server would prefer a different group (for
>>>>    which no key share was sent). This is especially troubling if we have to
>>>>    migrate between PQ KEMs since we can't afford multiple key shares in the
>>>>    ClientHello.
>>>>
>>>>
>>> First and third, yeah. I was mostly focused on the third one, but yeah
>>> we'll also need this if the first can't be cleared. (I hope we can just
>>> clear through it though. Even if we solve the downgrade problem,
>>> compatibility hacks for the large ClientHello will be bad for the ecosystem
>>> and very hard to remove later. But if we need it, we need it.)
>>>
>>
>> The impression I got in reading the various PQ experiment reports (and I
>> think David Benjamin did some of them...) was that the issues with large
>> Client Hellos *will* arise with PQ Client Hello messages. So... if a server
>> adds support for PQ, they will have to fix any underlying issues with large
>> Client Hello messages as a prerequisite, right? Can we cross the first
>> point off the list here? I'm a little confused about that point.
>>
>
> No, issues with large ClientHellos cannot be crossed off so simply. Keep
> in mind we cannot update the internet all at once. The client does not have
> a priori knowledge that the server implements PQ, but it needs to construct
> a ClientHello. It can choose to either:
>
> a) Send a ClientHello with Kyber in key_shares
> b) Send a ClientHello without Kyber in key_shares
>
> If it picks (a), any *non-Kyber-supporting* servers that break with large
> ClientHellos will break. If there are sufficiently few of these, we can
> maybe clear through it, but it is a compatibility risk we need to deal
> with. But the important thing is that we are precisely concerned with the
> non-Kyber servers here. It's not as simple as saying you fix that when you
> deploy Kyber.
>

OK, I see. It's worse than a compatibility risk, though, isn't it? If you
just let them break in case (a), and then maybe try again with (b), that
opens up a downgrade attack. Intermediaries can observe the size of the
Client Hello and make it break.

I understand it now, thanks for taking the time to explain.

thanks,
Rob
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to