Conexiones DNS más rápidas y seguras mediante DoQ
En una entrada anterior comentamos brevemente en qué consiste el protocolo QUIC, con la idea de pasar a exponer ahora lo que viene siendo su implementación en el servicio DNS: DoQ ( Dns Over Quic).
A modo de repaso, la mayores ventajas de QUIC respecto a soluciones Tcp:
Los paquetes Tcp más recientes no se pueden procesar hasta que se procesen los más antiguos. Esto significa que si uno de los paquetes de respuesta se pierde, el resto tendrá que esperar. Por contra QUIC permite procesar los datos sin ningún orden específico y de forma simultánea (multiplexación)
QUIC proporciona funciones de seguridad, como cifrado y autenticación, desde el propio protocolo de transporte.
QUIC también resuelve el problema de las continuas reconexiones que tienen lugar cuando cambiamos de red: de móvil a wifi privado, corporativo y nuevamente a móvil. QUIC mantiene la misma conexión al habilitar el evento Migración de conexión”.
Funcionamiento
Una conexión típica constaría de tres pasos:
El cliente y el servidor establecen una conexión QUIC.
El cliente inicia la consulta DoQ enviando un mensaje DNS encapsulado en un paquete QUIC. El paquete incluye la consulta DNS y metadatos que la especifican como una solicitud DNS over QUIC.
La consulta DNS se cifra mediante el protocolo de enlace QUIC ya establecido.
El cliente puede enviar múltiples consultas en paralelo utilizando secuencias QUIC independientes dentro de una misma conexión, y el servidor DoQ puede responder a cada consulta utilizando las mismas secuencias. Esto proporciona un tiempo de respuesta muy mejorado independientemente de la sobrecarga de cifrado utilizada para encapsular la transferencia de datos.
Ventajas
En 2022 se realizó un estudio sobre mediciones distribuidas de DoQ desde diferentes puntos de vista para medir su impacto en la experiencia de navegación web. Según dicho estudio, con DoQ, los tiempos de carga de las páginas web fueron un 10 % más rápidos en comparación con DoH. Mientras que comparado con el DNS UDP simple, DoQ funcionó solo un 2 % más lento, incluso con la sobrecarga de cifrado adicional.
No hay que olvidar que HTTP no se concibió como un protocolo de capa de transporte, y eso genera algunos inconvenientes:
Cookies HTTP
Encabezados HTTP (Authentication, User-Agent, Accept-Language)
Múltiples Fingerprintings
DoQ vs Http3
Mientras buscaba información sobre el tema, muchas veces han aparecido referencias que consideraban al nuevo estándar Http3 como algo idéntico a QUIC. Por todo lo que he podido entender, se pueden considerar muy similares sin ser la misma cosa.
DoQ y DoH3, utilizan el mismo marco proporcionado por el protocolo Quic, que está inspirado en gran medida en el protocolo HTTP/2. Por lo tanto, las diferencias entre DoQ y DoH3 son incluso menores que entre DoT y DoH.
DoQ es similar a DoT pero utilizando la capacidad de transmisión de Quic en lugar de la estructura DNS sobre TCP.
Mientras que DoH3 es DNS sobre HTTPS/3, siendo HTTP/3 Http sobre Quic.
Esto puede verse más claramente si observamos los puertos utilizados por cada uno de ellos:
Protocolo | Puerto |
DoT | tcp/853 |
DoQ | udp/8853 |
DoH | tcp/443 |
DoH3 | udp/443 |
Futuro de DoQ
DoQ se aceptó como estándar de pleno en 2022 (DNS PRIVate Exchange IETF). Y cada vez son más los proveedores DNS que lo soportan: Adguard, NextDNS, DNS0, Cloudflare, Google, etcétera. De igual manera es soportado por los dos motores de navegación actuales: Chromium y Firefox.
En todos los artículos que pude consultar al respecto, había unanimidad en cuanto a que mejoraba de forma muy notable los tiempos de respuesta actuales en redes saturadas (menos si éste no era el caso). Si tenemos en cuenta la imparable tendencia a la hiper conectividad, no me cabe duda que tanto DoQ como DoH3 (y esperemos que también ECH) acabarán por constituirse en los pilares del DNS a medio plazo.
Subscribe to my newsletter
Read articles from Burp directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Burp
Burp
Android ¬ Hard&Soft ¬ Redes ¬ Domótica y Opinión