Adding revised tor project ideas
Damian Johnson

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