Antiguamente solo se utilizaba la resolución DNS por par de IPs, actualmente hay protocolos mas modernos, privados y seguros que vamos a comentar y explicar en este artículo. La clásica resolución por IP tiene el problema de que las peticiones van por texto plano, sin encriptar y por lo tanto es un método poco seguro y que puede ser interceptado con el objetivo de redirigir en tráfico hacia webs que no son las legítimas. Para evitar se crearon los nuevos protocolos de resolución DNS cuyo tráfico va encriptado y se logra que las peticiones no puedan ser ni rastreadas ni redirigidas ni bloqueadas.
HISTORIA DEL DNS
Antes del servicio DNS, a modo de curiosidad para quien no lo sepa, lo que había era un archivo hosts, con una lista de dominios e IPs, que se compartía. Cada cierto tiempo se descargaba y actualizaba en el sistema operativo ese fichero. Luego ya llego lo que conocemos ahora, el servicio DNS que mediante un par de IPs, o una sola IP si el servicio es estable, se realizan peticiones por las que se devuelve la IP correspondiente a cada dominio. El problema de este sistema es que las peticiones se realizan mediante texto plano, sin ningún tipo de encriptación. Este protocolo de DNS simple es el que ha estado utilizándose desde casi toda la vida de internet.
Para solucionar ese problema se crearon los nuevos y modernos protocolos DNS encriptados, privados y seguros. En este artículo no es mi intención hacer una descripción detallada de DOH, DOT y DOQ, para eso ya hay bastantes webs en internet, pero si que voy a hacer un resumen breve para que quede clara la importancia de estos nuevos protocolos DNS.
EXPLICACIÓN DE LOS PROTOCOLOS DNS
DNS simple por par de IPs.- Este es el DNS de siempre, el que se implementó en los inicios de internet y que sigue hasta ahora con nosotros. El problema que tiene es que no ofrece mecanismos de seguridad ni privacidad de ningún tipo, es decir, envía la peticiones en texto plano fácilmente visible por cualquiera que este en medio entre nuestra conexión y el destino. También sería fácilmente visible, por ejemplo, por cualquiera que este utilizando un inspeccionador de paquetes en la red desde la que estemos conectando a internet.
DNS over HTTPS (DoH).- Con este protocolo las peticiones DNS se envían a través de un túnel encriptado usando HTTPs, utilizando el puerto tcp/443, igual que cuando navegamos por páginas HTTPs, la ventaja de este sistema radica en que no se puede distinguir entre el tráfico de la navegación web y el tráfico de peticiones DNS. Esto implica que al no poder distinguirse tampoco se puede bloquear.
DNS over HTTPS3 (DoH3).- Este protocolo es la evolución de DOH, usa el protocolo udp/443 y aunque podría ser bloqueado se bloquearía también cualquier otro tráfico web que utilizara el mismo protocolo. DOH3 y DOQ utilizan el mismo sistema proporcionado por QUIC inspirado en HTTP/2. DOH3 también es resistente a la perdida de paquetes al igual que DOQ ya que ambos utilizan flujos independientes de peticiones. HTTP3 tiene algunas actualizaciones únicas sobre HTTP2, a nivel básico se podría decir que es HTTP2 over QUIC por lo que DNS over HTTP3 es el conjunto de UDP+QUIC+HTTP2+DNS. DoH3 es casi tan bueno como DoQ, pero todavía tiene una capa HTTP3 adicional (sobrecarga) que es inútil para DNS. Por otro lado, está mucho más disponible en el lado del servidor. En cada conexión y enlace SSL se pueden enviar varias peticiones de resolución.
DNS over TLS (DoT).- Este protocolo utiliza el puerto 853. La diferencia respecto a DoH es que DoH es mas completo y ofrece mejor rendimiento, mientras que DoT es un protocolo mas simple y ofrece un rendimiento algo mas bajo. Por eso DOT en su contra tiene que es el protocolo mas lento y tiene la mayor sobrecarga. Cada resolución requiere una nueva conexión TCP y un protocolo de enlace SSL para cada resolución, no se pueden enviar múltiples solicitudes a través de un canal TCP/TLS existente ya abierto. Es decir, por cada petición hay que añadir los tiempos de negociación de la conexión y protocolo.
DNS over QUIC (DoQ).- Este protocolo es el mas moderno, rápido y permite mejorar la eficacia de los anteriores protocolos DOH y DOT, utiliza el puerto udp/8853 para el envió de peticiones. Es un protocolo mas moderno y eficiente ya que es resistente a la perdida de paquetes, al no hacerse todo mediante una única conexión TCP, si se pierde un paquete no hay que esperar a la transmisión del paquete perdido. Cada flujo de peticiones es independiente y la perdida de una no afecta al resto. Se requiere mas uso de CPU y batería pero no de una forma relevante, las diferencias no deberían ser palpables. En cada conexión y enlace SSL se pueden enviar varias peticiones de resolución.
UTILIDAD YOGADNS
En el artículo sobre YogaDNS ya escribí las diferencias que había entre los protocolos seguros y encriptados de resolución DNS. Como es posible que esa explicación haya pasado un poco desapercibida he decidido escribir un artículo centrándome en ello. Antes de continuar os recuerdo que YogaDNS es una excelente utilidad para configurar la resolución DNS en Windows con cualquiera de los protocolos DOT, DOH, DOH3 o DOQ.
OTROS ARTÍCULOS DE INTERÉS SOBRE SERVICIOS DNS PÚBLICOS
– AdGuard DNS: Servicio especializado en bloqueo publicitario y rastreadores.
– CleanBrowsing DNS: Varios niveles de filtrado y versión de pago.
– Cloudflare DNS: Nuevo DNS público con varias preconfiguraciones.
– Control D: Nuevo servicio DNS personalizable y con resolución desde España.
– DNS0.eu: Nuevo servicio de DNS público, europeo, privado y seguro.
– DNS.sb: DNS europeo privado y seguro.
– Foundation for Applied Privacy: DNS privado y seguro.
– GCore DNS: DNS público de una red de entrega de contenido.
– Mullvad DNS: Servidores DOH/DOT con varios niveles de filtrado.
– NextDNS: Servicio con personalización de perfiles, dispositivos y muchas opciones.
– NTT DNS: Un servicio de resolución muy poco conocido con presencia en España.
– Quad9 DNS: Excelente protección antimalware sin falsos positivos.
– Restena: DNS Público neutral y privado.
– RethinkDNS: Bloqueo de publicidad y malware por DOH/DOT.
– UncensoredDNS: Un proyecto personal de DNS sin censura.