|
8 | 8 | description: Learn about post-quantum cryptography in connections from Cloudflare to your origin servers. |
9 | 9 | --- |
10 | 10 |
|
| 11 | +import { Example } from "~/components"; |
| 12 | + |
11 | 13 | 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 | 14 |
|
13 | 15 | With X25519, the [ClientHello](https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/) almost always fits within one network packet. However, with the addition of ML-KEM, the ClientHello is typically split across two packets. |
@@ -49,13 +51,28 @@ The possible values are: |
49 | 51 |
|
50 | 52 | ### Origin server |
51 | 53 |
|
52 | | -If you set your Cloudflare zone to `supported`, you can make sure that your origin server will prefer the post-quantum key agreement by using Cloudflare's [fork of BoringSSL](https://github.com/cloudflare/boringssl-pq). |
| 54 | +To make sure that your origin server prefers the post-quantum key agreement: |
53 | 55 |
|
54 | | -If you set your Cloudflare zone to `preferred`, you can use the `bssl` tool of BoringSSL to check that your origin supports the correct [key agreement](/ssl/post-quantum-cryptography/#hybrid-key-agreement). |
| 56 | +1. Use Cloudflare's [fork of BoringSSL](https://github.com/cloudflare/boringssl-pq). |
| 57 | +2. Use the `bssl` tool of BoringSSL: |
55 | 58 |
|
56 | | -```txt |
57 | | -$ bssl client -connect (your server):443 -curves X25519MLKEM768 |
| 59 | +- If you set your Cloudflare zone to `supported`, check that your origin prefers the hybrid key agreement, by using the `-disable-second-keyshare` parameter: |
| 60 | + |
| 61 | +<Example> |
| 62 | +```bash |
| 63 | +$ cd boringssl-pq && cmake -B build && make -C build |
| 64 | +$ build/bssl client -connect (your server):443 -curves X25519:X25519MLKEM768 -disable-second-keyshare |
58 | 65 | ``` |
| 66 | +Verify that the `ECDHE curve` in the handshake output indicates `X25519MLKEM768`. |
| 67 | +</Example> |
59 | 68 |
|
| 69 | +- If you set your Cloudflare zone to `preferred`, check that your origin supports the correct key agreement: |
| 70 | + |
| 71 | +<Example> |
| 72 | +```bash |
| 73 | +$ bssl client -connect (your server):443 -curves X25519MLKEM768 |
| 74 | +``` |
| 75 | +Verify that the `ECDHE curve` in the handshake output indicates `X25519MLKEM768`. |
| 76 | +</Example> |
60 | 77 |
|
61 | 78 | [^1]: When, to remove a round trip, a client makes a guess of what the server supports. |
0 commit comments