[tor-talk] GSoC Student Introduction - Pluggable Transports

George Kadianakis desnacked at gmail.com
Tue Apr 26 23:05:08 UTC 2011


Greetings,

I'm a Tor GSoC student and I'll be working on pluggable transports
this summer.

What are these so called pluggable transports you might be wondering...

Well, imagine a user in an under-censorship country who wants to
communicate with the rest of the world. Imagine him trying to use the
Tor network with a bridge. Imagine his Tor traffic getting detected by
the government; essentially not only blocking his communication
attempts but also marking him as a Tor user (and of course identifying
the bridge).
Tor traffic detection is not an alien thing, it happened in Iran - for
example - when Tor was using a not-so-usual DH prime for it's TLS [1].
It has happened before and will probably happen again.
Censorship and censorship resistance is a rat race.

This is where pluggable transports come into play.

Now imagine a "pluggable transports *proxy*" sitting on the censored
user's computer and a "pluggable transports *server*" sitting on the
bridge side. If you can't imagine it, _maybe_ this will help you:

          +-----------+      C      +------------+
      ----|   Proxy   |-------------|   Server   |----
   A  |   +-----------+             +------------+   |  B
      |                                              |
+------------+                                +--------------+
| Tor Client |                                |  Tor Server  |
+------------+                                +--------------+

Now imagine that the "pluggable transports *proxy*" can alter Tor's
traffic and that the "pluggable transports *server*" can decode it
appropriately. This means that Tor traffic can be disguised as HTTP
traffic, or can be obfuscated, or even multiple encrypted with an
off-band shared key between the user and the bridge operator. [2][3]

And that's what pluggable transports are about.

What I'm gonna be doing during the summer is implementing the
pluggable transports specification [4] and maybe even writing a
protocol or two.
In any case, I hope that the pluggable transports system after the
summer will be welcoming and mature enough so that anyone can
implement their own protocol.

I'll be keeping a GSoC diary here:
https://gitorious.org/obfsproxy/pages/Home
I'm also lurking in #tor{,-dev}@OFTC with the nickname "asn", feel free to
poke me there.

[1]: https://gitweb.torproject.org/tor.git/commit/5ed73e3807d90dd0a3
[2]: Now maybe you can understand what the A, B and C spots are in my
     image:
     In A and B one can see Tor traffic on the wire.
     In C one will see something - probably - innocent, like let's
     say BitTorrent traffic, when in reality it will be Tor traffic.
[3]: https://trac.torproject.org/projects/tor/ticket/2760
     https://trac.torproject.org/projects/tor/ticket/2759
[3]: https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/180-pluggable-transport.txt


More information about the tor-talk mailing list