wiki:doc/Snowflake

Version 39 (modified by dcf, 6 months ago) (diff)

Remove obsolete Tor Browser build instructions.

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

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 Medium
#25966 Report on Tor in the UAE (and question about Snowflake) new dcf snowflake Very Low
#27385 https://snowflake.torproject.org/embed is confusing new snowflake, ux-team High
#29207 New design for broker -- proxy protocol for snowflakes new snowflake, design 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 Medium
#29293 New Design for client -- broker protocol for Snowflake new snowflake, bridges, broker High
#29734 Broker should receive country stats information from Proxy and Client merge_ready cohosh snowflake, geoip, stats Medium
#29736 Use WebSocket protocol to communicate between snowflake proxies and broker assigned ahf snowflake, websocket Medium
#29863 Add disk space monitoring for snowflake infrastructure merge_ready snowflake Medium
#30310 Snowflake localization new l10n, snowflake Medium
#30498 Proxy-go is receiving a lot of client timeouts new snowflake Medium
#30513 Add {arlolra, cohosh, dcf} to default Cc of Circumvention/Snowflake tickets new qbi snowflake Medium

Attachments (4)

Download all attachments as: .zip