Skip to content
GetTor - a Tor Browser distribution system
Python Smarty
Branch: master
Clone or download
Latest commit 047b4aa Jun 21, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gettor Indent links (#17424) Feb 16, 2016
lang wording Jun 1, 2017
log Updated sample log file with blacklist and invalid requests examples Nov 16, 2015
providers New format for links files. Oct 31, 2015
scripts Script and sample htaccess for creating GetTor API static mirror Dec 31, 2015
spec Added specs done at the beginning of gsoc. Not updated to the current… Nov 5, 2014
upload We still don't distribut Orbot/Orfox Feb 16, 2016
AUTHORS aagbsn and donncha made some nice contributions Feb 16, 2016
INSTALL-SMTP Added basic instructions to get the SMTP component working Oct 29, 2014
LICENSE
README.md Changed status of GetTor to deployed Jan 10, 2015
UPLOAD-DROPBOX Added basic instructions to get the SMTP component working Oct 29, 2014
UPLOAD-GOOGLE-DRIVE Fixed old repo URL for the new one Jan 10, 2015
blacklist.cfg Changes related to GetTor meeting of October 10th. Deleted obsolete d… Oct 18, 2014
core.cfg
core_demo.py Changes related to GetTor meeting of October 10th. Deleted obsolete d… Oct 18, 2014
create_gh_mirrors.py Script for generating landing page in gettor gh-pages and readme file… Feb 16, 2016
distribution_methods.txt Added few missing words Oct 30, 2014
get_mirrors.py Added direct link to downloads section in http(s) mirrors Aug 27, 2015
mirrors-list.txt Send mirrors option Aug 3, 2015
process_chat.py Better debugging, error handling and mirrors option for xmpp Aug 27, 2015
process_email.py Debugging improvements Aug 3, 2015
process_http.py Change from flask to build an static API Dec 31, 2015
process_tweets.py Basic logging Nov 2, 2015
providers.txt implemented google drive as a provider Jan 3, 2015
report.py Add script for generating automatic reports (#17588) Dec 8, 2015
smtp.cfg Send mirrors option Aug 3, 2015
tor-mirrors Send mirrors option Aug 3, 2015
tor-mirrors.csv Send mirrors option Aug 3, 2015
xmpp.cfg Better debugging, error handling and mirrors option for xmpp Aug 27, 2015

README.md

GetTor Revamp

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, thus avoiding direct and indirect censorship of Tor's software, in particular, 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:

  • Safe. Remember we are serving people under heavy censorship.
  • Easy to use. The fewer user interactions, the better.
  • Clean code. It should be clear to other developers/contributors how GetTor works and how it can be improved.
  • 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.

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, using the ConfigParser format (RFC 882). A sample link file should look like this:

--- BEGIN FILE ---

[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] ...

--- END FILE ---

You can also check providers/dropbox.links for a better example.

Core: the heart of GetTor. Receives requests for links for a certain OS and language and respond accordingly. It also presents an easy way for scripts to create links file.

SMTP: Receives requests via email, process them, contact the core module if 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.

XMPP: Same as above, but via XMPP (account needed). It has been tested with dukgo.com, jabber.ccc.de, riseup.net. It doesn't seem to be able to interact with gtalk users.

Twitter: Receive requests via Twitter direct messages, contact the core module if necessary and respond to the user in the specified language. Unfinished.

DB: Store anonymous info about the people that interact with GetTor in order 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.

Blacklist: Provide a mechanism to avoid flood and deny interaction to malicious users.

Providers scripts: every supported provider should have a script to automatically upload packages to 'the cloud' and create the corresponding links files. The script should consider the following steps:

  • 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).

What is the current status of the new GetTor?

Deployed and working.

How can I help?

If you have ideas to improve GetTor and/or add new providers, please tell us! 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 could use are the following:

  • Report bugs!
  • Create script for new providers, namely: Google Drive, Github. Check providers.txt
  • Create a new module for distributing links. Check distribution_methods.txt
  • Finish the Twitter module.
  • Propose code/behaviour improvements.
  • Update the specs.

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

You can’t perform that action at this time.