Tor: Pluggable Transports
An increasing number of censoring countries are using Deep Packet Inspection (DPI) to classify Internet traffic flows by protocol. While Tor uses bridge relays to get around a censor that blocks by IP address, the censor can use DPI to recognize and filter Tor traffic flows even when they connect to unexpected IP addresses.
Pluggable transports transform the Tor traffic flow between the client and the bridge. This way, censors who monitor traffic between the client and the bridge will see innocent-looking transformed traffic instead of the actual Tor traffic. External programs can talk to Tor clients and Tor bridges using the pluggable transport API, to make it easier to build interoperable programs.
- Obfsproxy is a framework for implementing new transport
protocols in C using libevent. See its
web page,
git repository,
obfs2 protocol description,
and
blog post.
Maintained by George Kadianakis.
Status: Deployed (Bridges) - Flashproxy turns ordinary web browsers into bridges using
websockets, and has a little python stub to hook Tor clients to the
websocket connection. See its
web page,
git repository,
and
design paper.
Maintained by David Fifield.
Status: Implemented and tested, but there are no bundles yet; need manual setup. - StegoTorus is an Obfsproxy fork that extends it to a)
split Tor streams across multiple connections to avoid packet size
signatures, and b) embed the traffic flows in traces that look like
html, javascript, or pdf. See its
git repository.
Maintained by Zack Weinberg.
Status: Undeployed - SkypeMorph transforms Tor traffic flows so they look like
Skype Video. See its
source code
and
design paper.
Maintained by Ian Goldberg.
Status: Undeployed - Dust aims to provide a packet-based (rather than
connection-based) DPI-resistant protocol. See its
git repository.
Maintained by Brandon Wiley.
Status: Undeployed - Format-Transforming Encryption transforms Tor traffic
to arbitrary formats using their language descriptions. See
the research
paper.
Status: Undeployed
Our goal is to have a wide variety of pluggable transport designs. Many are at the research phase now, so it's a perfect time to play with them or suggest new designs. Please let us know if you find or start other projects that could be useful for making Tor's traffic flows more DPI-resistant!