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 |