The TLS handshake has long exposed one piece of information in plaintext: the Server Name Indication (SNI). This leakage allows network observers to see which domain a client is connecting to, even when the rest of the connection is encrypted. Encrypted ClientHello (ECH) addresses this privacy gap by encrypting the SNI field and other handshake metadata, making it significantly harder for third parties to determine which site a user is visiting.
For domain owners, implementing ECH means taking concrete steps beyond basic HTTPS configuration. This guide walks through what ECH actually does, the technical prerequisites for deployment, current support across hosting providers and content delivery networks, and how to test your implementation.
Understanding ECH and Its Role in TLS Privacy
When a browser initiates a TLS 1.3 connection, the ClientHello message contains the SNI field, which tells the server which hostname the client wants to reach. This field has historically been sent in cleartext, creating a privacy concern: anyone observing network traffic can see which domains users are accessing, even though they cannot decrypt the actual content being transmitted.
ECH encrypts the ClientHello message using a public key that the server advertises through DNS. The client retrieves this key via HTTPS or SVCB records, then uses it to encrypt sensitive handshake parameters including the SNI. The server decrypts the ClientHello and proceeds with the connection as usual. To outside observers, the encrypted portion appears as opaque data, revealing only that a TLS connection is occurring but not which specific domain is being requested.
This approach supersedes the earlier ESNI (Encrypted SNI) draft, which only encrypted the SNI field itself. ECH provides broader protection by encrypting the entire ClientHello, including ALPN negotiation and other extensions that might leak information about the connection.
Technical Prerequisites for ECH Deployment
Deploying ECH requires several foundational components. First, your infrastructure must support TLS 1.3, as ECH builds on the cryptographic improvements in that protocol version. Most modern web servers and load balancers support TLS 1.3, but older configurations may need updates.
Second, you need to publish ECH configuration parameters in DNS using either HTTPS resource records or SVCB (Service Binding) records. These DNS records contain the public keys that clients use to encrypt the ClientHello. The HTTPS record type is specifically designed for HTTPS services, while SVCB provides a more general mechanism for service discovery and configuration.
Your DNS infrastructure must support these record types. When you register a domain, verify that your DNS provider supports HTTPS and SVCB records, as not all providers have implemented these newer record types yet. The ECHConfig parameter within these records specifies the public key and supported cipher suites for ECH encryption. Third, your origin server or CDN must be configured to generate ECH keys, advertise them via DNS, and decrypt incoming encrypted ClientHellos. This requires software support at the TLS termination point, whether that is your origin server, a reverse proxy, or a CDN edge node.
CDN and Hosting Provider Support
ECH adoption varies significantly across hosting providers and content delivery networks. Cloudflare was an early adopter and enables ECH by default for zones using their authoritative DNS. Their implementation handles key generation, DNS record publication, and ClientHello decryption transparently for customers.
Fastly has announced ECH support as part of their TLS 1.3 offerings, though deployment specifics depend on configuration. Other major CDNs are at various stages of implementation, with some offering beta access and others still evaluating deployment timelines.
For self-hosted infrastructure, you need a web server or reverse proxy with ECH support. Recent versions of nginx and Apache can be compiled with ECH-enabled builds of OpenSSL or BoringSSL. However, these implementations often require manual configuration of key management and DNS record updates, making them more operationally complex than managed CDN solutions.
If you're using shared hosting or managed services, check with your provider about ECH availability. Many hosting platforms are still rolling out support, and the feature may only be available on higher-tier plans or through manual configuration. DNS Configuration and HTTPS Records
Publishing ECH configuration requires creating HTTPS or SVCB records in your DNS zone. An HTTPS record for a domain might look like this:
example.com. 300 IN HTTPS 1 . alpn=h3,h2 ech=<base64-encoded-ECHConfig>
The record includes several components: a priority value (1 in this example), a target name (a dot indicates the record applies to the same name), supported ALPN protocols, and the base64-encoded ECHConfig structure containing the public key.
The ECHConfig itself is a binary structure that includes the public key, supported key exchange mechanisms, and cipher suites. Most implementations provide tools to generate these structures. For example, Cloudflare's infrastructure automatically generates and rotates ECH keys, publishing them in DNS without manual intervention.
Key rotation is an important operational consideration. ECH keys should be rotated periodically to limit the impact of key compromise. However, rotation must be coordinated with DNS TTLs to ensure that clients have access to current keys before old ones are retired. A typical rotation strategy might use 24-hour DNS TTLs and overlap periods where both old and new keys are valid.
Fallback Mechanisms and Compatibility
ECH includes a fallback mechanism for scenarios where the encrypted connection cannot be established. If a client sends an encrypted ClientHello but the server cannot decrypt it (perhaps because DNS records are stale or the server configuration has changed), the server can reject the connection and provide an updated ECHConfig in the rejection message.
The client can then retry using the new configuration. This retry mechanism prevents deployment mistakes from causing permanent connection failures, though it does introduce an additional round trip.
Middlebox compatibility presents another consideration. Some network security appliances, firewalls, or corporate proxies attempt to inspect TLS handshakes for security purposes. These devices may fail when they encounter encrypted ClientHellos they cannot parse. Organizations with strict network policies may need to maintain compatibility with older TLS patterns, potentially limiting ECH deployment in certain environments.
Browser support has grown steadily. Firefox has supported ECH since version 118 when connecting to servers that advertise it. Chrome enabled ECH by default starting with version 117. Safari added support in recent versions as well. However, older browsers will continue to use standard ClientHello messages, so servers must support both ECH and traditional handshakes simultaneously.
Testing ECH Implementation
Verifying that ECH is working correctly requires testing at both the DNS and TLS layers. Start by confirming that your HTTPS or SVCB records are published and accessible. Tools like dig can query for these records:
The response should show your HTTPS record with the ECHConfig parameter. If the record is missing or malformed, clients will not attempt ECH encryption.
Next, test the TLS handshake itself. Recent versions of curl support ECH when compiled with appropriate libraries:
curl -v --ech https://example.com
The verbose output will indicate whether ECH was attempted and whether the handshake succeeded. Look for messages about "encrypted client hello" in the handshake logs.
For more detailed analysis, Wireshark can capture and display TLS handshakes. When ECH is active, the ClientHello will show an encrypted_client_hello extension, and the SNI field will either be absent or contain a public name (typically the name of the ECH provider or a generic value). The actual target hostname remains encrypted within the ECH payload.
Online testing tools have also emerged. Cloudflare's ECH checker allows you to test whether a domain properly supports ECH by attempting a connection and reporting on the handshake details. These tools provide a quick way to validate configuration without setting up local testing infrastructure.
Impact on Monitoring and Analytics
ECH affects visibility into TLS connections, which has implications for both network monitoring and troubleshooting. Network operators who rely on SNI inspection for traffic classification or policy enforcement will find that ECH-encrypted connections reveal less information. This is by design, the goal is to prevent eavesdropping, but it does change operational practices.
At the server level, all connection details remain fully accessible. Web server logs continue to show requested hostnames, user agents, and other information because the server decrypts the ClientHello as part of normal processing. ECH only encrypts data in transit on the network; it does not hide information from the endpoints.
For domain owners using SSL certificates across multiple subdomains, ECH can simplify certificate management in some scenarios. Since the encrypted SNI is not visible to network observers, using a wildcard certificate no longer leaks subdomain structure to passive observers. However, certificate transparency logs still record all issued certificates, so ECH does not provide complete subdomain privacy. Load balancers and reverse proxies that route traffic based on SNI need to support ECH to maintain functionality. If your infrastructure uses SNI-based routing, ensure that your load balancer can decrypt ECH before attempting to route connections. Otherwise, requests may fail or be routed incorrectly.
Practical Deployment Considerations
Rolling out ECH in production requires careful planning. Start by enabling ECH in a test environment or on a subset of domains to verify that your infrastructure handles it correctly. Monitor for connection failures or unexpected behavior, particularly from clients on corporate networks or in regions with restrictive internet policies.
Consider your user base and their network environments. If a significant portion of your traffic comes from environments with aggressive TLS inspection, ECH may cause connection failures for those users. In such cases, you might choose to deploy ECH gradually, monitoring adoption rates and failure patterns.
For organizations managing custom email infrastructure or other services beyond HTTPS, note that ECH currently applies primarily to web traffic. Mail servers, DNS servers, and other protocols have their own privacy mechanisms and are not directly affected by ECH deployment on web servers. Documentation and monitoring become more important with ECH. Since the encrypted handshake obscures some diagnostic information from network captures, you will rely more heavily on server-side logs and structured monitoring to troubleshoot connection issues. Ensure your logging infrastructure captures enough detail about TLS handshakes to diagnose ECH-related problems.
The Road Ahead for ECH
ECH adoption will likely accelerate as more CDNs and hosting providers enable it by default. The privacy benefits appeal to both users and service operators, and the technical barriers are decreasing as software support matures. However, universal deployment remains years away, particularly for organizations with complex network security requirements.
Standards development continues as well. The IETF is refining aspects of ECH through real-world deployment feedback, and future versions may address additional edge cases or improve compatibility with middleboxes. The protocol is designed to be extensible, allowing for improvements without requiring complete redesigns.
For domain owners, the immediate decision is whether ECH aligns with your infrastructure capabilities and privacy goals. If you use a CDN or hosting provider with native ECH support, enabling it is often straightforward. For self-hosted infrastructure, the operational complexity is higher but manageable for teams with TLS expertise.
ECH represents a meaningful step forward in protecting connection privacy. While it does not eliminate all metadata leakage, IP addresses and traffic patterns still reveal information, it closes a significant gap that has existed since the introduction of SNI in TLS. As the ecosystem matures and support becomes more widespread, ECH will transition from an advanced feature to a standard expectation for modern web infrastructure.
Domain owners who invest in understanding and deploying ECH now position themselves at the forefront of privacy-preserving technology, demonstrating a commitment to protecting user information even at the protocol level. The technical effort required is non-trivial but worthwhile for organizations that prioritize privacy and want to stay ahead of evolving internet standards.