DNS sobre HTTPS

El otro día en una noticia de ADSL Zone se comentaba: «Los operadores critican a Firefox por usar DNS-over-HTTPS: ya no pueden bloquear webs«. Tras este titular tan llamativo se puede leer un artículo en el que además de contar cuatro pinceladas sobre DNS sobre HTTPS se contaba que los operadores no podrían bloquear webs al no poder interceptar el tráfico de DNS.

Sólo para que lo sepáis cuando se bloquea una web lo que se hace es cambiar los DNSs del dominio, los que se definen en el registrador, cualquier otro cambio es inútil pues el usuario puede cambiar los DNSs que usa, puede tunelizar el tráfico contra los DNSs o incluso usar una VPN.

A un operador le da exactamente igual las páginas que visites, excepto por temas de optimización, que luego os cuento. El bloquear webs no es algo que a un operador le apetezca en lo más mínimo, al menos yo jamás he visto que se bloqueen webs sin una orden judicial y por supuesto tampoco he visto que se interfiera en el tráfico de DNS, aunque hay cosas parecidas, como lo que hace Orange, entiendo que sin querer, también os lo cuento luego.

Pues lo dicho, en el programa de hoy voy a tratar de contaros un poco qué es eso del DNS sobre HTTPS porque desde luego lo importante de esto no es si se pueden bloquear webs o no.

Antes de nada aclarar lo que os he contado hace unos segundos. Al operador le interesa saber donde te conectas para optimizar su tráfico, pero para eso no necesita el DNS, relamente no lo mira, es decir, como si no existiera.

Para optimizar el tráfico se mira a qué AS hay más tráfico, por qué tránsito se sale y si es el camino óptimo, si la cantidad de tráfico lo merece y se puede optimizar se realizan los cambios pertinentes, normalmente modificando la local preference para ese prefijo. Se busca reducir latencias, ya sabéis a menos latencia más ancho de banda efectivo y mejor percepción por parte del usuario.

A lo mejor le interesa optimizar para ahorrarse un dinero o para apretar al proveedor de tráfico y la decisión de por donde se saca el tráfico ya no es la percepción del usuario, sino otra.

Pero aquí como veis el DNS da exactamente igual y aunque no se pueda ver el tráfico de DNS nos da igual porque lo que vemos es el netflow, que es lo que nos interesa.

Y lo que hace Orange, al menos en mi caso es forzar los DNSs que ofrece el servidor de DHCP del Livebox que te ponen, obviamente puedes forzarlos a mano en los PCs, pero mucha gente no sabe hacer eso.

Pero lo que hacen peor es haber puesto dentro del router la IP 1.1.1.1, así que si intentas resolver con el resolver de la 1.1.1.1 realmente quien te estará resolviendo es el Livebox de Orange. Me consta que en Orange se conoce el problema, pero no deben de considerarlo importante, una pena y una lástima que hagan eso.

Bueno, pues si os parece, vamos a ir entrando en materia sobre el tema que nos ocupa el día de hoy.

DNS sobre HTTPS no es más que el DNS de toda la vida, pero utilizando HTTPS, Esto nos permite tener unas respuestas a las peticiones más rápidas, básicamente porque necesitamos menos envíos de información para ello. Esto repercute directamente en la carga de las webs, que es realmente lo que le importa a la gente.

Una web además de tener lo que está en el servidor puede tener el widget de facebook, tendrá que cargar también de facebook, luego el de twitter, lo propio con twitter, además los anuncios, de donde sea, el google analytics, etc….

Es decir, la carga de una web suele tener asociadas un montón de peticiones de DNS, muchas resoluciones, así que si conseguimos reducir los tiempos de esas resoluciones conseguimos reducir los tiempos de carga de las webs, ese es el quiz de la cuestión.

Además sí, también aumenta la privacidad y la seguridad, evita ataques man-in-the-middle y similares, pero esto que es sumamente importante no es por desgracia lo que más preocupa a los usuarios que lo que quieren es Internet muy rápido, por eso las fibras de 600 megas y cosas así.

Pasa algo parecido, obviamente manteniendo las distancias, al uso de certificados en las webs. Es importante por temas de seguridad, pero si queremos http/2 para que las webs carguen más rápidas, al final tenemos que usar https y para eso necesitamos certificados. En ese caso las webs van mucho más rápidas, muy al contrario de lo que la intuición nos diría, pues en DNS pasa algo parecido.

De hecho HTTP/2 es la versión mínima para eso:

HTTP/2 [RFC7540] is the minimum RECOMMENDED version of HTTP for use with DoH.

RFC 8484

DNS sobre HTTPS viene definido en la RFC 8484 titulada «DNS Queries over HTTPS (DoH)«.

Es muy interesante atender al título de la RFC pues hace referencia a que son las peticiones las que van sobre HTTPS, es decir, el transporte de las mismas.

Each DNS query-response pair is mapped into an HTTP exchange

RFC8484

Realmente las peticiones de DNS se transportarán mediante POST o GET de HTTP:

The first example request uses GET to request "www.example.com".

   :method = GET
   :scheme = https
   :authority = dnsserver.example.net
   :path = /dns-query?dns=AAABAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB
   accept = application/dns-message
   

The same DNS query for "www.example.com", using the POST method would be:

   :method = POST
   :scheme = https
   :authority = dnsserver.example.net
   :path = /dns-query
   accept = application/dns-message
   content-type = application/dns-message
   content-length = 33

   <33 bytes represented by the following hex encoding>
   00 00 01 00 00 01 00 00  00 00 00 00 03 77 77 77
   07 65 78 61 6d 70 6c 65  03 63 6f 6d 00 00 01 00
   01

Y la respuesta a todo esto con su código 200:

   :status = 200
   content-type = application/dns-message
   content-length = 61
   cache-control = max-age=3709

   <61 bytes represented by the following hex encoding>
   00 00 81 80 00 01 00 01  00 00 00 00 03 77 77 77
   07 65 78 61 6d 70 6c 65  03 63 6f 6d 00 00 1c 00
   01 c0 0c 00 1c 00 01 00  00 0e 7d 00 10 20 01 0d
   b8 ab cd 00 12 00 01 00  02 00 03 00 04

Actualmente nos encontramos como con IPv6 hace muchísimos años, sin soporte de DNS sobre HTTP en el sistema operativo, así que es necesario instalar un software extra para esto.

Otra cosa que tenemos que tener en cuenta es que DNS sobre HTTPS no proporciona cifrado extremo a extremo, sino que el cifrado se realiza mediante puntos intermedios para llegar a los servidores autorizados. y además, esto sólo será así siempre y cuanto se utilice DNS sobre TLS.

Para poder utilizar DNS sobre HTTPS podéis instalar el software de Cloudflare para cualquier sistema operativo, ya sea ordenador o teléfono, aunque esto os limitará a los servidores de Cloudflare.

Otra opción es utilizar Firefox, versión mayor a la 62, pero esto sólo afectará a las webs que visitéis con el navegador, no a otras peticiones que seguirán usando la configuración de DNS del equipo. Esto tampoco es que me guste demasiado como opción

Hasta aquí el programa de hoy, pero no quiero despedirme sin dar gracias a las 45 personas que han dejado reseñas en itunes España, muchísimas gracias a todos y volvemos a escucharnos en el próximo capítulo.