Skip to content

Commit 8b65760

Browse files
Add split ClientHello and HRR workaround to pqc-to-origin
1 parent d8a58a8 commit 8b65760

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/content/docs/ssl/post-quantum-cryptography/pqc-to-origin.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,16 @@ head: []
88
description: Learn about post-quantum cryptography in connections from Cloudflare to your origin servers.
99
---
1010

11+
As explained in [About PQC](/ssl/post-quantum-cryptography/), Cloudflare has deployed support for hybrid key agreements, which include both the most common key agreement for TLS 1.3, X25519, and the post-quantum secure ML-KEM.
12+
13+
However, while with X25519 the [ClientHello](https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/) almost always fits within one network packet, with ML-KEM the ClientHello has to be split over two network packets.
14+
15+
This poses a question of how the origin servers - as well as other middleboxes (routers, load balancers, etc) - will handle this behavior. Although allowed by the TLS standard, a split ClientHello risks not being handled well due to [protocol ossification](https://en.wikipedia.org/wiki/Protocol_ossification) and implementation bugs. Refer to our [blog post](https://blog.cloudflare.com/post-quantum-to-origins/) for details.
16+
17+
## ClientHello from Cloudflare
18+
19+
To reduce the risk of any issues when connecting to servers that are not ready for hybrid key agreements, Cloudflare leverages HelloRetryRequest. This means that, instead of sending [X25519MLKEM768](/ssl/post-quantum-cryptography/#hybrid-key-agreement) immediately as a keyshare [^1], Cloudflare will only advertise support for it.
20+
21+
If the origin supports ML-KEM, it can use HelloRetryRequest to request it from Cloudflare.
22+
23+
[^1]: When, to remove a round trip, a client makes a guess of what the server supports.

0 commit comments

Comments
 (0)