Archivetls
SNI Leaks Every Domain You Visit
Encrypted Client Hello closes the last plaintext metadata hole in TLS — where it is deployed.
- Published
- Reading time
- 1 min read
The TLS ClientHello carries the server name in plaintext, because the server needs it to pick a certificate. Anyone on-path sees which site you are visiting, even when the content is encrypted.
ECH in one paragraph
The client fetches a public key via DNS HTTPS records, encrypts the inner ClientHello (including the real SNI) to that key, and sends an outer ClientHello with a cover name. The server decrypts, completes the handshake, and the outer name never reveals the target.
What still leaks
- DNS queries, unless DoH/DoT is used (and even then, resolver metadata).
- IP addresses and traffic patterns.
- The cover name must be a valid, co-hosted domain, which narrows deployment.
Practical stance
ECH is deployed by major CDNs and browsers, but it is not universal. For high-risk users, pair it with encrypted DNS and a network that does not profile destinations. For most apps, the bigger privacy win is removing third-party trackers.
Takeaway: TLS hides content, not metadata. ECH fixes one metadata channel; it does not make traffic anonymous.