Las operadoras saben qué páginas web visitamos

Pese a ser un encabezado digno de »clickbait», no deja de ser cierto que las operadoras con las que accedemos a Internet, interceptan nuestras comunicaciones y, en pleno 2021, son capaces de conocer a qué páginas web accedemos aun cuando lo hagamos empleando HTTPS para proteger nuestras comunicaciones.
El objetivo de esta entrada es mostrar el mecanismo más común que emplean para monitorizarnos y las alterenativas disponibles en corto y largo plazo para preservar nuestra privacidad.

Em…pezamos

La forma más sencilla de monitorizarmos es mediante el registro del DNS, si usamos los servidores de resolución de las operadoras, no hay forma de evitarlo. Hasta que no estén implementadas soluciones como Oblivious DNS over HTTPS ODoH, lo más confiable pasa por emplear servidores en los que quede claro que no te están monitorizando (ólvídate de los de Google o los de Cloudflare entre otros muchos gratuitos) y hacer uso del DoH (DNS over HTTPS) para realizar las consultas.
Genial, vamos a suponer que ya no nos pueden tracear mediante nuestras peticiones de resolución de nombres. Ahora ya podemos navegar tranquilos porque usamos HTTPS para ver sitios web… Pues lamentablemente no estamos solos y nuestra operadora sige pudiendo discriminar qué webs visitamos incluso bloquear las visitas a las mismas.

Server Name Indicator

Entrando al barro de la cuestión técnica, el Server Name Indicator o SNI, es un campo dentro del mensaje ClientHello del protocolo TLS que se envía en claro durante la negociación del cifrado con el servidor web. Inspeccionando este campo, el operador de la red puede monitorizar hacia quíen se establecen las conexiones.

Extensión SNI dentro de la PDU de TLS capturada en el router

Ahora viene la pregunta clave: ¿y por qué se envía en claro?. Pues para poder establecer una conexión segura, primero es necesario conocer el certificado público del servidor web al que queremos conectarnos y segundo es que ese servidor web muy probablemente compartirá IP con múltiples servidores web más. Ello obliga al cliente a indicar al servidor web, a qué sitio web de los que hospeda quiere conectar. El servidor destino devolverá el certificado adecuado a la web en concreto a conectar así como los parámeros negociados para cifrar la comunicación.

Un mismo servidor Web puede hospedar múltiples webs cada una con su propio certificado.

Cifremos el SNI: Encrypted SNI (ESNI)

La pregunta clave que se hicieron en Cloudflare allá por el 2018 fué; ¿Cómo podemos ofuscar el SNI?. La repuesta tiene formato de borrador del IETF.
El obletivo es enviar cifrado el SNI del servidor al que nos queramos conectar, pero para ello debemos disponer del certificado del servidor en cuestión. Esto se soluciona mediante el uso de de un registro TXT en el DNS del tipo _esni.servidor.que.ospeda.las.webs que tras consultarlo nos devuelve la clave pública del servidor donde se encuentra la web que queremos visitar y con la que empleando un esquema de intercambido de claves Diffie-Hellman poder generar una clave simétrica con la que cifrar el SNI (tal como se hace con cualquier web cifrada).

Lo que está por venir: Encrypted Client Hello (ECH)

Con ESNI se cifra la web a la que queremos acceder pero en TLS hay otros parámetros no menos importantes a nivel de confidencialidad. Para extender esta confidencialidad a los parámetros del protocolo TLS y mejorar la debilidades de ESNI, Cloudlare junto con el IETF están trabajando en el protocolo ECH.

El funcionamiento es similar al de ESNI, el protocolo utiliza una clave pública distribuida a través del DNS y obtenida a través del DoH. Una vez obtenida la clave, el cliente cifra todo el CLientHello por lo que los extremos de la conexión son los únicos que tendrán conocimiento de los datos intercambiados.

Colorario

Es un hecho que las operadoras pueden, y seguramente hacen, el detectar a qué sitios web accedemos no sólo mediante sus servicios de resolución de nombre sino a través de las peticiones HTTP/S que efectuamos sus clientes. Para evitarlo han surgido y están evolucionando alternativas como DoH junto a ESNI y ECH que, por el momento, no se encuentran funcionales para la totalidad de webs típicas que visitamos habitualmente. De hecho, según la web Esnicheck, solo un 7% de las webs más visitadas lo soportan (únicamente las webs ospedadas en Cloudflare).

Dicho esto, a día de hoy la manera más simple de poder tener un alto grado de confiabilidad en que nuestra navegación no está siendo monitorizada y registrada por terceros es la de contratar algún servicio de DNS que soporte consultas por HTTPS o TLS (los gratuitos seguramente sí te están monitorizando) además de adquirir un servicio de VPN en el que te ofrexcan expresamente que no registran tus movimientos.

igazmi