GSoC/GCI Archive
Google Summer of Code 2012

Electronic Frontier Foundation/The Tor Project

Web Page:

Mailing List:

The Electronic Frontier Foundation (EFF), founded in 1990, works in the public interest to protect fundamental civil liberties in the digital age. The Internet and other communication technologies can herald the most liberating era of human history---or the most regulated and controlled. The EFF works to defend our basic rights to free speech, privacy and free and open communications, and advocates for sane policies on digital copyright, software patents and electronic voting. EFF is a membership supported organization with 29 full-time staff.

The Tor Project is a free-software non-profit project to build an anonymity toolkit used by individuals, companies, governments, and law enforcement around the world. The Tor network has grown since its start in 2002 to several hundred thousand active users pushing over 12 Gbps of traffic. The Tor Project has a staff of 17 developers, researchers, and advocates, plus several dozen volunteers who help out on a daily basis.

This proposal is a combined submission from EFF and Tor.


  • Anonymous Python Application Framework A simple static file server running over the tor Hidden Service network.
  • Implementing Hidden Service Configuration and Bandwidth Scheduling Plugins I would be extending PluginEngine to use the Torrc class and implement the hidden service configuration panel as a plugin. I would also be creating the bandwidth scheduling plugin.
  • Obfuscating the Encryption in a HTTP-based Obfsproxy protocol Recently, Tor project has launched Obfsproxy as a response to Iran’s filtering of SSL protocol. Similar behavior has been observed such as throttling SSL, or blocking SSH for a long period of time. This pattern of behavior suggests that a change of model from blacklisting protocols to white-listing model using DPI, is not out of sight at least for a short period of time during critical periods.Among all protocols, it is not hard to guess that HTTP will be last survivor on the white-list. On the downside, encrypted content on HTTP communication can be easily detected and put the users in danger. In this project, I will 1.Implement a HTTP-based pluggable protocol for Obfsproxy. 2.Research the state-of-art methods to conceal encryption. 3.Implement the chosen solution into the protocol.
  • Pluggable Transports in Python The purpose of this project is to enable pluggable transports written in python through the creation of a python port of the obfsproxy framework.
  • Stem Improvements and Arm port. Stem is a contoller library for Tor. This proposal involves implementing the general controller class to Stem, integrating the safe cookie authentication method and implementing the descriptor parsers for network status and microdescriptor document. It also involves porting Arm, the Anonymous Relay Monitor to use Stem.