wiki:doc/Snowflake

Version 41 (modified by dcf, 7 months ago) (diff)

Fix my div.

Snowflake

Overview

Snowflake is a pluggable transport that proxies traffic through temporary proxies using WebRTC, a peer-to-peer protocol with built-in NAT punching. It aims to work kind of like flash proxy, but without flash proxy's problems with NAT.

Work in progress.

User graph: https://metrics.torproject.org/userstats-bridge-transport.html?transport=snowflake.

Evaluation at PluggableTransports/SnowFlakeEvaluation.

欢迎测试 Tor 浏览器的新网桥 (目前仅支持 Mac OS X 与 Linux) (#22782 has been fixed, it needs to be retested now)

How to run a Snowflake proxy

Option 1 (web browser)

In a browser where WebRTC is enabled:

  1. Go to https://snowflake.torproject.org/options and click the Yes button to opt in to being a proxy.
  2. Go to https://snowflake.torproject.org/snowflake and watch the status messages. You shouldn't close that page if you want to remain a snowflake bridge.

Updated screenshot of snowflake.html

Note: the Snowflake proxy code lives at snowflake.torproject.org. It formerly lived at keroserene.net/snowflake, but as of 2018-04-16 that location isn't being maintained and points to no-longer-used infrastructure. See comment:7:ticket:22874.

Option 2 (standalone)

  1. Get the #Source code.
  2. cd proxy-go
    go get
    go build
    ./proxy-go
    

Source code

https://gitweb.torproject.org/pluggable-transports/snowflake.git

The following should result in a 100% bootstrap over WebRTC:

git clone https://git.torproject.org/pluggable-transports/snowflake.git
cd snowflake/client
go get
go build
tor -f torrc

Integration with Tor Browser

2018-11-30: Snowflake is included in alpha releases of Tor Browser for GNU/Linux and macOS. Not Windows yet.

Further integration of Snowflake into Tor Browser is being tracked at ticket #19001.

To build from source code, first see doc/TorBrowser/Hacking, doc/TorBrowser/BuildingWithGitian, and gitian/README.build. In the tor-browser-build directory, make alpha or make testbuild will result in browsers with included Snowflake.

WebRTC fingerprintability

Notes at Snowflake/Fingerprinting.

Tickets

Roadmap: https://storm.torproject.org/shared/OdNtwrtRrqklh76l4PfcngBbQFDbjv_jRroj0WeSY0B
See also: https://github.com/keroserene/go-webrtc/issues

(Same query, including closed tickets)

Ticket Summary Status Owner Keywords Priority
#24465 Snowflake broken if no libatomic on host needs_revision tbb-team snowflake, tbb-rbm Medium
#25601 Multiplex - one snowflake proxy should be able to support multiple clients new snowflake, tor-pt, anti-censorship-roadmap-september Medium
#25966 Report on Tor in the UAE (and question about Snowflake) new dcf snowflake Very Low
#29207 New design for broker -- proxy protocol for snowflakes assigned ahf snowflake, design, ex-sponsor-19, anti-censorship-roadmap Very High
#29245 Tor 0.4 eventually hits "Delaying directory fetches: No running bridges" after some period of inactivity with bridges new 040-regression, snowflake, 040-deferred-20190220, network-team-roadmap-november Medium
#29293 New Design for client -- broker protocol for Snowflake new snowflake, bridges, broker, ex-sponsor-19 High
#29736 Use WebSocket protocol to communicate between snowflake proxies and broker assigned ahf snowflake, websocket, ex-sponsor-19, anti-censorship-roadmap Medium
#30310 Snowflake localization needs_review arlolra l10n, snowflake-webextension, anti-censorship-roadmap-august Medium
#30498 Proxy-go is receiving a lot of client timeouts new snowflake, ex-sponsor19 Medium
#31085 Publish the Snowflake WebExtension on AMO for Android new snowflake-webextension android Medium
#31109 Better gamify the UX for snowflake extension new snowflake-webextension, ux-team, anti-censorship-roadmap-october Medium
#31201 Allow webextension users to specify how many resources it uses new snowflake-webextension Medium
#31278 Chrome proxies hang with open idle connection new snowflake-webextension Medium
#31285 Browsers accumulate permanently open UDP sockets over time new snowflake-webextension Medium
#31288 Add an option to be able to run the Snowflake WebExt as a background app in Chrome new snowflake-webextension Medium
#31310 Refactor/remove proxy-pair state machine in webextension new snowflake-webextension Medium
#31380 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by ./TorBrowser/Tor/PluggableTransports/snowflake-client) needs_information tbb-team snowflake, tbb-rbm Medium
#31384 localize snowflake website needs_review l10n, snowflake-webextension, anti-censorship-roadmap-september Medium
#31423 Improve building documentation new snowflake, documentation Medium
#31446 Assembling WebRTC sources for snowflake hangs new tbb-team tbb-rbm snowflake Medium

Attachments (4)

Download all attachments as: .zip