[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

(FWD) Tor, Socks bind, and BitTorrent

(Forwarding here to get the discussion archived and public)

It isn't going to be trivial to support Tor in BitTorrent. Bram designed
BT with the intent of making it tricky to anonymize in this way.

Tor doesn't support the SOCKS BIND extensions. You
can read about what Tor's version of SOCKS at

The question you need to answer before proceeding is: which parties are
you trying to protect? I see at least two scenarios:

a) The tracker runs behind a Tor hidden service. That is, people can
access it without being able to learn its location.
This wouldn't be so hard to do, and it wouldn't put that much load on the
Tor network; all users accessing it would need to pass their connections
through Tor (via socks4a).

How do clients interact with the Tracker in BT -- do they connect once
and keep talking periodically, or do they connect every so often, talk
a bit, and disconnect?

In this scenario, the users themselves would still be exposed (to
each other).

b) Each user runs behind a hidden service. That is, all the actual
block-passing traffic goes over Tor. First off, I suspect this will
slow down transfers quite a bit, since the current Tor infrastructure
won't scale to handle that very well. Second, you may need to change
the BT protocol to handle addresses (hostnames) rather than IPs when
describing another user. Plus each user would have to configure her own
hidden service, so you'd probably have to do up an interface for that
if you wanted it to be easy.

I think Tor needs more design and development work before scenario b)
is reasonable. But scenario a) could work right now.


----- Forwarded message from Paul Gardner <parg@users.sourceforge.net> -----

From: "Paul Gardner" <parg@users.sourceforge.net>
Date: Wed, 29 Sep 2004 11:10:26 +0100
To: <owner-or-dev@seul.org>
Subject: dev list

    I'm a developer of the BitTorrent client Azureus (http://azureus.sourceforge.net/). We have a request to support TOR. I've been looking at getting our SOCKS support working to enable this and have a question regarding your SOCKS support. To receive incoming connections we need to BIND to a specific port on the SOCKS server and receive multiple, concurrent incoming connections. The standard SOCKS V5 (and 4/4a) protocols don't support this, but there are extensions that do (e.g. SocksCap seems to have extensions for this).

Does the SOCKS proxy supported by TOR permit this style of working? If so, what do I need to do?

I joined the dev mailing list to ask teh question but can see how to post to it :)


----- End forwarded message -----