Resolving names with Tor
The DNS protocol has some time, the RFC which define it, 1034 (concepts and facilities) and 1035 (implementation and specification) are from 1987 and like in all the protocols of that time, security in the comunication wasn't a priority, anyone sniffing the network can see which domains visit everyone, let alone the providers of the DNS service, but it has little solution in the short run, Internet depends on this name sistem and there isn't another better with the required infrastructure, right?
Well, it seems that the Tor SOCKS proxy interface
offers a non standard option (point 2)
which allows to use this network to resolve names, this functionality can be
accessed from the command line through tor-resolve
,
this capability can be exploited to build a private DNS server which don't
filter the domain name lookups to the network.
Using Twisted is simple to build a this DNS server
to use the Tor network as a resolver backend (is going to be limited to the
A and AAAA records),
this is implemented in Onion-dir
(At Gitorious | At Github).
This may be used adding the parameter DNSPort 53
to the /etc/tor/torrc
file,
the performance may look like an issue but after testing it the results were
pretty good, to a local bind9
server it takes ~52s to solve every IP from the
"100 most popular webs"
and Tor does it in ~58s (both times with the cache empty), with cached results
it takes ~2.8s for both.
But there is some problems looking up domains like _xmppconnect.gmail.com, the Google XMPP server, domains which on the other hand actually doesn't exists.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
And that seems the main problem left...