BAD SKY.NET

TLS Supported Groups: Key Exchange Curves and Post-Quantum Hybrids

Supported groups, sent in the supported_groups extension, are the key exchange algorithms a client can use to agree on a shared secret with the server. The name comes from the mathematical groups behind them; the extension was originally called elliptic_curves.

Today the list usually contains elliptic curves such as x25519, secp256r1 (P-256) and secp384r1, sometimes finite-field Diffie-Hellman groups such as ffdhe2048, and, increasingly, post-quantum hybrids. X25519MLKEM768 combines X25519 with the ML-KEM-768 algorithm, so connections stay safe even against a future quantum computer.

In TLS 1.3 the client also guesses which group the server will choose and sends a public key for it in the key_share extension, which saves a round trip. Clients therefore put their favorite group first.

The list and its order come from the TLS library, so they help identify the client. JA3 includes the groups in the order sent. The post-quantum hybrid is a recent addition: browsers and current OpenSSL and Go releases send it, while older builds do not, which also helps date a client.

NameCodeWhat it doesStatusSent by measured clients
ffdhe2048256ffdhe2048 is a named 2048-bit finite-field Diffie-Hellman group from RFC 7919. Libraries offer it, Chrome does not.legacy7 of 12
ffdhe3072257ffdhe3072 is a named 3072-bit finite-field Diffie-Hellman group from RFC 7919, offered by libraries after ffdhe2048.legacy7 of 12
secp256r123secp256r1, also called NIST P-256, is the most widely supported elliptic curve in TLS. Every measured client offers it.recommended12 of 12
secp384r124secp384r1, also called NIST P-384, is a larger NIST elliptic curve for TLS key exchange. Every measured client offers it.recommended12 of 12
secp521r125secp521r1 (NIST P-521) is the largest NIST curve in TLS. Libraries and the Firefox profile of curl-impersonate offer it, Chrome does not.recommended9 of 12
x2551929x25519 is the Curve25519 key exchange, the fast default elliptic curve of modern TLS. Every measured client offers it.recommended12 of 12
X25519MLKEM7684588X25519MLKEM768 is a hybrid post-quantum key exchange: classic X25519 plus ML-KEM-768. Chrome and many libraries offer it first.recommended8 of 12
x44830x448 is the Curve448 key exchange, a stronger sibling of x25519. OpenSSL clients offer it, Chrome-like clients do not.recommended6 of 12