Hi everyone,
My name is Kiran Mathew Koshy and I'm a student of IIT Patna, India. I''m
interested in participating in Google Summer of Code 2014 under Tor
project. GetTor is a service that I had tried a couple of months ago when
tor was blocked by our sysadmin, and I believe revamping getTor will have
huge impact on avoiding censorship.
*TL;DR version*:
1. A system by which a user has multiple routes of obtaining the tor
browser- dropbox , mega, google drive, and a couple of other file sharing
sites
2. If the user provides their pgp key, an encrypted reply can be sent
3. If the user requests so, the file sent should be password-protected ,
plus some random data(in a single file) should be added along with the tor
browser in order to have variable file sizes.
4. Some file sharing sites(most) allow you to transfer a file between
accounts. This is a bit unnecessary, but can be implemented if there is
time left.
5. NLP: A very simple natural language processor to process the email
and to scavenge for the requested configuration- language, os, file sharing
site, etc. Example mail: "please send me a tor browser bundle ( English)
that works on Windows. Could you send it through Mega ?" .
6. An email proxy- To counter the small chance that the mail server
doesn't allow emails to gettor(a)gettor.torproject.org.
Chances of this are low in my opinion, since gmail/ any other mail
service is
usually available.
*Details and explanation*:
1. In most cases, a sysadmin or an ISP can block known bridges,
torproject sites, and tor nodes. In this case, *the only way to ensure
that a user can access the tor browser software is by allowing multiple
sources to download it from. *
The practice of blocking File sharing sites is also common, so sites
like dropbox, google drive, box, etc are also important. The code will be
written in a modular format such that addinga new file sharing site would
be equal to adding a couple of urls of their REST API, or at most, writing
a new module consisting of 10-15 lines of code. I have worked with the
APIs of file sharing sites before, and most are quite similar.
2. If PGP keys are sent, an encrypted reply follows. No brainer.
3. Bundling the software with a file of random size into a password
protected tar would prevent snooping based on size of the https request. A
little bit far fetched, yes, but good if you are up against your government.
This would prove to be cpu intensive and network intensive, since the
server will have to encrypt the file and upload it to a file sharing site
every time someone requests it. Therefore, this will be limited to one or
two instances at any given time. It is also possible to upload multiple
instances of encrypted tor browser software, and store the keys in the
server.
4. Self Explanatory
5. An NLP would be very simple to implement in this case, in order to
fish out the keywords and choose the correct configuration.
Example mail: "please send me a tor browser bundle ( English) that works
on Windows. Could you send it through Mega ?" . The keywords in this case
would be: 1. tor browser bundle. 2. English. 3.Windows 4.Mega. A list of
such keywords will be stored on the server.
I believe an NLP would be better than the current arrangement.
6. Self Explanatory.
Since the current getTor doesn't come close to this, I believe it is best
to *rewrite it, reusing select parts*. I havce a good experience in C++ and
Python. I completed Google Summer of Code 2013 under Wikimedia Foundation,
so this is my second year for GSOC.
Since I'm a bit late to apply, I will be submitting this as a proposal
right away. Please comment on any changes you would like to incorporate in
this.
--
Kiran Mathew Koshy
Electrical Engineering,
IIT Patna,
Patna,
India