summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-01-10 19:08:07 +0000
committerRoger Dingledine <arma@torproject.org>2008-01-10 19:08:07 +0000
commit8435de3c78e3c0522e98519cccf0d0942d4ab216 (patch)
tree9bfd42775c44e12d2dc558190f15eb61a837ce55
parentb84955285a3a4e07d82c71abefd37185b7c336ee (diff)
downloadtor-8435de3c78e3c0522e98519cccf0d0942d4ab216.tar.gz
tor-8435de3c78e3c0522e98519cccf0d0942d4ab216.zip
add an outline for a new roadmap
svn:r13099
-rw-r--r--doc/design-paper/roadmap-future.tex124
1 files changed, 118 insertions, 6 deletions
diff --git a/doc/design-paper/roadmap-future.tex b/doc/design-paper/roadmap-future.tex
index e39f551fb7..70049ef653 100644
--- a/doc/design-paper/roadmap-future.tex
+++ b/doc/design-paper/roadmap-future.tex
@@ -20,20 +20,132 @@
\maketitle
\pagestyle{plain}
-% TO DO:
-% add cites
-% add time estimates
-
-
\section{Introduction}
Tor (the software) and Tor (the overall software/network/support/document
suite) are now experiencing all the crises of success. Over the next
-years, we're probably going to grow more in terms of users, developers,
+years, we're probably going to grow even more in terms of users, developers,
and funding than before. This document attempts to lay out all the
well-understood next steps that Tor needs to take. We should periodically
reorganize it to reflect current and intended priorities.
+\section{Everybody can be a relay}
+\subsection{UPNP}
+\subsection{"ORPort auto" to look for a reachable port}
+\subsection{Incentives design}
+\subsection{Windows libevent}
+\subsection{Network scaling}
+ - Practical side: how to handle a huge directory?
+ - Anonymity side: impacts from partitioning?
+\subsection{Using fewer sockets}
+ - Restricted-route topology
+ - UDP design
+\subsection{Better algorithms for giving priority to local traffic}
+\subsection{Auto bandwidth detection and rate limiting, especially for
+ asymmetric connections.}
+\subsection{Tolerate absurdly wrong clocks, even for servers}
+\subsection{Metrics for deciding when you're fast enough and stable enough
+ to opt to switch from being a bridge relay to a public relay.}
+\section{Tor on low resources / slow links}
+\subsection{Reducing directory fetches further}
+\subsection{AvoidDiskWrites}
+\subsection{Using less ram}
+\subsection{Better DoS resistance for tor servers / authorities}
+\section{Blocking resistance}
+\subsection{Better bridge-address-distribution strategies}
+\subsection{Get more volunteers running bridges}
+\subsection{Handle multiple bridge authorities}
+\subsection{Anonymity for bridge users: second layer of entry guards, etc?}
+\subsection{More TLS normalization}
+\subsection{Harder to block Tor software distribution}
+\subsection{Integration with Psiphon}
+\section{Packaging}
+\subsection{Switch Privoxy out for Polipo}
+ - Make Vidalia able to launch more programs itself
+\subsection{Continue Torbutton improvements}
+ especially better docs
+\subsection{Vidalia and stability (especially wrt ongoing Windows problems)}
+\subsection{Polipo support on Windows}
+\subsection{Auto update for Tor, Vidalia, others}
+\subsection{Tor browser bundle for USB and standalone use}
+\subsection{LiveCD solution}
+\subsection{VM-based solution}
+\subsection{Tor-on-enclave-firewall configuration}
+\subsection{General tutorials on what common applications are Tor-friendly}
+\subsection{Controller libraries (torctl) plus documentation}
+\subsection{Localization and translation (Vidalia, Torbutton, web pages)}
+\section{Interacting better with Internet sites}
+\subsection{Make tordnsel (tor exitlist) better and more well-known}
+\subsection{Nymble}
+\subsection{Work with Wikipedia, Slashdot, Google(, IRC networks)}
+\subsection{IPv6 support for exit destinations}
+\section{Network health}
+\subsection{torflow / soat to detect bad relays}
+\subsection{make authorities more automated}
+\subsection{torstatus pages and better trend tracking}
+\subsection{better metrics for assessing network health / growth}
+ - geoip usage-by-country reporting and aggregation
+ (Once that's working, switch to Directory guards)
+\subsection{Performance research}
+ - Load balance better
+ - Improve our congestion control algorithms
+\section{Outreach and user education}
+\subsection{"Who uses Tor" use cases}
+\subsection{Law enforcement contacts}
+ - "Was this IP address a Tor relay recently?" database
+\subsection{Commercial/enterprise outreach. Help them use Tor well and
+ not fear it.}
+\subsection{NGO outreach and training.}
+ - "How to be a safe blogger"
+\subsection{More activist coordinators, more people to answer user questions}
+\subsection{More people to hold hands of server operators}
+\subsection{The-dangers-of-plaintext awareness}
+\subsection{check.torproject.org and other "privacy checkers"}
+\subsection{Stronger legal FAQ for US}
+\subsection{Legal FAQs for other countries}
+\section{Anonymity research}
+\subsection{estimate relay bandwidth more securely}
+\subsection{website fingerprinting attacks}
+\subsection{safer e2e defenses}
+\subsection{Using Tor when you really need anonymity. Can you compose it
+ with other steps, like more trusted guards or separate proxies?}
+\subsection{Topology-aware routing; routing-zones, steven's pet2007 paper.}
+\section{Organizational growth and stability}
+\subsection{A contingency plan if Roger gets hit by a bus}
+ - Get a new executive director
+\subsection{More diversity of funding}
+ - Don't rely on any one funder as much
+ - Don't rely on any sector or funder category as much
+\subsection{More Tor-funded people who are skilled at peripheral apps like
+ Vidalia, Torbutton, Polipo, etc}
+\subsection{Clearer and more predictable trademark behavior}
+\subsection{More outside funding for internships, etc e.g. GSoC.}
+\section{Hidden services}
+\subsection{Scaling: how to handle many hidden services}
+\subsection{Performance: how to rendezvous with them quickly}
+\subsection{Authentication/authorization: how to tolerate DoS / load}
+\section{Tor as a general overlay network}
+\subsection{Choose paths / exit by country}
+\subsection{Easier to run your own private servers and have Tor use them
+ anywhere in the path}
+\subsection{Easier to run an independent Tor network}
+\section{Code security/correctness}
+\subsection{veracode}
+\subsection{code audit}
+\subsection{more fuzzing tools}
+\subsection{build farm, better testing harness}
+\subsection{Long-overdue code refactoring and cleanup}
+\section{Protocol security}
+\subsection{safer circuit handshake}
+\subsection{protocol versioning for future compatibility}
+\subsection{cell sizes}
+\subsection{adapt to new key sizes, etc}
+
+
+
+
+
+
\section{Code and design infrastructure}
\subsection{Protocol revision}