revamp again
Roger Dingledine

Roger Dingledine commited on 2005-09-22 05:21:56
Zeige 1 geänderte Dateien mit 161 Einfügungen und 124 Löschungen.

... ...
@@ -44,59 +44,116 @@
44 44
 <!-- PUT CONTENT AFTER THIS TAG -->
45 45
 <h2>Seven things everyone can do now:</h2>
46 46
 <ol>
47
-<li> We need users like you to try Tor out, and let the Tor developers know about bugs you find or features you don't find.</li>
48
-<li> Please consider <a href="/cvs/tor/doc/tor-doc-server.html">running a server</a> to help the Tor network grow.</li>
49
-<li> We especially need people with Windows programming skills to run an exit server on Windows, to help us debug.</li>
50
-<li> Run a <a href="/cvs/tor/doc/tor-hidden-service.html">Tor hidden service</a> and put interesting content on it.</li>
51
-<li> Take a look at the <a href="/gui/">Tor GUI Competition</a>, and come up with ideas or designs to contribute to making the Tor interface better. Free T-shirt for each submission!</li>
52
-<li> Tell your friends! Get them to run servers. Get them to run hidden services. Get them to tell their friends.</li>
53
-<li> Consider joining the <a href="http://secure.eff.org/tor">Electronic Frontier Foundation</a>. More EFF donations means more freedom in the world, including more Tor development.</li>
47
+<li> We need users like you to try Tor out, and let the Tor developers
48
+know about bugs you find or features you don't find.</li>
49
+<li> Please consider <a href="/cvs/tor/doc/tor-doc-server.html">running
50
+a server</a> to help the Tor network grow.</li>
51
+<li> We especially need people with Windows programming skills to run
52
+an exit server on Windows, to help us debug.</li>
53
+<li> Run a <a href="/cvs/tor/doc/tor-hidden-service.html">Tor hidden
54
+service</a> and put interesting content on it.</li>
55
+<li> Take a look at the <a href="/gui/">Tor GUI Competition</a>, and
56
+come up with ideas or designs to contribute to making Tor's interface
57
+and usability better. Free T-shirt for each submission!</li>
58
+<li> Tell your friends! Get them to run servers. Get them to run hidden
59
+services. Get them to tell their friends.</li>
60
+<li> Consider joining the <a href="http://secure.eff.org/tor">Electronic
61
+Frontier Foundation</a>. More EFF donations means more freedom in the
62
+world, including more Tor development.</li>
54 63
 </ol>
55 64
 
56
-<h2>Usability and Installers</h2>
65
+<h2>Installers</h2>
57 66
 <ol>
58
-<li>Make an entry to the <a href="/gui/">GUI competition</a>. This
59
-requires looking at how Tor interacts with the operating system and
60
-other applications, deciding where the critical usability issues are,
61
-and trying to make an application (or applet or plugin) that helps the
62
-user experience.</li>
63
-<li>Extend our NSIS-based windows installer to include FreeCap and/or
64
-Privoxy. When we ship Privoxy, include a config file that's preconfigured
65
-to work well with Tor.</li>
66
-<li>Develop a way to handle OS X installation and uninstallation.</li>
67
-<li>Choosing exit node by meta-data, e.g. country.</li>
68
-<li>Tor provides anonymous connections, but if you want to keep multiple
69
-pseudonyms in practice (say, in case you frequently go to two websites
70
-and if anybody knew about both of them they would conclude it's you), we
71
-don't support that well yet. We should find a good approach and
72
-interface for handling pseudonymous profiles in Tor. See <a
67
+<li>Extend our NSIS-based Windows installer to include Privoxy. Include
68
+a preconfigured config file to work well with Tor. We might also want
69
+to include FreeCap -- is it stable enough and useful enough to be
70
+worthwhile?</li>
71
+<li>Develop a way to handle OS X uninstallation
72
+that is more automated than telling people to <a
73
+href="http://tor.eff.org/doc/tor-doc-osx.html#uninstall">manually remove
74
+each file</a>.</li>
75
+<li>Our <a href="http://tor.eff.org/cvs/tor/tor.spec.in">RPM spec file</a>
76
+needs a maintainer, so we can get back to the business of writing Tor. If
77
+you have RPM fu, please help out.</li>
78
+</ol>
79
+
80
+<h2>Usability and Interface</h2>
81
+<ol>
82
+<li>We need a way to intercept DNS requests so they don't "leak" while
83
+we're trying to be anonymous. (This happens because the application does
84
+the DNS resolve before going to the SOCKS proxy.) One option is to use
85
+Tor's built-in support for doing DNS resolves; but you need to ask via
86
+our new socks extension for that, and no applications do this yet. A
87
+nicer option is to use Tor's controller interface: you intercept the
88
+DNS resolve, tell Tor about the resolve, and Tor replies with a dummy IP
89
+address. Then the application makes a connection through Tor to that dummy
90
+IP address, and Tor automatically maps it back to the original query.</li>
91
+<li>People running servers tell us they want to have one BandwidthRate
92
+during some part of the day, and a different BandwidthRate at other parts
93
+of the day. Rather than coding this inside Tor, we should have a little
94
+script that speaks via the <a href="/gui/">Tor Controller Interface</a>,
95
+and does a setconf to change the bandwidth rate. Perhaps it would run out
96
+of cron, or perhaps it would sleep until appropriate times and then do
97
+its tweak (that's probably more portable). Can somebody write one for us
98
+and we'll put it into <a href="/cvs/tor/contrib/">tor/contrib/</a>?</li>
99
+<li>We have a variety of ways to <a
100
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#ChooseEntryExit">exit
101
+the Tor network from a particular country</a>, but they all
102
+require specifying the nickname of a particular Tor server. It
103
+would be nice to be able to specify just a country, and
104
+have something automatically pick. This requires having some
105
+component that knows what country each Tor node is in. The <a
106
+href="http://serifos.eecs.harvard.edu:8000/cgi-bin/exit.pl">script on
107
+serifos</a> manually parses whois entries for this. Maybe geolocation
108
+data will also work?</li>
109
+<li>Speaking of geolocation data, somebody should draw a map of the Earth
110
+with a pin-point for each Tor server. Bonus points if it updates as the
111
+network grows and changes.</li>
112
+<li>Tor provides anonymous connections, but we don't support
113
+keeping multiple pseudonyms in practice (say, in case you
114
+frequently go to two websites and if anybody knew about both of
115
+them they would conclude it's you). We should find a good approach
116
+and interface for handling pseudonymous profiles in Tor. See <a
73 117
 href="http://archives.seul.org/or/talk/Dec-2004/msg00086.html">this
74
-post</a> and <a href="http://archives.seul.org/or/talk/Jan-2005/msg00007.html">followup</a> for details.</li>
118
+post</a> and <a
119
+href="http://archives.seul.org/or/talk/Jan-2005/msg00007.html">followup</a>
120
+for details.</li>
75 121
 </ol>
76 122
 
77
-<h2>Coding, Design, and Software Development</h2>
123
+<h2>Documentation</h2>
78 124
 <ol>
79
-<li>We need a better option for a scrubbing web proxy than
80
-just Privoxy, since it's unmaintained and still has bugs, especially
81
-on Windows. While we're at it, what sensitive information is not
82
-kept safe by Privoxy? Are there other scrubbing web proxies that are
83
-more secure?</li>
84
-<li>We need better applications for dynamically intercepting
125
+<li>Please volunteer to help maintain this website: code, content,
126
+css, layout.</li>
127
+<li>We have too much documentation --- it's spread out too much and
128
+duplicates itself in places. Please send us patches, pointers, and
129
+confusions about the documentation so we can clean it up.</li>
130
+<li>Help translate the web page and documentation into other
131
+languages. See the <a href="translation.html">translation
132
+guidelines</a> if you want to help out. We also need people to help
133
+maintain the existing (Italian and German) translations.</li>
134
+<li>Investigate privoxy vs. freecap vs. sockscap for win32 clients. Are
135
+there usability or stability issues that we can track down and
136
+resolve, or at least inform people about?</li>
137
+<li>Evaluate, create, and <a
138
+href="http://wiki.noreply.org/wiki/TheOnionRouter/TorifyHOWTO">document
139
+a list of programs</a> that can be routed through Tor.</li>
140
+<li>We need better documentation for dynamically intercepting
85 141
 connections and sending them through Tor. tsocks (Linux) and freecap
86
-(Windows) seem to be good candidates, and there are a variety of other
87
-possibilities listed at the bottom of <a href="/support.html">our support
88
-page</a>.</li>
89
-<li>Speaking of tsocks, it appears to be unmaintained: we have submitted
90
-several patches with no response. Can somebody volunteer to start
91
-maintaining a new tsocks branch? We'll help.</li>
92
-<li>We need a way to intercept DNS requests so they don't "leak" while
93
-we're trying to be anonymous. One option is to use Tor's built-in
94
-support for doing DNS resolves; but you need to ask via our new socks
95
-extension for that, and so no applications do this yet. Another option
96
-is to use Tor's controller interface: the application connects to Tor,
97
-hands it the DNS query, and Tor replies with a dummy IP address. Then
98
-the application makes a connection through Tor to that dummy IP address,
99
-and Tor automatically maps it back to the original query.</li>
142
+(Windows) seem to be good candidates.</li>
143
+<li>We have a huge list of <a href="/support.html">potentially useful
144
+programs that interface to Tor</a>. Which ones are useful in which
145
+situations? Please help us test them out and document your results.</li>
146
+</ol>
147
+
148
+<h2>Coding and Design</h2>
149
+<ol>
150
+<li>We recommend Privoxy as a good scrubbing web proxy, but it's
151
+unmaintained and still has bugs, especially on Windows. While we're at
152
+it, what sensitive information is not kept safe by Privoxy? Are there
153
+other scrubbing web proxies that are more secure?</li>
154
+<li>tsocks appears to be unmaintained: we have submitted several patches
155
+with no response. Can somebody volunteer to start maintaining a new
156
+tsocks branch? We'll help.</li>
100 157
 <li>Right now the hidden service descriptors are being stored on just a few
101 158
 directory servers. This is bad for privacy and bad for robustness. To get
102 159
 more robustness, we're going to need to make hidden service descriptors
... ...
@@ -108,26 +165,27 @@ no implemented DHT code supports authenticated updates. What's the right
108 165
 next step?</li>
109 166
 <li>Tor exit servers need to do many DNS resolves in parallel. But
110 167
 gethostbyname() is poorly designed --- it blocks until it has finished
111
-resolving a query --- so it requires its own thread or process. So
112
-Tor is forced to spawn many separate DNS "worker" threads. There are
113
-some asynchronous DNS libraries out there, but traditionally they are
114
-buggy and abandoned. There are rumors that some of them are becoming
115
-better. Are any of them stable, fast, clean, and free software? If
116
-so (or if we can make that so), we should integrate them into Tor
117
-so we don't need to spawn dozens of dns resolver threads. See <a
168
+resolving a query --- so it requires its own thread or process. So Tor
169
+is forced to spawn many separate DNS "worker" threads. There are some
170
+asynchronous DNS libraries out there, but historically they are buggy and
171
+abandoned. Are any of them stable, fast, clean, and free software? If so
172
+(or if we can make that so), we should integrate them into Tor. See <a
118 173
 href="http://archives.seul.org/or/talk/Sep-2005/msg00001.html">Agl's
119
-post</a> for a potential start.</li>
174
+post</a> for one potential approach.</li>
120 175
 <li>Currently Tor ships with its own AES, since when we started OpenSSL
121 176
 had missing/broken AES support. But now that it's gotten more mainstream,
122 177
 we should change things so we only use our bundled AES if OpenSSL doesn't
123 178
 support it natively.</li>
179
+<li>Tor 0.1.1.x includes support for hardware crypto accelerators via
180
+OpenSSL. Nobody has ever tested it, though. Does somebody want to get
181
+a card and let us know how it goes?</li>
124 182
 <li>Because Tor servers need to store-and-forward each cell they handle,
125 183
 high-bandwidth Tor servers end up using dozens of megabytes of memory
126 184
 just for buffers. We need better heuristics for when to shrink/expand
127 185
 buffers. Maybe this should be modelled after the Linux kernel buffer
128 186
 design, where you have many smaller buffers that link to each other,
129 187
 rather than monolithic buffers?</li>
130
-<li>How do ulimits work on Win32, anyway? We're having problems
188
+<li>How do ulimits work on Win32, anyway? We're having problems,
131 189
 especially on older Windowses with people running out of file
132 190
 descriptors, connection buffer space, etc. (We should handle
133 191
 WSAENOBUFS as needed, look at the MaxConnections registry entry,
... ...
@@ -137,19 +195,10 @@ href="http://bugs.noreply.org/flyspray/index.php?do=details&amp;id=98">bug
137 195
 98</a>.)</li>
138 196
 <li>Encrypt identity keys on disk, and implement passphrase protection
139 197
 for them. Right now they're just stored in plaintext.</li>
140
-<li>Periodically people running servers tell us they want to have one
141
-BandwidthRate during some part of the day, and a different BandwidthRate
142
-at other parts of the day. Rather than coding this inside Tor, we
143
-should have a little script that speaks via the <a href="/gui/">Tor
144
-Controller Interface</a>, and does a setconf to change the bandwidth
145
-rate. Perhaps it would run out of cron, or perhaps it would sleep
146
-until appropriate times and then do its tweak (that's probably more
147
-portable). Can somebody write one for us and we'll put it into <a
148
-href="/cvs/tor/contrib/">tor/contrib/</a>?</li>
149 198
 <li>Patches to Tor's autoconf scripts. First, we'd like our configure.in
150 199
 to handle cross-compilation, e.g. so we can build Tor for obscure
151
-platforms like the Linksys WRTG54. Second, we'd like to make with-ssl-dir
152
-disable the search for ssl's libraries.</li>
200
+platforms like the Linksys WRTG54. Second, we'd like the with-ssl-dir
201
+option to disable the search for ssl's libraries.</li>
153 202
 <li>Implement reverse DNS requests inside Tor (already specified in
154 203
 Section 5.4 of <a href="/cvs/tor/doc/tor-spec.txt">tor-spec.txt</a>).</li>
155 204
 <li>Perform a security analysis of Tor with <a
... ...
@@ -157,42 +206,46 @@ href="http://en.wikipedia.org/wiki/Fuzz_testing">"fuzz"</a>. Determine
157 206
 if there good fuzzing libraries out there for what we want. Win fame by
158 207
 getting credit when we put out a new release because of you!</li>
159 208
 <li>How hard is it to patch bind or a DNS proxy to redirect requests to
160
-Tor via our tor-resolve socks extension? What about to convert UDP DNS
209
+Tor via our <a href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#CompatibleApplications">tor-resolve socks extension</a>? What about to convert UDP DNS
161 210
 requests to TCP requests and send them through Tor?</li>
162
-</ol>
163
-
164
-<h2>Documentation</h2>
165
-<ol>
166
-<li>Volunteer to help maintain this website: code, content, css,
167
-layout.</li>
168
-<li>We have too much documentation --- it's spread out too much and
169
-duplicates itself in places.</li>
170
-<li>Help translate the web page and documentation into other
171
-languages.  See the <a href="translation.html">translation
172
-guidelines</a> if you want to help out.</li>
173
-<li>Investigate privoxy vs. freecap vs. sockscap for win32 clients. Are
174
-there usability or stability issues that we can track down and
175
-resolve?</li>
176
-<li>Evaluate, create, and <a
177
-href="http://wiki.noreply.org/wiki/TheOnionRouter/TorifyHOWTO">document
178
-a list of programs</a> that can be routed through Tor.</li>
179
-<li>We have a huge list of <a href="/support.html"> potentially useful
180
-programs to interface to Tor</a>. Which ones are useful in which
181
-situations? Please help us test them out and document your results.</li>
211
+<li>We're not that far from having IPv6 support for destination addresses
212
+(at exit nodes). If you care strongly about IPv6, that's probably the
213
+first place to start.</li>
182 214
 </ol>
183 215
 
184 216
 <h2>Research</h2>
185 217
 <ol>
186
-<li>To let dissidents in remote countries use Tor without being blocked
187
-at their country's firewall, we need a way to get tens of thousands of
188
-relays, not just a few hundred. We can imagine a Tor client GUI that
189
-has a "help China" button at the top that opens a port and relays a
190
-few KB/s of traffic into the Tor network. (A few KB/s shouldn't be too
191
-much hassle, and there are few abuse issues since they're not being exit
192
-nodes.) But how do we distribute a list of these volunteer clients to the
193
-good dissidents in an automated way that doesn't let the country-level
194
-firewalls intercept and enumerate them? Probably needs to work on a
195
-human-trust level.</li>
218
+<li>The "website fingerprinting attack": make a list of a few
219
+hundred popular websites, download their pages, and make a set of
220
+"signatures" for each site. Then observe a Tor client's traffic. As
221
+you watch him receive data, you quickly approach a guess about which
222
+(if any) of those sites he is visiting. First, how effective is
223
+this attack on the deployed Tor codebase? Then start exploring
224
+defenses: for example, we could change Tor's cell size from 512
225
+bytes to 1024 bytes, we could employ padding techniques like <a
226
+href="http://freehaven.net/anonbib/#timing-fc2004">defensive dropping</a>,
227
+or we could add traffic delays. How much of an impact do these have,
228
+and how much usability impact (using some suitable metric) is there from
229
+a successful defense in each case?</li>
230
+<li>The "end-to-end traffic confirmation attack": by watching traffic at
231
+Alice and at Bob, we can compare traffic signatures and become convinced
232
+that we're watching the same stream. So far Tor accepts this as a fact
233
+of life and assumes this attack is trivial in all cases. First of all,
234
+is that actually true? How much traffic of what sort of distribution is
235
+needed before the adversary is confident he has won? Are there scenarios
236
+(e.g. not transmitting much) that slow down the attack? Do some traffic
237
+padding or traffic shaping schemes work better than others?</li>
238
+<li>The "routing zones attack": most of the literature thinks of
239
+the network path between Alice and her entry node (and between the
240
+exit node and Bob) as a single link on some graph. In practice,
241
+though, the path traverses many autonomous systems (ASes), and <a
242
+href="http://freehaven.net/anonbib/#feamster:wpes2004">it's not uncommon
243
+that the same AS appears on both the entry path and the exit path</a>.
244
+Unfortunately, to accurately predict whether a given Alice, entry,
245
+exit, Bob quad will be dangerous, we need to download an entire Internet
246
+routing zone and perform expensive operations on it. Are there practical
247
+approximations, such as avoiding IP addresses in the same /8 network?</li>
248
+<!--<li>Find ideal churn rate for helper nodes; how safe is it?</li> -->
196 249
 <li>Tor doesn't work very well when servers have asymmetric bandwidth
197 250
 (e.g. cable or DSL). Because Tor has separate TCP connections between
198 251
 each hop, if the incoming bytes are arriving just fine and the outgoing
... ...
@@ -212,35 +265,19 @@ than fixed-size windows? That seemed to go well in an <a
212 265
 href="http://www.psc.edu/networking/projects/hpn-ssh/theory.php">ssh
213 266
 throughput experiment</a>. We'll need to measure and tweak, and maybe
214 267
 overhaul if the results are good.</li>
215
-<li>The "website fingerprinting attack": make a list of a few
216
-hundred popular websites, download their pages, and make a set of
217
-"signatures" for each site. Then observe a Tor client's traffic. As
218
-you watch him receive data, you quickly approach a guess about
219
-which (if any) of those sites he is visiting. Do this attack on the
220
-deployed Tor network, and find out how effective it is. Then start
221
-exploring defenses: for example, we could change Tor's cell size from
222
-512 bytes to 1024 bytes, we could employ padding techniques like <a
223
-href="http://freehaven.net/anonbib/#timing-fc2004">defensive dropping</a>,
224
-or we could add traffic delays. How much of an impact do these have,
225
-and how much usability impact (using some suitable metric) is there from
226
-a successful defense in each case?</li>
227
-<li>The "end-to-end traffic confirmation attack": by watching traffic at
228
-Alice and at Bob, we can compare traffic signatures and become convinced
229
-that we're watching the same stream. So far Tor accepts this as a fact
230
-of life and assumes this attack is trivial in all cases. First of all,
231
-is that actually true? How much traffic of what sort of distribution is
232
-needed before the adversary is confident he has won? Are there scenarios
233
-(e.g. not transmitting much) that slow down the attack? Do some traffic
234
-padding or traffic shaping schemes work better than others?
235
-</li>
236
-
237
-<li>Come up with practical approximations to picking entry and exit in
238
-    different routing zones.</li>
239
-<li>Find ideal churn rate for helper nodes; how safe is it?</li>
240
-<li>Is exiting from the middle of the circuit always a bad idea?</li>
241
-<li>IPv6 support (For exit addresses)
268
+<li>To let dissidents in remote countries use Tor without being blocked
269
+at their country's firewall, we need a way to get tens of thousands of
270
+relays, not just a few hundred. We can imagine a Tor client GUI that
271
+has a "help China" button at the top that opens a port and relays a
272
+few KB/s of traffic into the Tor network. (A few KB/s shouldn't be too
273
+much hassle, and there are few abuse issues since they're not being exit
274
+nodes.) But how do we distribute a list of these volunteer clients to the
275
+good dissidents in an automated way that doesn't let the country-level
276
+firewalls intercept and enumerate them? Probably needs to work on a
277
+human-trust level.</li>
278
+<!-- <li>Is exiting from the middle of the circuit always a bad idea?</li>
242 279
 <li>It's not that hard to DoS Tor servers or dirservers. Are puzzles the
243
-right answer? What other practical approaches are there?</li>
280
+right answer? What other practical approaches are there?</li> -->
244 281
 </ol>
245 282
 
246 283
 Drop by the #tor IRC channel at irc.oftc.net or email tor-volunteer@freehaven.net if you want to help out!
247 284