El sistema de nombres de dominio (Domain Name System o DNS
) es el encargado de traducir los nombres de dominio en direcciones de IP. De esta manera nos es más fácil, para nosotros humanos, recordar la ubicación de los diferentes servidores. Su funcionamiento es simple de explicar: cada vez que escribimos una URL (por emplo logico.ar) el navegador hace un petición a un servidor DNS
y este responde con una dirección de IP (54.39.147.181
). Entonces el navegador puede realizar la conexión con el servidor web.
El problema es que cuando se inventó el protocolo, internet practicamente era segura, ya que sólo podian acceder universidades y organizaciones de EEUU por lo que todo el tráfico es visible a cualquiera que pueda observar la red. Esto es particularmente problematico porque los grandes ISPs pueden recolectar y vender el historial de navegación (en Estados Unidos al menos, ya que la legislación es diferente segun los paises).
Así se ve una petición de DNS en Wireshark
DNS-over-HTTPS
o DoH
lo que hace es encapsular el tráfico de DNS
dentro del protocolo HTTPS
. De esta manera tanto los datos como el destino de las páginas que visitamos quedan encriptadas y lejos del alcance de ojos curiosos.
Además de mejorar la seguridad, otro objetivo del DNS mediante HTTPS es mejorar el rendimiento: las pruebas de los resolutores DNS de ISP han demostrado que en muchos casos tienen tiempos de respuesta sorprendentemente lentos, un problema que puede multiplicarse aún más por la necesidad de resolver muchas direcciones para ofrecer un único servicio, como la carga de una página web.
Para funcionar es necesario que el servidor DNS
y el navegador soporten el protocolo DoH
. A día de hoy, los navegadores son Firefox de manera estable y Google Chrome mediante un flag
. En cuanto a los servidores vamos a dejar una lista más abajo.
Firefox es el primer navegador en soportar de manera estable el protocolo DoH
. Para activarlo tenemos que ir a las Preferencias > General > Configuración de la conexión > tildar la opción Habilitar DNS por sobre HTTPS (ymmv). Por defecto Firefox utiliza los DNS
s de Cloudflare pero es posible utilizar los que consideremos seleccionando la opción Personalizada.
En Chrome la configuración es diferente. En este caso el navegador utiliza los servidores DNS
configurados globalmente y los utiliza si estos soportan DoH
. Para activarlo primero tenemos que cargar los servidores en las propiedades de conexión y luego activar un flag en Chrome.
En Windows hay que ir a Configuración > Internet y red > Cambiar propiedades de conexión > Configuración de IP > Editar. En DNS preferido ingresar 1.1.1.1
y DNS alternativo 1.0.0.1
(ambos de Cloudflare).
Finalmente, para decirle a Chrome que utilice DoH
tenemos que acceder a chrome://flags/#dns-over-https
y pasar la opción a Enable.
De esta manera ya podemos navegar en internet un poco más tranquilos. Por último les dejamos una lista (no extensiva) de servidores DNS públicos que soportan DoH
.
Para verificar que realmente estamos utilizando DoH
, los amigos de Cloudflare desarrollaron un test que nos permite saber que características están habilitadas en el navegador.
8.8.8.8
8.8.4.4
Security Filter: 185.228.168.9
Adult Filter: 185.228.168.10
Family Filter: 185.228.168.168
208.67.222.222
208.67.220.220
1.1.1.1
1.0.0.1
9.9.9.9
149.112.112.112
185.222.222.222
185.184.222.222