DNSCrypt o cómo asegurar nuestras consultas DNS

Cuando usas HTTPS o SSL para navegar, consultar correo o usando algun otro programa estas haciendo que tu tráfico sea encriptado (generalmente)

Pero qué pasa con las consultas DNS ? Aun cuando el tráfico sea encriptado,  incluso haciendo uso de una VPN tus consultas a los DNS va en plano.

Esto deja la puerta abierta no solo a ataques de spoofing o MitM (man-in-the-middle) sino que implica que tu proveedor de DNS pueda guardar un registro de tus consultas  y ayudar a espiarnos a gobiernos e instituciones.

DNSCrypt nos viene a ayudar a proteger nuestras consultas DNS.DNSCrypt

Qué és?  Según wikipedia:

DNSCrypt es una implementación de DNSCurve, que sirve para cifrar el tráfico  DNS entre el ordenador del usuario y los servidores de nombres de OpenDNS. La implementación de DNSCrypt en OpenDNS se puede realizar mediante la  instalación del servicio DNSCrypt.org.

Este programa corre en *nix, OSX, Windows, Android, iOS y algunos routers, tanto el servidor
como el cliente tiene sus fuentes en github (https://github.com/jedisct1/dnscrypt-proxy)
con permisos para usar, copiar modificar y/o distribuir.

La instalación es simple (está en paquetes de ubuntu), está bien documentada y su puesta a punto es sencilla.

Básicamente su funcionamiento es:

El cliente traslada la consulta regular a una consulta autenticada, la reenvía a un servidor DNSCrypt y la respuesta la verifica y la reenvía al cliente si esta es genuina.

Interesanet es ver el protocolo QUIC (Quick UDP Internet Connections https://en.wikipedia.org/wiki/QUIC) interesante ver que esta relacionado con Chrome, SPDY y HTTP-2.

También se puede configurar para usar UDP/ TCP en el puerto 443, este puerto generalmente no está bloqueado por los routers o ISPs como sí puede estarlo el puerto estándar DNS o alguno otros puertos pero puede ser mas lenta la respuesta.

Sin lugar a dudas no es la solucion, que seria su uso en conjunto con DNSSec pero es una
capa mas de protección a agregar a nuestro arsenal digital.

Algunas capturas de wireshark.

Normal DNS
Consulta normal DNS

 

Con DNSCrypt
Con DNSCrypt