WEB
ECH Checker
Inspect Encrypted Client Hello deployment
Input
Terminal
Console ready. Execute a command to see output...
About ECH Checker
Verify SNI Encryption on the Wire
Encrypted Client Hello (ECH) hides the Server Name Indication during the TLS handshake. Without ECH every TLS 1.3 connection leaks the destination hostname in plaintext, regardless of HTTPS or DoH. ECH wraps the inner Client Hello with HPKE so on-path observers see only the cover (public_name) of the host.
What we read
This tool runs a DNS HTTPS resource record lookup (RFC 9460) for the input domain, extracts the ech= SvcParam, then parses the ECHConfigList per RFC 9849 / draft-13.
For each ECHConfig in the list the tool surfaces:
- Version — currently 0xfe0d (draft-13, the version every shipping browser implements)
- config_id — short identifier the client echoes during the handshake
- KEM — HPKE Key Encapsulation Mechanism (DHKEM X25519 by default on Cloudflare)
- Public key — server's HPKE public key, as raw hex
- Cipher suites — KDF and AEAD combinations the server accepts
- maximum_name_length — padding hint for inner Client Hello length leakage
- public_name — cover hostname that appears unencrypted on the wire
- Extensions — any future ECHConfig extensions present
How to use ECH Checker
- Enter the domainJust
example.com. No protocol prefix, no port. The tool resolves the apex or subdomain you give it. - Hit Check ECH DeploymentA DNS HTTPS RR (TYPE65) query runs from our server against 1.1.1.1. The raw resource record is returned alongside the parsed ECHConfigList.
- Read the reportStatus pill tells you deployed, RR present without ECH, or no RR at all. Each ECHConfig block shows the HPKE parameters and public_name (the cover hostname that observers actually see).
- Cross-check the wireOpen Firefox 119+ with DoH on, visit the domain, and inspect the TLS handshake in DevTools or Wireshark. Inner Client Hello fields should be encrypted. Cross-reference with SSL Checker for the certificate that ECH protects and DNS Lookup to confirm the HTTPS RR.
Frequently Asked Questions
- It queries the HTTPS resource record (DNS type 65) for the domain, looks for an ech= SvcParam, base64-decodes it, then parses the binary ECHConfigList per RFC 9849. You get one block per ECHConfig in the list with version, HPKE KEM, public key, cipher suites, public_name, and any extensions.