Damian Johnson commited on 2016-02-29 18:07:37
Zeige 1 geänderte Dateien mit 3 Einfügungen und 303 Löschungen.
Dropping the folks we haven't heard from with regard to GSoC. For projects where they're the last names remaining dropping the project itself too.
... | ... |
@@ -416,11 +416,7 @@ meetings around the world.</li> |
416 | 416 |
|
417 | 417 |
<p> |
418 | 418 |
<b>Project Ideas:</b><br /> |
419 |
- <i><a href="#torCleanup">Tor Codebase Cleanup</a></i><br /> |
|
420 |
- <i><a href="#improveTorTestCoverage">Improve test coverage in Tor</a></i><br /> |
|
421 |
- <i><a href="#useMoreCores">Have the Tor daemon use more cores</a></i><br /> |
|
422 |
- <i><a href="#improveHiddenServices">Help improve Tor hidden services</a></i><br /> |
|
423 |
- <i><a href="#improvedDnsSupport">Improved DNS support for Tor</a></i> |
|
419 |
+ <i><a href="#improveHiddenServices">Help improve Tor hidden services</a></i> |
|
424 | 420 |
</p> |
425 | 421 |
|
426 | 422 |
<a id="project-torbrowser"></a> |
... | ... |
@@ -558,12 +554,6 @@ meetings around the world.</li> |
558 | 554 |
block Tor. This has both a C and python implementation. |
559 | 555 |
</p> |
560 | 556 |
|
561 |
- <p> |
|
562 |
- <b>Project Ideas:</b><br /> |
|
563 |
- <i><a href="https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#Helpneeded">Various coding tasks</a></i> <br/> |
|
564 |
- <i><a href="#betterPluggableTransports">Build Better Pluggable Transports</a></i> |
|
565 |
- </p> |
|
566 |
- |
|
567 | 557 |
<a id="project-flash-proxy"></a> |
568 | 558 |
<h3><a href="https://crypto.stanford.edu/flashproxy/">Flash Proxy</a> (<a |
569 | 559 |
href="https://gitweb.torproject.org/flashproxy.git">code</a>, <a |
... | ... |
@@ -795,11 +785,6 @@ meetings around the world.</li> |
795 | 785 |
content. |
796 | 786 |
</p> |
797 | 787 |
|
798 |
- <p> |
|
799 |
- <b>Project Ideas:</b><br /> |
|
800 |
- <i><a href="#ooniprobePcapsSupport">Add Support for Reporting Pcaps to OoniBackend and OoniProbe</a></i> |
|
801 |
- </p> |
|
802 |
- |
|
803 | 788 |
<a id="project-torps"></a> |
804 | 789 |
<h3>TorPS</a> (<a href="https://github.com/torps/torps">code</a>)</h3> |
805 | 790 |
|
... | ... |
@@ -866,125 +851,13 @@ meetings around the world.</li> |
866 | 851 |
|
867 | 852 |
<ol> |
868 | 853 |
|
869 |
- <a id="torCleanup"></a> |
|
870 |
- <li> |
|
871 |
- <b>Tor Codebase Cleanup</b> |
|
872 |
- <br> |
|
873 |
- Language: <i>C</i> |
|
874 |
- <br> |
|
875 |
- Likely Mentors: <i>David (dgoulet)</i> |
|
876 |
- <br><br> |
|
877 |
- <p> |
|
878 |
- The Tor code is more than 10 years old in places, and we haven't always had |
|
879 |
- enough time or wisdom to write things as well as we could have. Our unit |
|
880 |
- test coverage is shamefully low, and the dependency graph of our modules is |
|
881 |
- shamefully convoluted . We could use refactoring and unit tests! Please |
|
882 |
- look through the Tor source code and look for ugly or tricky code or |
|
883 |
- dependencies -- the uglier and trickier the better -- and think about how |
|
884 |
- you could make the code look better, read better, and (subject to testing) |
|
885 |
- work better. |
|
886 |
- </p> |
|
887 |
- |
|
888 |
- <p> |
|
889 |
- If this is for a fun side-project, it would be great for you to work on |
|
890 |
- anything that can be made better and more tested. For an internship-level |
|
891 |
- position, we'd hope that you could find a number of particularly tricky or |
|
892 |
- knotty piece of the code to clean up, and aim for resolving the ugliest |
|
893 |
- problems, not necessarily the easiest. |
|
894 |
- </p> |
|
895 |
- |
|
896 |
- <p> |
|
897 |
- For a big project here, it would be great to pick one of the major |
|
898 |
- "submodules" of Tor -- path selection, node discovery, directory authority |
|
899 |
- operations, directory service -- and refactor its interface completely, to |
|
900 |
- minify and codify its points of contact with the rest of Tor. |
|
901 |
- </p> |
|
902 |
- |
|
903 |
- <p> |
|
904 |
- <b>As part of your application for this project please identify one of the |
|
905 |
- thorniest Tor functions and submit a patch refactoring it to be better. If |
|
906 |
- you find this to be difficult then this likely isn't the project for |
|
907 |
- you.</b> |
|
908 |
- </p> |
|
909 |
- </li> |
|
910 |
- |
|
911 |
- <a id="betterPluggableTransports"></a> |
|
912 |
- <li> |
|
913 |
- <b>Build Better Pluggable Transports</b> |
|
914 |
- <br> |
|
915 |
- Language: <i>C, Python</i> |
|
916 |
- <br> |
|
917 |
- Likely Mentors: <i>Ximin (infinity0)</i> |
|
918 |
- <br><br> |
|
919 |
- <p> |
|
920 |
- For Tor users in censored countries, we have a <a |
|
921 |
- href="<page docs/pluggable-transports>"> |
|
922 |
- pluggable transports</a> framework that uses external programs to bypass |
|
923 |
- censorship in different ways. Each of these have their own strengths and |
|
924 |
- weaknesses. |
|
925 |
- </p> |
|
926 |
- |
|
927 |
- <p> |
|
928 |
- We have deployed <a |
|
929 |
- href="<page projects/obfsproxy>">obfsproxy</a>, |
|
930 |
- <a href="http://crypto.stanford.edu/flashproxy/">flashproxy</a>, |
|
931 |
- <a href="http://www.cs.kau.se/philwint/scramblesuit/">scramblesuit</a>, |
|
932 |
- <a href="https://trac.torproject.org/projects/tor/wiki/doc/meek">meek</a>, |
|
933 |
- and <a href="https://fteproxy.org/about">FTE</a> bridges into the main |
|
934 |
- Tor Browser.</a> |
|
935 |
- </p> |
|
936 |
- |
|
937 |
- <p> |
|
938 |
- There are several possible directions for this project. Ideas include: |
|
939 |
- <ol> |
|
940 |
- <li>Address gaps or weaknesses in our existing pluggable transports |
|
941 |
- <ul> |
|
942 |
- <li>Flashproxy: Add WebRTC support to traverse NATs.</li> |
|
943 |
- <li>Flashproxy: Improve the facilitator's resistance against DoS |
|
944 |
- and poisoning attacks.</li> |
|
945 |
- </ul> |
|
946 |
- </li> |
|
947 |
- <li>Finish and release our pluggable transport combiner, that chains |
|
948 |
- several transports together to take advantage of orthogonal types of |
|
949 |
- blocking resistance.</li> |
|
950 |
- <li>Improve the UX for selecting the appropriate pluggable transport in |
|
951 |
- the new Tor Browser, whilst maintaining user security.</li> |
|
952 |
- <li>Implement a new pluggable transport that resists blocking in a |
|
953 |
- novel way. |
|
954 |
- <ul> |
|
955 |
- <li>Impersonate a voice-over-IP protocol</li> |
|
956 |
- <li>Impersonate HTTP <a |
|
957 |
- href="http://www.cs.utexas.edu/~amir/papers/parrot.pdf">sufficiently |
|
958 |
- well</a> that traffic will go through a HTTP-only proxy</li> |
|
959 |
- <li>Implement <a |
|
960 |
- href="http://cacr.uwaterloo.ca/techreports/2011/cacr2011-21.pdf">scanning |
|
961 |
- resistance</a></li> |
|
962 |
- </ul> |
|
963 |
- </li> |
|
964 |
- </ol> |
|
965 |
- </p> |
|
966 |
- |
|
967 |
- <p> |
|
968 |
- Applicants should be familiar with asynchronous/reactive programming, in |
|
969 |
- particular the <a href="https://twistedmatrix.com/">Twisted framework</a> |
|
970 |
- or something related. Most of the existing code is written in Python, with |
|
971 |
- some parts in JavaScript and Go, so you should know at least one of these. |
|
972 |
- You are invited to talk to us and ask questions, via our mailing lists |
|
973 |
- or IRC. <b>As part of your application, please contribute a patch that |
|
974 |
- implements a small feature or fixes a bug related to this area, e.g. <a |
|
975 |
- href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Pluggable+transport">1</a>, |
|
976 |
- <a href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Obfsproxy">2</a>, |
|
977 |
- <a href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Flashproxy">3</a>. |
|
978 |
- </b> |
|
979 |
- </p> |
|
980 |
- |
|
981 | 854 |
<a id="makeTorbirdyBetter"></a> |
982 | 855 |
<li> |
983 | 856 |
<b>Make TorBirdy Better</b> |
984 | 857 |
<br> |
985 | 858 |
Language: <i>JavaScript, C++</i> |
986 | 859 |
<br> |
987 |
- Likely Mentors: <i>Sukhbir Singh (sukhe), Jacob Appelbaum (ioerror)</i> |
|
860 |
+ Likely Mentors: <i>Sukhbir Singh (sukhe)</i> |
|
988 | 861 |
<br><br> |
989 | 862 |
<p> |
990 | 863 |
TorBirdy is an extension that configures Thunderbird to make connections over |
... | ... |
@@ -1021,152 +894,13 @@ You may contact the mentors on IRC for more information. (sukhe on #tor-dev, #to |
1021 | 894 |
</p> |
1022 | 895 |
</li> |
1023 | 896 |
|
1024 |
- <a id="ooniprobePcapsSupport"></a> |
|
1025 |
- <li> |
|
1026 |
- <b>Add Support for Reporting Pcaps to OoniBackend and OoniProbe</b> |
|
1027 |
- <br> |
|
1028 |
- Language: <i>Python</i> |
|
1029 |
- <br> |
|
1030 |
- Likely Mentors: <i>Arturo (hellais)</i> |
|
1031 |
- <br><br> |
|
1032 |
- <p> |
|
1033 |
-The feature should also add support for including only packet capture data that |
|
1034 |
-is relevant to the test being run. This means that the pcap should not contain |
|
1035 |
-all the data sniffed on the users machine, but only that which was generated |
|
1036 |
-and intended to be received by ooniprobe. |
|
1037 |
- </p> |
|
1038 |
- |
|
1039 |
- <p> |
|
1040 |
-This can probably be implemented by setting up a tun/tap device and routing all |
|
1041 |
-the ooniprobe traffic through it and only capturing data sent and received from |
|
1042 |
-that device. The task for the student will also be that of doing research into |
|
1043 |
-what are possible strategies for doing this. <b><a |
|
1044 |
-href="https://trac.torproject.org/projects/tor/ticket/7416">For more |
|
1045 |
-information see ticket 7416.</a></b> |
|
1046 |
- </p> |
|
1047 |
- </li> |
|
1048 |
- |
|
1049 |
- <a id="improveTorTestCoverage"></a> |
|
1050 |
- <li> |
|
1051 |
- <b>Improve test coverage in Tor</b> |
|
1052 |
- <br> |
|
1053 |
- Language: <i>C, Python</i> |
|
1054 |
- <br> |
|
1055 |
- Likely Mentors: <i>David (dgoulet)</i> |
|
1056 |
- <br><br> |
|
1057 |
- <p> |
|
1058 |
-Right now, our unit test coverage with the tests we ship is around 30% |
|
1059 |
-unit tests. Improving this test coverage could make Tor development |
|
1060 |
-much more reliable. |
|
1061 |
- </p> |
|
1062 |
- |
|
1063 |
- <p> |
|
1064 |
-So we need better unit tests, and we need better integration tests too. |
|
1065 |
- </p> |
|
1066 |
- |
|
1067 |
- <p> |
|
1068 |
-Improving unit tests would involve refactoring functions to be more |
|
1069 |
-testable, and writing a bunch of unit tests. |
|
1070 |
- </p> |
|
1071 |
- |
|
1072 |
- <p> |
|
1073 |
-Improving integration tests would involve refactoring and improving |
|
1074 |
-the "chutney" program that launches a test tor network, and writing a |
|
1075 |
-bunch of tests to see what works and what doesn't work on such a |
|
1076 |
-network. It could also involve writing tests using the library "<a |
|
1077 |
-href="https://stem.torproject.org/">stem</a>" to script individual clients on a |
|
1078 |
-Chutney network. |
|
1079 |
- </p> |
|
1080 |
- |
|
1081 |
- <p> |
|
1082 |
-To get a feel for how testing works in Tor today, download Tor and |
|
1083 |
-Chutney, and make sure you can build Tor and use Chutney. See how the |
|
1084 |
-unit tests work by skimming some of the test code in the src/test |
|
1085 |
-subdirectory. Try computing test coverage (according to the |
|
1086 |
-instructions in the doc/HACKING file. |
|
1087 |
- </p> |
|
1088 |
- |
|
1089 |
- <p> |
|
1090 |
-Also, have a look at the one current integration test that works on |
|
1091 |
-chutney today: it is a shell script distributed with Tor as |
|
1092 |
-src/test/test-tor-network.sh . We probably don't want to have all of |
|
1093 |
-our integration tests be written as shell scripts, but it's interesting |
|
1094 |
-to see how one works. |
|
1095 |
- </p> |
|
1096 |
- |
|
1097 |
- <p> |
|
1098 |
-If working on designs for an improved or refactored Chutney, watch out for <a |
|
1099 |
-href="http://www.joelonsoftware.com/articles/fog0000000018.html">"archicture |
|
1100 |
-astronautics"</a>: while it's important that we have a well-designed and |
|
1101 |
-maintainable Chutney architecture, it wouldn't be very useful if a good |
|
1102 |
-architecture were the <em>only</em> outcome here: we need tests too. |
|
1103 |
- </p> |
|
1104 |
- |
|
1105 |
- <p> |
|
1106 |
-As part of the application process, please contribute a patch that makes |
|
1107 |
-a non-trivial improvement to chutney, and/or include a new test for some |
|
1108 |
-interesting Tor function. (Please pick a function that isn't completely |
|
1109 |
-easy to test.) |
|
1110 |
- </p> |
|
1111 |
- </li> |
|
1112 |
- |
|
1113 |
- <a id="useMoreCores"></a> |
|
1114 |
- <li> |
|
1115 |
- <b>Have the Tor daemon use more cores</b> |
|
1116 |
- <br> |
|
1117 |
- Language: <i>C</i> |
|
1118 |
- <br> |
|
1119 |
- Likely Mentors: <i>David (dgoulet)</i> |
|
1120 |
- <br><br> |
|
1121 |
- <p> |
|
1122 |
-Right now, if you run a busy Tor server on a multicore computer, most of |
|
1123 |
-the cores are mostly unused. We have a "cpuworker" mechanism to move |
|
1124 |
-expensive computations into worker threads, but that mechanism is |
|
1125 |
-currently only used for a small fraction of our cryptography. Moving |
|
1126 |
-more work into the worker threads could improve performance immensely. |
|
1127 |
- </p> |
|
1128 |
- |
|
1129 |
- <p> |
|
1130 |
-So it would be great to parallelize our cryptography more in order to |
|
1131 |
-better handle more cores. See |
|
1132 |
-<a href="https://trac.torproject.org/projects/tor/wiki/org/projects/Tor/MultithreadedCrypto">MultithreadedCrypto</a> |
|
1133 |
-for some background info, and |
|
1134 |
-<a href="https://trac.torproject.org/projects/tor/ticket/7572">ticket 7572</a> for some subtickets |
|
1135 |
-on our tracker. |
|
1136 |
- </p> |
|
1137 |
- |
|
1138 |
- <p> |
|
1139 |
-(If you're reading through the code to see how it works today, you will |
|
1140 |
-also want to have a look at the new implementation for cpuworkers |
|
1141 |
-described in <a href="https://trac.torproject.org/projects/tor/ticket/9682">9682</a>.) |
|
1142 |
- </p> |
|
1143 |
- |
|
1144 |
- <p> |
|
1145 |
-Completing the implementation of ticket #7572 --which would move our |
|
1146 |
-circuit crypto onto separate threads-- could be a good summer project. |
|
1147 |
-Alternatively, moving all of the signature generation and verification |
|
1148 |
-code onto the cpuworkers could be fun. In either case, you will have |
|
1149 |
-some important architectural decisions to make about how to minimize |
|
1150 |
-shared data between the main thread and the workers, how to avoid |
|
1151 |
-race conditions between them, and how to test it all to make sure it has |
|
1152 |
-no hidden failure cases. |
|
1153 |
- </p> |
|
1154 |
- |
|
1155 |
- <p> |
|
1156 |
-As part of the application process for this project, please contribute a |
|
1157 |
-nontrivial patch to Tor -- ideally, one that will affect some part of |
|
1158 |
-the codebase that you want to work on. |
|
1159 |
- </p> |
|
1160 |
- </li> |
|
1161 |
- |
|
1162 | 897 |
<a id="improveHiddenServices"></a> |
1163 | 898 |
<li> |
1164 | 899 |
<b>Help improve Tor hidden services</b> |
1165 | 900 |
<br> |
1166 | 901 |
Language: <i>C</i> |
1167 | 902 |
<br> |
1168 |
- Likely Mentors: <i>David (dgoulet), George (asn)</i> |
|
903 |
+ Likely Mentors: <i>George (asn)</i> |
|
1169 | 904 |
<br><br> |
1170 | 905 |
<p> |
1171 | 906 |
We're working on a revamp of the entire Tor hidden service design to |
... | ... |
@@ -1196,41 +930,6 @@ the codebase that you want to work on. |
1196 | 930 |
</p> |
1197 | 931 |
</li> |
1198 | 932 |
|
1199 |
- <a id="improvedDnsSupport"></a> |
|
1200 |
- <li> |
|
1201 |
- <b>Improved DNS support for Tor</b> |
|
1202 |
- <br> |
|
1203 |
- Language: <i>C</i> |
|
1204 |
- <br> |
|
1205 |
- Likely Mentors: <i>David (dgoulet)</i> |
|
1206 |
- <br><br> |
|
1207 |
- <p> |
|
1208 |
-Right now, you can only use Tor's DNS support to look up IPv4 and IPv6 |
|
1209 |
-addresses, and to fetch PTR records. But DNS can do so much more! |
|
1210 |
- </p> |
|
1211 |
- |
|
1212 |
- <p> |
|
1213 |
-<a |
|
1214 |
-href="https://gitweb.torproject.org/torspec.git/tree/proposals/219-expanded-dns.txt">Proposal |
|
1215 |
-219</a> describes some new cell types that Tor could use to support |
|
1216 |
-more types of DNS over Tor. |
|
1217 |
- </p> |
|
1218 |
- |
|
1219 |
- <p> |
|
1220 |
-To see how Tor implements its existing DNS lookups, start by tracing the |
|
1221 |
-the connection_exit_begin_resolve() function in src/or/connection_edge.c , |
|
1222 |
-and see how we pass these requests downwards through src/or/dns.c to the |
|
1223 |
-underlying resolver. It's not too complicated, but there are some |
|
1224 |
-tricky parts to understand. |
|
1225 |
- </p> |
|
1226 |
- |
|
1227 |
- <p> |
|
1228 |
-As part of the application process for this project, please contribute a |
|
1229 |
-nontrivial patch to Tor -- ideally, one that will affect some part of |
|
1230 |
-the codebase that you want to work on. |
|
1231 |
- </p> |
|
1232 |
- </li> |
|
1233 |
- |
|
1234 | 933 |
<a id="exitmap_improvements"></a> |
1235 | 934 |
<li> |
1236 | 935 |
<b>Exitmap Improvements</b> |
1237 | 936 |