Resolviendo nombres con Tor

El protocolo DNS tiene su tiempo, los RFC que lo definen, 1034 (conceptos e instalaciones) y 1035 (implementación y especificación) datan del 1987 y como en todos los protocolos de la época la seguridad brilla por su ausencia, cualquiera que sniffe la red puede ver que dominios visita alguien, ya no digamos quien provea el servidor DNS, pero poca solución tiene a corto plazo, Internet depende de este sistema de nombres y no hay otro sistema mejor que disponga de la infraestructura necesaria, no?

Resulta que la interfaz SOCKS de los proxy Tor ofrece una opción no estándar (punto 2) que permite usar esta red para resolver nombres, se puede acceder a esta funcionalidad a través de la línea de comandos con tor-resolve, esta capacidad de la red se puede explotar para montar un servidor DNS privado que no filtre que dominios se buscan (eso sí, necesitará un punto de acceso a la red Tor, claro).

Utilizando Twisted es sencillo montar este servidor DNS que utilice Tor como backend para realizar las búsquedas (aunque estas estarán limitadas a los campos A y AAAA), esto es lo que implementa Onion-dir (En Gitorious | En Github).

Esto se puede usar añadiendo DNSPort 53 al archivo /etc/tor/torrc, por último decir que el rendimiento es bastante mejor que el esperado, un bind9 en local tarda ~52s en resolver las IP de las "100 webs más populares" mientras que Tor lo hace en ~58s (ambos casos con la caché vacía), con la caché llena los tiempos para ambos casos son de ~2.8s, pero aún da problemas resolviendo dominios como _xmppconnect.gmail.com, el servidor XMPP de Google, dominio que por otro lado realmente no existe.

$ dig @8.8.8.8 _xmppconnect.gmail.com

; <<>> DiG 9.8.1-P1 <<>> @8.8.8.8 _xmppconnect.gmail.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 54080
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;_xmppconnect.gmail.com.        IN  A

;; AUTHORITY SECTION:
gmail.com.      60  IN  SOA ns1.google.com. dns-admin.google.com. 1523590 21600 3600 1209600 300

;; Query time: 87 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jun 14 19:44:34 2013
;; MSG SIZE  rcvd: 97

Y ese parece el único problema grave que queda...

Tema cobalt para emacs » « Entrevista de Edward Snowden para Der Spiegel