Signed-off-by: hiromipaw <hiro@torproject.org>
... | ... |
@@ -141,7 +141,7 @@ |
141 | 141 |
<li><strong>Description:</strong> It transforms Tor traffic to arbitrary |
142 | 142 |
formats using their language descriptions. See the <a href="https://kpdyer.com/publications/ccs2013-fte.pdf">research paper</a>.</li> |
143 | 143 |
<li><strong>Language:</strong> Python/C++</li> |
144 |
- <li><strong>Maintainger:</strong> Kevin Dyer</li> |
|
144 |
+ <li><strong>Maintainer:</strong> Kevin Dyer</li> |
|
145 | 145 |
<li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/FteEvaluation">FTE Evaluation</a></li> |
146 | 146 |
</ul> |
147 | 147 |
</li> |
... | ... |
@@ -150,7 +150,7 @@ |
150 | 150 |
<ul> |
151 | 151 |
<li><strong>Description:</strong> Is a pluggable transport that protects against follow-up probing attacks and is also capable of changing its network fingerprint (packet length distribution, inter-arrival times, etc.).</li> |
152 | 152 |
<li><strong>Language:</strong> Python</li> |
153 |
- <li><strong>Maintainger:</strong> Philipp Winter</li> |
|
153 |
+ <li><strong>Maintainer:</strong> Philipp Winter</li> |
|
154 | 154 |
<li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/ScrambleSuitEvaluation"> ScrambleSuit Evaluation</a></li> |
155 | 155 |
</ul> |
156 | 156 |
</li> |
... | ... |
@@ -177,7 +177,7 @@ |
177 | 177 |
<ul> |
178 | 178 |
<li><strong>Description:</strong>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 <a href="https://gitweb.torproject.org/stegotorus.git">git repository</a>.</li> |
179 | 179 |
<li><strong>Language:</strong> C++</li> |
180 |
- <li><strong>Maintainger:</strong> Zack Weinberg</li> |
|
180 |
+ <li><strong>Maintainer:</strong> Zack Weinberg</li> |
|
181 | 181 |
<li><strong>Evaluation:</strong> none</li> |
182 | 182 |
</ul> |
183 | 183 |
</li> |
... | ... |
@@ -186,7 +186,7 @@ |
186 | 186 |
<ul> |
187 | 187 |
<li><strong>Description:</strong> It transforms Tor traffic flows so they look like Skype Video. See its <a href="http://crysp.uwaterloo.ca/software/SkypeMorph-0.5.1.tar.gz">source code</a> and <a href="http://cacr.uwaterloo.ca/techreports/2012/cacr2012-08.pdf">design paper</a>.</li> |
188 | 188 |
<li><strong>Language:</strong></li> |
189 |
- <li><strong>Maintainger:</strong> Ian Goldberg.</li> |
|
189 |
+ <li><strong>Maintainer:</strong> Ian Goldberg.</li> |
|
190 | 190 |
<li><strong>Evaluation:</strong> none</li> |
191 | 191 |
</ul> |
192 | 192 |
</li> |
... | ... |
@@ -195,7 +195,7 @@ |
195 | 195 |
<ul> |
196 | 196 |
<li><strong>Description:</strong> It aims to provide a packet-based (rather than connection-based) DPI-resistant protocol. See its <a href="https://github.com/blanu/Dust">git repository</a>.</li> |
197 | 197 |
<li><strong>Language:</strong> Python</li> |
198 |
- <li><strong>Maintainger:</strong> Brandon Wiley.</li> |
|
198 |
+ <li><strong>Maintainer:</strong> Brandon Wiley.</li> |
|
199 | 199 |
<li><strong>Evaluation:</strong> none</li> |
200 | 200 |
</ul> |
201 | 201 |
</li> |
... | ... |
@@ -80,7 +80,7 @@ |
80 | 80 |
|
81 | 81 |
<p> |
82 | 82 |
<strong>obfs4</strong> is currently the most effective transport to bypass |
83 |
- censorship. We are asking voluntters to run bridges for it.<br /> To learn |
|
83 |
+ censorship. We are asking volunteers to run bridges for it.<br /> To learn |
|
84 | 84 |
how to run this transport, please visit the <a |
85 | 85 |
href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy |
86 | 86 |
wiki page</a>. |
Thanks Andrew McGlashan for the report
... | ... |
@@ -204,10 +204,6 @@ |
204 | 204 |
|
205 | 205 |
<br /><br /> |
206 | 206 |
|
207 |
- <p> Also see the <emph>unofficial</emph> pluggable transports <a |
|
208 |
- href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports">wiki |
|
209 |
- page</a> for more pluggable transport information.</p> |
|
210 |
- |
|
211 | 207 |
<p>Our goal is to have a wide variety of Pluggable Transport designs. You can check out a <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/list">full list of Pluggables Transports here</a>.</p> |
212 | 208 |
|
213 | 209 |
<p>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! |
... | ... |
@@ -11,28 +11,42 @@ |
11 | 11 |
</div> |
12 | 12 |
<div id="maincol"> |
13 | 13 |
<h1>Tor: Pluggable Transports</h1> |
14 |
- |
|
14 |
+ |
|
15 | 15 |
<hr> |
16 |
- |
|
17 |
- <h3>Sometimes the Tor network is censored, and you can't connect it.</h3> |
|
18 |
- |
|
16 |
+ |
|
17 |
+ <h3>Sometimes the Tor network is censored, and you can't connect to |
|
18 |
+ it.</h3> |
|
19 |
+ |
|
19 | 20 |
<br /> |
20 |
- |
|
21 |
- <p>An increasing number of censoring countries are using Deep Packet Inspection (DPI) to classify Internet traffic flows by protocol. While Tor uses <a href="<page docs/bridges>">bridge relays</a> 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. |
|
21 |
+ |
|
22 |
+ <p> |
|
23 |
+ An increasing number of censoring countries are using Deep Packet |
|
24 |
+ Inspection (DPI) to classify Internet traffic flows by protocol. |
|
25 |
+ While Tor uses <a href="<page docs/bridges>">bridge relays</a> to |
|
26 |
+ get around a censor that blocks by IP address, the censor can use |
|
27 |
+ DPI to recognize and filter Tor traffic flows even when they connect |
|
28 |
+ to unexpected IP addresses. |
|
22 | 29 |
</p> |
23 | 30 |
|
24 | 31 |
<h3>Pluggable Transports help you bypass censorship against Tor.</h3> |
25 |
- |
|
32 |
+ |
|
26 | 33 |
<br /> |
27 |
- |
|
28 |
- <p>Pluggable Transports (PT) 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 <a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable transport API</a>, to make it easier to build interoperable programs. |
|
34 |
+ |
|
35 |
+ <p> |
|
36 |
+ Pluggable Transports (PT) transform the Tor traffic flow between the client |
|
37 |
+ and the bridge. This way, censors who monitor traffic between the client |
|
38 |
+ and the bridge will see innocent-looking transformed traffic instead of the |
|
39 |
+ actual Tor traffic. |
|
40 |
+ External programs can talk to Tor clients and Tor bridges using the <a |
|
41 |
+ href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable |
|
42 |
+ transport API</a>, to make it easier to build interoperable programs. |
|
29 | 43 |
</p> |
30 | 44 |
|
31 | 45 |
|
32 |
- <h3>Here you will learn:</h3> |
|
33 |
- |
|
46 |
+ <h3>Learn more:</h3> |
|
47 |
+ |
|
34 | 48 |
<br /> |
35 |
- |
|
49 |
+ |
|
36 | 50 |
<ul> |
37 | 51 |
<li><a href="#user">How to use a Pluggable Transport</a></li> |
38 | 52 |
<li><a href="#operator">How to become a PT bridge operator</a></li> |
... | ... |
@@ -44,7 +58,7 @@ |
44 | 58 |
<h2 id="user">How to use PTs to bypass censorship</h2> |
45 | 59 |
<p>If connections to the Tor network are being blocked by your ISP or country, follow these instructions: |
46 | 60 |
</p> |
47 |
- |
|
61 |
+ |
|
48 | 62 |
<a href="$(IMGROOT)/PT/2016-07-how-to-use-PT.png"> <img src="$(IMGROOT)/PT/2016-07-how-to-use-PT.png" width="830" alt="How to use PTs: 1-download tor (send email to gettor@torproject.org); 2 select configure 3; check my isp blocks tor option; 4 select obfs4; 5 press connect" /></a> |
49 | 63 |
<!-- TODO: move alt to instructions in plain text for visually impaird users --> |
50 | 64 |
|
... | ... |
@@ -58,27 +72,39 @@ |
58 | 72 |
|
59 | 73 |
<br /> |
60 | 74 |
|
61 |
- <p>Anyone can set up a PT bridge server and help provide bandwidth to users who needs it. Once you set up a transport type, your bridge will automatically advertise support for the transport in its descriptor.</p> |
|
75 |
+ <p> |
|
76 |
+ Anyone can set up a PT bridge server and help provide bandwidth to users |
|
77 |
+ who needs it. Once you set up a transport type, your bridge will |
|
78 |
+ automatically advertise support for the transport in its descriptor. |
|
79 |
+ </p> |
|
62 | 80 |
|
63 |
- <p><strong>obfs4</strong> is currently the most effective transport to bypass censorship. We are asking voluntters to run bridges for it.<br /> |
|
64 |
- To learn how to run this transport, please visit the <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
81 |
+ <p> |
|
82 |
+ <strong>obfs4</strong> is currently the most effective transport to bypass |
|
83 |
+ censorship. We are asking voluntters to run bridges for it.<br /> To learn |
|
84 |
+ how to run this transport, please visit the <a |
|
85 |
+ href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy |
|
86 |
+ wiki page</a>. |
|
65 | 87 |
</p> |
66 | 88 |
|
67 |
- <p><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#BecomeaPTbridgeoperator">Go to our wiki</a> to learn how to set up other types of PTs.</p> |
|
89 |
+ <p> |
|
90 |
+ <a |
|
91 |
+ href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#BecomeaPTbridgeoperator">Go |
|
92 |
+ to our wiki</a> to learn how to set up other types of PTs. |
|
93 |
+ </p> |
|
68 | 94 |
|
69 | 95 |
<hr> |
70 | 96 |
|
71 | 97 |
<h2 id="developer">Become a PT developer:</h2> |
72 | 98 |
|
73 |
- <p> The links below are the main documentation that will help guide through what you should consider while designing your PT:</p> |
|
99 |
+ <p> The links below are the main documentation for PT developers</p> |
|
74 | 100 |
|
75 | 101 |
<ul> |
76 | 102 |
<li><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/GuidelinesForDeployingPTs">Guidelines for deploying Pluggable Transports on Tor Browser</a></li> |
77 |
- <li><a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">PT technical spec</a>​</li> |
|
103 |
+ <li><a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">PT technical spec</a></li> |
|
78 | 104 |
<li><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/PTEvaluationCriteria">Pluggable Transports Evaluation Criteria</a></li> |
79 | 105 |
</ul> |
80 | 106 |
|
81 |
- <p><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports">Our wiki</a> is also a great source of information, such as how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#Waystofollowandjointheconversation:">get in touch with the community</a>, <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/ideas">ideas for new PTs</a>, how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/WorkListForDevsToHelpOutWith">help with PTs already deployed</a> and much more.</p> |
|
107 |
+ <p><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports">Our wiki</a> is also a great source of information, such as how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#Waystofollowandjointheconversation">get in touch with the community</a>, <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/ideas">ideas for new PTs</a>, how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/WorkListForDevsToHelpOutWith">help with PTs already deployed</a> and much more.</p> |
|
82 | 108 |
|
83 | 109 |
<hr> |
84 | 110 |
|
... | ... |
@@ -102,7 +128,7 @@ |
102 | 128 |
|
103 | 129 |
<li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>meek</b></a></li> |
104 | 130 |
<ul> |
105 |
- <li><strong>Description:</strong> Is a transport that uses HTTP for carrying bytes and TLS for obfuscation. Traffic is relayed through a third-party server (​Google App Engine). It uses a trick to talk to the third party so that it looks like it is talking to an unblocked server.</li> |
|
131 |
+ <li><strong>Description:</strong> Is a transport that uses HTTP for carrying bytes and TLS for obfuscation. Traffic is relayed through a third-party server (Google App Engine). It uses a trick to talk to the third party so that it looks like it is talking to an unblocked server.</li> |
|
106 | 132 |
<li><strong>Language:</strong> Go</li> |
107 | 133 |
<li><strong>Maintainer:</strong> David Fifield</li> |
108 | 134 |
<li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/MeekEvaluation">meek Evaluation</a></li> |
... | ... |
@@ -173,9 +199,9 @@ |
173 | 199 |
<li><strong>Evaluation:</strong> none</li> |
174 | 200 |
</ul> |
175 | 201 |
</li> |
176 |
- |
|
202 |
+ |
|
177 | 203 |
</ul> |
178 |
- |
|
204 |
+ |
|
179 | 205 |
<br /><br /> |
180 | 206 |
|
181 | 207 |
<p> Also see the <emph>unofficial</emph> pluggable transports <a |
... | ... |
@@ -10,85 +10,123 @@ |
10 | 10 |
<a href="<page docs/pluggable-transports>">Pluggable Transports</a> |
11 | 11 |
</div> |
12 | 12 |
<div id="maincol"> |
13 |
- <h2>Tor: Pluggable Transports</h2> |
|
13 |
+ <h1>Tor: Pluggable Transports</h1> |
|
14 |
+ |
|
14 | 15 |
<hr> |
15 |
- |
|
16 |
- <p> |
|
17 |
- An increasing number of censoring countries are using Deep Packet |
|
18 |
- Inspection (DPI) to classify Internet traffic flows by protocol. |
|
19 |
- While Tor uses <a href="<page docs/bridges>">bridge relays</a> to |
|
20 |
- get around a censor that blocks by IP address, the censor can use |
|
21 |
- DPI to recognize and filter Tor traffic flows even when they connect |
|
22 |
- to unexpected IP addresses. |
|
16 |
+ |
|
17 |
+ <h3>Sometimes the Tor network is censored, and you can't connect it.</h3> |
|
18 |
+ |
|
19 |
+ <br /> |
|
20 |
+ |
|
21 |
+ <p>An increasing number of censoring countries are using Deep Packet Inspection (DPI) to classify Internet traffic flows by protocol. While Tor uses <a href="<page docs/bridges>">bridge relays</a> 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. |
|
23 | 22 |
</p> |
24 | 23 |
|
25 |
- <p> |
|
26 |
- Pluggable Transports (PT) transform the Tor traffic flow between the client |
|
27 |
- and the bridge. This way, censors who monitor traffic between the |
|
28 |
- client and the bridge will see innocent-looking transformed traffic |
|
29 |
- instead of the actual Tor traffic. |
|
30 |
- External programs can talk to Tor clients and Tor bridges using the <a |
|
31 |
-href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable |
|
32 |
-transport API</a>, to make it easier to build interoperable programs. |
|
24 |
+ <h3>Pluggable Transports help you bypass censorship against Tor.</h3> |
|
25 |
+ |
|
26 |
+ <br /> |
|
27 |
+ |
|
28 |
+ <p>Pluggable Transports (PT) 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 <a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable transport API</a>, to make it easier to build interoperable programs. |
|
33 | 29 |
</p> |
34 | 30 |
|
35 |
- <h3>How to use PTs to bypass censorship</h3> |
|
36 |
- <p> |
|
37 |
- If connections to the Tor network are being blocked by your ISP or |
|
38 |
- country, follow these instructions: |
|
31 |
+ |
|
32 |
+ <h3>Here you will learn:</h3> |
|
33 |
+ |
|
34 |
+ <br /> |
|
35 |
+ |
|
36 |
+ <ul> |
|
37 |
+ <li><a href="#user">How to use a Pluggable Transport</a></li> |
|
38 |
+ <li><a href="#operator">How to become a PT bridge operator</a></li> |
|
39 |
+ <li><a href="#developer">How to become a PT developer</a></li> |
|
40 |
+ <li><a href="#list-of-pts">List of PTs organized by their status</a></li> |
|
41 |
+ </ul> |
|
42 |
+ <br /><hr> |
|
43 |
+ |
|
44 |
+ <h2 id="user">How to use PTs to bypass censorship</h2> |
|
45 |
+ <p>If connections to the Tor network are being blocked by your ISP or country, follow these instructions: |
|
39 | 46 |
</p> |
40 |
- <a href="$(IMGROOT)/PT/2016-07-how-to-use-PT.png"> |
|
41 |
- <img src="$(IMGROOT)/PT/2016-07-how-to-use-PT.png" width="830" |
|
42 |
- alt="How to use PTs: 1-download tor (send email to gettor@torproject.org) 2-select configure 3-check 'my isp blocks tor...' |
|
43 |
- 4-select obfs4 5-press connect" /></a> |
|
47 |
+ |
|
48 |
+ <a href="$(IMGROOT)/PT/2016-07-how-to-use-PT.png"> <img src="$(IMGROOT)/PT/2016-07-how-to-use-PT.png" width="830" alt="How to use PTs: 1-download tor (send email to gettor@torproject.org); 2 select configure 3; check my isp blocks tor option; 4 select obfs4; 5 press connect" /></a> |
|
44 | 49 |
<!-- TODO: move alt to instructions in plain text for visually impaird users --> |
45 | 50 |
|
51 |
+ <br /><br /> |
|
52 |
+ |
|
53 |
+ <hr> |
|
54 |
+ |
|
55 |
+ <h2 id="operator">Become a PT brigde operator:</h2> |
|
56 |
+ |
|
46 | 57 |
<h3>How to run PTs to help censored users</h3> |
47 |
- <p> |
|
48 |
- obfs4 is currently the most effective transport to bypass censorship. |
|
49 |
- To learn how to run this transport, please visit the <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
58 |
+ |
|
59 |
+ <br /> |
|
60 |
+ |
|
61 |
+ <p>Anyone can set up a PT bridge server and help provide bandwidth to users who needs it. Once you set up a transport type, your bridge will automatically advertise support for the transport in its descriptor.</p> |
|
62 |
+ |
|
63 |
+ <p><strong>obfs4</strong> is currently the most effective transport to bypass censorship. We are asking voluntters to run bridges for it.<br /> |
|
64 |
+ To learn how to run this transport, please visit the <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
50 | 65 |
</p> |
51 | 66 |
|
67 |
+ <p><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#BecomeaPTbridgeoperator">Go to our wiki</a> to learn how to set up other types of PTs.</p> |
|
68 |
+ |
|
69 |
+ <hr> |
|
70 |
+ |
|
71 |
+ <h2 id="developer">Become a PT developer:</h2> |
|
72 |
+ |
|
73 |
+ <p> The links below are the main documentation that will help guide through what you should consider while designing your PT:</p> |
|
74 |
+ |
|
75 |
+ <ul> |
|
76 |
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/GuidelinesForDeployingPTs">Guidelines for deploying Pluggable Transports on Tor Browser</a></li> |
|
77 |
+ <li><a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">PT technical spec</a>​</li> |
|
78 |
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/PTEvaluationCriteria">Pluggable Transports Evaluation Criteria</a></li> |
|
79 |
+ </ul> |
|
80 |
+ |
|
81 |
+ <p><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports">Our wiki</a> is also a great source of information, such as how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#Waystofollowandjointheconversation:">get in touch with the community</a>, <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/ideas">ideas for new PTs</a>, how to <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/WorkListForDevsToHelpOutWith">help with PTs already deployed</a> and much more.</p> |
|
82 |
+ |
|
52 | 83 |
<hr> |
53 | 84 |
|
85 |
+ <h2 id="list-of-pts">List of PTs organized by status:</h2> |
|
86 |
+ |
|
54 | 87 |
<h3>Currently deployed PTs</h3> |
55 |
- <p> |
|
56 |
- These Pluggable Transports are currently deployed in Tor Browser, and you can start using them by <a href="<page download/download-easy>">downloading and using Tor Browser</a>. |
|
88 |
+ |
|
89 |
+ <p>These Pluggable Transports are currently deployed in Tor Browser, and you can start using them by <a href="<page download/download-easy>">downloading and using Tor Browser</a>. |
|
57 | 90 |
</p> |
58 | 91 |
|
59 | 92 |
<ul> |
60 |
- |
|
61 |
- <li><a href="https://github.com/Yawning/obfs4/blob/master/doc/obfs4-spec.txt"><b>obfs4</b></a> |
|
62 |
- is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
63 |
- but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> |
|
64 |
- technique for public key obfuscation, and the |
|
65 |
- <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/216-ntor-handshake.txt">ntor protocol</a> |
|
66 |
- for one-way authentication. This results in a faster protocol. Written in Go. |
|
67 |
- Maintained by Yawning Angel. |
|
93 |
+ <li><a href="https://github.com/Yawning/obfs4/blob/master/doc/obfs4-spec.txt"><b>obfs4</b></a></li> |
|
94 |
+ <ul> |
|
95 |
+ <li><strong>Description:</strong> Is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> technique for public key obfuscation, and the <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/216-ntor-handshake.txt">ntor protocol</a> for one-way authentication. This results in a faster protocol.</li> |
|
96 |
+ <li><strong>Language:</strong> Go</li> |
|
97 |
+ <li><strong>Maintainer:</strong> Yawning Angel</li> |
|
98 |
+ <li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/Obfs4Evaluation">obfs4 Evaluation</a></li> |
|
99 |
+ </ul> |
|
68 | 100 |
</li> |
69 | 101 |
<!-- TODO: update the link with repo hosted on git.tpo. and make a note that this client supports obfs3 --> |
70 | 102 |
|
71 |
- <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>meek</b></a> |
|
72 |
- is a transport that uses HTTP for carrying bytes and TLS for |
|
73 |
- obfuscation. Traffic is relayed through a third-party server |
|
74 |
- (​Google App Engine). It uses a trick to talk to the third party so |
|
75 |
- that it looks like it is talking to an unblocked server. |
|
76 |
- Maintained by David Fifield. |
|
103 |
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>meek</b></a></li> |
|
104 |
+ <ul> |
|
105 |
+ <li><strong>Description:</strong> Is a transport that uses HTTP for carrying bytes and TLS for obfuscation. Traffic is relayed through a third-party server (​Google App Engine). It uses a trick to talk to the third party so that it looks like it is talking to an unblocked server.</li> |
|
106 |
+ <li><strong>Language:</strong> Go</li> |
|
107 |
+ <li><strong>Maintainer:</strong> David Fifield</li> |
|
108 |
+ <li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/MeekEvaluation">meek Evaluation</a></li> |
|
109 |
+ </ul> |
|
77 | 110 |
</li> |
78 | 111 |
<!-- TODO: add more info about meek. include amazon and azure and maybe remove google for now --> |
79 | 112 |
|
80 |
- <li><a href="https://fteproxy.org/"><b>Format-Transforming |
|
81 |
- Encryption</b></a> (FTE) transforms Tor traffic to arbitrary |
|
82 |
- formats using their language descriptions. See the <a |
|
83 |
- href="https://kpdyer.com/publications/ccs2013-fte.pdf">research |
|
84 |
- paper</a>.</li> |
|
85 |
- |
|
86 |
- <li><a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
87 |
- is a pluggable transport that protects |
|
88 |
- against follow-up probing attacks and is also capable of changing |
|
89 |
- its network fingerprint (packet length distribution, |
|
90 |
- inter-arrival times, etc.). It's part of the Obfsproxy framework. |
|
91 |
- Maintained by Philipp Winter. |
|
113 |
+ <li><a href="https://fteproxy.org/"><b>Format-Transforming Encryption</b></a> (FTE)</li> |
|
114 |
+ <ul> |
|
115 |
+ <li><strong>Description:</strong> It transforms Tor traffic to arbitrary |
|
116 |
+ formats using their language descriptions. See the <a href="https://kpdyer.com/publications/ccs2013-fte.pdf">research paper</a>.</li> |
|
117 |
+ <li><strong>Language:</strong> Python/C++</li> |
|
118 |
+ <li><strong>Maintainger:</strong> Kevin Dyer</li> |
|
119 |
+ <li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/FteEvaluation">FTE Evaluation</a></li> |
|
120 |
+ </ul> |
|
121 |
+ </li> |
|
122 |
+ |
|
123 |
+ <li><a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a></li> |
|
124 |
+ <ul> |
|
125 |
+ <li><strong>Description:</strong> Is a pluggable transport that protects against follow-up probing attacks and is also capable of changing its network fingerprint (packet length distribution, inter-arrival times, etc.).</li> |
|
126 |
+ <li><strong>Language:</strong> Python</li> |
|
127 |
+ <li><strong>Maintainger:</strong> Philipp Winter</li> |
|
128 |
+ <li><strong>Evaluation:</strong> <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/ScrambleSuitEvaluation"> ScrambleSuit Evaluation</a></li> |
|
129 |
+ </ul> |
|
92 | 130 |
</li> |
93 | 131 |
|
94 | 132 |
<!-- TODO: it's unclear whether orbot still uses obfsclient or not; |
... | ... |
@@ -104,78 +142,49 @@ transport API</a>, to make it easier to build interoperable programs. |
104 | 142 |
|
105 | 143 |
</ul> |
106 | 144 |
|
107 |
- <hr> |
|
108 |
- |
|
109 |
- <h3>Deprecated PTs; Removed from Tor Browser</h3> |
|
110 |
- <br> |
|
111 |
- <ul> |
|
112 |
- <!-- TODO: add deprecation note for each PT --> |
|
113 |
- <li><b>Obfsproxy</b> is a Python framework for implementing new |
|
114 |
- pluggable transports. It uses Twisted for its networking needs, and |
|
115 |
- <a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/tree/README.rst">pyptlib</a> |
|
116 |
- for some pluggable transport-related features. It supports the |
|
117 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs2/obfs2-protocol-spec.txt">obfs2</a> |
|
118 |
- and |
|
119 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs3/obfs3-protocol-spec.txt">obfs3</a> |
|
120 |
- pluggable transports. Maintained by asn. |
|
121 |
- </li> |
|
122 |
- |
|
123 |
- <li><a href="https://crypto.stanford.edu/flashproxy/"><b>Flashproxy</b></a> turns ordinary web browsers into bridges using |
|
124 |
- websockets, and has a little python stub to hook Tor clients to the |
|
125 |
- websocket connection. See its |
|
126 |
- <a href="https://gitweb.torproject.org/flashproxy.git">git repository</a>, |
|
127 |
- and |
|
128 |
- <a href="https://crypto.stanford.edu/flashproxy/flashproxy.pdf">design paper</a>. |
|
129 |
- Maintained by David Fifield. |
|
130 |
- <!-- # <iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe> --> |
|
131 |
- </li> |
|
132 |
- |
|
133 |
- </ul> |
|
134 |
- |
|
135 |
- <hr> |
|
136 |
- |
|
137 |
- <h3>Undeployed PTs</h3> |
|
138 |
- <br> |
|
145 |
+ <h3>Undeployed PTs</h3> |
|
146 |
+ <br /> |
|
139 | 147 |
<!-- TODO: move this section to wiki --> |
140 | 148 |
<!-- TODO: add snowflake --> |
141 | 149 |
<ul> |
142 |
- |
|
143 |
- <li><b>StegoTorus</b> is an Obfsproxy fork that extends it to a) |
|
144 |
- split Tor streams across multiple connections to avoid packet size |
|
145 |
- signatures, and b) embed the traffic flows in traces that look like |
|
146 |
- HTML, JavasCript, or PDF. See its |
|
147 |
- <a href="https://gitweb.torproject.org/stegotorus.git">git repository</a>. |
|
148 |
- Maintained by Zack Weinberg. <br> |
|
150 |
+ <li><b>StegoTorus</b></li> |
|
151 |
+ <ul> |
|
152 |
+ <li><strong>Description:</strong>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 <a href="https://gitweb.torproject.org/stegotorus.git">git repository</a>.</li> |
|
153 |
+ <li><strong>Language:</strong> C++</li> |
|
154 |
+ <li><strong>Maintainger:</strong> Zack Weinberg</li> |
|
155 |
+ <li><strong>Evaluation:</strong> none</li> |
|
156 |
+ </ul> |
|
149 | 157 |
</li> |
150 | 158 |
|
151 |
- <li><b>SkypeMorph</b> transforms Tor traffic flows so they look like |
|
152 |
- Skype Video. See its |
|
153 |
- <a href="http://crysp.uwaterloo.ca/software/SkypeMorph-0.5.1.tar.gz">source code</a> |
|
154 |
- and |
|
155 |
- <a href="http://cacr.uwaterloo.ca/techreports/2012/cacr2012-08.pdf">design paper</a>. |
|
156 |
- Maintained by Ian Goldberg. <br> |
|
159 |
+ <li><b>SkypeMorph</b></li> |
|
160 |
+ <ul> |
|
161 |
+ <li><strong>Description:</strong> It transforms Tor traffic flows so they look like Skype Video. See its <a href="http://crysp.uwaterloo.ca/software/SkypeMorph-0.5.1.tar.gz">source code</a> and <a href="http://cacr.uwaterloo.ca/techreports/2012/cacr2012-08.pdf">design paper</a>.</li> |
|
162 |
+ <li><strong>Language:</strong></li> |
|
163 |
+ <li><strong>Maintainger:</strong> Ian Goldberg.</li> |
|
164 |
+ <li><strong>Evaluation:</strong> none</li> |
|
165 |
+ </ul> |
|
157 | 166 |
</li> |
158 | 167 |
|
159 |
- <li><b>Dust</b> aims to provide a packet-based (rather than |
|
160 |
- connection-based) DPI-resistant protocol. See its |
|
161 |
- <a href="https://github.com/blanu/Dust">git repository</a>. |
|
162 |
- Maintained by Brandon Wiley. <br> |
|
168 |
+ <li><b>Dust</b></li> |
|
169 |
+ <ul> |
|
170 |
+ <li><strong>Description:</strong> It aims to provide a packet-based (rather than connection-based) DPI-resistant protocol. See its <a href="https://github.com/blanu/Dust">git repository</a>.</li> |
|
171 |
+ <li><strong>Language:</strong> Python</li> |
|
172 |
+ <li><strong>Maintainger:</strong> Brandon Wiley.</li> |
|
173 |
+ <li><strong>Evaluation:</strong> none</li> |
|
174 |
+ </ul> |
|
163 | 175 |
</li> |
164 |
- |
|
176 |
+ |
|
165 | 177 |
</ul> |
178 |
+ |
|
179 |
+ <br /><br /> |
|
166 | 180 |
|
167 | 181 |
<p> Also see the <emph>unofficial</emph> pluggable transports <a |
168 | 182 |
href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports">wiki |
169 | 183 |
page</a> for more pluggable transport information.</p> |
170 | 184 |
|
171 |
- <hr> |
|
185 |
+ <p>Our goal is to have a wide variety of Pluggable Transport designs. You can check out a <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/list">full list of Pluggables Transports here</a>.</p> |
|
172 | 186 |
|
173 |
- <p> |
|
174 |
- Our goal is to have a wide variety of Pluggable Transport designs. |
|
175 |
- Many are at the research phase now, so it's a perfect time to play |
|
176 |
- with them or suggest new designs. Please let us know if you find or |
|
177 |
- start other projects that could be useful for making Tor's traffic |
|
178 |
- flows more DPI-resistant! |
|
187 |
+ <p>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! |
|
179 | 188 |
</p> |
180 | 189 |
|
181 | 190 |
</div> |
... | ... |
@@ -110,7 +110,7 @@ transport API</a>, to make it easier to build interoperable programs. |
110 | 110 |
<br> |
111 | 111 |
<ul> |
112 | 112 |
<!-- TODO: add deprecation note for each PT --> |
113 |
- <li><a href="<page projects/obfsproxy>"><b>Obfsproxy</b></a> is a Python framework for implementing new |
|
113 |
+ <li><b>Obfsproxy</b> is a Python framework for implementing new |
|
114 | 114 |
pluggable transports. It uses Twisted for its networking needs, and |
115 | 115 |
<a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/tree/README.rst">pyptlib</a> |
116 | 116 |
for some pluggable transport-related features. It supports the |
... | ... |
@@ -34,8 +34,8 @@ transport API</a>, to make it easier to build interoperable programs. |
34 | 34 |
|
35 | 35 |
<h3>How to use PTs to bypass censorship</h3> |
36 | 36 |
<p> |
37 |
- If connections to Tor network are being blocked by your ISP or country, |
|
38 |
- follow this instructions: |
|
37 |
+ If connections to the Tor network are being blocked by your ISP or |
|
38 |
+ country, follow these instructions: |
|
39 | 39 |
</p> |
40 | 40 |
<a href="$(IMGROOT)/PT/2016-07-how-to-use-PT.png"> |
41 | 41 |
<img src="$(IMGROOT)/PT/2016-07-how-to-use-PT.png" width="830" |
... | ... |
@@ -46,7 +46,7 @@ transport API</a>, to make it easier to build interoperable programs. |
46 | 46 |
<h3>How to run PTs to help censored users</h3> |
47 | 47 |
<p> |
48 | 48 |
obfs4 is currently the most effective transport to bypass censorship. |
49 |
- To learn how to run this transport, please visit <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
49 |
+ To learn how to run this transport, please visit the <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
50 | 50 |
</p> |
51 | 51 |
|
52 | 52 |
<hr> |
... | ... |
@@ -43,6 +43,12 @@ transport API</a>, to make it easier to build interoperable programs. |
43 | 43 |
4-select obfs4 5-press connect" /></a> |
44 | 44 |
<!-- TODO: move alt to instructions in plain text for visually impaird users --> |
45 | 45 |
|
46 |
+ <h3>How to run PTs to help censored users</h3> |
|
47 |
+ <p> |
|
48 |
+ obfs4 is currently the most effective transport to bypass censorship. |
|
49 |
+ To learn how to run this transport, please visit <a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/obfs4proxy">obfs4proxy wiki page</a>. |
|
50 |
+ </p> |
|
51 |
+ |
|
46 | 52 |
<hr> |
47 | 53 |
|
48 | 54 |
<h3>Currently deployed PTs</h3> |
... | ... |
@@ -32,13 +32,23 @@ href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable |
32 | 32 |
transport API</a>, to make it easier to build interoperable programs. |
33 | 33 |
</p> |
34 | 34 |
|
35 |
+ <h3>How to use PTs to bypass censorship</h3> |
|
36 |
+ <p> |
|
37 |
+ If connections to Tor network are being blocked by your ISP or country, |
|
38 |
+ follow this instructions: |
|
39 |
+ </p> |
|
40 |
+ <a href="$(IMGROOT)/PT/2016-07-how-to-use-PT.png"> |
|
41 |
+ <img src="$(IMGROOT)/PT/2016-07-how-to-use-PT.png" width="830" |
|
42 |
+ alt="How to use PTs: 1-download tor (send email to gettor@torproject.org) 2-select configure 3-check 'my isp blocks tor...' |
|
43 |
+ 4-select obfs4 5-press connect" /></a> |
|
44 |
+ <!-- TODO: move alt to instructions in plain text for visually impaird users --> |
|
45 |
+ |
|
35 | 46 |
<hr> |
36 | 47 |
|
37 | 48 |
<h3>Currently deployed PTs</h3> |
38 | 49 |
<p> |
39 | 50 |
These Pluggable Transports are currently deployed in Tor Browser, and you can start using them by <a href="<page download/download-easy>">downloading and using Tor Browser</a>. |
40 | 51 |
</p> |
41 |
- <!-- TODO: make a link to how to config TB to use PTs --> |
|
42 | 52 |
|
43 | 53 |
<ul> |
44 | 54 |
|
... | ... |
@@ -91,7 +91,7 @@ transport API</a>, to make it easier to build interoperable programs. |
91 | 91 |
<hr> |
92 | 92 |
|
93 | 93 |
<h3>Deprecated PTs; Removed from Tor Browser</h3> |
94 |
- |
|
94 |
+ <br> |
|
95 | 95 |
<ul> |
96 | 96 |
<!-- TODO: add deprecation note for each PT --> |
97 | 97 |
<li><a href="<page projects/obfsproxy>"><b>Obfsproxy</b></a> is a Python framework for implementing new |
... | ... |
@@ -119,6 +119,7 @@ transport API</a>, to make it easier to build interoperable programs. |
119 | 119 |
<hr> |
120 | 120 |
|
121 | 121 |
<h3>Undeployed PTs</h3> |
122 |
+ <br> |
|
122 | 123 |
<!-- TODO: move this section to wiki --> |
123 | 124 |
<!-- TODO: add snowflake --> |
124 | 125 |
<ul> |
... | ... |
@@ -126,7 +126,7 @@ transport API</a>, to make it easier to build interoperable programs. |
126 | 126 |
<li><b>StegoTorus</b> is an Obfsproxy fork that extends it to a) |
127 | 127 |
split Tor streams across multiple connections to avoid packet size |
128 | 128 |
signatures, and b) embed the traffic flows in traces that look like |
129 |
- html, javascript, or pdf. See its |
|
129 |
+ HTML, JavasCript, or PDF. See its |
|
130 | 130 |
<a href="https://gitweb.torproject.org/stegotorus.git">git repository</a>. |
131 | 131 |
Maintained by Zack Weinberg. <br> |
132 | 132 |
</li> |
- Broken the lists in three different sections:
'deployed', 'deprecated' and 'undeployed'
with a plan to move the last two sections to wiki.
- Style fixes: It's either 'Pluggable Transports' or 'PT' or 'PTs'.
- Added todo notes for later.
- Style fix: it's 'meek' not 'Meek'.
- Removed download section. It's either included in TB or not.
- Removed 'status'.
- Commented out 'obfsclient' since its status is unknown.
... | ... |
@@ -23,7 +23,7 @@ |
23 | 23 |
</p> |
24 | 24 |
|
25 | 25 |
<p> |
26 |
- Pluggable transports transform the Tor traffic flow between the client |
|
26 |
+ Pluggable Transports (PT) transform the Tor traffic flow between the client |
|
27 | 27 |
and the bridge. This way, censors who monitor traffic between the |
28 | 28 |
client and the bridge will see innocent-looking transformed traffic |
29 | 29 |
instead of the actual Tor traffic. |
... | ... |
@@ -34,82 +34,101 @@ transport API</a>, to make it easier to build interoperable programs. |
34 | 34 |
|
35 | 35 |
<hr> |
36 | 36 |
|
37 |
+ <h3>Currently deployed PTs</h3> |
|
38 |
+ <p> |
|
39 |
+ These Pluggable Transports are currently deployed in Tor Browser, and you can start using them by <a href="<page download/download-easy>">downloading and using Tor Browser</a>. |
|
40 |
+ </p> |
|
41 |
+ <!-- TODO: make a link to how to config TB to use PTs --> |
|
42 |
+ |
|
43 |
+ <ul> |
|
44 |
+ |
|
45 |
+ <li><a href="https://github.com/Yawning/obfs4/blob/master/doc/obfs4-spec.txt"><b>obfs4</b></a> |
|
46 |
+ is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
47 |
+ but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> |
|
48 |
+ technique for public key obfuscation, and the |
|
49 |
+ <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/216-ntor-handshake.txt">ntor protocol</a> |
|
50 |
+ for one-way authentication. This results in a faster protocol. Written in Go. |
|
51 |
+ Maintained by Yawning Angel. |
|
52 |
+ </li> |
|
53 |
+ <!-- TODO: update the link with repo hosted on git.tpo. and make a note that this client supports obfs3 --> |
|
54 |
+ |
|
55 |
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>meek</b></a> |
|
56 |
+ is a transport that uses HTTP for carrying bytes and TLS for |
|
57 |
+ obfuscation. Traffic is relayed through a third-party server |
|
58 |
+ (​Google App Engine). It uses a trick to talk to the third party so |
|
59 |
+ that it looks like it is talking to an unblocked server. |
|
60 |
+ Maintained by David Fifield. |
|
61 |
+ </li> |
|
62 |
+ <!-- TODO: add more info about meek. include amazon and azure and maybe remove google for now --> |
|
63 |
+ |
|
64 |
+ <li><a href="https://fteproxy.org/"><b>Format-Transforming |
|
65 |
+ Encryption</b></a> (FTE) transforms Tor traffic to arbitrary |
|
66 |
+ formats using their language descriptions. See the <a |
|
67 |
+ href="https://kpdyer.com/publications/ccs2013-fte.pdf">research |
|
68 |
+ paper</a>.</li> |
|
69 |
+ |
|
70 |
+ <li><a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
71 |
+ is a pluggable transport that protects |
|
72 |
+ against follow-up probing attacks and is also capable of changing |
|
73 |
+ its network fingerprint (packet length distribution, |
|
74 |
+ inter-arrival times, etc.). It's part of the Obfsproxy framework. |
|
75 |
+ Maintained by Philipp Winter. |
|
76 |
+ </li> |
|
77 |
+ |
|
78 |
+ <!-- TODO: it's unclear whether orbot still uses obfsclient or not; |
|
79 |
+ commenting out untill furthure notice --> |
|
80 |
+ <!-- <li><a href="https://github.com/yawning/obfsclient"><b>obfsclient</b></a> |
|
81 |
+ is a multi-transport pluggable transport proxy (like obfsproxy), |
|
82 |
+ written in C++ that implements the client-side of <em>obfs2</em>, |
|
83 |
+ <em>obfs3</em> and <em>scramblesuit</em>. It's used by |
|
84 |
+ <a href="https://guardianproject.info/apps/orbot/">Orbot</a> on |
|
85 |
+ Android because of the difficulties of using Python applications. |
|
86 |
+ Maintained by Yawning Angel. <br> |
|
87 |
+ </li> --> |
|
88 |
+ |
|
89 |
+ </ul> |
|
90 |
+ |
|
91 |
+ <hr> |
|
92 |
+ |
|
93 |
+ <h3>Deprecated PTs; Removed from Tor Browser</h3> |
|
94 |
+ |
|
95 |
+ <ul> |
|
96 |
+ <!-- TODO: add deprecation note for each PT --> |
|
97 |
+ <li><a href="<page projects/obfsproxy>"><b>Obfsproxy</b></a> is a Python framework for implementing new |
|
98 |
+ pluggable transports. It uses Twisted for its networking needs, and |
|
99 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/tree/README.rst">pyptlib</a> |
|
100 |
+ for some pluggable transport-related features. It supports the |
|
101 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs2/obfs2-protocol-spec.txt">obfs2</a> |
|
102 |
+ and |
|
103 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs3/obfs3-protocol-spec.txt">obfs3</a> |
|
104 |
+ pluggable transports. Maintained by asn. |
|
105 |
+ </li> |
|
106 |
+ |
|
107 |
+ <li><a href="https://crypto.stanford.edu/flashproxy/"><b>Flashproxy</b></a> turns ordinary web browsers into bridges using |
|
108 |
+ websockets, and has a little python stub to hook Tor clients to the |
|
109 |
+ websocket connection. See its |
|
110 |
+ <a href="https://gitweb.torproject.org/flashproxy.git">git repository</a>, |
|
111 |
+ and |
|
112 |
+ <a href="https://crypto.stanford.edu/flashproxy/flashproxy.pdf">design paper</a>. |
|
113 |
+ Maintained by David Fifield. |
|
114 |
+ <!-- # <iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe> --> |
|
115 |
+ </li> |
|
116 |
+ |
|
117 |
+ </ul> |
|
118 |
+ |
|
119 |
+ <hr> |
|
120 |
+ |
|
121 |
+ <h3>Undeployed PTs</h3> |
|
122 |
+ <!-- TODO: move this section to wiki --> |
|
123 |
+ <!-- TODO: add snowflake --> |
|
37 | 124 |
<ul> |
38 | 125 |
|
39 |
- <li><a href="<page projects/obfsproxy>"><b>Obfsproxy</b></a> is a Python framework for implementing new |
|
40 |
- pluggable transports. It uses Twisted for its networking needs, and |
|
41 |
- <a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/tree/README.rst">pyptlib</a> |
|
42 |
- for some pluggable transport-related features. It supports the |
|
43 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs2/obfs2-protocol-spec.txt">obfs2</a> |
|
44 |
- and |
|
45 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs3/obfs3-protocol-spec.txt">obfs3</a> |
|
46 |
- pluggable transports. Maintained by asn. <br> |
|
47 |
- Status: <a href="#download">Deployed</a> |
|
48 |
- </li> |
|
49 |
- |
|
50 |
- <li><a href="https://crypto.stanford.edu/flashproxy/"><b>Flashproxy</b></a> turns ordinary web browsers into bridges using |
|
51 |
- websockets, and has a little python stub to hook Tor clients to the |
|
52 |
- websocket connection. See its |
|
53 |
- <a href="https://gitweb.torproject.org/flashproxy.git">git repository</a>, |
|
54 |
- and |
|
55 |
- <a href="https://crypto.stanford.edu/flashproxy/flashproxy.pdf">design paper</a>. |
|
56 |
- Maintained by David Fifield. |
|
57 |
- # <iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe> |
|
58 |
- <br> |
|
59 |
- Status: <a href="#download">Deployed</a> |
|
60 |
- </li> |
|
61 |
- |
|
62 |
- <li><a href="https://fteproxy.org/"><b>Format-Transforming |
|
63 |
- Encryption</b></a> (FTE) transforms Tor traffic to arbitrary |
|
64 |
- formats using their language descriptions. See the <a |
|
65 |
- href="https://kpdyer.com/publications/ccs2013-fte.pdf">research |
|
66 |
- paper</a>. <br> Status: <a href="#download">Deployed</a> </li> |
|
67 |
- |
|
68 |
- <li><a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
69 |
- is a pluggable transport that protects |
|
70 |
- against follow-up probing attacks and is also capable of changing |
|
71 |
- its network fingerprint (packet length distribution, |
|
72 |
- inter-arrival times, etc.). It's part of the Obfsproxy framework. |
|
73 |
- Maintained by Philipp Winter. <br> |
|
74 |
- Status: <em>To be deployed</em> |
|
75 |
- </li> |
|
76 |
- |
|
77 |
- <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>Meek</b></a> |
|
78 |
- is a transport that uses HTTP for carrying bytes and TLS for |
|
79 |
- obfuscation. Traffic is relayed through a third-party server |
|
80 |
- (​Google App Engine). It uses a trick to talk to the third party so |
|
81 |
- that it looks like it is talking to an unblocked server. |
|
82 |
- Maintained by David Fifield. <br> |
|
83 |
- Status: <e>Coming soon</em> |
|
84 |
- </li> |
|
85 |
- |
|
86 |
- <li><a href="https://github.com/Yawning/obfs4/blob/master/doc/obfs4-spec.txt"><b>obfs4</b></a> |
|
87 |
- is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
|
88 |
- but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> |
|
89 |
- technique for public key obfuscation, and the |
|
90 |
- <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/216-ntor-handshake.txt">ntor protocol</a> |
|
91 |
- for one-way authentication. This results in a faster protocol. Written in Go. |
|
92 |
- Maintained by Yawning Angel. <br> |
|
93 |
- Status: <e>Coming soon</em> |
|
94 |
- </li> |
|
95 |
- |
|
96 |
- <li><a href="https://github.com/yawning/obfsclient"><b>obfsclient</b></a> |
|
97 |
- is a multi-transport pluggable transport proxy (like obfsproxy), |
|
98 |
- written in C++ that implements the client-side of <em>obfs2</em>, |
|
99 |
- <em>obfs3</em> and <em>scramblesuit</em>. It's used by |
|
100 |
- <a href="https://guardianproject.info/apps/orbot/">Orbot</a> on |
|
101 |
- Android because of the difficulties of using Python applications. |
|
102 |
- Maintained by Yawning Angel. <br> |
|
103 |
- Status: <a href="https://guardianproject.info/apps/orbot/">Deployed</a> |
|
104 |
- </li> |
|
105 |
- |
|
106 | 126 |
<li><b>StegoTorus</b> is an Obfsproxy fork that extends it to a) |
107 | 127 |
split Tor streams across multiple connections to avoid packet size |
108 | 128 |
signatures, and b) embed the traffic flows in traces that look like |
109 | 129 |
html, javascript, or pdf. See its |
110 | 130 |
<a href="https://gitweb.torproject.org/stegotorus.git">git repository</a>. |
111 | 131 |
Maintained by Zack Weinberg. <br> |
112 |
- Status: <em>Undeployed</em> |
|
113 | 132 |
</li> |
114 | 133 |
|
115 | 134 |
<li><b>SkypeMorph</b> transforms Tor traffic flows so they look like |
... | ... |
@@ -118,14 +137,12 @@ transport API</a>, to make it easier to build interoperable programs. |
118 | 137 |
and |
119 | 138 |
<a href="http://cacr.uwaterloo.ca/techreports/2012/cacr2012-08.pdf">design paper</a>. |
120 | 139 |
Maintained by Ian Goldberg. <br> |
121 |
- Status: <em>Undeployed</em> |
|
122 | 140 |
</li> |
123 | 141 |
|
124 | 142 |
<li><b>Dust</b> aims to provide a packet-based (rather than |
125 | 143 |
connection-based) DPI-resistant protocol. See its |
126 | 144 |
<a href="https://github.com/blanu/Dust">git repository</a>. |
127 | 145 |
Maintained by Brandon Wiley. <br> |
128 |
- Status: <em>Undeployed</em> |
|
129 | 146 |
</li> |
130 | 147 |
|
131 | 148 |
</ul> |
... | ... |
@@ -137,22 +154,13 @@ transport API</a>, to make it easier to build interoperable programs. |
137 | 154 |
<hr> |
138 | 155 |
|
139 | 156 |
<p> |
140 |
- Our goal is to have a wide variety of pluggable transport designs. |
|
157 |
+ Our goal is to have a wide variety of Pluggable Transport designs. |
|
141 | 158 |
Many are at the research phase now, so it's a perfect time to play |
142 | 159 |
with them or suggest new designs. Please let us know if you find or |
143 | 160 |
start other projects that could be useful for making Tor's traffic |
144 | 161 |
flows more DPI-resistant! |
145 | 162 |
</p> |
146 | 163 |
|
147 |
- <hr> |
|
148 |
- <a id="download"></a> |
|
149 |
- <h2><a href="<page download/download-easy>">Download the Pluggable Transports Tor Browser</a></h2> |
|
150 |
- <p> |
|
151 |
- As of Tor Browser 3.6-beta-1, pluggable transports are now included in the |
|
152 |
-<a href="<page download/download-easy>">official |
|
153 |
-Tor Browser packages</a>. |
|
154 |
- </p> |
|
155 |
- |
|
156 | 164 |
</div> |
157 | 165 |
<!-- END MAINCOL --> |
158 | 166 |
<div id = "sidecol"> |
... | ... |
@@ -163,4 +171,3 @@ Tor Browser packages</a>. |
163 | 171 |
</div> |
164 | 172 |
<!-- END CONTENT --> |
165 | 173 |
#include <foot.wmi> |
166 |
- |
... | ... |
@@ -146,7 +146,7 @@ transport API</a>, to make it easier to build interoperable programs. |
146 | 146 |
|
147 | 147 |
<hr> |
148 | 148 |
<a id="download"></a> |
149 |
- <h2><a href="<page download/download-easy>">Download the Pluggable Transports Tor Browser Bundle</a></h2> |
|
149 |
+ <h2><a href="<page download/download-easy>">Download the Pluggable Transports Tor Browser</a></h2> |
|
150 | 150 |
<p> |
151 | 151 |
As of Tor Browser 3.6-beta-1, pluggable transports are now included in the |
152 | 152 |
<a href="<page download/download-easy>">official |
... | ... |
@@ -28,7 +28,7 @@ |
28 | 28 |
client and the bridge will see innocent-looking transformed traffic |
29 | 29 |
instead of the actual Tor traffic. |
30 | 30 |
External programs can talk to Tor clients and Tor bridges using the <a |
31 |
-href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/pt-spec.txt">pluggable |
|
31 |
+href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt">pluggable |
|
32 | 32 |
transport API</a>, to make it easier to build interoperable programs. |
33 | 33 |
</p> |
34 | 34 |
|
... | ... |
@@ -38,11 +38,11 @@ transport API</a>, to make it easier to build interoperable programs. |
38 | 38 |
|
39 | 39 |
<li><a href="<page projects/obfsproxy>"><b>Obfsproxy</b></a> is a Python framework for implementing new |
40 | 40 |
pluggable transports. It uses Twisted for its networking needs, and |
41 |
- <a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/blob/HEAD:/README.rst">pyptlib</a> |
|
41 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/pyptlib.git/tree/README.rst">pyptlib</a> |
|
42 | 42 |
for some pluggable transport-related features. It supports the |
43 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/HEAD:/doc/obfs2/obfs2-protocol-spec.txt">obfs2</a> |
|
43 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs2/obfs2-protocol-spec.txt">obfs2</a> |
|
44 | 44 |
and |
45 |
- <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/HEAD:/doc/obfs3/obfs3-protocol-spec.txt">obfs3</a> |
|
45 |
+ <a href="https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/doc/obfs3/obfs3-protocol-spec.txt">obfs3</a> |
|
46 | 46 |
pluggable transports. Maintained by asn. <br> |
47 | 47 |
Status: <a href="#download">Deployed</a> |
48 | 48 |
</li> |
... | ... |
@@ -87,7 +87,7 @@ transport API</a>, to make it easier to build interoperable programs. |
87 | 87 |
is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
88 | 88 |
but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> |
89 | 89 |
technique for public key obfuscation, and the |
90 |
- <a href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/216-ntor-handshake.txt">ntor protocol</a> |
|
90 |
+ <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/216-ntor-handshake.txt">ntor protocol</a> |
|
91 | 91 |
for one-way authentication. This results in a faster protocol. Written in Go. |
92 | 92 |
Maintained by Yawning Angel. <br> |
93 | 93 |
Status: <e>Coming soon</em> |
... | ... |
@@ -85,7 +85,7 @@ transport API</a>, to make it easier to build interoperable programs. |
85 | 85 |
|
86 | 86 |
<li><a href="https://github.com/Yawning/obfs4/blob/master/doc/obfs4-spec.txt"><b>obfs4</b></a> |
87 | 87 |
is a transport with the same features as <a href="http://www.cs.kau.se/philwint/scramblesuit/"><b>ScrambleSuit</b></a> |
88 |
- but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b> |
|
88 |
+ but utilizing Dan Bernstein's <a href="http://elligator.cr.yp.to/elligator-20130828.pdf">elligator2</b></a> |
|
89 | 89 |
technique for public key obfuscation, and the |
90 | 90 |
<a href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/216-ntor-handshake.txt">ntor protocol</a> |
91 | 91 |
for one-way authentication. This results in a faster protocol. Written in Go. |
... | ... |
@@ -74,14 +74,35 @@ transport API</a>, to make it easier to build interoperable programs. |
74 | 74 |
Status: <em>To be deployed</em> |
75 | 75 |
</li> |
76 | 76 |
|
77 |
- <li><b>Meek</b> is a transport that uses HTTP for carrying bytes |
|
78 |
- and TLS for obfuscation. Traffic is relayed through a third-party |
|
79 |
- server (​Google App Engine). It uses a trick to talk to the third |
|
80 |
- party so that it looks like it is talking to an unblocked server. |
|
77 |
+ <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/meek"><b>Meek</b></a> |
|
78 |
+ is a transport that uses HTTP for carrying bytes and TLS for |