Ir al contenido principal

DNS sobre TLS: privacidad en el DNS

Privacidad en el DNS


En el sistema de nombres de dominio (DNS) la información de preguntas y respuestas siempre ha viajado "en plano" por la red. Es decir, sin cifrar. Todo lo que se consulta vía DNS puede ser leído por quienes se encuentren en el camino entre un cliente y su "servidor DNS recursivo", por ejemplo los proveedores de Internet (ISPs) y gente que pueda analizar los paquetes de la red.

Desde hace un tiempo que esto se ha visto con preocupación. Siempre se ha dicho que "los datos del DNS son públicos", lo que es cierto, pero lo que alguien esté consultando debiera ser privado. El sitio de alcohólicos anónimos es público, pero debiera ser privado quiénes están consultando por el. Esa es la diferencia.

Se ha trabajado desde distintos lados las mejoras de privacidad, en especial desde IETF, el organismo que estandariza los protocolos en Internet. Hay avances en TLS (también conocido como SSL) y por supuesto también en DNS, donde hay varias técnicas en camino.

Una de estas técnicas se llama "DNS over TLS", que aprovecha la encriptación y autenticación que ofrece TLS para mezclarlo con el soporte de transporte TCP en DNS.

Con los mayores riesgos de invasión a la privacidad de los usuarios, se hace necesario comenzar a preocuparse y cuidarse de este abuso.


DNS sobre TLS

Se trata del clásico protocolo DNS pero esta vez utilizando exclusivamente TCP (recuerden que el DNS clásico utiliza UDP en su gran mayoría, pero TCP siempre ha estado disponible), a lo que se suma el cifrado de TLS (que es el mismo cifrado que hace HTTPS del protocolo en plano HTTP). Utiliza un puerto especial (853) y requiere que los clientes que lo utilizan autentiquen el certificado del servidor por medio de "pinning" o bien utilizando las clásicas autoridades de certificados x509.

DNS-over-TLS utiliza técnicas de optimización como el reuso del canal TCP y la mantención de la conexión abierta, para lograr tiempos de respuesta similares al DNS clásico sobre UDP. De todas formas esta técnica viene penalizada por el costo extra de establecer la conexión TCP la primera vez, además del intercambio durante el cifrado TLS, pero se espera que en un uso normal de un
stub resolver cada consulta sucesiva sea solo resuelta en 1 paquete de ida y vuelta, quedando similar a UDP. Además el tener una sesión abierta en TCP permitirá otras técnicas futuras, como pipelining y "server-push".


dnsotls.lab.nic.cl

NIC Chile dispone de un "servidor de prueba" puesto a disposición de los desarrolladores y primeros usuarios en adoptar y probar esta tecnología. Este servidor es completamente funcional, y se invita a la comunidad de .CL a utilizarlo consiguiendo tiempos de respuesta nacionales, sin necesidad de utilizar
servicios en el extranjero. Este servicio se entrega en forma gratuita pero en modo experimental, sin promesas de uptime ni su continuidad en el futuro. Existe registro de las queries con fines de investigación y control de abuso.

Para utilizarlo, los datos son:
  IPv4: 200.1.123.46
  IPv6: 2001:1398:1:0:200:1:123:46
  Ports: 853 y 443
  Hostname: dnsotls.lab.nic.cl (con "strict name TLS authentication")
  SPKI: pUd9cZpbm9H8ws0tB55m9BXW4TrD4GZfBAB0ppCziBg= (pin sha256)

Se agradecen los reportes de fallas y feedback técnico a través del correo dnsotls@lab.nic.cl.

Para alternativas de software en el lado del cliente se recomienda stubby.

Más información en el sitio de DNS Privacy Project (en inglés).


Comentarios

  1. Para dar soporte en Android fue necesario obtener un certificado en Let's Encrypt.
    El SPKI nuevo es pUd9cZpbm9H8ws0tB55m9BXW4TrD4GZfBAB0ppCziBg=

    ResponderBorrar

Entradas más populares de este blog

Servicio AS112: atendiendo los reversos de direcciones IP privadas

El uso más común que se le da al servicio DNS es el de "transformar los nombres de dominio en direcciones IP", que permite por ejemplo a los humanos recordar fácilmente una dirección de un sitio web como "www.nic.cl", y dejar que sean las máquinas -mediante el DNS- que lo transformen a una dirección IPv6 como 2001:1398:5::6003, ó 200.7.7.3 en IPv4. Pero no es el único uso del DNS. También existe el llamado "servicio reverso", que como su nombre lo indica, hace lo contrario: transformar una IP en un nombre de máquina. Esto no es usado por los usuarios corrientes, sino por servicios por ejemplo de control de acceso, o registro de logs, etcétera; quienes parten de una dirección IPv6 como 2800:3f0:4003:c00::69 y obtienen como resultado www.google.com. Por otro lado, también existen direcciones IP especiales que se les llama "privadas", o "locales"; que tienen la particularidad que pueden ser usadas libremente por organizaciones en sus ...

Uso correcto del servicio DNS secundario gratuito

NIC Chile desde hace más de 20 años ha ofrecido el servicio de " Secundario DNS gratuito " para sus clientes. El objetivo siempre fue mejorar la robustez de .CL, ya que disponer de solo 1 NS es demasiado frágil, y este servicio siempre se ha mantenido con los niveles de infraestructura y tiempos de respuesta adecuados a su tiempo. El uso del servicio ha sido sostenido en el tiempo. Actualmente, más de 30 mil de nuestros clientes lo utilizan! Y con la adición de tecnologías como IPv6, se ha permitido que estos miles de dominios CL tengan presencia en la nueva red . Sin embargo, no todo es miel sobre hojuelas. Desde los inicios se ha detectado un problema técnico recurrente. El uso de este servicio, si bien es gratuito para clientes de NIC Chile, requiere una configuración técnica especial para que funcione correctamente. Y esta configuración debe ser realizada por quien administre el servicio DNS del dominio (por ejemplo la empresa de hospedaje (" host...

dns-tools: herramienta para verificar zonas (ZONEMD) y firmar DNSSEC en forma distribuida

Actualmente existen diversas soluciones que permiten automatizar la firma DNSSEC de los dominios, integrados a los mismos servicios que normalmente proveen DNS. En el ámbito de código abierto, los más utilizados permiten activar DNSSEC con algunas instrucciones en la configuración, sin preocuparse de llaves ni firmas. Sin embargo, siempre es bueno tener herramientas que permitan hacer verificaciones o incluso firmas de una forma más de bajo nivel. Suelen ocurrir casos de uso donde alguien prefiere tener más control, o integrarse con sistemas internos no estándar. Les presentamos  dns-tools , una herramienta de línea de comandos (CLI), escrita en lenguaje Go, que permite firmar con DNSSEC una zona, crear registros de  integridad  de zona llamados ZONEMD, y a su vez validar estas firmas y registros. Esta herramienta fue creada por NICLabs , el laboratorio de NIC Chile. Es mantenida con código abierto en github , con licencia MIT. Una de las cosas más destacadas, y que lo ha...