IPIPCombo
Glossary

Encrypted Client Hello (ECH)

A TLS 1.3 extension that encrypts the SNI so network observers can't see which site you visit.

Encrypted Client Hello (ECH, draft-ietf-tls-esni) is a TLS 1.3 extension that encrypts the SNI field — and the entire ClientHello — using a key published in the DNS HTTPS record. When you connect to a Cloudflare-hosted site, your browser first looks up the ECH public key for the parent domain, then uses it to encrypt the inner ClientHello (which contains the real SNI). The outer ClientHello exposes only an outer SNI (typically a Cloudflare fronting domain); the real destination is hidden inside the encrypted payload.

Current support: Cloudflare 1.1.1.1 (resolver side) and any Cloudflare-fronted site that has published ECH keys (server side). Firefox has supported ECH since version 118 (October 2023, with the network.ECHConfig.enabled pref). Chrome shipped ECH behind a flag in 120 and started enabling it by default in 2024 for users with eligible resolvers. Without a DoH-capable resolver that returns ECH keys, the browser falls back to the unencrypted SNI path.

ECH matters because SNI is the last unencrypted domain in a TLS connection. Once the IP is fetched, the destination server is in the certificate anyway, but every other field is hidden. With ECH, the network can see you're talking to a Cloudflare front but cannot see which of Cloudflare's millions of customers you're reaching. For users behind SNI-based censorship (the GFW blocks specific SNIs, not IPs), ECH removes the discriminator.

Related terms

Encrypted Client Hello (ECH) — Glossary · IPCombo