ECH Checker

Inspect Encrypted Client Hello deployment

Input

Check whether a domain publishes an ECHConfigList in its HTTPS resource record. Decodes the binary ECH configuration (version, KEM, cipher suites, public key, public_name) so you can audit TLS Client Hello encryption deployment on any host.

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

  1. Enter the domain
    Just example.com. No protocol prefix, no port. The tool resolves the apex or subdomain you give it.
  2. Hit Check ECH Deployment
    A DNS HTTPS RR (TYPE65) query runs from our server against 1.1.1.1. The raw resource record is returned alongside the parsed ECHConfigList.
  3. Read the report
    Status 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).
  4. Cross-check the wire
    Open 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.