Damian Johnson commited on 2012-11-13 17:45:50
Zeige 1 geänderte Dateien mit 124 Einfügungen und 6 Löschungen.
Nick has written four shiny, new project ideas (mmmm, shiny...).
| ... | ... |
@@ -358,15 +358,13 @@ meetings around the world.</li> |
| 358 | 358 |
extents, but the chief architects are Nick Mathewson and Roger Dingledine. |
| 359 | 359 |
</p> |
| 360 | 360 |
|
| 361 |
- <!-- |
|
| 362 | 361 |
<p> |
| 363 | 362 |
<b>Project Ideas:</b><br /> |
| 364 |
- <i><a href="#resistCensorship">Improving Tor's ability to resist |
|
| 365 |
- censorship</a></i><br /> |
|
| 366 |
- <i><a href="#user-space-transport">Integrating Tor with user-space |
|
| 367 |
- transport protocol libraries</a></i> |
|
| 363 |
+ <i><a href="#limitCapabilities">Run With Limited Capabilities</a></i><br /> |
|
| 364 |
+ <i><a href="#torCleanup">Tor Codebase Cleanup</a></i><br /> |
|
| 365 |
+ <i><a href="#httpsImersonation">HTTPS Server Impersonation</a></i><br /> |
|
| 366 |
+ <i><a href="#chutneyExpansion">Make Chutney Do More, More Reliably</a></i> |
|
| 368 | 367 |
</p> |
| 369 |
- --> |
|
| 370 | 368 |
|
| 371 | 369 |
<a id="project-jtor"></a> |
| 372 | 370 |
<h3><a href="https://github.com/brl/JTor/wiki">JTor</a> (<a |
| ... | ... |
@@ -975,6 +973,126 @@ meetings around the world.</li> |
| 975 | 973 |
</li> |
| 976 | 974 |
--> |
| 977 | 975 |
|
| 976 |
+ <a id="limitCapabilities"></a> |
|
| 977 |
+ <li> |
|
| 978 |
+ <b>Run With Limited Capabilities</b> |
|
| 979 |
+ <br> |
|
| 980 |
+ Priority: <i>Medium to High</i> |
|
| 981 |
+ <br> |
|
| 982 |
+ Effort Level: <i>Medium to High</i> |
|
| 983 |
+ <br> |
|
| 984 |
+ Skill Level: <i>High</i> |
|
| 985 |
+ <br> |
|
| 986 |
+ Likely Mentors: <i>Nick (nickm)</i> |
|
| 987 |
+ <p> |
|
| 988 |
+ Many modern operating systems give a running program the ability to drop |
|
| 989 |
+ capabilities that it no longer needs, and other ways for a program to run |
|
| 990 |
+ pieces of itself in a sandbox with diminished privileges. |
|
| 991 |
+ </p> |
|
| 992 |
+ |
|
| 993 |
+ <p> |
|
| 994 |
+ We'd like to do this with Tor, to improve its resistance to attacks. The |
|
| 995 |
+ easiest areas to address would be on systems like <a |
|
| 996 |
+ href="https://lwn.net/Articles/475361/">recent Linux kernels</a> that make |
|
| 997 |
+ it easy to drop or restrict the set of syscalls that a program can invoke. |
|
| 998 |
+ That's a great project, but probably not big enough for an internship just |
|
| 999 |
+ on its own. For that, we'd want to make progress on at least multiple |
|
| 1000 |
+ platforms, or look into refactoring Tor into pieces that need more |
|
| 1001 |
+ privileges and pieces that don't with an eye towards sandboxing them |
|
| 1002 |
+ differently. |
|
| 1003 |
+ </p> |
|
| 1004 |
+ |
|
| 1005 |
+ <p> |
|
| 1006 |
+ See tickets <a href="https://trac.torproject.org/7005">#7005</a> and <a |
|
| 1007 |
+ href="https://trac.torproject.org/5219">#5219</a>, and their descendants, |
|
| 1008 |
+ for more information. |
|
| 1009 |
+ </p> |
|
| 1010 |
+ </li> |
|
| 1011 |
+ |
|
| 1012 |
+ <a id="torCleanup"></a> |
|
| 1013 |
+ <li> |
|
| 1014 |
+ <b>Tor Codebase Cleanup</b> |
|
| 1015 |
+ <br> |
|
| 1016 |
+ Priority: <i>Medium to High</i> |
|
| 1017 |
+ <br> |
|
| 1018 |
+ Effort Level: <i>Low to High, depending on subproject chosen</i> |
|
| 1019 |
+ <br> |
|
| 1020 |
+ Skill Level: <i>Medium to High</i> |
|
| 1021 |
+ <br> |
|
| 1022 |
+ Likely Mentors: <i>Nick (nickm)</i> |
|
| 1023 |
+ <p> |
|
| 1024 |
+ The Tor code is almost 10 years old in places, and we haven't always had |
|
| 1025 |
+ enough time or wisdom to write things as well as we could have. Our unit |
|
| 1026 |
+ test coverage is shamefully low, and the dependency graph of our modules is |
|
| 1027 |
+ shamefully convoluted . We could use refactoring and unit tests! Please |
|
| 1028 |
+ look through the Tor source code and look for ugly or tricky code or |
|
| 1029 |
+ dependencies -- the uglier and trickier the better -- and think about how |
|
| 1030 |
+ you could make the code look better, read better, and (subject to testing) |
|
| 1031 |
+ work better. |
|
| 1032 |
+ </p> |
|
| 1033 |
+ |
|
| 1034 |
+ <p> |
|
| 1035 |
+ If this is for a fun side-project, it would be great for you to work on |
|
| 1036 |
+ anything that can be made better and more tested. For an internship-level |
|
| 1037 |
+ position, we'd hope that you could find a number of particularly tricky or |
|
| 1038 |
+ knotty piece of the code to clean up, and aim for resolving the ugliest |
|
| 1039 |
+ problems, not necessarily the easiest. |
|
| 1040 |
+ </p> |
|
| 1041 |
+ |
|
| 1042 |
+ <p> |
|
| 1043 |
+ For a big project here, it would be great to pick one of the major |
|
| 1044 |
+ "submodules" of Tor -- path selection, node discovery, directory authority |
|
| 1045 |
+ operations, directory service -- and refactor its interface completely, to |
|
| 1046 |
+ minify and codify its points of contact with the rest of Tor. |
|
| 1047 |
+ </p> |
|
| 1048 |
+ </li> |
|
| 1049 |
+ |
|
| 1050 |
+ <a id="httpsImersonation"></a> |
|
| 1051 |
+ <li> |
|
| 1052 |
+ <b>HTTPS Server Impersonation</b> |
|
| 1053 |
+ <br> |
|
| 1054 |
+ Priority: <i>Medium</i> |
|
| 1055 |
+ <br> |
|
| 1056 |
+ Effort Level: <i>Medium to High</i> |
|
| 1057 |
+ <br> |
|
| 1058 |
+ Skill Level: <i>Medium to High</i> |
|
| 1059 |
+ <br> |
|
| 1060 |
+ Likely Mentors: <i>Nick (nickm)</i> |
|
| 1061 |
+ <p> |
|
| 1062 |
+ We have an open proposal for a way to make Tor bridges avoid censorship by |
|
| 1063 |
+ impersonating an HTTPS server. Specifically, we need to hack some popular |
|
| 1064 |
+ SSL "reverse proxy" (your choice) so that it relays regular web connections |
|
| 1065 |
+ to an HTTP server, but certain connections to a local Tor process. <a |
|
| 1066 |
+ href="https://gitweb.torproject.org/torspec.git/blob_plain/HEAD:/proposals/203-https-frontend.txt">Proposal |
|
| 1067 |
+ 203</a> has a general design sketch. |
|
| 1068 |
+ </p> |
|
| 1069 |
+ </li> |
|
| 1070 |
+ |
|
| 1071 |
+ <a id="chutneyExpansion"></a> |
|
| 1072 |
+ <li> |
|
| 1073 |
+ <b>Make Chutney Do More, More Reliably</b> |
|
| 1074 |
+ <br> |
|
| 1075 |
+ Priority: <i>Medium</i> |
|
| 1076 |
+ <br> |
|
| 1077 |
+ Effort Level: <i>Medium to High, depending on scope of project</i> |
|
| 1078 |
+ <br> |
|
| 1079 |
+ Skill Level: <i>Medium</i> |
|
| 1080 |
+ <br> |
|
| 1081 |
+ Likely Mentors: <i>Nick (nickm)</i> |
|
| 1082 |
+ <p> |
|
| 1083 |
+ We have a little Python tool called <a |
|
| 1084 |
+ href="https://gitweb.torproject.org/nickm/chutney.git">Chutney</a> for |
|
| 1085 |
+ making small local test networks. It's small, not widely used, and not as |
|
| 1086 |
+ automated as it could be. |
|
| 1087 |
+ </p> |
|
| 1088 |
+ |
|
| 1089 |
+ <p> |
|
| 1090 |
+ It would be great to see chutney extended and a set of supporting tests |
|
| 1091 |
+ built to the point where we could use Chutney to exercise various Tor |
|
| 1092 |
+ features as an automated integration test. |
|
| 1093 |
+ </p> |
|
| 1094 |
+ </li> |
|
| 1095 |
+ |
|
| 978 | 1096 |
<a id="stemUsability"></a> |
| 979 | 1097 |
<li> |
| 980 | 1098 |
<b>Stem Usability Improvements</b> |
| 981 | 1099 |