Compatibility of X25519Kyber768 ClientHello

Maxim Dounin mdounin at mdounin.ru
Mon Oct 9 18:02:43 UTC 2023


Hello!

On Mon, Oct 09, 2023 at 11:55:15PM +0800, Gentry Deng via nginx wrote:

> I recently encountered a compatibility issue with X25519Kyber768 
> <https://bugs.chromium.org/p/chromium/issues/detail?id=1484074>: I was 
> unable to access the site via X25519Kyber768-enabled Google Chrome on a 
> server with only TLS 1.2 enabled, but not TLS 1.3.
> 
> The Chromium team replied:
> 
> 
> > Regarding TLS 1.2 vs TLS 1.3, a TLS ClientHello is generally good for 
> > all the parameters we support. So though we include TLS 1.3 with Kyber 
> > in there, we also include parameters for TLS 1.3 without Kyber and TLS 
> > 1.2. So if the server and network well behaving correctly, it's 
> > perfectly fine if the server only supports TLS 1.2.
> >
> > I'm able to reproduce the problem. It looks like a bug in 
> > www.paypal.cn's server. They didn't implement TLS 1.2 correctly. 
> > Specifically, they do not correctly handle when the ClientHello comes 
> > in in two reads. Before Kyber, this wasn't very common because 
> > ClientHellos usually fit in a packet. But Kyber makes ClientHellos 
> > larger, so it is possible to get only a partial ClientHello in the 
> > first read, and require a second read to try again. This is something 
> > that any TCP-based application needs to handle; you may not have 
> > gotten the whole message on a given read and need to keep on reading.
> >
> > www.paypal.cn will need to fix their server to correctly handle this case.
> 
> 
> So the Chromium team isn't considering making a change, so I'm wondering 
> how compatible nginx is with this? Or what version is needed to make it 
> error free?

There are no known issues in nginx with ClientHello split between 
packets (with all supported SSL libraries).  And I would be very 
much surprised if there are any, as this is indeed a very basic 
thing TCP-based applications used to handle.

Such issues are more likely to be seen in various packet-based 
filtering solutions, and I would assume this is most likely the 
case for the site in question.

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx mailing list