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

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



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.


_______________________________________________
tor-dev mailing list
tor-dev@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev