git.schokokeks.org
Repositories
Help
Report an Issue
tor-webwml.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
b4db53b15
Branches
Tags
bridges
docs-debian
jobs
master
press-clips
tor-webwml.git
getinvolved
en
volunteer.wml
Core tor GSoC project ideas
Damian Johnson
commited
b4db53b15
at 2017-02-27 20:53:28
volunteer.wml
Blame
History
Raw
## translation metadata # Revision: $Revision$ # Translation-Priority: 4-optional #include "head.wmi" TITLE="Tor: Volunteer" CHARSET="UTF-8" <div id="content" class="clearfix"> <div id="breadcrumbs"> <a href="<page index>">Home » </a> <a href="<page getinvolved/volunteer>">Volunteer</a> </div> <div id="maincol"> <!-- PUT CONTENT AFTER THIS TAG --> <h1>A few things everyone can do now:</h1> <ol> <li>Please consider <a href="<page docs/tor-doc-relay>">running a relay</a> to help the Tor network grow.</li> <li>Tell your friends! Get them to run relays. Get them to run hidden services. Get them to tell their friends.</li> <li>If you like Tor's goals, please <a href="<page donate/donate>">take a moment to donate to support further Tor development</a>. We're also looking for more sponsors — if you know any companies, NGOs, agencies, or other organizations that want anonymity / privacy / communications security, let them know about us.</li> <li>We're looking for more <a href="<page about/torusers>">good examples of Tor users and Tor use cases</a>. If you use Tor for a scenario or purpose not yet described on that page, and you're comfortable sharing it with us, we'd love to hear from you.</li> </ol> <a id="Documentation"></a> <h2><a class="anchor" href="#Documentation">Documentation</a></h2> <ol> <li>Help translate the <!-- web page and --> documentation into other languages. See the <a href="<page getinvolved/translation>">translation guidelines</a> if you want to help out. We especially need Arabic or Farsi translations, for the many Tor users in censored areas.</li> <li>Evaluate and document <a href="<wiki>doc/TorifyHOWTO">our list of programs</a> that can be configured to use Tor.</li> <li>We have a huge list of <a href="<wiki>doc/SupportPrograms">potentially useful programs that interface with Tor</a>. Which ones are useful in which situations? Please help us test them out and document your results.</li> </ol> <a id="Advocacy"></a> <h2><a class="anchor" href="#Advocacy">Advocacy</a></h2> <ol> <li>Monitor some of our <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo">public mailing lists</a>, like <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk">tor-talk</a>, <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays">tor-relays</a>, <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev">tor-dev</a>, or <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tbb-dev">tbb-dev</a>, and summarize noteworthy exchanges into articles for <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-news">Tor Weekly News</a>.</li> <li>Create a presentation that can be used for various user group meetings around the world.</li> <li>Create a video about the positive uses of Tor, what Tor is, or how to use it. Some have already started on <a href="https://media.torproject.org/video/">Tor's Media server</a>, <a href="http://www.howcast.com/videos/90601-How-To-Circumvent-an-Internet-Proxy/">Howcast</a>, and <a href="http://www.youtube.com/c/thetorproject">YouTube</a>.</li> <li>Create a poster around a theme, such as "Tor for Freedom!"</li> <li>Create a t-shirt design that incorporates "<a href="https://check.torproject.org/">Congratulations! You are using Tor!</a>" in any language.</li> <li>Spread the word about Tor at a symposium or conference and use these <a href="https://media.torproject.org/misc/2015-03-tor-brochure/">Tor brochures</a> in PDF and ODG format and translated to at least ten different languages as conversation starter.</li> </ol> <a id="gsoc"></a> <h2><a class="anchor" href="#gsoc">Google Summer of Code</a></h2> <p> Tor is also taking part in this year's <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a>! To apply but you need to be either <a href="https://developers.google.com/open-source/gsoc/faq#what_are_the_eligibility_requirements_for_participation">a present student or just graduated</a>. <b>See our page for <a href="<page about/gsoc>">Google Summer of Code</a> for more information.</b> </p> <a id="Projects"></a> <h2><a class="anchor" href="#Projects">Projects</a></h2> <p> Below are a list of Tor related projects we're developing and/or maintaining. Most discussions happen on IRC so if you're interested in any of these (or you have a project idea of your own), then please <a href="<page about/contact>#irc">join us in #tor-dev</a>. Don't be shy to ask questions, and don't hesitate to ask even if the main contributors aren't active at that moment. </p> <p> For a presentation summarizing many of these projects see... </p> <div id="ecosystem_presentation"> <a href="https://www.youtube.com/watch?v=fb6iqZcQsSg">Tor Ecosystem</a> (<a href="https://media.torproject.org/video/2013-11-t3am-damian-johnson.mp4">mp4</a>, <a href="https://svn.torproject.org/svn/projects/presentations/2013-11-t3am-tor-ecosystem.pdf">slides</a>) </div> <br /></br /> <table id="projects"> <tr> <th>Name</th> <th>Category</th> <th>Language</th> <th>Activity</th> <th>Contributors</th> </tr> <tr> <td><a href="#project-tor">Tor</a></td> <td>Core</td> <td>C</td> <td>Heavy</td> <td>nickm, athena, arma, dgoulet, asn, teor</td> </tr> <tr> <td><a href="#project-torbrowser">Tor Browser</a></td> <td>Bundle</td> <td>Javascript, XUL, Scripting</td> <td>Heavy</td> <td>mikeperry, Pearl Crescent, GeKo</td> </tr> <tr> <td><a href="#project-httpseverywhere">HTTPS Everywhere</a></td> <td>Browser Add-on</td> <td>Javascript</td> <td>Moderate</td> <td>pde, mikeperry</td> </tr> <tr> <td><a href="#project-nyx">Nyx</a></td> <td>User Interface</td> <td>Python, Curses</td> <td>Moderate</td> <td>atagar</td> </tr> <tr> <td><a href="#project-orbot">Orbot</a></td> <td>User Interface</td> <td>Java</td> <td>Moderate</td> <td>n8fr8</td> </tr> <tr> <td><a href="#project-tails">Tails</a></td> <td>OS image</td> <td>Sys Admin</td> <td>Heavy</td> <td><a href="https://tails.boum.org/">#tails</a></td> </tr> <tr> <td><a href="#project-torramdisk">tor-ramdisk</a></td> <td>OS image</td> <td>Sys Admin</td> <td>Light</td> <td>blueness</td> </tr> <tr> <td><a href="#project-torsocks">Torsocks</a></td> <td>Usability</td> <td>C</td> <td>Light</td> <td>David Goulet</td> </tr> <tr> <td><a href="#project-tormessenger">Tor Messenger</a></td> <td>Bundle</td> <td>JavaScript, XUL, Scripting</td> <td>Heavy</td> <td>arlolra, boklm, sukhe</td> </tr> <tr> <td><a href="#project-torbirdy">TorBirdy</a></td> <td>Browser Add-on</td> <td>JavaScript</td> <td>Light</td> <td>sukhe</td> </tr> <tr> <td><a href="#project-flash-proxy">Flash Proxy</a></td> <td>Client Add-on</td> <td>Python, JavaScript, Go</td> <td>Light</td> <td>dcf, infinity0, Arlo Breault</td> </tr> <tr> <td><a href="#project-shadow">Shadow</a></td> <td>Simulator</td> <td>C, Python</td> <td>Moderate</td> <td>robgjansen</td> </tr> <tr> <td><a href="#project-chutney">Chutney</a></td> <td>Simulator</td> <td>Python</td> <td>Light</td> <td>teor</td> </tr> <tr> <td><a href="#project-stem">Stem</a></td> <td>Library</td> <td>Python</td> <td>Heavy</td> <td>atagar</td> </tr> <tr> <td><a href="#project-txtorcon">Txtorcon</a></td> <td>Library</td> <td>Python, Twisted</td> <td>Moderate</td> <td>meejah</td> </tr> <tr> <td><a href="#project-metrics-lib">metrics-lib</a></td> <td>Library</td> <td>Java</td> <td>Moderate</td> <td>karsten, iwakeh</td> </tr> <tr> <td><a href="#project-metrics">Metrics</a></td> <td>Client Service</td> <td>Java</td> <td>Heavy</td> <td>karsten, iwakeh</td> </tr> <tr> <td><a href="#project-atlas">Atlas</a></td> <td>Client Service</td> <td>JavaScript</td> <td>Light</td> <td>irl</td> </tr> <tr> <td><a href="#project-compass">Compass</a></td> <td>Client Service</td> <td>Python</td> <td>None</td> <td></td> </tr> <tr> <td><a href="#project-onionoo">Onionoo</a></td> <td>Backend Service</td> <td>Java</td> <td>Heavy</td> <td>karsten, iwakeh</td> </tr> <tr> <td><a href="#project-exitmap">ExitMap</a></td> <td>Backend Service</td> <td>Python</td> <td>None</td> <td>phw</td> </tr> <tr> <td><a href="#project-doctor">DocTor</a></td> <td>Backend Service</td> <td>Python</td> <td>Light</td> <td>atagar</td> </tr> <tr> <td><a href="#project-gettor">GetTor</a></td> <td>Client Service</td> <td>Python</td> <td>None</td> <td>ilv</td> </tr> <tr> <td><a href="#project-torcheck">TorCheck</a></td> <td>Client Service</td> <td>Go</td> <td>None</td> <td>Arlo</td> </tr> <tr> <td><a href="#project-bridgedb">BridgeDB</a></td> <td>Backend Service</td> <td>Python</td> <td>Light</td> <td>isis</td> </tr> <tr> <td><a href="#project-ooni-probe">Ooni Probe</a></td> <td>Scanner</td> <td>Python</td> <td>Heavy</td> <td>hellais, aagbsn</td> </tr> <tr> <td><a href="#project-torps">TorPS</a></td> <td>Backend Service</td> <td>Python</td> <td>None</td> <td>Aaron Johnson</td> </tr> <tr> <td><a href="#project-torflow">TorFlow</a></td> <td>Backend Service</td> <td>Python</td> <td>None</td> <td>aagbsn</td> </tr> <tr> <td><a href="#project-tor2web">Tor2web</a></td> <td>Client Service</td> <td>Python</td> <td>Heavy</td> <td>evilaliv3, hellais</td> </tr> <tr> <td><a href="#project-collector">CollecTor</a></td> <td>Backend Service</td> <td>Java</td> <td>Moderate</td> <td>karsten, iwakeh</td> </tr> <tr> <td><a href="#project-exonerator">ExoneraTor</a></td> <td>Client Service</td> <td>Java</td> <td>Light</td> <td>karsten, iwakeh</td> </tr> <tr> <td><a href="#project-anonbib">Anonbib</a></td> <td>Website</td> <td>Python</td> <td>None</td> <td>arma, nickm</td> </tr> </table> <sub> * Project is still in an alpha state. </sub> <br /><br /> <a id="project-tor"></a> <h3>Tor (<a href="https://gitweb.torproject.org/tor.git">code</a>, <a href="https://trac.torproject.org/projects/tor/report/12">bug tracker</a>)</h3> <p> Central project, providing the core software for using and participating in the Tor network. Numerous people contribute to the project to varying extents, but the chief architects are Nick Mathewson and Roger Dingledine. </p> <p> <b>Project Ideas:</b><br /> <i><a href="#improveHiddenServices">Help improve Tor hidden services</a></i><br /> <i><a href="#torFuzzing">Fuzzing coverage of Tor</a></i><br /> <i><a href="#relayCryptoParallelism">Relay crypto parallelism</a></i><br /> <i><a href="#anonymousLocalCountStatistics">Anonymous local count statistics</a></i><br /> <i><a href="#improveSocks5Variant">Improved SOCKS5 variant</a></i><br /> <i><a href="#hiddenServiceCryptoParallelism">Hidden service crypto parallelism</a></i><br /> <i><a href="#supportAllDNS">Support all kinds of DNS in Tor</a></i><br /> <i><a href="#improveIpv6Support">Improve IPv6 support</a></i> </p> <a id="project-torbrowser"></a> <h3><a href="<page projects/torbrowser>">Tor Browser</a> (<a href="https://gitweb.torproject.org/tor-browser.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Applications%2FTor+Browser&component=Applications%2FTorbutton&component=Applications%2FTor+Launcher&component=Applications%2FTor+bundles%2Finstallation&col=id&col=summary&col=status&col=owner&col=type&col=priority&col=milestone&order=priority">bug tracker</a>, <a href="https://www.torproject.org/projects/torbrowser/design/">design doc</a>)</h3> <p> Tor Browser is an easy-to-use, portable package of Tor, HTTPS-Everywhere, NoScript, TorLauncher, Torbutton, and a Firefox fork, all preconfigured to work together out of the box. The modified copy of Firefox aims to resolve the privacy and security issues in mainline version. </p> <p> <b>Project Ideas:</b><br /> <i><a href="#feedbackExtension">Feedback Extension for Tor Browser</a></i><br /> <i><a href="#torBrowserCrashReport">Crash Reporter for Tor Browser</a></i><br /> <i><a href="#fasterTorBrowser">Make Tor Browser Faster</a></i> </p> <a id="project-httpseverywhere"></a> <h3><a href="https://www.eff.org/https-everywhere">HTTPS Everywhere</a> (<a href="https://gitweb.torproject.org/https-everywhere.git">code</a>, <a href="https://trac.torproject.org/projects/tor/report/19">bug tracker</a>)</h3> <p> HTTPS Everywhere is a Firefox and Chrome extension that encrypts your communications with many major websites, making your browsing more secure. </p> <a id="project-nyx"></a> <h3><a href="https://www.atagar.com/arm/">Nyx</a> (<a href="https://gitweb.torproject.org/nyx.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Core+Tor%2FNyx&order=priority">bug tracker</a>)</h3> <p> Nyx (previously <i>arm</i>) is a terminal status monitor for Tor intended for command-line aficionados, ssh connections, and anyone with a tty terminal. This works much like top does for system usage, providing real time statistics for bandwidth, resource usage, connections, and quite a bit more. </p> <a id="project-orbot"></a> <h3><a href="https://guardianproject.info/apps/orbot/">Orbot</a> (<a href="https://gitweb.torproject.org/orbot.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Applications%2FOrbot&order=priority">bug tracker</a>)</h3> <p> Provides Tor on the Android platform. The project is under active development, updates to latest Tor releases, and working to stay up to date with all changes in Android and mobile threats. </p> <a id="project-tails"></a> <h3><a href="https://tails.boum.org/">The Amnesic Incognito Live System</a> (<a href="https://git-tails.immerda.ch/tails/">code</a>, <a href="https://labs.riseup.net/code/projects/tails">bug tracker</a>, <a href="https://tails.boum.org/doc/">documentation</a>, <a href="https://tails.boum.org/contribute/design/">design</a>, <a href="https://tails.boum.org/contribute/">contribute</a>)</h3> <p> The Amnesic Incognito Live System is a live CD/USB distribution preconfigured so that everything is safely routed through Tor and leaves no trace on the local system. This is a merger of the Amnesia and <a href="https://web.archive.org/web/20080512054152/http://anonymityanywhere.com/incognito/">Incognito</a> projects, and still under very active development. </p> <a id="project-torramdisk"></a> <h3><a href="http://opensource.dyc.edu/tor-ramdisk">Tor-ramdisk</a> (<a href="https://gitweb.torproject.org/tor-ramdisk.git">code</a>, <a href="http://opensource.dyc.edu/tor-ramdisk-documentation">documentation</a>)</h3> <p> Tor-ramdisk is a uClibc-based micro Linux distribution whose sole purpose is to securely host a Tor server purely in RAM. </p> <a id="project-torsocks"></a> <h3>Torsocks (<a href="https://gitweb.torproject.org/torsocks.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Core+Tor%2FTorsocks&order=priority">bug tracker</a>)</h3> <p> Utility for adapting other applications to work with Tor. Development has slowed and compatibility issues remain with some platforms, but it's otherwise feature complete. </p> <a id="project-tormessenger"></a> <h3><a href="https://trac.torproject.org/projects/tor/wiki/doc/TorMessenger">Tor Messenger</a> (<a href="https://gitweb.torproject.org/tor-messenger-build.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=merge_ready&status=needs_information&status=needs_review&status=needs_revision&status=new&status=reopened&component=Applications%2FTor+Messenger&order=priority">bug tracker</a>)</h3> <p> Tor Messenger is a cross-platform chat program that aims to be secure by default and sends all of its traffic over Tor. </p> <a id="project-torbirdy"></a> <h3>TorBirdy (<a href="https://gitweb.torproject.org/torbirdy.git">code</a>, <a href="https://trac.torproject.org/projects/tor/wiki/torbirdy/dev">bug tracker</a>)</h3> <p> TorBirdy is Torbutton for Thunderbird and related Mozilla mail clients. </p> <a id="project-flash-proxy"></a> <h3><a href="https://crypto.stanford.edu/flashproxy/">Flash Proxy</a> (<a href="https://gitweb.torproject.org/flashproxy.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Archived%2FFlashproxy&order=priority">bug tracker</a>)</h3> <p> Pluggable transport using proxies running in web browsers to defeat address-based blocking. </p> <a id="project-shadow"></a> <h3><a href="http://shadow.github.io/">Shadow</a> (<a href="https://github.com/shadow">code</a>, <a href="https://github.com/shadow/shadow/issues">bug tracker</a>)</h3> <p> Shadow is a discrete-event network simulator that runs the real Tor software as a plug-in. Shadow is open-source software that enables accurate, efficient, controlled, and repeatable Tor experimentation. For another simulator, see <a href="https://crysp.uwaterloo.ca/software/exptor/">ExperimenTor</a>. </p> <a id="project-chutney"></a> <h3>Chutney (<a href="https://gitweb.torproject.org/chutney.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_information&status=needs_review&status=needs_revision&status=new&status=reopened&component=Core+Tor%2FChutney&order=priority">bug tracker</a>)</h3> <p> Integration test suite that spawns a local tor network, checking the interactions of its components. </p> <a id="project-stem"></a> <h3><a href="https://stem.torproject.org/">Stem</a> (<a href="https://gitweb.torproject.org/stem.git">code</a>, <a href="https://trac.torproject.org/projects/tor/wiki/doc/stem/bugs">bug tracker</a>)</h3> <p> Python controller library for scripts and controller applications using Tor. </p> <p> <b>Project Ideas:</b><br /> <i><a href="#stemDescriptors">Stem Descriptors</a></i> </p> <a id="project-txtorcon"></a> <h3><a href="https://txtorcon.readthedocs.io/en/latest/">Txtorcon</a> (<a href="https://github.com/meejah/txtorcon">code</a>, <a href="https://github.com/meejah/txtorcon/issues">bug tracker</a>)</h3> <p> Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction. Used by OONI and APAF. </p> <a id="project-metrics-lib"></a> <h3>metrics-lib (<a href="https://gitweb.torproject.org/metrics-lib.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Metrics%2Fmetrics-lib&order=priority">bug tracker</a>)</h3> <p>metrics-lib is a Java library that processes Tor network data provided by <a href="#project-collector">CollecTor</a> or from other sources.</p> <a id="project-metrics"></a> <h3><a href="https://metrics.torproject.org/">Metrics</a> (<a href="https://gitweb.torproject.org/metrics-web.git">web</a>)</h3> <p> Processing and analytics of consensus data, provided to users via the metrics portal. This has been under active development for several years by Karsten Loesing. </p> <a id="project-atlas"></a> <h3><a href="https://atlas.torproject.org/">Atlas</a> (<a href="https://gitweb.torproject.org/atlas.git">code</a>)</h3> <p> Atlas is a web application to discover Tor relays and bridges. It provides useful information on how relays are configured along with graphics about their past usage. </p> <p> This is the spiritual successor to <a href="https://gitweb.torproject.org/torstatus.git">TorStatus</a>, the <a href="https://svn.torproject.org/svn/torstatus/trunk/">original codebase</a> for which was written in PHP, and rewritten by students from Wesleyan as Django. If you dig into this space then also check out <a href="http://globe.rndm.de/">Globe</a>, another similar site that's since been discontinued. </p> <a id="project-compass"></a> <h3><a href="https://compass.torproject.org/">Compass</a> (<a href="https://gitweb.torproject.org/compass.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Metrics%2FCompass&order=priority">bug tracker</a>)</h3> <p> Compass is a web and command line application that filters and aggregates the Tor relays based on various attributes. </p> <a id="project-onionoo"></a> <h3><a href="https://onionoo.torproject.org/">Onionoo</a> (<a href="https://gitweb.torproject.org/onionoo.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Metrics%2FOnionoo&order=priority">bug tracker</a>)</h3> <p> Onionoo is a JSON based protocol to learn information about currently running Tor relays and bridges. </p> <a id="project-exitmap"></a> <h3><a href="http://www.cs.kau.se/philwint/spoiled_onions/">ExitMap</a> (<a href="https://github.com/NullHypothesis/exitmap">code</a>, <a href="https://github.com/NullHypothesis/exitmap/issues">bug tracker</a>)</h3> <p> Scanner for the Tor network by Philipp Winter to detect malicious and misconfigured exits. For more information about how it works see his <a href="http://www.cs.kau.se/philwint/spoiled_onions/pets2014.pdf">Spoiled Onions</a> research paper. </p> <a id="project-doctor"></a> <h3>DocTor (<a href="https://gitweb.torproject.org/doctor.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Core+Tor%2FDocTor&order=priority">bug tracker</a>)</h3> <p> DocTor is a notification service that monitors newly published descriptor information for issues. This is primarily a service to help the tor directory authority operators, but it also checks for a handful of other issues like sybil attacks. </p> <a id="project-weather"></a> <h3><a href="https://trac.torproject.org/projects/tor/wiki/org/roadmaps/Weather">Weather</a> (<a href="https://gitweb.torproject.org/weather.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Metrics%2FTor+Weather&order=priority">bug tracker</a>)</h3> <p> Provides automatic notification to subscribed relay operators when their relay's unreachable. This underwent a rewrite by the <a href="http://hfoss.wesleyan.edu/">Wesleyan HFOSS team</a>, which went live in early 2011. </p> <a id="project-gettor"></a> <h3><a href="https://trac.torproject.org/projects/tor/wiki/org/roadmaps/GetTor">GetTor</a> (<a href="https://gitweb.torproject.org/gettor.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Applications%2FGetTor&order=priority">bug tracker</a>)</h3> <p> E-mail autoresponder providing Tor's packages over SMTP. This has been relatively unchanged for quite a while. </p> <a id="project-torcheck"></a> <h3><a href="https://trac.torproject.org/projects/tor/wiki/org/roadmaps/TorCheck">TorCheck</a> (<a href="https://gitweb.torproject.org/check.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Applications%2FTor+Check&order=priority">bug tracker</a>)</h3> <p> Site for determining if the visitor is using Tor or not. </p> <a id="project-bridgedb"></a> <h3><a href="https://pythonhosted.org/bridgedb/">BridgeDB</a> (<a href="https://gitweb.torproject.org/bridgedb.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Obfuscation%2FBridgeDB&order=priority">bug tracker</a>)</h3> <p> Backend bridge distributor, handling the various pools they're distributed in. This was actively developed until Fall of 2010. </p> <a id="project-ooni-probe"></a> <h3><a href="https://ooni.torproject.org/">Ooni Probe</a> (<a href="https://github.com/TheTorProject/ooni-probe/">code</a>, <a href="https://github.com/TheTorProject/ooni-probe/issues">bug tracker</a>)</h3> <p> Censorship scanner, checking your local connection for blocked or modified content. </p> <a id="project-torps"></a> <h3>TorPS</a> (<a href="https://github.com/torps/torps">code</a>)</h3> <p> The Tor Path Simulator (TorPS) is a tool for efficiently simulating path selection in Tor. It chooses circuits and assigns user streams to those circuits in the same way that Tor does. TorPS is fast enough to perform thousands of simulations over periods of months. </p> <a id="project-torflow"></a> <h3><a href="https://trac.torproject.org/projects/tor/wiki/org/roadmaps/TorFlow">TorFlow</a> (<a href="https://gitweb.torproject.org/torflow.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assigned&status=needs_review&status=new&status=reopened&component=Metrics%2FTorflow&order=priority">bug tracker</a>)</h3> <p> Library and collection of services for actively monitoring the Tor network. These include the Bandwidth Scanners (measuring throughput of relays) and SoaT (scans for malicious or misconfigured exit nodes). SoaT was last actively developed in the Summer of 2010, and the Bandwidth Scanners a few months later. Both have been under active use since then, but development has stopped. </p> <a id="project-tor2web"></a> <h3><a href="https://www.tor2web.org">Tor2web</a> (<a href="https://github.com/globaleaks/tor2web-3.0/wiki">code</a>)</h3> <p> Tor2web allows Internet users to browse websites running in <a href="<page docs/hidden-services>">Tor hidden services</a>. It trades user anonymity for usability by allowing anonymous content to be distributed to non-anonymous users. </p> <a id="project-collector"></a> <h3><a href="https://collector.torproject.org/">CollecTor</a> (<a href="https://gitweb.torproject.org/collector.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Metrics%2FCollecTor&order=priority">bug tracker</a>)</h3> <p>CollecTor is the Tor network data archive that powers other services like <a href="#project-metrics">Metrics</a> and <a href="#project-onionoo">Onionoo</a>.</p> <a id="project-exonerator"></a> <h3><a href="https://exonerator.torproject.org/">ExoneraTor</a> (<a href="https://gitweb.torproject.org/exonerator.git">code</a>, <a href="https://trac.torproject.org/projects/tor/query?status=!closed&component=Metrics%2FExoneraTor&order=priority">bug tracker</a>)</h3> <p>ExoneraTor is a service that answers the question whether there was a Tor relay running on a given IP address on a given date.</p> <a id="project-anonbib"></a> <h3><a href="http://freehaven.net/anonbib/">Anonymity Bibliography</a> (<a href="https://gitweb.torproject.org/anonbib.git">code</a>)</h3> <p> Anonbib is a list of important papers in the field of anonymity. It's also a set of scripts to generate the website from Latex (bibtex). If we're missing any important papers, please let us know! </p> <a id="Coding"></a> <a id="Summer"></a> <h2><a class="anchor" href="#Coding">Project Ideas</a></h2> <p> You may find some of these projects to be good ideas for <a href="<page about/gsoc>">Google Summer of Code</a>. We have labelled each idea with which of our <a href="<page about/corepeople>">core developers</a> would be good mentors. If one or more of these ideas looks promising to you, please <a href="<page about/contact>">contact us</a> to discuss your plans rather than sending blind applications. You may also want to propose your own project idea — which often results in the best applications. </p> <ol> <a id="improveHiddenServices"></a> <li> <b>Help improve Tor hidden services</b> <br> Language: <i>C</i> <br> Likely Mentors: <i>George (asn), David Goulet (dgoulet)</i> <br><br> <p> The hidden services team is busy implementing <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/224-rend-spec-ng.txt">proposal 224</a> but we are always open to mentoring fun and exciting hidden service projects. </p> <p> In the past, we've mentored a wide variety of projects related to hidden services, ranging from <a href="https://lists.torproject.org/pipermail/tor-dev/2016-April/010832.html">onion search engines</a>, <a href="https://lists.torproject.org/pipermail/tor-talk/2015-May/037966.html">to scaling techniques for hidden services</a>, and also various approaches of making onion services more <a href="https://lists.torproject.org/pipermail/tor-dev/2012-June/003588.html">usable</a> <a href="https://lists.torproject.org/pipermail/tor-dev/2015-May/008826.html">by common people</a>. </p> <p> Let us know if you have a project you would like to work on, or check our proposals and technical documents for <a href="https://lists.torproject.org/pipermail/tor-dev/2016-October/011514.html">various</a> ideas. </p> </li> <a id="torFuzzing"></a> <li> <b>Fuzzing coverage of Tor</b> <br> Likely Mentors: <i>Nick (nickm), ahf, teor</i> <br><br> <p> Starting in 0.3.0.x, Tor supports a few fuzzing systems to check our code for bugs. But as of now, we only support a few possible entry points to Tor. It would be great to add fuzzing support for more of our codebase -- ideally to include our whole network-facing interface. That way, we could find more bugs in our code faster, and fix them before they can get out of hand. </p> <p> This won't be so easy, however: to fuzz effectively, we need to refactor or mock the target function so that it doesn't change any global state, or verify any signatures, or take too long to run. With lots of our network code, that's not so easy. Make sure you understand how our mocking system works, and what the challenges are, before you apply for this one. </p> </li> <a id="relayCryptoParallelism"></a> <li> <b>Relay crypto parallelism</b> <br> Likely Mentors: <i>Isis, Nick (nickm)</i> <br><br> <p> Tor relays spend a lot of time encrypting and decrypting relay traffic, doing SHA1 and AES-CTR operations. But right now, all of this is done in the main thread! It would be cool to split this across multiple cores instead. </p> <p> This won't be so easy though. The code today is written to expect immediate results from its encryption operations, so you would need to do some pretty tricky refactoring in order get performance and correctness here. Make sure you understand how circuit crypto is invoked today, and what the challenges are, before you apply for this one. </p> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/1749">see its ticket</a>. </p> </li> <a id="anonymousLocalCountStatistics"></a> <li> <b>Anonymous local count statistics</b> <br> Likely Mentors: <i>Nick (nickm), teor</i> <br><br> <p> There are some places in Tor where we count things (like distinct IPs) to later report anonymized statistics. But if the local Tor instance were compromised, this data would be exposed. There are statistical methods which insteasd allow us to record this data in a way that's already anonymous, before we ever summarize it. Interested? </p> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/7532">see its ticket</a>. </p> </li> <a id="improveSocks5Variant"></a> <li> <b>Improved SOCKS5 variant</b> <br> Likely Mentors: <i>Nick (nickm), David Goulet (dgoulet)</i> <br><br> <p> In proposal 229, we describe a bunch of additional SOCKS extensions that Tor-aware applications could use to get more fine-grained control over how Tor handles their streams. It would be cool to implement this! If there's time remaining, you might want to add support to one or more applications. Or maybe to torsocks? </p> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/12456">see its ticket</a>. </p> </li> <a id="hiddenServiceCryptoParallelism"></a> <li> <b>Hidden service crypto parallelism</b> <br> Likely Mentors: <i>Nick (nickm), David Goulet (dgoulet)</i> <br><br> <p> Hidden services, hidden service clients, hidden service directories, and introduction points all need to do a few public-key operations as they operate. But right now, these operations are all done on the main thread. It would be good to have these run across multiple cores. </p> <p> This could probably be done in a way similar to how we currently hand circuit extension handshakes in onion.c and cpuworker.c, but we'd need to extend the state machine for hidden services to add an additional state. It could help hidden services operate much more efficiently. </p> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/13738">see its ticket</a>. </p> </li> <a id="supportAllDNS"></a> <li> <b>Support all kinds of DNS in Tor</b> <br> Likely Mentors: <i>Nick (nickm), George (asn)</i> <br><br> <p> Right now Tor can query for the kind of DNS information you'd find in A records, AAAA records, and PTR records. It would be neat to be able to support more general DNS queries to allow things like MX loopups, DNSSEC lookups, and so on. We have a design proposal (number 219) for this, but it might need some clean-up. </p> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/7829">see its ticket</a>. </p> </li> <a id="improveIpv6Support"></a> <li> <b>Improve IPv6 support</b> <br> Likely Mentors: <i>ahf, teor</i> <br><br> <p> Tor works over IPv6, but require some manual configuration. Clients and relays could automatically detect IPv6 availability, and configure themselves appropriately. Implementing a "happy eyeballs"-like algorithm is a challenge in an anonymity network: are you up for it? </p> <ul> <li><a href="https://trac.torproject.org/projects/tor/ticket/6939">Missing IPv6 ORPort reachability check</a></li> <li><a href="https://trac.torproject.org/projects/tor/ticket/4847">Bridges binding only to an IPv6 address doesn't work</a></li> <li><a href="https://trac.torproject.org/projects/tor/ticket/5940">Figure out own IPv6 address</a></li> <li><a href="https://trac.torproject.org/projects/tor/ticket/17011">Teach chutney to verify over IPv6</a></li> </ul> <p> For more information <a href="https://trac.torproject.org/projects/tor/ticket/17811">see its ticket</a>. </p> </li> <a id="feedbackExtension"></a> <li> <b>Feedback Extension for Tor Browser</b> <br> Likely Mentors: <i>Nima (mrphs)</i>, <i>Sukhbir (sukhe)</i> <p> Design and implement an extension for Tor Browser that can be used to gather end-user UI/UX feedback on an opt-in basis. While the design and implementation is left as an exercise for the applicant (and also serves as the qualification task), examples of the information we are looking to gather can include troubleshooting network connectivity issues, testing the various pluggable transports, or gathering information about the network of the users. </p> <p> Please propose the extension design in a way that the information is strictly on an opt-in basis and scrubs any information that can be used to identify a user, and also come up with a way to send the gathered information to a central server, whether to an onion address (if the user has Tor running), or otherwise. To start with, we are looking to gather only text as part of the feedback process. </p> </li> <a id="torBrowserCrashReport"></a> <li> <b>Crash Reporter for Tor Browser</b> <br> Likely Mentors: <i>Tom Ritter (tjr)</i>, <i>Georg (GeKo)</i> <p> Currently Tor Browser disables the Crash Reporter. We would like to build it reproducible, enable it, and configure it to report crashes containing non-detailed and impersonal information to Tor, on a .onion submission platform that would allow us to view and explore the crashes. </p> <p> The project will entail enabling the Crash Report on Tor Browser and creating a backend to receive reports from it. Once created, the crash reporter data will be analyzed and modified to fit Tor's requirements for personal data collection. As time permits, we will update the build system to ensure the crash reporter is built reproducibly and add data analysis tools for the crash report database to visualize top crashers and similar statistics. </p> </li> <a id="fasterTorBrowser"></a> <li> <b>Make Tor Browser Faster</b> <br> Likely Mentors: <i>Tom Ritter (tjr)</i>, <i>Georg (GeKo)</i> <p> This project will enable and take advantage of HTTP/2, the Alt-Srv header, and tor's new single hop .onion mode to enable websites to transparently move their traffic to a .onion address. In addition to improvements in security, we will benchmark page load and paint times under normal HTTP/1.1, HTTP/2, and when taking advantage of features such as Server Push. </p> </li> <a id="stemDescriptors"></a> <li> <b>Stem Descriptors</b> <br> Language: <i>Python</i> <br> Likely Mentors: <i>Damian Johnson (atagar), Philipp Winter (phw)</i> <p> <a href="https://stem.torproject.org/">Stem</a> is a Python library for working with tor. With it you can build applications on tor as well as learn information about the relay network. This project concerns this second capability. </p> <p> Information about relays are published hourly in documents called <a href="https://stem.torproject.org/tutorials/mirror_mirror_on_the_wall.html">descriptors</a>. With Stem you can download, parse, and validate all kinds of descriptor documents. </p> <p> Ideas welcome! You're encouraged to brainstorm improvements we can make to this space but here's a few to get you started... </p> <ul> <li><p><b><a href="https://trac.torproject.org/projects/tor/ticket/11045">Validate signatures in the consensus</a></b>. Stem has the ability to validate cryptographic signatures in several descriptor types but not the consensus.</p></li> <li><p><b><a href="https://trac.torproject.org/projects/tor/ticket/21086">Migrate from pycrypto to a supported library</a></b>. Stem presently uses pycrypto for signature validation but it's no longer maintained. We should evaluate options and move to whatever whavever the cool kids are using nowadays.</p></li> <li><p><b><a href="https://trac.torproject.org/projects/tor/ticket/18856">Retrieve descriptors over tor's ORPort</a></b>. Tor relays commonly provide two ports, an <b>ORPort</b> which is used by clients and a <b>DirPort</b> which is obsolete nowadays but in the past was used by tor to download descriptors. Stem still uses tor's DirPort to retrieve descriptors, but it would be neat if we could download from the ORPort instead.</p> <p>This requires implementing part of tor's communication protocol. Depending how complicated this is it might be neat to expand this task to allow the full construction of circuits, allowing client usage of tor without the C executable. Keep in mind though that this later bit hasn't been investigated and might be a pipe dream. ;P</p></li> <li><p><b>Improve performance of reading descriptors</b>. Stem <a href="https://stem.torproject.org/tutorials/mirror_mirror_on_the_wall.html#are-there-any-other-parsing-libraries">isn't the only descriptor parsing library</a> and sadly is the slowest. Tricks like lazy loading have substantially improved our performance but no doubt a dedicated effort to profile Stem would find more low hanging fruit.</p></li> </ul> <p> <b>As part of applying for this project please get your hands wet with the codebase by contributing some patches for <a href="https://stem.torproject.org/faq.html#how-do-i-get-started">Stem</a>!</b> </p> </li> <a id="ahmiaSearch"></a> <li> <b>Ahmia - Hidden Service Search</b> <br> Language: <i>Python, Django</i> <br> Likely Mentors: <i>Juha Nurmi (numes), George (asn)</i> <p> Ahmia is open-source search engine software for Tor hidden service deep dark web sites. You can test the running search engine at ahmia.fi. For more information see our <a href="https://blog.torproject.org/category/tags/ahmiafi">blog post about Ahmia's GSoC2014 development</a>. </p> <p> Ahmia is a working search engine that indexes, searches, and catalogs content published on Tor Hidden Services. Furthermore, it is an environment to share meaningful insights, statistics, insights, and news about the Tor network itself. In this context, there is a lot of work to do. </p> <p> The Ahmia web service is written using the Django web framework. As a result, the server-side language is Python. On the client-side, most of the pages are plain HTML. There are some pages that require JavaScript, but the search itself works without client-side JavaScript. </p> <p> There are several possible directions for this project, including... </p> <ol> <li>Automate blacklisting (very important)<br /> <ul> <li>Fetch a list of child abuse media sites</li> <li>Remove these sites from the search results</li> </ul> </li> <li>Add hidden services funtion (very important)<br /> <ul> <li>You can add onions using HTML form</li> <li>Call the crawler immidiately when a new site is added</li> </ul> </li> <li>Elasticsearch<br /> <ul> <li>Must be updated to 5.X.X sooner or later</li> <li>Adjust the settings</li> <li>Automatically remove data older than, for instance, 90 days</li> </ul> </li> <li>Maintainance<br /> <ul> <li>Update all software dependencies</li> <li>Automate crash recovery for Tor, Elasticsearch and crawler</li> </ul> </li> </ol> </li> <!-- <a id=""></a> <li> <b></b> <br> Language: <i>Python</i> <br> Likely Mentors: <i>Damian (atagar)</i> <br><br> <p> </p> <p> </p> </li> --> <li> <b>Bring up new ideas!</b> <br> Don't like any of these? Look at the <a href="/press/presskit/2008-12-19-roadmap-full.pdf">Tor development roadmap</a> for more ideas, or just try out Tor and Tor Browser, and find out what you think needs fixing. Some of the <a href="<spectree>proposals">current proposals</a> might also be short on developers. </li> </ol> </div> <!-- END MAINCOL --> <div id = "sidecol"> #include "side.wmi" #include "info.wmi" </div> <!-- END SIDECOL --> </div> <!-- END CONTENT --> #include <foot.wmi>