Introduction
This repository is a cross-project collaboration space for censorship circumvention tools. Our initial focus is expanding Tor's pluggable transports work to easily work in a wider variety of circumvention tools. Initial collaborators include Lantern, Psiphon, Tor and uProxy.
Collaboration
There are two main collaboration spaces:
Mailing List: Our Google Group
IRC Meeting: The Pluggable Transports community conducts biweekly IRC meetings. You can find us in #tor-dev at the OFTC network every second Wednesday at 16:00 UTC.
Goals
We hope to get to refactor Tor's Pluggable Transport specification in to a core specification that can be used by a variety of circumvention tools. Each tool can then write up their own project-specific specification for how to make a pluggable transport work with its internal infrastructure.
What is a Pluggable Transport?
Pluggable Transports were defined by Tor, but some (FTEProxy, Meek) have already been adapted to other tools (Lantern, Psiphon. They are:
Standalone processes that accept traffic from a client and route it to a server
Require client and server-side processes that know how to talk to each other
Are aimed at obfuscating traffic so that censors can't tell it's coming from a circumvention tool.
The obfuscation is the hard part, and as long as it's built using fairly generic interfaces (the way that fteproxy is), it can be reused quite easily across projects, even though their mechanisms for managing and communicating with pluggable transports are different.
Pluggable Transport Integrations
Transports | Support in |
---|---|
obfs2 | Tor |
obfs3 | Tor, Lantern |
FTE | Tor, Lantern, uProxy |
scramblesuit | Tor |
obfuscatedssh | Psiphon |
meek | Tor, Psiphon |
flashproxy | Tor |
socks-rtc | uProxy |
flashlight | Lantern |
Tor's PT links:
Extended ORPort authentication
Also: https://www.torproject.org/docs/pluggable-transports https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports