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 |