put high priority items at the top
Roger Dingledine

Roger Dingledine commited on 2008-03-18 06:35:49
Zeige 2 geänderte Dateien mit 261 Einfügungen und 257 Löschungen.

... ...
@@ -36,7 +36,11 @@ a thriving community of interested developers on the IRC channel and
36 36
 mailing lists, and we're eager to work with you, brainstorm about design,
37 37
 and so on, but you need to be able to manage your own time, and you
38 38
 need to already be familiar with how free software development on the
39
-Internet works. In addition to hoping to get some more development work
39
+Internet works.
40
+</p>
41
+
42
+<p>
43
+In addition to hoping to get some more development work
40 44
 done on Tor and related applications, Google and Tor are most interested
41 45
 in getting students involved in the project in a way that keeps them
42 46
 involved after the summer too. As such, we will give priority to students
... ...
@@ -104,7 +104,7 @@ people>#Core">core developers</a> would be good mentors.
104 104
 <ol>
105 105
 
106 106
 <li>
107
-<b>Tor/Polipo/Vidalia Auto-Update Framework</b>
107
+<b>Tor Exit Scanner improvements</b>
108 108
 <br />
109 109
 Priority: <i>High</i>
110 110
 <br />
... ...
@@ -112,75 +112,167 @@ Effort Level: <i>High</i>
112 112
 <br />
113 113
 Skill Level: <i>High</i>
114 114
 <br />
115
-Likely Mentors: <i>Matt, Jacob</i>
115
+Likely Mentors: <i>Mike</i>
116 116
 <br />
117
-We're in need of a good authenticated-update framework.
118
-Vidalia already has the ability to notice when the user is running an
119
-outdated or unrecommended version of Tor, using signed statements inside
120
-the Tor directory information. Currently, Vidalia simply pops
121
-up a little message box that lets the user know they should manually
122
-upgrade. The goal of this project would be to extend Vidalia with the
123
-ability to also fetch and install the updated Tor software for the
124
-user. We should do the fetches via Tor when possible, but also fall back
125
-to direct fetches in a smart way. Time permitting, we would also like
126
-to be able to update other
127
-applications included in the bundled installers, such as Polipo and
128
-Vidalia itself.
117
+The Tor exit node scanner 'SoaT', part of the <a
118
+href="<svnsandbox>torflow/">Torflow project</a>, makes connections out
119
+of each Tor exit node and compares the content it gets back with what it
120
+"should" get back. The goal is to notice misconfigured, broken, and even
121
+malicious exit relays. Alas, the code is
122
+currently written in rather rickety perl and relies on MD5sums of
123
+entire documents in order to determine if exit nodes are modifying
124
+content. The problem with this is threefold: 1) Perl sucks at life.
125
+2) The scanner can't verify pages that are dynamic, and attackers can
126
+focus malicious content injection on only those dynamic pages. 3)
127
+Pages change after a while (or based on GeoIP) and begin generating
128
+false positives.
129 129
 <br />
130
-To complete this project, the student will first need to first investigate
131
-the existing auto-update frameworks (e.g., Sparkle on OS X) to evaluate
132
-their strengths, weaknesses, security properties, and ability to be
133
-integrated into Vidalia. If none are found to be suitable, the student
134
-will design their own auto-update framework, document the design, and
135
-then discuss the design with other developers to assess any security
136
-issues. The student will then implement their framework (or integrate
137
-an existing one) and test it.
130
+Ideally, soat.pl would be reimplemented in a sane language with a
131
+robust html parser library (since the rest of Torflow is in Python
132
+that would be nice, but it is not required), and calculate signatures only for
133
+tags and content likely to be targeted by a malicious attacker (script
134
+tags, object links, images, css). It should also be robust in the face of
135
+changes to content outside of Tor, and ultimately even GeoIP localized
136
+content.
137
+<br />
138
+This scanner would likely be run by the Directory Authorities and
139
+report its results to the control port via the AuthDirBadExit config
140
+setting.
138 141
 <br />
139
-A student undertaking this project should have good C++ development
140
-experience. Previous experience with Qt is helpful, but not required. The
141
-student should also have a good understanding of common security
142
-practices, such as package signature verification. Good writing ability
143
-is also important for this project, since a vital step of the project
144
-will be producing a design document for others to review and discuss
145
-with the student prior to implementation.
146 142
 </li>
147 143
 
148 144
 <li>
149
-<b>An Improved and More Usable Network Map in Vidalia</b>
145
+<b>Tor Node Scanner improvements</b>
150 146
 <br />
151
-Priority: <i>Medium</i>
147
+Priority: <i>High</i>
152 148
 <br />
153
-Effort Level: <i>Medium</i>
149
+Effort Level: <i>Medium to High</i>
154 150
 <br />
155 151
 Skill Level: <i>Medium to High</i>
156 152
 <br />
157
-Likely Mentors: <i>Matt</i>
153
+Likely Mentors: <i>Mike</i>
158 154
 <br />
159
-One of Vidalia's existing features is a network map that shows the user
160
-the approximate geographic location of relays in the Tor network and
161
-plots the paths the user's traffic takes as it is tunneled through the
162
-Tor network. The map is currently not very interactive and has rather
163
-poor graphics. Instead, we would like to leverage KDE's Marble widget
164
-that gives us a better quality map and enables improved interactivity,
165
-such as allowing the user to click on individual relays or circuits to
166
-display additional information. We might also consider adding the ability
167
-for users to click on a particular relay or a country containing one or
168
-more Tor exit relays and say, "I want my connections to foo.com to exit
169
-from here."
155
+Similar to the exit scanner (or perhaps even during exit scanning),
156
+statistics can be gathered about the reliability of nodes. Nodes that
157
+fail too high a percentage of their circuits should not be given
158
+Guard status. Perhaps they should have their reported bandwidth
159
+penalized by some ratio as well, or just get marked as Invalid. In
160
+addition, nodes that exhibit a very low average stream capacity but
161
+advertise a very high node bandwidth can also be marked as Invalid.
162
+Much of this statistics gathering is already done, it just needs to be
163
+transformed into something that can be reported to the Directory
164
+Authorities to blacklist/penalize nodes in such a way that clients
165
+will listen.
170 166
 <br />
171
-This project will first involve the student getting familiar with Vidalia
172
-and the Marble widget's API. The student will then integrate the widget
173
-into Vidalia and customize Marble to be better suited for our application,
174
-such as making circuits clickable, storing cached map data in Vidalia's
175
-own data directory, and customizing some of the widget's dialogs.
167
+In addition, these same statistics can be gathered about the traffic
168
+through a node. Events can be added to the <a
169
+href="https://www.torproject.org/svn/torctl/doc/howto.txt">Tor Control
170
+Protocol</a> to
171
+report if a circuit extend attempt through the node succeeds or fails, and
172
+passive statistics can be gathered on both bandwidth and reliability
173
+of other nodes via a node-based monitor using these events. Such a
174
+scanner would also report information on oddly-behaving nodes to
175
+the Directory Authorities, but a communication channel for this
176
+currently does not exist and would need to be developed as well.
177
+</li>
178
+
179
+<li>
180
+<b>Help track the overall Tor Network status</b>
176 181
 <br />
177
-A student undertaking this project should have good C++ development
178
-experience. Previous experience with Qt and CMake is helpful, but not
179
-required.
182
+Priority: <i>High</i>
183
+<br />
184
+Effort Level: <i>Medium</i>
185
+<br />
186
+Skill Level: <i>Medium</i>
187
+<br />
188
+Likely Mentors: <i>Roger, Nick, Mike</i>
189
+<br />
190
+It would be great to set up an automated system for tracking network
191
+health over time, graphing it, etc. Part of this project would involve
192
+inventing better metrics for assessing network health and growth. Is the
193
+average uptime of the network increasing? How many relays are qualifying
194
+for Guard status this month compared to last month? What's the turnover
195
+in terms of new relays showing up and relays shutting off? Periodically
196
+people collect brief snapshots, but where it gets really interesting is
197
+when we start tracking data points over time.
198
+<br />
199
+Data could be collected from the "Tor Node Scanner" item above, from
200
+the server descriptors that each relay publishes, and from other
201
+sources. Results over time could be integrated into one of the <a
202
+href="https://torstatus.blutmagie.de/">Tor Status</a> web pages, or be
203
+kept separate. Speaking of the Tor Status pages, take a look at Roger's
204
+<a href="http://archives.seul.org/or/talk/Jan-2008/msg00300.html">Tor
205
+Status wish list</a>.
206
+</li>
207
+
208
+<li>
209
+<b>Tor path selection improvements</b>
210
+<br />
211
+Priority: <i>High</i>
212
+<br />
213
+Effort Level: <i>Low to Medium</i>
214
+<br />
215
+Skill Level: <i>High</i>
216
+<br />
217
+Likely Mentors: <i>Roger, Nick, Mike</i>
218
+<br />
219
+Some simple improvements can be made to Tor's path selection to vastly
220
+improve Tor speed. For instance, some of the (unofficial) <a
221
+href="http://wiki.noreply.org/noreply/TheOnionRouter/FireFoxTorPerf">Tor
222
+Performance Recommendations</a> on the wiki are to increase the number of
223
+guards and decrease the CircuitBuildTimeout. Ideally, the client would
224
+<a href="http://archives.seul.org/or/talk/Feb-2008/msg00012.html">learn
225
+these values by gathering statistics on circuit construction
226
+time</a> (and/or using values gained from Torflow), and set the timeouts
227
+low enough such that some high percentile (75%, 90%, 1-stddev?) of
228
+circuits succeed, yet extremely slow nodes are avoided. This would
229
+involve some statistics gathering+basic research, and some changes to
230
+Tor path selection code.
231
+<br />
232
+In addition, to improve path security, some elements from the <a
233
+href="http://www.torproject.org/svn/trunk/doc/spec/proposals/115-two-hop-paths.txt">Two
234
+Hop Paths proposal</a> could be done as part of this (since it will
235
+likely touch the same code anyways), regardless of the adoption of
236
+that proposal. In particular, clients probably should avoid guards that
237
+seem to fail an excessive percentage of their circuits through them,
238
+and non-firewalled clients should issue a warning if they are only able
239
+to connect to a limited set of guard nodes. See also
240
+<a href="http://archives.seul.org/or/dev/Feb-2008/msg00003.html">this
241
+or-dev post</a>.
180 242
 </li>
181 243
 
182 244
 <li>
183
-<b>Better Debian Packaging for Tor+Vidalia</b>
245
+<b>Translation Wiki</b>
246
+<br />
247
+Priority: <i>High</i>
248
+<br />
249
+Effort Level: <i>Medium</i>
250
+<br />
251
+Skill Level: <i>Medium</i>
252
+<br />
253
+Likely Mentors: <i>Jacob</i>
254
+<br />
255
+We need a way to edit and translate sections of the website. Currently
256
+the website is made up of a bunch of <a href="<svnwebsite>en/">wml
257
+files</a>, and <a href="<page translation>">translators</a> fetch these
258
+wml files, translate them in an editor, and either send us the translation
259
+or use svn to commit them back. The current "cost" of publication of
260
+website changes is quite high even for English language users. For a
261
+single word change or any type of
262
+minor change, the page may never be corrected or translated. It would
263
+be nice to have a wiki that was specifically geared towards translation
264
+and would somehow track the upstream (English) versions to indicate when
265
+a fresh translation is needed, like our current
266
+<a href="<page translation-status>">translation status page</a>. This
267
+seems mostly like a job for a wiki
268
+integrator or wiki software author. Certainly the person would need to
269
+be interested in human languages and translation. They should at least
270
+be minimally familiar with what Tor is; but they would not have to interact
271
+with the software, only the documentation and the website.
272
+</li>
273
+
274
+<li>
275
+<b>Better Debian/Ubuntu Packaging for Tor+Vidalia</b>
184 276
 <br />
185 277
 Priority: <i>High</i>
186 278
 <br />
... ...
@@ -231,6 +323,117 @@ Debian package management and some C++ development experience. Previous
231 323
 experience with Qt is helpful, but not required.
232 324
 </li>
233 325
 
326
+<li>
327
+<b>Improving Tor's ability to resist censorship</b>
328
+<br />
329
+Priority: <i>High</i>
330
+<br />
331
+Effort Level: <i>High</i>
332
+<br />
333
+Skill Level: <i>High</i>
334
+<br />
335
+Likely Mentors: <i>Nick</i>
336
+<br />
337
+The Tor 0.2.0.x series makes <a
338
+href="<svnsandbox>doc/design-paper/blocking.html">significant
339
+improvements</a> in resisting national and organizational censorship.
340
+But Tor still needs better mechanisms for some parts of its
341
+anti-censorship design.  For example, current Tors can only listen on a
342
+single address/port combination at a time.  There's
343
+<a href="<svnsandbox>doc/spec/proposals/118-multiple-orports.txt">a
344
+proposal to address this limitation</a> and allow clients to connect
345
+to any given Tor on multiple addresses and ports, but it needs more
346
+work.  Another anti-censorship project (far more difficult) is to try
347
+to make Tor more scanning-resistant.  Right now, an adversary can identify
348
+<a href="<svnsandbox>doc/spec/proposals/125-bridges.txt">Tor bridges</a>
349
+just by trying to connect to them, following the Tor protocol, and
350
+seeing if they respond.  To solve this, bridges could
351
+<a href="<svnsandbox>doc/design-paper/blocking.html#tth_sEc9.3">act like
352
+webservers</a> (HTTP or HTTPS) when contacted by port-scanning tools,
353
+and not act like bridges until the user provides a bridge-specific key.
354
+<br />
355
+This project involves a lot of research and design. One of the big
356
+challenges will be identifying and crafting approaches that can still
357
+resist an adversary even after the adversary knows the design, and
358
+then trading off censorship resistance with usability and robustness.
359
+</li>
360
+
361
+<li>
362
+<b>Tor/Polipo/Vidalia Auto-Update Framework</b>
363
+<br />
364
+Priority: <i>Medium</i>
365
+<br />
366
+Effort Level: <i>High</i>
367
+<br />
368
+Skill Level: <i>High</i>
369
+<br />
370
+Likely Mentors: <i>Matt, Jacob</i>
371
+<br />
372
+We're in need of a good authenticated-update framework.
373
+Vidalia already has the ability to notice when the user is running an
374
+outdated or unrecommended version of Tor, using signed statements inside
375
+the Tor directory information. Currently, Vidalia simply pops
376
+up a little message box that lets the user know they should manually
377
+upgrade. The goal of this project would be to extend Vidalia with the
378
+ability to also fetch and install the updated Tor software for the
379
+user. We should do the fetches via Tor when possible, but also fall back
380
+to direct fetches in a smart way. Time permitting, we would also like
381
+to be able to update other
382
+applications included in the bundled installers, such as Polipo and
383
+Vidalia itself.
384
+<br />
385
+To complete this project, the student will first need to first investigate
386
+the existing auto-update frameworks (e.g., Sparkle on OS X) to evaluate
387
+their strengths, weaknesses, security properties, and ability to be
388
+integrated into Vidalia. If none are found to be suitable, the student
389
+will design their own auto-update framework, document the design, and
390
+then discuss the design with other developers to assess any security
391
+issues. The student will then implement their framework (or integrate
392
+an existing one) and test it.
393
+<br />
394
+A student undertaking this project should have good C++ development
395
+experience. Previous experience with Qt is helpful, but not required. The
396
+student should also have a good understanding of common security
397
+practices, such as package signature verification. Good writing ability
398
+is also important for this project, since a vital step of the project
399
+will be producing a design document for others to review and discuss
400
+with the student prior to implementation.
401
+</li>
402
+
403
+<li>
404
+<b>An Improved and More Usable Network Map in Vidalia</b>
405
+<br />
406
+Priority: <i>Medium</i>
407
+<br />
408
+Effort Level: <i>Medium</i>
409
+<br />
410
+Skill Level: <i>Medium to High</i>
411
+<br />
412
+Likely Mentors: <i>Matt</i>
413
+<br />
414
+One of Vidalia's existing features is a network map that shows the user
415
+the approximate geographic location of relays in the Tor network and
416
+plots the paths the user's traffic takes as it is tunneled through the
417
+Tor network. The map is currently not very interactive and has rather
418
+poor graphics. Instead, we would like to leverage KDE's Marble widget
419
+that gives us a better quality map and enables improved interactivity,
420
+such as allowing the user to click on individual relays or circuits to
421
+display additional information. We might also consider adding the ability
422
+for users to click on a particular relay or a country containing one or
423
+more Tor exit relays and say, "I want my connections to foo.com to exit
424
+from here."
425
+<br />
426
+This project will first involve the student getting familiar with Vidalia
427
+and the Marble widget's API. The student will then integrate the widget
428
+into Vidalia and customize Marble to be better suited for our application,
429
+such as making circuits clickable, storing cached map data in Vidalia's
430
+own data directory, and customizing some of the widget's dialogs.
431
+<br />
432
+A student undertaking this project should have good C++ development
433
+experience. Previous experience with Qt and CMake is helpful, but not
434
+required.
435
+</li>
436
+
234 437
 <li>
235 438
 <b>Tor Controller Status Event Interface</b>
236 439
 <br />
... ...
@@ -274,36 +477,6 @@ be understandable by non-technical users. Bonus points for some graphic
274 477
 design/Photoshop fu, since we might want/need some shiny new icons too.
275 478
 </li>
276 479
 
277
-<li>
278
-<b>Translation Wiki</b>
279
-<br />
280
-Priority: <i>High</i>
281
-<br />
282
-Effort Level: <i>Medium</i>
283
-<br />
284
-Skill Level: <i>Medium</i>
285
-<br />
286
-Likely Mentors: <i>Jacob</i>
287
-<br />
288
-We need a way to edit and translate sections of the website. Currently
289
-the website is made up of a bunch of <a href="<svnwebsite>en/">wml
290
-files</a>, and <a href="<page translation>">translators</a> fetch these
291
-wml files, translate them in an editor, and either send us the translation
292
-or use svn to commit them back. The current "cost" of publication of
293
-website changes is quite high even for English language users. For a
294
-single word change or any type of
295
-minor change, the page may never be corrected or translated. It would
296
-be nice to have a wiki that was specifically geared towards translation
297
-and would somehow track the upstream (English) versions to indicate when
298
-a fresh translation is needed, like our current
299
-<a href="<page translation-status>">translation status page</a>. This
300
-seems mostly like a job for a wiki
301
-integrator or wiki software author. Certainly the person would need to
302
-be interested in human languages and translation. They should at least
303
-be minimally familiar with what Tor is; but they would not have to interact
304
-with the software, only the documentation and the website.
305
-</li>
306
-
307 480
 <li>
308 481
 <b>Improvements on our active browser configuration tester</b> -
309 482
 <a href="https://check.torproject.org/">https://check.torproject.org/</a>
... ...
@@ -395,41 +568,6 @@ channels. The student should be closely familiar with using Tor and how
395 568
 to prevent Tor information leakage.
396 569
 </li>
397 570
 
398
-<li>
399
-<b>Improving Tor's ability to resist censorship</b>
400
-<br />
401
-Priority: <i>High</i>
402
-<br />
403
-Effort Level: <i>High</i>
404
-<br />
405
-Skill Level: <i>High</i>
406
-<br />
407
-Likely Mentors: <i>Nick</i>
408
-<br />
409
-The Tor 0.2.0.x series makes <a
410
-href="<svnsandbox>doc/design-paper/blocking.html">significant
411
-improvements</a> in resisting national and organizational censorship.
412
-But Tor still needs better mechanisms for some parts of its
413
-anti-censorship design.  For example, current Tors can only listen on a
414
-single address/port combination at a time.  There's
415
-<a href="<svnsandbox>doc/spec/proposals/118-multiple-orports.txt">a
416
-proposal to address this limitation</a> and allow clients to connect
417
-to any given Tor on multiple addresses and ports, but it needs more
418
-work.  Another anti-censorship project (far more difficult) is to try
419
-to make Tor more scanning-resistant.  Right now, an adversary can identify
420
-<a href="<svnsandbox>doc/spec/proposals/125-bridges.txt">Tor bridges</a>
421
-just by trying to connect to them, following the Tor protocol, and
422
-seeing if they respond.  To solve this, bridges could
423
-<a href="<svnsandbox>doc/design-paper/blocking.html#tth_sEc9.3">act like
424
-webservers</a> (HTTP or HTTPS) when contacted by port-scanning tools,
425
-and not act like bridges until the user provides a bridge-specific key.
426
-<br />
427
-This project involves a lot of research and design. One of the big
428
-challenges will be identifying and crafting approaches that can still
429
-resist an adversary even after the adversary knows the design, and
430
-then trading off censorship resistance with usability and robustness.
431
-</li>
432
-
433 571
 <li>
434 572
 <b>Libevent and Tor integration improvements</b>
435 573
 <br />
... ...
@@ -636,144 +774,6 @@ project is one part about identifying requirements to such a
636 774
 tool and designing its interface, and one part lots of coding.
637 775
 </li>
638 776
 
639
-<li>
640
-<b>Tor Exit Scanner improvements</b>
641
-<br />
642
-Priority: <i>High</i>
643
-<br />
644
-Effort Level: <i>High</i>
645
-<br />
646
-Skill Level: <i>High</i>
647
-<br />
648
-Likely Mentors: <i>Mike</i>
649
-<br />
650
-The Tor exit node scanner 'SoaT', part of the <a
651
-href="<svnsandbox>torflow/">Torflow project</a>, makes connections out
652
-of each Tor exit node and compares the content it gets back with what it
653
-"should" get back. The goal is to notice misconfigured, broken, and even
654
-malicious exit relays. Alas, the code is
655
-currently written in rather rickety perl and relies on MD5sums of
656
-entire documents in order to determine if exit nodes are modifying
657
-content. The problem with this is threefold: 1) Perl sucks at life.
658
-2) The scanner can't verify pages that are dynamic, and attackers can
659
-focus malicious content injection on only those dynamic pages. 3)
660
-Pages change after a while (or based on GeoIP) and begin generating
661
-false positives.
662
-<br />
663
-Ideally, soat.pl would be reimplemented in a sane language with a
664
-robust html parser library (since the rest of Torflow is in Python
665
-that would be nice, but it is not required), and calculate signatures only for
666
-tags and content likely to be targeted by a malicious attacker (script
667
-tags, object links, images, css). It should also be robust in the face of
668
-changes to content outside of Tor, and ultimately even GeoIP localized
669
-content.
670
-<br />
671
-This scanner would likely be run by the Directory Authorities and
672
-report its results to the control port via the AuthDirBadExit config
673
-setting.
674
-<br />
675
-</li>
676
-
677
-<li>
678
-<b>Tor Node Scanner improvements</b>
679
-<br />
680
-Priority: <i>High</i>
681
-<br />
682
-Effort Level: <i>Medium to High</i>
683
-<br />
684
-Skill Level: <i>Medium to High</i>
685
-<br />
686
-Likely Mentors: <i>Mike</i>
687
-<br />
688
-Similar to the exit scanner (or perhaps even during exit scanning),
689
-statistics can be gathered about the reliability of nodes. Nodes that
690
-fail too high a percentage of their circuits should not be given
691
-Guard status. Perhaps they should have their reported bandwidth
692
-penalized by some ratio as well, or just get marked as Invalid. In
693
-addition, nodes that exhibit a very low average stream capacity but
694
-advertise a very high node bandwidth can also be marked as Invalid.
695
-Much of this statistics gathering is already done, it just needs to be
696
-transformed into something that can be reported to the Directory
697
-Authorities to blacklist/penalize nodes in such a way that clients
698
-will listen.
699
-<br />
700
-In addition, these same statistics can be gathered about the traffic
701
-through a node. Events can be added to the <a
702
-href="https://www.torproject.org/svn/torctl/doc/howto.txt">Tor Control
703
-Protocol</a> to
704
-report if a circuit extend attempt through the node succeeds or fails, and
705
-passive statistics can be gathered on both bandwidth and reliability
706
-of other nodes via a node-based monitor using these events. Such a
707
-scanner would also report information on oddly-behaving nodes to
708
-the Directory Authorities, but a communication channel for this
709
-currently does not exist and would need to be developed as well.
710
-</li>
711
-
712
-<li>
713
-<b>Help track the overall Tor Network status</b>
714
-<br />
715
-Priority: <i>High</i>
716
-<br />
717
-Effort Level: <i>Medium</i>
718
-<br />
719
-Skill Level: <i>Medium</i>
720
-<br />
721
-Likely Mentors: <i>Roger, Nick, Mike</i>
722
-<br />
723
-It would be great to set up an automated system for tracking network
724
-health over time, graphing it, etc. Part of this project would involve
725
-inventing better metrics for assessing network health and growth. Is the
726
-average uptime of the network increasing? How many relays are qualifying
727
-for Guard status this month compared to last month? What's the turnover
728
-in terms of new relays showing up and relays shutting off? Periodically
729
-people collect brief snapshots, but where it gets really interesting is
730
-when we start tracking data points over time.
731
-<br />
732
-Data could be collected from the "Tor Node Scanner" item above, from
733
-the server descriptors that each relay publishes, and from other
734
-sources. Results over time could be integrated into one of the <a
735
-href="https://torstatus.blutmagie.de/">Tor Status</a> web pages, or be
736
-kept separate. Speaking of the Tor Status pages, take a look at Roger's
737
-<a href="http://archives.seul.org/or/talk/Jan-2008/msg00300.html">Tor
738
-Status wish list</a>.
739
-</li>
740
-
741
-<li>
742
-<b>Tor path selection improvements</b>
743
-<br />
744
-Priority: <i>High</i>
745
-<br />
746
-Effort Level: <i>Low to Medium</i>
747
-<br />
748
-Skill Level: <i>High</i>
749
-<br />
750
-Likely Mentors: <i>Roger, Nick, Mike</i>
751
-<br />
752
-Some simple improvements can be made to Tor's path selection to vastly
753
-improve Tor speed. For instance, some of the (unofficial) <a
754
-href="http://wiki.noreply.org/noreply/TheOnionRouter/FireFoxTorPerf">Tor
755
-Performance Recommendations</a> on the wiki are to increase the number of
756
-guards and decrease the CircuitBuildTimeout. Ideally, the client would
757
-<a href="http://archives.seul.org/or/talk/Feb-2008/msg00012.html">learn
758
-these values by gathering statistics on circuit construction
759
-time</a> (and/or using values gained from Torflow), and set the timeouts
760
-low enough such that some high percentile (75%, 90%, 1-stddev?) of
761
-circuits succeed, yet extremely slow nodes are avoided. This would
762
-involve some statistics gathering+basic research, and some changes to
763
-Tor path selection code.
764
-<br />
765
-In addition, to improve path security, some elements from the <a
766
-href="http://www.torproject.org/svn/trunk/doc/spec/proposals/115-two-hop-paths.txt">Two
767
-Hop Paths proposal</a> could be done as part of this (since it will
768
-likely touch the same code anyways), regardless of the adoption of
769
-that proposal. In particular, clients probably should avoid guards that
770
-seem to fail an excessive percentage of their circuits through them,
771
-and non-firewalled clients should issue a warning if they are only able
772
-to connect to a limited set of guard nodes. See also
773
-<a href="http://archives.seul.org/or/dev/Feb-2008/msg00003.html">this
774
-or-dev post</a>.
775
-</li>
776
-
777 777
 <li>
778 778
 <b>Torbutton improvements</b>
779 779
 <br />
780 780