[tor-commits] [community/staging] Add more details + Getting started to Snowflake Android proxy project

pili at torproject.org pili at torproject.org
Mon Mar 2 17:19:01 UTC 2020


commit 40ab8bf923c8aab9c1241b67bee429e6bbea8f8e
Author: Pili Guerra <pili at piliguerra.com>
Date:   Mon Mar 2 18:04:15 2020 +0100

    Add more details + Getting started to Snowflake Android proxy project
---
 content/gsoc/snowflake-android-proxy/contents.lr | 68 ++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/content/gsoc/snowflake-android-proxy/contents.lr b/content/gsoc/snowflake-android-proxy/contents.lr
new file mode 100644
index 0000000..0de37aa
--- /dev/null
+++ b/content/gsoc/snowflake-android-proxy/contents.lr
@@ -0,0 +1,68 @@
+_model: project
+---
+_template: layout.html
+---
+html: two-columns-page.html
+---
+active: True
+---
+section: GSoC
+---
+section_id: gsoc
+---
+color: primary
+---
+key: 9
+---
+languages: 
+Android
+---
+org: Tor
+---
+mentors:
+cohosh
+---
+difficulty: 
+---
+title: Snowflake proxy on Android
+---
+subtitle:
+
+This project entails implementing a Snowflake proxy app that will run on Android and relay a user's Tor traffic to the Tor network in the background. 
+
+---
+body:
+
+# Background
+
+[Snowflake](https://snowflake.torproject.org/) is a circumvention system in which volunteers can run proxies to help users connect to the Tor network. Users make WebRTC connections to the proxies, who then relay this data to a Snowflake bridge and then on to the Tor network. The advantage of using WebRTC is that Snowflake proxies can frequently change IP address or operate behind a NAT. At the moment, we have implemented the Snowflake proxy code as a web extension or a web badge, but we have not yet implemented a proxy that will run smoothly on Android.
+
+# Proposal
+
+This project entails implementing a Snowflake proxy app that will run on Android and relay a user's Tor traffic to the Tor network in the background. This application should allow Android users to be Snowflake *proxies*. This application doesn't even need to use Tor at all, it will be relaying Tor traffic but all it needs to do is copy it from a WebRTC connection with the client to a WebSocket connection with the bridge.
+
+There is an implementation component as well as an exploration and testing component while we figure out how to achieve good performance from a background application without using too much of the volunteer proxy's data or resources. We'd like to build in the ability for multiple users to connect through
+a proxy, but we'll start with just one user at first. This project is experimental in the sense that we don't yet know how many resources it will take and whether the proxies will be reliable enough for clients to use.
+
+# Getting Started
+
+A good way to get started is to read the resources provided below and familiarize yourself with how Snowflake works. You can then:
+
+1. Take a look at the existing WebExtension proxy code, and
+2. Install the WebExtension to try it out for yourself: https://snowflake.torproject.org/
+
+Once you feel ready to get started on some tickets, you can search for webextension (proxy) based tickets on our bug tracking system by looking for the keyword ["webextension"](https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_information&status=needs_revision&status=new&status=reopened&keywords=~webextension&component=%5ECircumvention%2FSnowflake&group=type&col=id&col=summary&col=component&col=status&col=type&col=priority&col=milestone&order=priority) in the Snowflake component.
+
+# Resources
+
+We already have the proxy implemented as a WebExtension in javascript. You can take a look at that implementation for a more detailed idea of what exactly we're trying to do:
+
+- https://gitweb.torproject.org/pluggable-transports/snowflake.git/tree/proxy
+
+Some other links that will be useful are:
+
+- the technical writeup: https://keroserene.net/snowflake/technical/
+- deployment details and open tickets: https://trac.torproject.org/projects/tor/wiki/doc/Snowflake
+
+- [Snowflake](https://snowflake.torproject.org/)
+- Snowflake repo: https://gitweb.torproject.org/pluggable-transports/snowflake.git/
\ No newline at end of file



More information about the tor-commits mailing list