Ir al contenidoHisnLabs
← DNS: la libreta de direcciones de Internet

Lección 3 de 4 · 7 min

DNS cifrado: DoH y DoT

Dos estándares envuelven las búsquedas DNS en cifrado. Qué oculta en realidad eso, qué sigue sin ocultar, y cómo lo soporta macOS.

La lección anterior describió una búsqueda DNS normal como una postal: legible por cualquiera que la maneje en el camino. Existen dos estándares del IETF para meter esa postal en un sobre: DNS sobre TLS (DoT, RFC 7858) y DNS sobre HTTPS (DoH, RFC 8484). Los dos cifran la misma búsqueda; se diferencian sobre todo en cómo la transportan.

DNS sobre TLS

El RFC 7858 declara su objetivo directamente: “el cifrado que da TLS elimina las oportunidades de espiar y manipular en el camino las consultas DNS”, atendiendo el hecho de que “casi todas las consultas DNS se mandan sin cifrar, lo que las hace vulnerables a que un atacante las espíe.” DoT usa su propio puerto dedicado, el 853, en vez del puerto habitual 53. El RFC explica por qué: “esta recomendación de no usar el puerto 53 para DNS sobre TLS busca evitar complicaciones al elegir usar o no TLS y reducir el riesgo de ataques de downgrade.”

DNS sobre HTTPS

El RFC 8484 toma un camino distinto: “cada par de consulta-respuesta DNS se convierte en un intercambio HTTP”, transportado por el mismo puerto 443 que usa el tráfico HTTPS normal. El RFC señala que esto tiene un beneficio extra: “el puerto 443 predeterminado de HTTPS y la posibilidad de mezclar el tráfico DoH con otro tráfico HTTPS en la misma conexión pueden disuadir a dispositivos sin privilegios en el camino de interferir con las operaciones de DNS”, porque una búsqueda es más difícil de aislar y bloquear cuando parece cualquier otra solicitud web.

Fuente: Cloudflare Learning, DNS over TLS vs. DNS over HTTPS.
DNS sobre TLS (DoT)DNS sobre HTTPS (DoH)
Puerto853, dedicado a DoT443, compartido con el tráfico HTTPS normal
Visible en la red comoSu propio tráfico distinto (fácil de detectar y, si una red lo decide, de bloquear)Mezclado con la navegación web normal

Qué oculta el cifrado, y qué sigue sin ocultar

Los dos estándares evitan que un operador de red o alguien que espíe el Wi-Fi lea tus búsquedas en tránsito. Ninguno las oculta del resolvedor al que se las mandaste. El RFC 8484 es explícito en que DoH no cambia lo que el propio servidor puede ver: señala que “diversos transportes de consultas y respuestas DNS sí dan datos que se pueden usar para correlacionar solicitudes”, y que mecanismos web ordinarios como las direcciones IP del cliente, las cookies y la información de sesión TLS hacen que “no se sepa que DoH introduzca preocupaciones nuevas más allá de las asociadas con HTTPS” en el extremo del servidor. El RFC 7858 señala de forma parecida que DoT “no atiende otros problemas de seguridad del DNS” y que “incluso con mensajes cifrados, una parte bien posicionada puede llegar a deducir ciertos detalles a partir de un análisis de los tiempos y tamaños de los mensajes.” En resumen: el DNS cifrado traslada quién ve tus búsquedas de vuelta al operador del resolvedor que elegiste, no quita la visibilidad por completo.

Hay una segunda brecha que vale la pena conocer. Cifrar la búsqueda DNS no oculta por sí solo a qué sitio te conectas después: el saludo TLS que sigue normalmente incluye el nombre de host a la vista. Como lo dice la explicación de Cloudflare sobre la Indicación de Nombre de Servidor (SNI), “el SNI incluye el nombre de host en el mensaje Client Hello, o el primerísimo paso de un saludo TLS” — mandado antes de que se establezca el cifrado. Una extensión llamada SNI Cifrado (ESNI), explica la misma fuente, “se suma a la extensión SNI cifrando la parte SNI del Client Hello”, lo que “evita que cualquiera que esté espiando entre el cliente y el servidor pueda ver qué certificado está pidiendo el cliente.” El soporte para ocultar el SNI todavía depende de que tanto el navegador como el sitio estén de acuerdo en usarlo, y todavía no es así como funciona cada conexión.

Cómo lo soporta macOS

Apple documenta una configuración de Ajustes de DNS para Mac, iPhone y iPad que hace justo esto: le permite a un dispositivo “dirigir las consultas DNS de un dispositivo a través de un servidor DNS cifrado usando DNS sobre HTTPS o DNS sobre TLS.” Se entrega como un perfil de configuración, que puede restringir el resolvedor cifrado a dominios específicos mediante “dominios de coincidencia complementarios”, o aplicarse solo en ciertas redes usando “reglas a demanda” que pueden coincidir con cosas como el SSID de la red.

Lo esencial

  • DoT (RFC 7858) cifra el DNS con TLS en un puerto dedicado, el 853; DoH (RFC 8484) lo cifra y lo transporta por el puerto habitual de HTTPS, el 443, mezclándose con otro tráfico web.
  • Los dos evitan que quien espía en la ruta de red lea tus búsquedas.
  • Ninguno oculta tus búsquedas del resolvedor al que se las mandaste: el propio RFC 8484 dice que “no se sabe que DoH introduzca preocupaciones nuevas más allá de las asociadas con HTTPS” en el extremo del servidor.
  • Incluso con DNS cifrado, el saludo TLS del propio sitio normalmente revela su nombre de host a la vista (SNI), a menos que se use una extensión como SNI Cifrado.
  • macOS e iOS soportan DNS cifrado mediante un perfil de configuración documentado de Ajustes de DNS, que puede especificar DoH o DoT y limitarlo a ciertos dominios o redes.

Ponte a prueba

  1. 1. ¿Qué puerto usa DNS sobre TLS (DoT), y por qué uno dedicado?

    • El puerto 80, el mismo que HTTP
    • El puerto 853, elegido en parte para evitar ataques de downgrade que podrían venir de la ambigüedad en el puerto 53 — Correcto.
    • El puerto 25, el mismo que el correo electrónico
    • Un puerto aleatorio cada vez

    El RFC 7858 le asigna a DoT su propio puerto, el 853, explicando que evitar el puerto 53 para esto “reduce el riesgo de ataques de downgrade.”

  2. 2. ¿Por qué usa el puerto 443 DNS sobre HTTPS (DoH)?

    • Porque es el único puerto gratis
    • Porque compartir el puerto 443 con el tráfico HTTPS normal hace que DoH sea más difícil de aislar y bloquear — Correcto.
    • Porque el puerto 443 es más rápido que otros puertos
    • DoH no usa el puerto 443

    El RFC 8484 señala que mezclar DoH con el tráfico HTTPS normal en el puerto 443 “puede disuadir a dispositivos sin privilegios en el camino de interferir con las operaciones de DNS.”

  3. 3. ¿DoH o DoT ocultan tus búsquedas DNS del resolvedor al que se las mandas?

    • Sí, completamente
    • No, ocultan las búsquedas de la ruta de red, pero el operador del resolvedor sigue viendo las consultas — Correcto.
    • Solo DoH las oculta del resolvedor
    • Solo DoT las oculta del resolvedor

    El RFC 8484 establece que no se sabe que DoH introduzca “preocupaciones nuevas más allá de las asociadas con HTTPS” en el extremo del servidor, lo que significa que el operador del resolvedor sigue pudiendo ver y correlacionar las consultas.

  4. 4. Incluso con DNS cifrado, ¿qué sigue revelando muchas veces a qué sitio te estás conectando?

    • La contraseña del Wi-Fi
    • El nombre de host mandado a la vista en el Client Hello de TLS (SNI), a menos que se use una extensión como SNI Cifrado — Correcto.
    • La dirección IP privada de tu Mac
    • La caché del resolvedor DNS

    Cloudflare explica que “el SNI incluye el nombre de host en el mensaje Client Hello” antes de que empiece el cifrado; SNI Cifrado (ESNI) está diseñado para ocultarlo, pero todavía no es universal.

Ponlo en práctica con FireAI

Pon esta lección en práctica en tu propia computadora.

Fuentes

Ponlo en práctica en tu Mac

Prueba todas las funciones gratis durante 17 días, sin tarjeta.

Descargar para Mac Docs