Tecnologia

Qué es ECH y cómo evita que tu operador pueda bloquearte el acceso a webs

El protocolo HTTPS nació con el objetivo de hacer la navegación a través de Internet más privada y segura, la evolución del protocolo DNS ha ido en la misma dirección, tanto con DNS over TLS (DoT) como también DNS over HTTPS (DoH), ambos nos permiten realizar peticiones DNS de forma totalmente cifrada y privada, para que nadie en medio de la comunicación pueda espiarnos. Cuando hacemos intentamos entrar en una web, el dominio al que queremos llegar se envía en texto plano a través del SNI (Server Name Indication), sin embargo, ECH ha llegado para solucionar este problema y hacer la navegación más segura.

Cloudflare activó a principios de octubre de 2023 la extensión ECH (Encrypted Client Hello) en toda su red, haciendo que la navegación de los usuarios sea mucho más segura y privada, ya que nadie podrá saber a qué webs estamos entrando, algo que antes sí ocurría. Sin embargo, apenas dos semanas después el gigante de Internet ha decidido deshabilitar esta funcionalidad, al menos temporalmente, ya que se han encontrado con muchos problemas inesperados en la navegación de los usuarios. Básicamente los navegadores no podían entrar en todas las webs correctamente, algunas veces sí funcionaban pero otras veces no, y el culpable es la implementación de ECH que han realizado. Hoy en RedesZone os vamos a explicar en qué consiste ECH, cómo activarlo en los navegadores web y cómo comprobar si realmente está o no activado.

Qué es ECH

El protocolo TLS dispone de una extensión llamada SNI (Server Name Indication) que se manda siempre en texto claro para que el servidor web de destino sepa a qué web queremos llegar, ya que lo normal es que el mismo servidor aloje decenas de páginas simultáneamente. Esto supone un verdadero problema para la privacidad porque se puede capturar muy fácilmente, y de hecho, el bloqueo que realizan los operadores actualmente se basa justamente en comprobar el campo SNI del protocolo TLS. Ahora esto se ha solucionado con la extensión de TLS llamada ECH.

La extensión de TLS llamada Encrypted Client Hello (ECH) nos permite cifrar el primer «hola» que realizan los clientes al servidor web, de esta forma, información sensible como el nombre de la web que queremos visitar estará completamente protegido frente a la interceptación por parte de terceros, como los operadores de Internet o cualquier ciberdelincuente que nos esté haciendo un ataque Man in the Middle. El lanzamiento de ECH supone una verdadera revolución en el mundo de Internet, después de HTTPS y de los protocolos para proteger las peticiones y resoluciones de DNS que os hemos mencionado anteriormente.

Los principales navegadores de Internet como Mozilla y Google Chrome, algunos gigantes de CDN como Cloudflare, e incluso la organización de la IETF, han estado desarrollando durante varios años esta extensión de TLS para tener una conexión cifrada punto a punto desde el primer «hola». Hay que tener en cuenta que, el contenido de la navegación web, la autenticación en diferentes webs, cuando introducimos nuestras tarjetas en sitios web de compras, y mucho más, se encuentra totalmente cifrado punto a punto gracias al protocolo TLS. Sin embargo, ECH nos permitirá proteger la identidad de los sitios web que visitamos, haciendo que sea imposible saber a qué web queremos entrar, algo que sí ocurre si no usamos ECH y tenemos el popular SNI.

Cuando un navegador web se conecta a un sitio web, se transmite el sitio en el mensaje inicial y éste no está cifrado, el esquema de comunicación sería el siguiente:

La extensión ECH es capaz de usar una clave pública obtenida a través del sistema DNS para cifrar este primer mensaje entre el navegador web y el sitio web, protegiendo el nombre del sitio de destino para evitar bloqueos y mejorando la privacidad del usuario. En el siguiente esquema se puede ver que este mensaje se encuentra totalmente cifrado:

Si queréis saber más en detalle el funcionamiento de esta extensión de TLS, os recomendamos ver este completo diagrama de mensajes entre el cliente web y el servidor:

Activando esta extensión ECH en los navegadores web y también en los servidores web y CDN, tendremos una mayor privacidad de forma global, impidiendo que terceras personas puedan «espiar» nuestras conexiones. Es muy importante que, no solamente los navegadores web soporten este protocolo, sino también los servidores web y CDN. Ahora mismo hay muy pocas webs con soporte a esta extensión de TLS, de hecho, el gigante Cloudflare lo activó hace un tiempo y lo tuvo que desactivar porque había muchos problemas de navegación por las diferentes webs que están en su CDN, y es que todavía no está del todo «afinado» para desplegarlo de manera masiva. De hecho, Cloudflare tenía la posibilidad de usar ECH de manera individual en las webs que se quisiera, y debido a estos problemas que han encontrado, han deshabilitado esta posibilidad y ni siquiera podemos habilitarlo manualmente.

¿Con ECH los operadores ya no podrán bloquearme webs?

Hace años los operadores bloqueaban las webs a través de los servidores DNS, haciendo que si algún cliente usaba sus servidores DNS no pudieran entrar en determinadas webs. Con la popularización de los servidores DNS de Google y Cloudflare, cada vez más usuarios evadían estas restricciones, a no ser que también los dos gigantes de Internet bloquearan el dominio, algo que no suele ser habitual si solamente se comparten archivos con copyright. Debido a esto, los operadores tuvieran que invertir grandes cantidades de dinero en sistemas para examinar todas las conexiones TLS que hicieran sus clientes, al estar completamente cifradas, solamente pueden ver el campo SNI que es el dominio al que el usuario quiere entrar, entonces lo bloquean directamente devolviendo un error en la conexión.

Ahora con la extensión ECH esto es imposible, ya que toda la conexión hasta el primer «hello» se encuentra totalmente cifrado punto a punto, y los operadores no podrán descifrar esta conexión sin «romper» la conexión TLS, poniendo un certificado digital en medio, lo que provocaría que ese operador estaría espiando todas las conexiones a sus clientes, ya que habrían «levantado» la conexión HTTPS.

También es muy importante usar unos DNS que nos garanticen la seguridad y privacidad, en este caso, tenemos que usar tanto DNS over HTTPS (DoH) que ya lo tenemos integrado en los principales navegadores como Chrome o Firefox, e incluso DNS over TLS que podemos configurar directamente en nuestro router para que los clientes de la red local puedan realizar las peticiones y recibir las resoluciones DNS de manera totalmente privada. Al usar DoH o DoT, los mensajes DNS no podrán ser interceptados ni tampoco modificados al vuelo.

Por supuesto, todos estos protocolos se pueden combinar con las VPN (red privada virtual) para añadir una capa más de privacidad y seguridad, sobre todo porque las VPN nos permiten enmascarar la dirección IP pública del usuario, y cifra todo el tráfico por completo. En estos casos también tiene sentido usar ECH, porque estaremos protegiendo las identidades de los sitios web que visitamos mientras estamos conectado al proveedor de la VPN.

¿Y qué ocurre con los controles parentales?

A nivel doméstico y también profesional, tenemos diferentes tipos de tecnologías para filtrar las webs que se pueden o no visitar a través de los diferentes equipos. Ahora mismo, navegadores como Chrome o Firefox usan DNS over HTTPS para cifrar las solicitudes DNS, por lo que, si tenemos un sistema de DNS en casa como PiHole o AdGuard Home para filtrar estas solicitudes, no podremos bloquear las solicitudes maliciosas o de publicidad. Lo mismo ocurre en el caso de activar ECH, es posible que las empresas no puedan bloquear ciertos dominios si lo usamos.

En estos casos, tanto Mozilla como Google permiten configurar la activación o desactivación de esta extensión de TLS en los navegadores, para permitir o no el uso de esta característica. En el caso de que queramos implementar opciones de exclusión a nivel de red, podemos hacerlo sin problemas.

Cómo activarlo en el navegador Mozilla Firefox

Lo primero que debemos comprobar es que tengamos la versión de Mozilla Firefox 118 o posterior, y tendremos que habilitar el DNS over HTTPS para que nos funcione, de lo contrario, no estará disponible, aunque sí esté activado. Ahora mismo Firefox solamente permite usarlo en el caso de que DoH esté habilitado.

Si entramos en el menú de configuración avanzado de firefox poniendo en la barra de direcciones «about:config» y buscamos la cadena «echconfig» podemos ver que está todo en «true», lo que significa que está habilitado. Además, tenemos el fallback deshabilitado para tener la máxima seguridad.

Para habilitar el DNS over HTTPS si es que no lo tienes ya habilitado, debes irte a la sección de «Herramientas / Ajustes» y en el menú de «Privacidad & Seguridad» podrás verlo abajo del todo. En este menú debes activar la protección predeterminada, aumentada o máxima, para poder usar DoH y que ECH esté disponible.

Una vez que hayamos activado el DNS over HTTPS, cuando entremos en alguna web que soporta esta funcionalidad lo usaremos. No obstante, hoy en día ECH todavía está algo «verde», así que podrías tener problemas de conectividad.

Activarlo en el navegador Chrome

Si usas el navegador de Google Chrome y quieres usar esta extensión de TLS para proteger tu privacidad, podrás usarla a partir de la versión 117 del navegador. Lo normal es que siempre tengas el navegador actualizado a la última versión, por lo que no deberías tener problemas, pero revisa la versión desde el menú de tres puntos verticales, «Ayuda / Información de Google Chrome» y os saldrá algo como esto:

Una vez que nos hayamos asegurado de la versión, en la barra de direcciones ponemos lo siguiente para que nos lleve directamente a la configuración: «chrome://flags/#encrypted-client-hello» y veremos el siguiente menú:

En la primera opción tendremos que pasar de «Default» a «Enable«, y pinchar en el botón de «Relaunch» para aplicar los cambios correctamente. La configuración quedaría de la siguiente forma:

En este caso también es obligatorio que tengamos habilitado y funcionando el DNS over HTTPS. Nos vamos a la sección de «Configuración / Privacidad y seguridad» o directamente entra en la siguiente URL desde el navegador: «chrome://settings/security«. Una vez dentro, debes habilitar el DNS seguro y seleccionar Cloudflare o cualquier otro proveedor de los incorporados en el navegador:

Una vez que lo hayamos hecho, ya tendremos funcionando tanto DoH como también ECH para la navegación web, aunque lógicamente solo funcionará en los servidores web que lo soporten.

Comprueba si tienes ECH activado

Una vez que hayamos activado ECH en los navegadores web, es fundamental comprobar que efectivamente está habilitado para no tener problemas de privacidad. Actualmente existen diferentes herramientas online para comprobarlo, nuestra favorita es la que ofrece Cloudflare de forma gratuita. Puedes acceder directamente a este enlace y hacer la prueba, tarda un par de segundos en comprobar si lo tenemos habilitado y funcionando:

Nos debería salir algo como esto, indicándonos que tenemos DNS seguro, DNSSEC, TLS 1.3 y también «Secure SNI» que es ECH:

Cloudflare también nos permite acceder a una herramienta online en modo texto, esto es perfecto para comprobarlo sin necesidad de meternos en una página web en concreto, e incluso para automatizar scripts.

Nos debería salir algo como esto:

En la sección de «SNI» pone «Encrypted» por lo que estamos usando esta extensión de TLS 1.3 sin problemas.

Finalmente, otra web que podemos usar es la siguiente:

En este caso, nos debería salir algo como esto:

La última opción de «SSL_ECH_STATUS» nos debería salir como «Sucess».

Como podéis ver, es muy fácil habilitar esta funcionalidad tan importante para proteger nuestra privacidad, y es muy sencillo comprobar que funciona correctamente. Un aspecto muy importante, es que podría llegar el caso en el que una web no cargue correctamente por tener esta función habilitada, de hecho, Cloudflare ha decidido deshabilitarlo en todas las webs de forma predeterminada porque detectaron muchos problemas de navegación.

Conclusiones

En los últimos años se ha avanzado mucho en la seguridad y privacidad mientras navegamos por Internet, por ejemplo, actualmente disponemos del protocolo TLS 1.3 que no solamente nos proporciona una gran seguridad, sino una muy buena velocidad en las conexiones que se establecen. Este protocolo TLS 1.3 en comparación con TLS 1.2 es mucho más rápido, perfecto para tener una navegación web más fluida. También se ha mejorado la velocidad de la navegación gracias al protocolo QUIC, un protocolo que ahora mismo es soportado por miles de webs, y nos permitirá tener una gran seguridad y es realmente rápido. Por supuesto, DNS over HTTPS y DNS over TLS también nos garantizan que las solicitudes y respuestas de DNS estén completamente cifradas, algo fundamental porque si no nuestras conexiones no serían totalmente cifradas.

El último «ingrediente» incorporado a todas las conexiones ha sido ECH, una extensión de TLS que nos permitirá no enviar en texto plano el SNI del dominio que queremos visitar. Esta era la última forma que tenían los operadores o ciberdelincuentes para saber qué webs estamos visitando, ahora lo tendrán aún más difícil poder hacerlo. No obstante, aún falta mucho para que veamos cómo todos los servidores web lo soportan, ya que pueden aparecer problemas inesperados al usarlo ya que es una tecnología relativamente nueva.

El artículo Qué es ECH y cómo evita que tu operador pueda bloquearte el acceso a webs se publicó en RedesZone.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.