|  | @@ -1,5 +1,7 @@
 | 
	
		
			
				|  |  |  \documentclass{article}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +\usepackage{url}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  \newenvironment{tightlist}{\begin{list}{$\bullet$}{
 | 
	
		
			
				|  |  |    \setlength{\itemsep}{0mm}
 | 
	
		
			
				|  |  |      \setlength{\parsep}{0mm}
 | 
	
	
		
			
				|  | @@ -24,17 +26,17 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \section{Introduction}
 | 
	
		
			
				|  |  | -Hi, Roger!  Hi, Shava.  This paragraph should get deleted soon.  Right now,
 | 
	
		
			
				|  |  | -this document goes into about as much detail as I'd like to go into for a
 | 
	
		
			
				|  |  | -technical audience, since that's the audience I know best.  It doesn't have
 | 
	
		
			
				|  |  | -time estimates everywhere.  It isn't well prioritized, and it doesn't
 | 
	
		
			
				|  |  | -distinguish well between things that need lots of research and things that
 | 
	
		
			
				|  |  | -don't.  The breakdowns don't all make sense.  There are lots of things where
 | 
	
		
			
				|  |  | -I don't make it clear how they fit into larger goals, and lots of larger
 | 
	
		
			
				|  |  | -goals that don't break down into little things. It isn't all stuff we can do
 | 
	
		
			
				|  |  | -for sure, and it isn't even all stuff we can do for sure in 2007.  The
 | 
	
		
			
				|  |  | -tmp\{\} macro indicates stuff I haven't said enough about.  That said, here
 | 
	
		
			
				|  |  | -plangoes...
 | 
	
		
			
				|  |  | +%Hi, Roger!  Hi, Shava.  This paragraph should get deleted soon.  Right now,
 | 
	
		
			
				|  |  | +%this document goes into about as much detail as I'd like to go into for a
 | 
	
		
			
				|  |  | +%technical audience, since that's the audience I know best.  It doesn't have
 | 
	
		
			
				|  |  | +%time estimates everywhere.  It isn't well prioritized, and it doesn't
 | 
	
		
			
				|  |  | +%distinguish well between things that need lots of research and things that
 | 
	
		
			
				|  |  | +%don't.  The breakdowns don't all make sense.  There are lots of things where
 | 
	
		
			
				|  |  | +%I don't make it clear how they fit into larger goals, and lots of larger
 | 
	
		
			
				|  |  | +%goals that don't break down into little things. It isn't all stuff we can do
 | 
	
		
			
				|  |  | +%for sure, and it isn't even all stuff we can do for sure in 2007.  The
 | 
	
		
			
				|  |  | +%tmp\{\} macro indicates stuff I haven't said enough about.  That said, here
 | 
	
		
			
				|  |  | +%plangoes...
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Tor (the software) and Tor (the overall software/network/support/document
 | 
	
		
			
				|  |  |  suite) are now experiencing all the crises of success.  Over the next year,
 | 
	
	
		
			
				|  | @@ -62,7 +64,7 @@ With protocol versioning support would come the ability to {\bf future-proof
 | 
	
		
			
				|  |  |  directory protocol, is pretty firmly tied to the SHA-1 hash function, which
 | 
	
		
			
				|  |  |  though not yet known to be insecure for our purposes, has begun to show
 | 
	
		
			
				|  |  |  its age.  We should
 | 
	
		
			
				|  |  | -remove assumptions thoughout our design based on the assumption that public
 | 
	
		
			
				|  |  | +remove assumptions throughout our design based on the assumption that public
 | 
	
		
			
				|  |  |  keys, secret keys, or digests will remain any particular size indefinitely.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Our OR {\bf authentication protocol}, though provably
 | 
	
	
		
			
				|  | @@ -143,12 +145,13 @@ they are to be deployed in 2008.\plan{Design in 2007; unknown difficulty.
 | 
	
		
			
				|  |  |  \subsubsection{Relay incentives}
 | 
	
		
			
				|  |  |  To support more users on the network, we need to get more servers.  So far,
 | 
	
		
			
				|  |  |  we've relied on volunteerism to attract server operators, and so far it's
 | 
	
		
			
				|  |  | -served us well.  But in the long run, we need to {\bf design incentices for
 | 
	
		
			
				|  |  | +served us well.  But in the long run, we need to {\bf design incentives for
 | 
	
		
			
				|  |  |    users to run servers} and relay traffic for others.  Most obviously, we
 | 
	
		
			
				|  |  |  could try to build the network so that servers offered improved service for
 | 
	
		
			
				|  |  |  other servers, but we would need to do so without weakening anonymity and
 | 
	
		
			
				|  |  |  making it obvious which connections originate from users running servers.  We
 | 
	
		
			
				|  |  | -have some preliminary designs here~\cite{challenges}, but need to perform
 | 
	
		
			
				|  |  | +have some preliminary designs here~\cite{tor-challenges}~\cite{incentives-txt},
 | 
	
		
			
				|  |  | +but need to perform
 | 
	
		
			
				|  |  |  some more research to make sure they would be safe and effective.\plan{Write
 | 
	
		
			
				|  |  |    a draft paper; 2 person-months.}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -235,12 +238,13 @@ all getting dropped on the floor, the TCP push-back mechanisms don't really
 | 
	
		
			
				|  |  |  transmit this information back to the incoming streams.\plan{Do in 2007 since
 | 
	
		
			
				|  |  |    related to bandwidth limiting.  3-4 weeks.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  \subsection{Running Tor as both client and server}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -\tmp{many performance tradeoffs and balances that need more attention.
 | 
	
		
			
				|  |  | -  Roger, please write.} \plan{No idea; try profiling and improving things in
 | 
	
		
			
				|  |  | -  2007.}
 | 
	
		
			
				|  |  | +Many performance tradeoffs and balances that might need more attention.
 | 
	
		
			
				|  |  | +We first need to track and fix whatever bottlenecks emerge; but we also
 | 
	
		
			
				|  |  | +need to invent good algorithms for prioritizing the client's traffic
 | 
	
		
			
				|  |  | +without starving the server's traffic too much.\plan{No idea; try
 | 
	
		
			
				|  |  | +profiling and improving things in 2007.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \subsection{Protocol redesign for UDP}
 | 
	
		
			
				|  |  |  Tor has relayed only TCP traffic since its first versions, and has used
 | 
	
	
		
			
				|  | @@ -249,7 +253,7 @@ in the long term we will need to allow UDP traffic on the network, and switch
 | 
	
		
			
				|  |  |  some or all of the network to using a UDP transport.  {\bf Supporting UDP
 | 
	
		
			
				|  |  |    traffic} will make Tor more suitable for protocols that require UDP, such
 | 
	
		
			
				|  |  |  as many VOIP protocols.  {\bf Using a UDP transport} could greatly reduce
 | 
	
		
			
				|  |  | -resource limitations on servers, and make the network far less interruptable
 | 
	
		
			
				|  |  | +resource limitations on servers, and make the network far less interruptible
 | 
	
		
			
				|  |  |  by lossy connections.  Either of these protocol changes would require a great
 | 
	
		
			
				|  |  |  deal of design work, however.  We hope to be able to enlist the aid of a few
 | 
	
		
			
				|  |  |  talented graduate students to assist with the initial design and
 | 
	
	
		
			
				|  | @@ -365,7 +369,7 @@ unacceptable levels. %Cite something
 | 
	
		
			
				|  |  |  \plan{Start doing this in 2007; write a paper.  8-16 weeks.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  We've got some preliminary results suggesting that {\bf a topology-aware
 | 
	
		
			
				|  |  | -  routing algorithm}~\cite{routing-zones} could reduce Tor users'
 | 
	
		
			
				|  |  | +  routing algorithm}~\cite{feamster:wpes2004} could reduce Tor users'
 | 
	
		
			
				|  |  |  vulnerability against local or ISP-level adversaries, by ensuring that they
 | 
	
		
			
				|  |  |  are never in a position to watch both ends of a connection.  We need to
 | 
	
		
			
				|  |  |  examine the effects of this approach in more detail and consider side-effects
 | 
	
	
		
			
				|  | @@ -381,12 +385,12 @@ Internet. \plan{Not in 2007 unless a graduate student wants to do it.}
 | 
	
		
			
				|  |  |  %
 | 
	
		
			
				|  |  |  % See above; I think I got this.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -We should research the efficacy of {\bf website fingperprinting} attacks,
 | 
	
		
			
				|  |  | +We should research the efficacy of {\bf website fingerprinting} attacks,
 | 
	
		
			
				|  |  |  wherein an adversary tries to match the distinctive traffic and timing
 | 
	
		
			
				|  |  |  pattern of the resources constituting a given website to the traffic pattern
 | 
	
		
			
				|  |  |  of a user's client.  These attacks work great in simulations, but in
 | 
	
		
			
				|  |  |  practice we hear they don't work nearly as well.  We should get some actual
 | 
	
		
			
				|  |  | -numbers to investigte the issue, and figure out what's going on.  If we
 | 
	
		
			
				|  |  | +numbers to investigate the issue, and figure out what's going on.  If we
 | 
	
		
			
				|  |  |  resist these attacks, or can improve our design to resist them, we should.
 | 
	
		
			
				|  |  |  % add cites
 | 
	
		
			
				|  |  |  \plan{Possibly part of end-to-end correlation paper.  Otherwise, not in 2007
 | 
	
	
		
			
				|  | @@ -468,9 +472,9 @@ adding named nodes to the network.\plan{Do in 2007; 4-5 weeks.}
 | 
	
		
			
				|  |  |  \subsection{Protocol security}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  In addition to other protocol changes discussed above,
 | 
	
		
			
				|  |  | -% And should we move somve of them down here? -NM
 | 
	
		
			
				|  |  | +% And should we move some of them down here? -NM
 | 
	
		
			
				|  |  |  we should add {\bf hooks for denial-of-service resistance}; we have some
 | 
	
		
			
				|  |  | -prelimiary designs, but we shouldn't postpone them until we realy need them.
 | 
	
		
			
				|  |  | +preliminary designs, but we shouldn't postpone them until we really need them.
 | 
	
		
			
				|  |  |  If somebody tries a DDoS attack against the Tor network, we won't want to
 | 
	
		
			
				|  |  |  wait for all the servers and clients to upgrade to a new
 | 
	
		
			
				|  |  |  version.\plan{Research project; do this in 2007 if funded.}
 | 
	
	
		
			
				|  | @@ -499,7 +503,7 @@ testing framework.\plan{Ongoing basis, time permitting.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  We should also write flexible {\bf automated single-host deployment tests} so
 | 
	
		
			
				|  |  |  we can more easily verify that the current codebase works with the
 | 
	
		
			
				|  |  | -network.\plan{Worthwile in 2007; would save lots of time.  2-4 weeks.}
 | 
	
		
			
				|  |  | +network.\plan{Worthwhile in 2007; would save lots of time.  2-4 weeks.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  We should build automated {\bf stress testing} frameworks so we can see which
 | 
	
		
			
				|  |  |  realistic loads cause Tor to perform badly, and regularly profile Tor against
 | 
	
	
		
			
				|  | @@ -559,13 +563,13 @@ current Tor-friendly position.\plan{Do a writeup here in 2007; 1-2 weeks.}
 | 
	
		
			
				|  |  |  Those who do block Tor users also block overbroadly, sometimes blacklisting
 | 
	
		
			
				|  |  |  operators of Tor servers that do not permit exit to their services.  We could
 | 
	
		
			
				|  |  |  obviate innocent reasons for doing so by designing a {\bf narrowly-targeted Tor
 | 
	
		
			
				|  |  | -  RBL service} so that those who wanted to overblock Tor clould no longer
 | 
	
		
			
				|  |  | +  RBL service} so that those who wanted to overblock Tor could no longer
 | 
	
		
			
				|  |  |  plead incompetence.\plan{Possibly in 2007 if we decide it's a good idea; 3
 | 
	
		
			
				|  |  |    weeks.}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \subsection{All-in-one bundle}
 | 
	
		
			
				|  |  |  We need a well-tested, well-documented bundle of Tor and supporting
 | 
	
		
			
				|  |  | -applications configured to use it correctly.  We have an intial
 | 
	
		
			
				|  |  | +applications configured to use it correctly.  We have an initial
 | 
	
		
			
				|  |  |  implementation well under way, but it will need additional work in
 | 
	
		
			
				|  |  |  identifying requisite Firefox extensions, identifying security threats,
 | 
	
		
			
				|  |  |  improving user experience, and so on.  This will need significantly more work
 | 
	
	
		
			
				|  | @@ -578,12 +582,17 @@ is quite feasible, but their project is not currently maintained.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \subsection{A Tor client in a VM}
 | 
	
		
			
				|  |  |  \tmp{a.k.a JanusVM} which is quite related to the firewall-level deployment
 | 
	
		
			
				|  |  | -section below .  Roger, can you write this?
 | 
	
		
			
				|  |  | +section below. JanusVM is a Linux kernel running in VMWare. It gets an IP
 | 
	
		
			
				|  |  | +address from the network, and serves as a DHCP server for its host Windows
 | 
	
		
			
				|  |  | +machine. It intercepts all outgoing traffic and redirects it into Privoxy,
 | 
	
		
			
				|  |  | +Tor, etc. This Linux-in-Windows approach may help us with scalability in
 | 
	
		
			
				|  |  | +the short term, and it may also be a good long-term solution rather than
 | 
	
		
			
				|  |  | +accepting all security risks in Windows.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  %\subsection{Interface improvements}
 | 
	
		
			
				|  |  |  %\tmp{Allow controllers to manipulate server status.}
 | 
	
		
			
				|  |  |  % (Why is this in the User Experience section?) -RD
 | 
	
		
			
				|  |  | -% I think it's better left to a generic ``make controller iface bettter'' item.
 | 
	
		
			
				|  |  | +% I think it's better left to a generic ``make controller iface better'' item.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \subsection{Firewall-level deployment}
 | 
	
		
			
				|  |  |  Another useful deployment mode for some users is using {\bf Tor in a firewall
 | 
	
	
		
			
				|  | @@ -596,16 +605,19 @@ and to {\bf construct a recommended set of firewall configurations} to redirect
 | 
	
		
			
				|  |  |  traffic to Tor.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  This is an area where {\bf deployment via a livecd}, or an installation
 | 
	
		
			
				|  |  | -targetted at specialized home routing hardware, could be useful.
 | 
	
		
			
				|  |  | +targeted at specialized home routing hardware, could be useful.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \subsection{Assess software and configurations for anonymity risks}
 | 
	
		
			
				|  |  |  Right now, users and packagers are more or less on their own when selecting
 | 
	
		
			
				|  |  | -firefox extensions.  We should {\bf assemble a recommended list of browser
 | 
	
		
			
				|  |  | +Firefox extensions.  We should {\bf assemble a recommended list of browser
 | 
	
		
			
				|  |  |    extensions} through experiment, and include this in the application bundles
 | 
	
		
			
				|  |  |  we distribute.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  We should also describe {\bf best practices for using Tor with each class of
 | 
	
		
			
				|  |  | -  application}.  \tmp{Roger, say more}
 | 
	
		
			
				|  |  | +  application}. For example, Ethan Zuckerman has written a detailed
 | 
	
		
			
				|  |  | +tutorial on how to use Tor, Firefox, GMail, and Wordpress to blog with
 | 
	
		
			
				|  |  | +improved safety. There are many other cases on the Internet where anonymity
 | 
	
		
			
				|  |  | +would be helpful, and there are a lot of ways to screw up using Tor.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  The Foxtor and Torbutton extensions serve similar purposes; we should pick a
 | 
	
		
			
				|  |  |  favorite, and merge in the useful features of the other.
 | 
	
	
		
			
				|  | @@ -632,10 +644,16 @@ translators only need to use a single tool to translate the whole Tor suite.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \section{Support}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -\tmp{would be nice to set up some actual user support infrastructure, especially
 | 
	
		
			
				|  |  | -focusing on server operators and on coordinating volunteers.} Roger, can you
 | 
	
		
			
				|  |  | -write this ?  I don't know what ``user support infrastructure'' is.
 | 
	
		
			
				|  |  | +It would be nice to set up some {\bf user support infrastructure} and
 | 
	
		
			
				|  |  | +{\bf contributor support infrastructure}, especially focusing on server
 | 
	
		
			
				|  |  | +operators and on coordinating volunteers.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +This includes intuitive and easy ticket systems for bug reports and
 | 
	
		
			
				|  |  | +feature suggestions (not just mailing lists with a half dozen people
 | 
	
		
			
				|  |  | +and no clear roles for who answers what), but it also includes a more
 | 
	
		
			
				|  |  | +personalized and efficient framework for interaction so we keep the
 | 
	
		
			
				|  |  | +attention and interest of the contributors, and so we make them feel
 | 
	
		
			
				|  |  | +helpful and wanted.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  \section{Documentation}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -656,7 +674,7 @@ We should {\bf revise our design paper} to reflect the new decisions and
 | 
	
		
			
				|  |  |  research we've made since it was published in 2004.  This will help other
 | 
	
		
			
				|  |  |  researchers evaluate and suggest improvements to Tor's current design.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Other projects sometimes implement the client side of our prototocol.  We
 | 
	
		
			
				|  |  | +Other projects sometimes implement the client side of our protocol.  We
 | 
	
		
			
				|  |  |  encourage this, but we should write {\bf a document about how to avoid
 | 
	
		
			
				|  |  |  excessive resource use}, so we don't need to worry that they will do so
 | 
	
		
			
				|  |  |  without regard to the effect of their choices on server resources.
 | 
	
	
		
			
				|  | @@ -665,7 +683,7 @@ without regard to the effect of their choices on server resources.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Our documentation falls into two broad categories: some is `discoursive' and
 | 
	
		
			
				|  |  |  explains in detail why users should take certain actions, and other
 | 
	
		
			
				|  |  | -documenation is `comprehensive' and describes all of Tor's features.  Right
 | 
	
		
			
				|  |  | +documentation is `comprehensive' and describes all of Tor's features.  Right
 | 
	
		
			
				|  |  |  now, we have no document that is both deep, readable, and thorough.  We
 | 
	
		
			
				|  |  |  should correct this by identifying missing spots in our design.
 | 
	
		
			
				|  |  |  
 |