DNS significa “Domain Name System” y es un servicio que usa tu navegador (y otras apps) para encontrar las direcciones IP de un servicio. Es una enorme “lista de contactos” (una guía telefónica para las personas mayores) que funciona así: le preguntas por un nombre y te devuelve el número al que llamar. Salvo que te devuelve una IP en su lugar.
Cada vez que tu navegador quiere acceder a un servicio concreto como Google a través de www.google.com, tu navegador (Chrome o Firefox) consultará un servicio DNS para encontrar las direcciones IP de los servidores web de Google.
Aquí tienes un vídeo que explica el DNS de forma visual por si ya te has perdido: https://www.youtube.com/watch?v=vrxwXXytEuI Invidious
Normalmente, el servicio DNS lo proporciona tu proveedor de internet y lo configura automáticamente la red a la que te conectas. Este servicio DNS también podría estar sujeto a normativas de conservación de datos o simplemente guardar registros por otras razones (recopilación de datos con fines publicitarios, por ejemplo). Por lo tanto, este proveedor de internet será capaz de contar todo lo que hiciste online con solo mirar esos registros, que a su vez pueden entregarse a un adversario. Convenientemente, esta es también la forma más fácil para muchos adversarios de aplicar censura o control parental mediante el bloqueo por DNS. Los servidores DNS proporcionados te darán una dirección distinta (de la real) para algunos sitios web (como redirigir thepiratebay.org a algún sitio web gubernamental). Ese tipo de bloqueo se aplica ampliamente en todo el mundo para determinados sitios.
Usar un servicio DNS privado o tu propio servicio DNS mitigaría estos problemas, pero el otro problema es que la mayoría de esas peticiones DNS todavía se envían por defecto en texto claro (sin cifrar) a través de la red. Incluso si navegas por PornHub en una ventana de incógnito, usando HTTPS y usando un servicio DNS privado, es sumamente probable que tu navegador envíe una petición DNS sin cifrar en texto claro a algún servidor DNS preguntando básicamente “¿Cuál es la dirección IP de www.pornhub.com?”.
Como no está cifrada, tu proveedor de internet u otro adversario podría interceptar tu petición (mediante un ataque de intermediario o Man-in-the-middle) y sabrá y posiblemente registrará qué estaba buscando tu IP. El mismo proveedor de internet también puede manipular las respuestas DNS incluso si usas un DNS privado. Lo que deja inútil el uso de un servicio DNS privado.
Como extra, muchos dispositivos y apps usarán servidores DNS codificados de forma fija que se saltan cualquier ajuste del sistema que pudieras configurar. Es el caso, por ejemplo, de la mayoría (70 %) de los Smart TV y de una gran parte (46 %) de las videoconsolas. Para estos dispositivos, tendrás que forzarlos a dejar de usar su servicio DNS codificado de forma fija, lo que podría hacer que dejen de funcionar correctamente.
Una solución a esto es usar DNS cifrado mediante DoH (DNS over HTTPS), DoT (DNS over TLS) con un servidor DNS privado (puede autoalojarse localmente con una solución como pi-hole, alojarse de forma remota con una solución como nextdns.io o usando las soluciones que proporciona tu proveedor de VPN o la red Tor). Esto debería impedir que tu proveedor de internet o algún intermediario espíe tus peticiones … salvo que quizá no lo haga.
Pequeña aclaración intermedia: Esta guía no respalda ni recomienda necesariamente los servicios de Cloudflare aunque se mencione varias veces en esta sección para la comprensión técnica.
Lamentablemente, el protocolo TLS usado en la mayoría de las conexiones HTTPS en la mayoría de los navegadores (Chrome/Brave entre ellos) volverá a filtrar el nombre de dominio a través de los handshakes SNI (esto se puede comprobar aquí, en Cloudflare: https://www.cloudflare.com/ssl/encrypted-sni/ Archive.org ). En el momento de escribir esta guía, solo los navegadores basados en Firefox admiten ECH (Encrypted Client Hello antes conocido como eSNI**) en algunos sitios web, lo que cifrará todo de extremo a extremo (además de usar un DNS privado seguro over TLS/HTTPS) y te permitirá ocultar tus peticiones DNS a un tercero****.** Y esta opción tampoco está activada por defecto, así que tendrás que activarla tú mismo.
Además de la compatibilidad limitada de los navegadores, en esta fase solo los servicios web y las CDN que están detrás de la CDN de Cloudflare admiten ECH/eSNI. Esto significa que ECH y eSNI no son compatibles (en el momento de escribir esta guía) con la mayoría de las plataformas más populares, como:
- Amazon (incluyendo AWS, Twitch …)
- Microsoft (incluyendo Azure, OneDrive, Outlook, Office 365 …)
- Google (incluyendo Gmail, Google Cloud …)
- Apple (incluyendo iCloud, iMessage …)
- YouTube
- GitHub
Algunos países como Rusia y China podrían (sin verificar, a pesar de los artículos) bloquear los handshakes ECH/eSNI a nivel de red para permitir el espionaje e impedir eludir la censura. Es decir, no podrás establecer una conexión HTTPS con un servicio si no les permites ver cuál era.
Los problemas no acaban aquí. Parte de la validación TLS de HTTPS se llama OCSP, y este protocolo usado por los navegadores basados en Firefox filtrará metadatos en forma del número de serie del certificado del sitio web que visitas. Un adversario puede entonces averiguar fácilmente qué sitio web visitas al hacer coincidir el número del certificado. Este problema puede mitigarse usando OCSP stapling. Lamentablemente, esto está activado pero no forzado por defecto en Firefox/Tor Browser. Pero el sitio web que visitas también debe admitirlo, y no todos lo hacen. Los navegadores basados en Chromium, por otro lado, usan un sistema distinto llamado CRLSets, que podría decirse que es mejor.
Aquí tienes una lista de cómo se comportan varios navegadores con OCSP: https://www.ssl.com/blogs/how-do-browsers-handle-revoked-ssl-tls-certificates/ Archive.org
Aquí tienes una ilustración del problema con el que podrías encontrarte en los navegadores basados en Firefox:

Por último, incluso si usas un servidor DNS cifrado personalizado (DoH o DoT) con compatibilidad ECH/eSNI y OCSP stapling, podría seguir sin ser suficiente, ya que los estudios de análisis de tráfico han demostrado que todavía es posible identificar por fingerprinting y bloquear de forma fiable las peticiones no deseadas. Solo DNS over Tor fue capaz de mostrar una privacidad de DNS eficaz en estudios recientes, pero incluso eso puede seguir siendo vencido por otros medios (consulta Tu tráfico Tor/VPN anonimizado).
También se podría decidir usar un Tor Hidden DNS Service u ODoH (Oblivious DNS over HTTPS) para aumentar aún más la privacidad/anonimato pero, lamentablemente, hasta donde yo sé, estos métodos solo los ofrece Cloudflare en el momento de escribir esto (https://blog.cloudflare.com/welcome-hidden-resolver/ Archive.org, https://blog.cloudflare.com/oblivious-dns/ Archive.org). Son opciones técnicas viables y razonablemente seguras, pero también hay una elección moral sobre si quieres usar Cloudflare o no (a pesar del riesgo señalado por algunos investigadores).
Por último, también existe esta nueva posibilidad llamada DoHoT, que significa DNS over HTTPS over Tor, que también podría aumentar aún más tu privacidad/anonimato y que podrías considerar si tienes más habilidad con Linux. Consulta https://github.com/alecmuffett/dohot Archive.org. Esta guía no te ayudará con esta en esta fase, pero podría llegar pronto.
Aquí tienes una ilustración que muestra el estado actual de la privacidad de DNS y HTTPS según mis conocimientos actuales.

En cuanto a tu uso diario normal (no sensible), recuerda que hasta ahora solo los navegadores basados en Firefox admiten ECH (antes eSNI) y que, en esta fase, solo es útil con sitios web alojados detrás de la CDN de Cloudflare. Si prefieres una versión basada en Chrome (lo cual es comprensible para algunos por ciertas funciones mejor integradas, como la traducción sobre la marcha), entonces recomendaría el uso de Brave en su lugar, que admite todas las extensiones de Chrome y ofrece mucha mejor privacidad que Chrome.
Pero la historia no termina ahí, ¿verdad? Ahora, porque después de todo esto, incluso si cifras tu DNS y usas todas las mitigaciones posibles, las simples peticiones IP a cualquier servidor probablemente permitirán a un adversario detectar de todos modos qué sitio estás visitando. Y esto se debe sencillamente a que la mayoría de los sitios web tienen IPs únicas asociadas a ellos, como se explica aquí: https://blog.apnic.net/2019/08/23/what-can-you-learn-from-an-ip-address/ Archive.org. Esto significa que un adversario puede crear un conjunto de datos de sitios web conocidos, por ejemplo, incluyendo sus IPs, y luego cotejar ese conjunto de datos con la IP por la que preguntas. En la mayoría de los casos, esto dará como resultado una suposición correcta del sitio web que estás visitando. Esto significa que, a pesar del OCSP stapling, a pesar de ECH/eSNI, a pesar de usar DNS cifrado … un adversario aún puede adivinar de todos modos el sitio web que estás visitando.
Por lo tanto, para mitigar todos estos problemas (tanto como sea posible y lo mejor que podamos), esta guía recomendará más adelante dos soluciones: usar Tor y una solución virtualizada (consulta Virtualización) y multicapa de VPN over Tor (DNS over VPN over Tor o DNS over TOR). También se explicarán otras opciones (Tor over VPN, solo VPN, sin Tor/VPN) pero son menos recomendables.
Fuente: The Hitchhiker’s Guide to Online Anonymity, escrito por AnonyPla © CC BY-NC 4.0