2014-11-05 21:25:07 -03:00
|
|
|
GetTor Revamp
|
|
|
|
=============
|
2014-05-15 23:04:33 -07:00
|
|
|
|
2014-11-05 21:25:07 -03:00
|
|
|
GetTor Revamp done during the Google Summer of Code 2014 for the Tor Project.
|
|
|
|
This repository continues to being used for improvements and further
|
|
|
|
development.
|
|
|
|
|
|
|
|
What is GetTor?
|
|
|
|
===============
|
|
|
|
|
|
|
|
GetTor was created as a program for serving Tor and related files over SMTP,
|
2014-11-05 21:30:44 -03:00
|
|
|
thus avoiding direct and indirect _censorship_ of Tor's software, in particular,
|
2014-11-05 21:25:07 -03:00
|
|
|
the Tor Browser Bundle (TBB). Users interacted with GetTor by sending emails
|
|
|
|
to a specific email address. After the user specified his OS and language,
|
|
|
|
GetTor would send him an email with an attachment containing the requested
|
|
|
|
package. This worked well for a while, but the bundles started to get too
|
|
|
|
large for being sent as attachments in most email providers. In order to fix
|
|
|
|
this, GetTor started to send (Dropbox) links instead of attachments.
|
|
|
|
|
|
|
|
What are the goals of the new GetTor?
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
Here is a list of the main goals the new GetTor should accomplish:
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
* Safe. Remember we are serving people under _heavy censorship_.
|
2014-11-05 21:25:07 -03:00
|
|
|
* Easy to use. The fewer user interactions, the better.
|
|
|
|
* Clean code. It should be clear to other developers/contributors how GetTor
|
2014-11-05 21:30:44 -03:00
|
|
|
works and how it can be improved.
|
2014-11-05 21:25:07 -03:00
|
|
|
* Automated. We should try to automate things as much as possible.
|
|
|
|
* Language and provider friendly. It should be easy to support new languages
|
|
|
|
and to add new providers for storing packages and generate links.
|
|
|
|
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
How does the new GetTor works?
|
|
|
|
==============================
|
|
|
|
|
|
|
|
Below are some specifications and core concepts on how the new GetTor works.
|
|
|
|
|
|
|
|
*Links files*: Currently links are saved in files with the '.links' extension,
|
2014-11-05 21:25:07 -03:00
|
|
|
using the ConfigParser format (RFC 882). A sample link file should look like
|
|
|
|
this:
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
--- BEGIN FILE ---
|
|
|
|
|
2014-11-05 21:25:07 -03:00
|
|
|
[provider]
|
|
|
|
name = CoolCloudProvider
|
|
|
|
|
|
|
|
[key]
|
|
|
|
fingerprint = AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ
|
|
|
|
|
|
|
|
[linux]
|
|
|
|
en = Package (64-bit): https://cool.cloud.link64
|
|
|
|
ASC signature (64-bit): https://cool.cloud.link64.asc
|
|
|
|
Package SHA256 checksum (64-bit): superhash64,
|
|
|
|
Package (32-bit): https://cool.cloud.link32
|
|
|
|
ASC signature (32-bit): https://cool.cloud.link32.asc
|
|
|
|
Package SHA256 checksum (32-bit): superhash32
|
|
|
|
|
|
|
|
[windows]
|
|
|
|
...
|
|
|
|
|
|
|
|
[osx]
|
|
|
|
...
|
2014-11-05 21:30:44 -03:00
|
|
|
|
|
|
|
--- END FILE ---
|
2014-11-05 21:25:07 -03:00
|
|
|
|
|
|
|
You can also check providers/dropbox.links for a better example.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*Core*: the heart of GetTor. Receives requests for links for a certain OS and
|
2014-11-05 21:25:07 -03:00
|
|
|
language and respond accordingly. It also presents an easy way for scripts
|
|
|
|
to create links file.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*SMTP*: Receives requests via email, process them, contact the core module if
|
2014-11-05 21:25:07 -03:00
|
|
|
necessary and respond to the user in the specified language. People can send
|
|
|
|
blank or dummy emails to it to receive a help message describing how to ask
|
|
|
|
for links. Email forwarding is used to redirect the emails to GetTor.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*XMPP*: Same as above, but via XMPP (account needed). It has been tested with
|
2014-11-05 21:25:07 -03:00
|
|
|
dukgo.com, jabber.ccc.de, riseup.net. It doesn't seem to be able to interact
|
|
|
|
with gtalk users.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*Twitter*: Receive requests via Twitter direct messages, contact the core module
|
2014-11-05 21:25:07 -03:00
|
|
|
if necessary and respond to the user in the specified language. Unfinished.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*DB*: Store anonymous info about the people that interact with GetTor in order
|
2014-11-05 21:25:07 -03:00
|
|
|
to keep count of the number of requests per person and avoid malicious users
|
|
|
|
that try to collapse the service. It also keeps count of how many requests
|
|
|
|
GetTor has received during its lifetime. A lot of other data was being saved
|
|
|
|
in the original gsoc project, but it was changed to save the minimum.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*Blacklist*: Provide a mechanism to avoid flood and deny interaction to
|
2014-11-05 21:25:07 -03:00
|
|
|
malicious users.
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
*Providers scripts*: every supported provider should have a script to
|
2014-11-05 21:25:07 -03:00
|
|
|
automatically upload packages to 'the cloud' and create the corresponding
|
|
|
|
links files. The script should consider the following steps:
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
* Upload the packages.
|
|
|
|
* Get the sha256 checksum of the files uploaded.
|
|
|
|
* Get the PGP key fingerprint that signed the files.
|
|
|
|
* Check for .asc file for every package uploaded.
|
|
|
|
* Put all together in a '.link' file (using the core module).
|
2014-11-05 21:25:07 -03:00
|
|
|
|
|
|
|
|
|
|
|
What is the current status of the new GetTor?
|
|
|
|
=============================================
|
|
|
|
|
|
|
|
Tested internally, and currently waiting to be deployed.
|
|
|
|
|
|
|
|
|
|
|
|
How can I help?
|
|
|
|
================
|
|
|
|
|
|
|
|
If you have ideas to improve GetTor and/or add new providers, please tell us!
|
2014-11-05 21:39:37 -03:00
|
|
|
I'm currently the lead developer on this, so if you have any comments/doubts/
|
|
|
|
ideas you can send me an e-mail to ilv _at_ riseup _dot_ net or ping me (ilv),
|
|
|
|
or sukhe or mrphs at #tor-dev in the OFTC IRC network. For openning tickets you
|
|
|
|
should use the trac[0] and select the GetTor component. Some neat ideas we
|
2014-11-05 21:25:07 -03:00
|
|
|
could use are the following:
|
|
|
|
|
2014-11-05 21:30:44 -03:00
|
|
|
* Report bugs!
|
|
|
|
* Create script for new providers, namely: Google Drive, Github. Check
|
2014-11-05 21:25:07 -03:00
|
|
|
providers.txt
|
2014-11-05 21:30:44 -03:00
|
|
|
* Create a new module for distributing links. Check distribution_methods.txt
|
|
|
|
* Finish the Twitter module.
|
|
|
|
* Propose code/behaviour improvements.
|
|
|
|
* Update the specs.
|
2014-11-05 21:25:07 -03:00
|
|
|
|
|
|
|
|
|
|
|
References
|
|
|
|
===========
|
|
|
|
|
|
|
|
[0] https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_information&status=needs_review&status=needs_revision&status=new&status=reopened&component=GetTor&col=id&col=summary&col=component&col=status&col=type&col=priority&col=milestone&order=priority
|
2014-08-05 16:40:25 -04:00
|
|
|
|