L’opérateur du serveur publie une configuration ECH (une clé publique HPKE, un nom public et des paramètres) dans le paramètre ech des enregistrements DNS HTTPS (RFC 9848, qui s’appuie sur la RFC 9460). Le client envoie un ClientHello externe adressé au nom public (par exemple l’hôte générique d’un CDN), qui transporte le message interne chiffré dans l’extension 0xfe0d ; le serveur le déchiffre et poursuit avec les paramètres internes. Si les clés sont périmées, le serveur en renvoie de nouvelles et le client réessaie.
ECH ne masque quelque chose que lorsque de nombreux sites partagent un même fournisseur et que la résolution DNS elle-même est protégée (DoH ou DoT) ; sinon, la requête de l’enregistrement HTTPS révèle le nom. Cloudflare l’a activé à grande échelle en 2023 ; Firefox l’utilise par défaut depuis la version 119 (avec DNS over HTTPS), Chrome a commencé à le déployer avec la version 117, et nginx et d’autres serveurs l’ont pris en charge plus tard. Les réseaux qui s’appuient sur le SNI pour filtrer le trafic perdent cette visibilité, ce qui explique que certaines entreprises le bloquent.