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
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

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
    • Pluggabletransports
  • list

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

list

List of Pluggable Transports

Table of known PTs, tracking multiple different properties including language, platform support, TCP/UDP support, and other useful metrics: https://docs.google.com/spreadsheets/d/132n5eD52RkRAHFD8y1xvyKACH5iQb933E_c2vmX8UHg/edit?usp=sharing

Currently deployed PTs

These Pluggable Transports are currently deployed in Tor Browser, and you can start using them by downloading and using Tor Browser.

obfs4

  • Description: Is a transport with the same features as ScrambleSuit but utilizing Dan Bernstein's elligator2 technique for public key obfuscation, and the tor protocol for one-way authentication. This results in a faster protocol.
  • Language: Go
  • Maintainer: Yawning Angel
  • doc/PluggableTransports/Obfs4Evaluation

doc/meek

  • Description: Uses HTTP, relays through a third party, TLS for obfuscation.
  • Language: Go.
  • Maintainer: David Fifield
  • doc/PluggableTransports/MeekEvaluation

Format-Transforming Encryption (FTE)

  • Description: Transforms data to arbitrary application-layer traffic.
  • Language: Python/C++
  • Maintainer: Kevin Dyer
  • doc/PluggableTransports/FteEvaluation

ScrambleSuit

  • Description: Sophisticated look-like-nothing pluggable transport (in obfsproxy)
  • Language: Python
  • Maintainer: Philipp Winter
  • doc/PluggableTransports/ScrambleSuitEvaluation
  • Status: Deployed, but superseded by obfs4 (Tor Browser)

Deprecated PTs;

These PTs was once part of Tor Browser, but are not used anymore, most of the time because a better version have come out.

Dust

  • Description: Look-like-nothing pluggable transport.
  • Language: Python
  • Notes: Superseded by Dust2
  • Maintainer: Brandon Wiley

StegoTorus

  • Description: Pluggable transport with modular output formats.
  • Language: C++
  • Notes: Part of DEFIANCE framework
  • Maintainer: vmon (?)

Undeployed PTs

These Pluggable Transports exist but are not deployed as part of the Tor Browser.

obfs3

  • Description: Look-like-nothing pluggable transport (in obfsproxy)
  • Language: Python
  • Maintainer: asn
  • doc/PluggableTransports/Obfs3Evaluation

obfs2

  • Description: Look-like-nothing pluggable transport (in obfsproxy)
  • Language: Python
  • Notes: Superseded by obfs3
  • Maintainer: asn
  • doc/PluggableTransports/Obfs2Evaluation

Flashproxy

  • Description: Zerg-like browser-based proxies XXX
  • Language: Python, Go, Javascript
  • Maintainer: David Fifield
  • Uses websocket-server on the server side, which can also be used with a standalone websocket-client, without going through a flash proxy.
  • doc/PluggableTransports/FlashproxyEvaluation

Other PTs being developed

SnowFlake

  • Description: Intends to modernize the flashproxy concept with a more modern NAT traversal algorithm centered around ​WebRTC.
  • Language: The implementation is mostly Go, except for the WebRTC implementation, written in C/C++, which is called from the Go application via the cgo FFI interface.
  • Maintainer: Serene H.
  • doc/PluggableTransports/SnowFlakeEvaluation

basket2

  • Description: Modular obfs4 update with fingerprinting resistance, framing, negotiation, PQ
  • Language: Go
  • Maintainer: Yawning
  • doc/PluggableTransports/basket2evaluation

SkypeMorph

  • Description: transforms Tor traffic flows so they look like Skype Video - design paper.
  • Maintained: Ian Goldberg.

bananaphone

  • Description: Markov-chains pluggable transport
  • Language: Python
  • Maintainer: David Stainton

LODP

  • Description: UDP-based pluggable transport.
  • Language: C
  • Maintainer: Yawning

sshproxy

  • Description: SSH-based pluggable transport.
  • Language: Python
  • Notes: Actually uses the ssh binary
  • Maintainer: Yawning

hexchat

  • Description: XMPP-based pluggable transport.
  • Language: Python (SleekXMPP)
  • Notes: Bandwidth issues since most XMPP servers are throttled. Can be solved maybe with multiple hexchat bots.
  • Maintainer: Feynmann

Dust2

  • Description: Transforms traffic to arbitrary formats based on sample traffic.
  • Language: Go / Python
  • doc/PluggableTransports/Dust2Evaluation
  • Maintainer: Brandon Wiley

Code Talker Tunnel (previously: SkypeMorph)

  • Description: Skype-based pluggable transport
  • Language: C/C++
  • Notes: Actually uses the Skype binary
  • Maintainer: Ian Goldberg

git

  • Description: Git-based pluggable transport (in obfsproxy)
  • Language: Python
  • Notes: Git is poll-based. Slow.
  • Maintainer: Björgvin Ragnarsson && Pieter Westein

Castle

  • Description: Encodes messages as commands in online video games.
  • Status: Prototyped.
  • Language: C++.

marionette

  • Description: An updated FTE proxy.
  • Notes: (Presentation). Includes many formats.
  • Language: Python

lampshade

  • Description: multiplexing. mostly follows obfs4
  • Language: go
  • Maintainer: oxtoacart

TapDance

  • Description: TLS encryption MITM'ed by a participating ISP
  • Language: Go (client) / Rust+C (server)
  • Notes: Unlike Telex, ISP uses a passive tap. Part of refraction.network
  • Maintainer: Sergey

PT libraries

  • pyptlib is a Python library which makes it easier to turn a proxy into a Tor pluggable transport.
  • goptlib is a pluggable transports library for golang. Check the example client and example server.
  • PLUTO: Pluggable Libraries Using Transport Obfuscation for Android.
  • liballium is a C/C++ library for people that absolutely need to use C or C++ for a pluggable transport.
Clone repository
  • AnonOnWikiFavs
  • AppArmorForTBB
  • AutomationInventory
  • BadContent
  • BlockingBittorrent
  • CI
  • CamelCase
  • CrowdfundingHS2015
  • FlashProxyFAQ
  • FlashProxyHowto
  • FlashProxyUsability
  • HTTPSEverywhere
    • SSLObservatorySubmission
  • ImportantGoogleChromeBugs
  • InterMapTxt
  • InterTrac
View All Pages