DNS por TLS

Introducción

Las consultas y respuestas de DNS tradicionales se envían a través de UDP o TCP sin encriptación. Esto es vulnerable al espionaje y la falsificación de identidad (incluido el filtrado de Internet basado en DNS). Las respuestas de los agentes de resolución recurrentes a los clientes son las más vulnerables a cambios no deseados o maliciosos, mientras que las comunicaciones entre los agentes de resolución recurrentes y los servidores de nombres autorizados a menudo incorporan protección adicional.

Para abordar estos problemas, el DNS público de Google ofrece resolución de DNS a través de conexiones TCP encriptadas con TLS, como se especifica en RFC 7858. DNS por TLS mejora la privacidad y la seguridad entre los clientes y los agentes de resolución. Esto complementa las DNSSEC y protege los resultados validados por DNSSEC contra la modificación o la falsificación de identidad en el camino al cliente.

Funcionamiento

Un sistema cliente puede usar DNS por TLS con uno de dos perfiles: privacidad estricta o oportunista. Con el perfil de privacidad estricto, el usuario configura un nombre de servidor DNS (el nombre de dominio de autenticación en RFC 8310) para el servicio de DNS sobre TLS y el cliente debe poder crear una conexión TLS segura en el puerto 853 al servidor DNS. Si no se establece una conexión segura, se generará un error grave y no se generarán servicios de DNS para el cliente.

Con el perfil de privacidad oportunista, el usuario puede configurar la dirección IP del servidor DNS directamente o se puede obtener de la red local (mediante DHCP o algún otro medio). El agente de resolución del cliente intenta establecer una conexión segura en el puerto 853 con el servidor DNS especificado. Si se establece una conexión segura, se proporciona privacidad para las consultas del usuario de observadores pasivos en la ruta. Dado que el cliente no verifica la autenticidad del servidor, no está protegido contra un atacante activo. Si el cliente no puede establecer una conexión segura en el puerto 853, recurre a la comunicación con el servidor DNS en el puerto DNS estándar 53 a través de UDP o TCP sin seguridad ni privacidad. El uso de la privacidad oportunista tiene como objetivo respaldar la implementación incremental de la privacidad aumentada con el objetivo de una adopción generalizada del perfil de privacidad estricto.

Cuando se usa un perfil de privacidad estricto, los agentes de resolución de stub establecen una conexión de DNS sobre TLS con los siguientes pasos.

  1. El agente de resolución de stub está configurado con el nombre de agente de resolución de DNS sobre TLS dns.google.
  2. El agente de resolución de stub obtiene las direcciones IP para dns.google mediante el agente de resolución de DNS local.
  3. El agente de resolución de stub realiza una conexión TCP al puerto 853 en esa dirección IP.
  4. El agente de resolución de stub inicia un protocolo de enlace TLS con el agente de resolución de DNS público de Google.
  5. El servidor DNS público de Google muestra su certificado TLS junto con una cadena completa de certificados TLS hasta un certificado raíz de confianza.
  6. El agente de resolución de stub verifica la identidad del servidor en función de los certificados presentados.
    • Si no se puede validar la identidad, la resolución del nombre del DNS falla y el agente de resolución de stub muestra un error.
  7. Después de establecer la conexión TLS, el agente de resolución de stub tiene una ruta de comunicación segura entre un servidor DNS público de Google.
  8. Ahora, el agente de resolución de stub puede enviar consultas de DNS y recibir respuestas a través de la conexión.

Cuando se usa un perfil de privacidad oportunista, el cliente primero intenta crear una conexión TLS segura con el servidor. Esto se hace de manera similar a lo anterior con una diferencia importante: el cliente no realiza ninguna validación de certificado. Esto significa que no se puede confiar en la identidad del servidor. Si no se puede establecer una conexión TLS en el puerto 853 con el servidor, el agente de resolución de stub recurre a la comunicación con el servidor DNS en el puerto 53.

Privacidad

Nuestra política de privacidad se aplica al servicio de DNS sobre TLS.

El 27 de junio de 2019, volvimos a habilitar la subred cliente de EDNS (ECS) para el servicio de DNS por TLS. ECS se inhabilitó en el lanzamiento del servicio.

Compatibilidad con estándares

El DNS público de Google implementa DNS sobre TLS basado en RFC 7858. Además, admitimos las siguientes recomendaciones para proporcionar un servicio DNS de alta calidad y baja latencia.

Comienza a usarlo

Consulta las instrucciones para configurarlo en un dispositivo con Android 9 (Pie) o versiones posteriores.

DNS por TLS también es compatible con el servicio de DNS 64 público de Google solo para IPv6. Ten en cuenta que no se recomienda configurar DNS64 para un dispositivo móvil que se conectará a varias redes, ya que DNS64 solo funciona cuando IPv6 está disponible.