Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Wiki
    • Doc
  • Snowflake

Last edited by Alexander Færøy Jun 15, 2020
Page history

Snowflake

Snowflake

Overview

PluggableTransportsWebRTC, 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.

  • [https://lists.torproject.org/pipermail/tor-dev/2016-January/010310.html "[tor-dev] Introducing Snowflake (webrtc pt)"]
  • technical writeup
  • thesis chapter

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

PluggableTransports/SnowFlakeEvaluation

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

snowflake-schematic.png

How to run a Snowflake proxy

Option 1 (addon)

Firstly make sure you have WebRTC enabled. Then you can install this addon for Firefox or this one for Chrome which will let you become a Snowflake proxy. It can also inform you about how many people you have helped in the last 24 hours.

Option 2 (web browser)

In a browser where WebRTC is enabled:

  1. Go to https://snowflake.torproject.org/embed and toggle the button to opt in to being a proxy. You shouldn't close that page if you want to remain a snowflake bridge.

Option 3 (standalone)

  1. First you will need to install and configure Go to build the standalone proxy-go code. If you are running Ubuntu or Debian, you can install Go by executing apt install golanghttps://golang.org/dl/
mkdir -p ~/go/src
echo "export GOPATH=$HOME/go" >> ~/.bash_profile
source ~/.bash_profile
}}}
1. Clone the [[#Source code]] the `src/` directory of your workspace.
{{{
cd $GOPATH/src
git clone https://git.torproject.org/pluggable-transports/snowflake.git
}}}
2. Get the dependencies and build the source code.
{{{
cd snowflake
cd proxy
go get
go build
}}}
3. For our fallback proxy-go instances on snowflake-broker, [we manage proxy-go instances using runit](https://trac.torproject.org/projects/tor/wiki/org/teams/AntiCensorshipTeam/SnowflakeBridgeSurvivalGuide#Standaloneproxy-goinstances). However, a simpler nohup command will also allow you to run an instance in the background.
`nohup ./proxy &`
## 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 (moved).

doc/TorBrowser/Hackingmake alpha or make testbuild will result in browsers with included Snowflake.

WebRTC fingerprintability

Snowflake/Fingerprinting

Reporting bugs

If you encounter problems with Snowflake as a client or a proxy, please file a ticket using our bug tracker. To do so, you will have to create an account or log in using the shared cypherpunks account with password writecode.

Please try to be as descriptive as possible with your ticket and if possible include log messages that will help us reproduce the bug. Consider adding keywords snowflake-webextension or snowflake-client to let us know how which part of the Snowflake system is experiencing problems.

Tickets

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

[query:component=Circumvention/Snowflake&or&keywords=~snowflake&order=id (Same query, including closed tickets)]

TicketQuery(status=!closed,component=Circumvention/Snowflake,or,status=!closed,keywords=~snowflake,order=id,status=!closed,format=table,col=id

Clone repository
  • AnonOnWikiFavs
  • AppArmorForTBB
  • AutomationInventory
  • BadContent
  • BlockingBittorrent
  • CI
  • CamelCase
  • CrowdfundingHS2015
  • FlashProxyFAQ
  • FlashProxyHowto
  • FlashProxyUsability
  • HTTPSEverywhere
    • SSLObservatorySubmission
  • ImportantGoogleChromeBugs
  • InterMapTxt
  • InterTrac
View All Pages