Encrypted Client Hello (ECH) is one of the most significant recent privacy improvements to how HTTPS works. Firefox 118+ supports it. Here's what it does and why it matters.
The Problem ECH Solves
When you connect to a website over HTTPS, the TLS handshake reveals more than you might think. Specifically, the Server Name Indication (SNI) — the hostname you're connecting to — is sent in plaintext during the initial handshake, before encryption kicks in.
This means:
- Your ISP can see which websites you're visiting (even with HTTPS), not just the IP addresses
- Network monitors and firewalls can see and potentially block specific domains
- This happens even when using DNS over HTTPS (which only encrypts the DNS lookup, not the SNI)
What ECH Does
ECH encrypts the Client Hello message, which contains SNI and other information, using a public key obtained from the DNS server (stored in an HTTPS DNS record).
Result:
- The hostname you're connecting to is encrypted from passive network observers
- ISPs, network monitors, and other middleboxes see only that you're connecting to an IP
- The actual hostname is only visible to the authoritative server (and anyone with access to its private key)
Browser + Server + DNS: All Must Support ECH
ECH requires coordination between:
- Browser (Firefox 118+ supports it)
- Server (must publish an ECH key in DNS and handle encrypted Client Hellos)
-
DNS resolver (must support HTTPS records /
SVCBDNS resource records)
Currently (as of late 2024), Cloudflare-hosted sites are the primary ECH supporters. If you visit cloudflare.com or sites using Cloudflare's CDN, you're likely getting ECH.
Enabling ECH in Firefox
ECH is enabled by default in Firefox 118+ when using a compatible DoH resolver.
Check if ECH is working:
- Visit
cloudflare.com/cdn-cgi/trace/ - Look for
sni=encrypted
If it shows sni=plaintext, ECH is either not working or not supported for that connection.
about:config check:
-
network.dns.echconfig.enabled— should be true -
network.dns.http3_echconfig.enabled— ECH for HTTP/3 connections
ECH + DNS over HTTPS
ECH works best with DoH. If you're using your ISP's DNS resolver:
- The DNS lookup for ECH keys goes through the ISP's resolver, which sees your query
- The ISP still knows which domain you're looking up (before ECH encryption starts)
With DoH + ECH:
- DNS query for ECH keys is encrypted (ISP can't see domain)
- TLS Client Hello is encrypted (ISP can't see SNI)
- Combined: ISP sees only the IP address
This is why the combination of DoH + ECH is significant — they address two different observation points.
Who Benefits Most from ECH
VPN users: Even with a VPN, if the VPN logs traffic, they can see SNI. ECH means even VPN providers see only IPs.
Users in censored networks: If a firewall blocks sites by SNI, ECH prevents that blocking mechanism.
Privacy-focused users: Reduces passive traffic analysis by ISPs, employers, or anyone monitoring network traffic.
ECH Limitations
Not universal yet: Most of the web doesn't support ECH. Cloudflare sites do; other CDNs are in various stages of adoption.
GREASE: Firefox sends fake ECH (GREASE — Generate Random Extensions And Sustain Extensibility) even to servers that don't support it. This ensures middleboxes that block ECH don't break the non-ECH future internet.
Outer vs Inner Hello: Even with ECH, a "shared" outer SNI is sent. Cloudflare uses cloudflare-ech.com as the shared outer SNI for all ECH connections — it reveals you're connecting to a Cloudflare site but not which specific site.
How to Check If a Site Supports ECH
# Check if a domain has ECH config in DNS
dig +short @1.1.1.1 cloudflare.com HTTPS
# Look for 'ech=' in the output
Or use: https://www.cloudflare.com/ssl/encrypted-sni/ (Cloudflare's checker tool).
Relationship to HTTP/3
ECH is independent of HTTP/3 but both have overlapping privacy benefits. HTTP/3 (QUIC) encrypts more of the handshake by default, and QUIC + ECH together provide strong metadata privacy.
Firefox supports HTTP/3 with QUIC and ECH. Modern connections to Cloudflare sites from Firefox should use all three.
ECH is one of those "the infrastructure is building toward this" features where the benefit will increase as more servers adopt it. For now, Cloudflare coverage is substantial (a large fraction of major websites use Cloudflare). Firefox's support means you're getting ECH when it's available without any configuration.
Top comments (0)