x448
x448 is the Curve448 key exchange, a stronger sibling of x25519. OpenSSL clients offer it, Chrome-like clients do not.
What it is
x448 (group 30) is elliptic curve Diffie-Hellman over Curve448, described in RFC 7748 and added to TLS by RFC 8422. It works like x25519 but on a larger curve, giving about 224 bits of security instead of about 128, with 56-byte keys instead of 32-byte ones.
The extra margin costs speed: x448 is noticeably slower than x25519, and for ordinary web traffic it offers no practical advantage. It is used mostly where a policy asks for security levels above 128 bits.
Its signature counterpart is ed448, which uses the same curve in Edwards form.
If a TLS 1.3 server picks a group for which the client sent no key share, it must first send a HelloRetryRequest, which costs an extra round trip. RFC 8446 lets a client send key shares for only some of its groups, so a group listed as late as x448 often needs a HelloRetryRequest.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 6 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
Python requests, httpx, Node.js fetch and Guzzle list it 4th, and Debian curl 3rd, all clients built on OpenSSL. Chrome, curl_cffi, curl-impersonate, macOS curl and Go net/http do not offer it. A supported groups list that contains x448 is a typical OpenSSL default and does not come from Chrome.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for x448 in the TLS details.
Run the TLS fingerprint test