Hello fellow Tor developers!<br><br>Some information about me:<br><br><strong id="internal-source-marker_0.6368865806143731" style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:medium;vertical-align:baseline;background-color:rgb(246,246,246);font-weight:bold;color:rgb(0,0,0);font-style:normal;font-variant:normal;letter-spacing:normal;line-height:19px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-family:Times"><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:15px;vertical-align:baseline;background-color:transparent;font-family:Arial;font-weight:normal;white-space:pre-wrap">I worked for EFF/Tor Project last year for </span></strong><strong id="internal-source-marker_0.6368865806143731" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:medium;vertical-align:baseline;background-color:rgb(246,246,246);font-weight:bold;color:rgb(0,0,0);font-style:normal;font-variant:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-family:Times;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;font-family:Arial;font-weight:normal;white-space:pre-wrap;background-repeat:initial initial">GSoC 2011, my project </span></strong><strong id="internal-source-marker_0.6368865806143731" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:medium;vertical-align:baseline;background-color:rgb(246,246,246);font-weight:bold;color:rgb(0,0,0);font-style:normal;font-variant:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-family:Times;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;font-family:Arial;font-weight:normal;white-space:pre-wrap;background-repeat:initial initial">was a blocking-resistant transport evaluation framework: </span><a href="https://gitweb.torproject.org/user/blanu/blocking-test.git" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:16px;vertical-align:baseline;background-color:transparent;color:rgb(0,83,139);text-decoration:underline;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;font-family:Arial;color:rgb(17,85,204);font-weight:normal;white-space:pre-wrap;background-repeat:initial initial">https://gitweb.torproject.org/user/blanu/blocking-test.git</span></a></strong><br>
<br>I am also the author of a pluggable transport written in python: <a href="https://github.com/blanu/Dust/tree/master/py/dust/services/socks2">https://github.com/blanu/Dust/tree/master/py/dust/services/socks2</a><br><br>
I've been working on censorship resistance technology since 2001. Here are some of my projects:<br><a href="http://blanu.net/Dust-FOCI.pdf">http://blanu.net/Dust-FOCI.pdf</a><br><a href="http://blanu.net/BayesianClassification.pdf">http://blanu.net/BayesianClassification.pdf</a><br>
<a href="http://blanu.net/Arcadia.pdf">http://blanu.net/Arcadia.pdf</a><br><a href="http://blanu.net/Freenet2001.pdf">http://blanu.net/Freenet2001.pdf</a><br><br>Some information about the project:<br><br>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!<br>
<br><p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span id="internal-source-marker_0.6368865806143731" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">The deliverables for this project are as follows:</span></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">A library for parsing pluggable transport configuration options</span></span></strong></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">This will be a python library that authors of SOCKS proxies can use to integrate their proxies with Tor.</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">A framework (both server and client-side) for writing pluggable transports in python</span></span></strong><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">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.</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">A python implementation of the obfsproxy command line tool</span></span></strong><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">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.</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">A python implementation of the obfs2 protocol implemented as an obfsproxy module</span></span></strong><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">The obfs2 protocol will be implemented as a plugin for the framework and made available to the command line tool.</span></span><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">Conversion of Dust to an obfsproxy module</span></span></strong><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">The Dust protocol will be implemented as a plugin for the framework and made available to the command line tool.</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<strong style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-weight:bold;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">py2exe packaging for obfsproxy</span></span></strong><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial"></span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-repeat:initial initial">
<span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial;background-repeat:initial initial"><span style="margin:0px;padding:0px;border:0px;outline:0px;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap;background-repeat:initial initial">The command line tool will be packaged into a standalone executable for Windows.</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial"><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap">Optional deliverables if there is sufficient time: obfsproxy modules for other protocols, experiment with other packaging systems</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial"><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap"><br>
</span></span></p><p style="margin:0px 0px 10px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial"><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap">Current status:</span></span></p>
<p style="margin:0px 0px 10px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
I'm working on a spec of the API for the option parsing library. It should be available soon.</p><p style="margin:0px 0px 10px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:rgb(246,246,246);line-height:19px;color:rgb(0,0,0);font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:12px;vertical-align:baseline;background-color:transparent;font-family:Arial"><span style="margin:0px;padding:0px;border:0px none;outline:0px none;font-size:15px;vertical-align:baseline;background-color:transparent;white-space:pre-wrap"></span></span></p>