Hi!

My name is Israel Leiva, I'm a computer science student at University of Santiago, Chile. More info about me in [1]. I'm interested in the 'Revamp GetTor' project for the Google summer of code. I think that GetTor has a huge impact on how to avoid censorship, and therefore it could be expanded to do a lot more of what it does now. Here is my idea:

i) A modular design, with a core module in charge of transmitting data to the others modules, each one of them would represent a different "service" (e.g. SMTP)

ii) The core module will be in charge of receiving requests from the other modules and answer them. For example, the SMTP module will say "Give me the URL links for TBB in this language" and the core module will answer with the desired links. These links could be retrieved from several locations, my proposal is that the links could be stored in a private git repository available only to trusted Tor developers, so the links and other data could vary with time according to the different censorship behaviours.

iii) As I said, the other modules will each represent a different "service". I propose the following three for starting:

   * SMTP: Enhance the current bot. I tried it a couple of days ago and it didn't work as I expected (sent me a windows link when I asked for linux).

   * Twitter: this module will answer requests via twitter, either via mentions or via direct messages. It will ask for the corresponding links to the core module. There are lots of bots implemented out there, no need to reinvent the wheel.
   
   * Skype: this module will listen for calls or chats and will answer with a file transfer or message with the links. I believe this can be done using the sevabot [2] in Python or the Skype::Any [3] in Perl.
   
The main idea is that this new design would allow for new services to be implemented in the future.
   
  
** OTHER IDEAS **

Here are some minor ideas that could also be considered:
   
a) Most OS bring tools to make DNS requests, and an (experimented) user could make custom requests for TXT records that contain links. I know this isn't the case for most people, but it could be helpful.
   
b) Users could send formatted mails with their public PGP keys to the SMTP service, and the bot will answer them with encrypted content.

c) Users could notify services with censored links, this means that if, for example, a user requests the links via SMTP and one of them has been blocked, he/she could send a message notifying this to the SMTP service. This info along with stats about which services are more popular will be saved in a log file (I think this is how is working now) and/or a database. The purpose of this data will be to enhance GetTor, no info about users will be recorded.

d) Other option to storage could be Github (as you may know, repos can be downloaded as ZIP files).

e) For all the above, GetTor will need official twitter/github accounts.

f) Comunication between modules could be done via system commands, but I'm open to any other suggestions. This communication will involve sending links (trusted servers, github repo, dropbox accounts) or local uris (~/tbb/latest.tgz).

A basic diagram representing what I've tried to explain can be found on [4].

I think the best way to achieve this is to rewrite GetTor, but if you choose extend the current code to do it I'm okay with it. If you choose the former, I could do it in Python, eventhough I have a lot more experience in Perl (I've coded a module to automate the grading of programming tasks [5]).

This is just a draft, please let me know if you find this is the way to go and I'll work in the details and a possible timeline to see how much can be done in 4 months. 


[1] http://ileiva.github.io
[2] https://github.com/opensourcehacker/sevabot
[3] http://search.cpan.org/~akiym/Skype-Any-0.06/lib/Skype/Any.pm
[4] https://raw.github.com/ileiva/Tor/master/revamp-gettor-simplediagram.txt
[5] https://metacpan.org/author/ILV

best.
--
israel