Encrypted Client Hello (ECH), anteriormente conocido como Encrypted SNI (ESNI), es una extensión del protocolo Transport Layer Security (TLS) 1.3 diseñada para cifrar el mensaje ClientHello. Tradicionalmente, el mensaje ClientHello, que incluye el Server Name Indication (SNI) indicando el nombre de host al que el cliente desea conectarse, se envía en texto claro. ECH resuelve esta vulnerabilidad al cifrar este mensaje inicial, ocultando así el destino del cliente de observadores de red intermedios. Esto se logra mediante un mecanismo de doble clave pública: una clave pública 'outer' para el handshake inicial que permite el cifrado del ClientHello, y una clave 'inner' para el handshake real con el servidor de destino.
La implementación de ECH está en progreso y se está adoptando gradualmente en el ecosistema de internet. Navegadores web como Firefox y Chrome han estado experimentando con ECH, y su soporte se está integrando en versiones estables. Cloudflare es uno de los principales proveedores de CDN que ha liderado la adopción de ECH, ofreciéndolo como parte de sus servicios para mejorar la privacidad de sus clientes. También se está trabajando en la estandarización de ECH a través del IETF, con borradores activos que guían su implementación. Su despliegue requiere coordinación entre clientes (navegadores), servidores (web servers como Nginx, Apache) y proveedores de infraestructura (CDNs, balanceadores de carga).
Para un arquitecto de sistemas, ECH es crucial por varias razones estratégicas. Primero, mejora significativamente la privacidad del usuario al evitar que intermediarios de red conozcan los sitios web visitados, lo cual es vital para aplicaciones que manejan datos sensibles o en regiones con alta vigilancia. Segundo, aumenta la resistencia a la censura, ya que el bloqueo basado en SNI se vuelve ineficaz. Sin embargo, su implementación introduce complejidad: requiere una gestión de claves más sofisticada y una coordinación cuidadosa entre los componentes de la infraestructura. Los arquitectos deben considerar los trade-offs en rendimiento (ligero overhead computacional), compatibilidad con sistemas legacy y la necesidad de actualizar toda la cadena de infraestructura para soportar ECH. La decisión de adoptar ECH debe sopesar la mejora en privacidad y seguridad contra la complejidad operativa y los requisitos de infraestructura.