[tor-dev] GSoC Introduction - Pluggable Transports in Python

Brandon Wiley brandon at blanu.net
Tue May 22 15:34:07 UTC 2012


Hello fellow Tor developers!

Some information about me:

*I worked for EFF/Tor Project last year for **GSoC 2011, my project **was a
blocking-resistant transport evaluation framework:
https://gitweb.torproject.org/user/blanu/blocking-test.git*

I am also the author of a pluggable transport written in python:
https://github.com/blanu/Dust/tree/master/py/dust/services/socks2

I've been working on censorship resistance technology since 2001. Here are
some of my projects:
http://blanu.net/Dust-FOCI.pdf
http://blanu.net/BayesianClassification.pdf
http://blanu.net/Arcadia.pdf
http://blanu.net/Freenet2001.pdf

Some information about the project:

The overall goal of the project is to make it easy for pluggable transports
to be written in python. There has been a lot of interest in doing
pluggable transports in python, but currently they are all written from
scratch. For C transports, obfsproxy can be used to do a lot of the heavy
lifting, making it relatively easy to write a new C-based transport. I've
heard there is also a port of obfsproxy to C++. A the author of a python
transport, I am of course an advocate of writing transports in python.
Fortunately, so are some other Tor folks, so soon it will be easy to write
python transports!

The deliverables for this project are as follows:

*A library for parsing pluggable transport configuration options*

This will be a python library that authors of SOCKS proxies can use to
integrate their proxies with Tor.

*A framework (both server and client-side) for writing pluggable transports
in python*

The framework will provide a SOCKS proxy server already integrated with the
pluggable transport library. All the protocol author will need to do is
provide the obfuscation and de-obfuscation functions and a main function to
do command line parsing and call the framework.

*A python implementation of the obfsproxy command line tool*

This will be a command line program using the framework that will accept
the same command line options as the existing obfsproxy tool. It will
support the selection of an obfuscation function, although not all of the
protocols currently supported by obfsproxy will initially be available in
python.

*A python implementation of the obfs2 protocol implemented as an obfsproxy
module*

The obfs2 protocol will be implemented as a plugin for the framework and
made available to the command line tool.

*Conversion of Dust to an obfsproxy module*

The Dust protocol will be implemented as a plugin for the framework and
made available to the command line tool.

*py2exe packaging for obfsproxy*

The command line tool will be packaged into a standalone executable for
Windows.

Optional deliverables if there is sufficient time: obfsproxy modules for
other protocols, experiment with other packaging systems


Current status:

I'm working on a spec of the API for the option parsing library. It should
be available soon.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20120522/238402c9/attachment-0001.html>


More information about the tor-dev mailing list