[or-cvs] r8810: add some more items for the roadmap, and clean some up (tor/trunk/doc/design-paper)

arma at seul.org arma at seul.org
Mon Oct 23 23:08:28 UTC 2006

Author: arma
Date: 2006-10-23 19:08:27 -0400 (Mon, 23 Oct 2006)
New Revision: 8810

add some more items for the roadmap, and clean some up

Modified: tor/trunk/doc/design-paper/roadmap-2007.tex
--- tor/trunk/doc/design-paper/roadmap-2007.tex	2006-10-23 20:34:51 UTC (rev 8809)
+++ tor/trunk/doc/design-paper/roadmap-2007.tex	2006-10-23 23:08:27 UTC (rev 8810)
@@ -43,20 +43,21 @@
 changes and redesigns for a long time.  Because of this, there are a number
 of sensible revisions we've been putting off until we could deploy several of
 them at once.  To do each of these, we first need to discuss design
-alternatives with cryptographers and other outside collaborators to
+alternatives with other cryptographers and outside collaborators to
 make sure that our choices are secure.
 First of all, our protocol needs better {\bf versioning support} so that we
 can make backward-incompatible changes to our core protocol.  There are
 difficult anonymity issues here, since many naive designs would make it easy
-to tell clients apart based on their supported versions.
+to tell clients apart (and then track them) based on their supported versions.
 With protocol versioning support would come the ability to {\bf future-proof
   our ciphersuites}.  For example, not only our OR protocol, but also our
 directory protocol, is pretty firmly tied to the SHA-1 hash function, which
-though not insecure for our purposes, has begun to show its age.  We should
+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
-keys, secret keys, or digests will remain any particular size infinitely.
+keys, secret keys, or digests will remain any particular size indefinitely.
 A new protocol could support {\bf multiple cell sizes}.  Right now, all data
 passes through the Tor network divided into 512-byte cells.  This is
@@ -66,15 +67,19 @@
 adversary to fingerprint a traffic pattern.
 Our OR {\bf authentication protocol}, though provably
-secure\cite{goldberg-tap}, relies more on particular aspects of RSA and our
+secure\cite{tap:pet2006}, relies more on particular aspects of RSA and our
 implementation thereof than we had initially believed.  To future-proof
 against changes, we should replace it with a less delicate approach.
 \tmp{Stream migration?}
+\tmp{Use a better AES mode that has built-in integrity checking,
+doesn't grow with the number of hops, is not patented, and
+is implemented and maintained by smart people.}
-\subsubsection{Improved directory performance}
+\subsubsection{Improved directory efficiency}
 Right now, clients download a statement of the {\bf network status} made by
 each directory authority.  We could reduce network bandwidth significantly by
 having the authorities jointly sign a statement reflecting their vote on the
@@ -87,7 +92,8 @@
 authorities, and not of interest to clients.  We can do this by having each
 router upload a short-form and a long-form signed descriptor, and having
 clients download only the short form.  Even a naive version of this would
-save about 40\% of the bandwidth currently spent on descriptors.
+save about 40\% of the bandwidth currently spent by clients downloading
 We should {\bf have routers upload their descriptors even less often}, so
 that clients do not need to download replacements every 18 hours whether any
@@ -145,12 +151,28 @@
 \tmp{Do research to figure out how well capacity is actually used.}
+\tmp{Adapt to congestion better. Dynamic SENDME window sizes.}
 \tmp{Tune pathgen algorithms to use it better.}
+\subsection{Performance: one Tor client, many users}
+\tmp{Many organizations want to manage a single Tor client on their
+firewall for many users, rather than having each user install a separate
+Tor client.} Nobody has tried this before, and we bet it will scale
+really poorly.
+Other stress-testing, and fix bottlenecks we find.
+\subsection{Tor servers on asymmetric bandwidth}
+\subsection{Running Tor as both client and server}
+many performance tradeoffs and balances that need more attention.
 \subsection{Blue-sky: UDP}
-\tmp{support udp}
+\tmp{support udp traffic}
 \tmp{Use udp as a transport}
@@ -169,7 +191,7 @@
 \subsection{Implementation: client-side and bridges-side}
 Our anticensorship design calls for some nodes to act as ``bridges'' that can
 circumvent a national firewall, and others inside the firewall to act as pure
-clients.  The design here is quite clear-cut; we're probably ready to begin
+clients.  This part of the design is quite clear-cut; we're probably ready to begin
 implementing it.  To implement bridges, we need only to have servers publish
 themselves as limited-availability relays to a special bridge authority if
 they judge they'd make good servers.  Clients need a flexible interface to
@@ -187,10 +209,24 @@
 easy to fingerprint {\em as} Tor.  We should correct this where possible.
 \subsection{Implementation: bridge authorities}
+The design here is also reasonably clear-cut: we need to run some
+directory authorities with a slightly modified protocol that doesn't leak
+the entire list of bridges. Thus users can learn up-to-date information
+for bridges they already know about, but they can't learn about arbitrary
+new bridges.
+\subsection{Implementation: how users discover bridges}
 Our design anticipates an arms race between discovery methods and censors.
 We need to begin the infrastructure on our side quickly, preferably in a
 flexible language like Python, so we can adapt quickly to censorship.
+\subsection{The Tor website, docs, and mirrors}
+They're the first to be blocked. How do users learn about Tor in the
+first place, and how do they fetch a genuine copy of Tor?
 \subsection{Security research projects}
@@ -206,12 +242,17 @@
 proving that one didn't would free up researchers in the field to go work on
 other things.
+\tmp{website fingperprinting}  They work great in simulations, but in
+practice we hear they don't work nearly as well. We should get some actual
+numbers on both sides of the issue, and figure out what's going on.
 \subsection{Implementation security}
 \tmp{Encrypt more keys}
 \tmp{Talk Coverity or somebody with a copy of vs2005 into running tools on
-  our code}
+  our code} And figure out a way to get our code checked periodically rather
+  than just once.
 \tmp{Directory guards}
@@ -277,19 +318,23 @@
 \subsection{Controller library}
 We've done lots of design and development on our controller interface, which
 allows UI applications and other tools to interact with Tor.  We could
-encorage the development of more such tools by releasing a {\bf
+encourage the development of more such tools by releasing a {\bf
   general-purpose controller library}, ideally with API support for several
 popular programming languages.
 \section{User experience}
-\subsection{Get blocked less, get blocked less hard}
-Right now, some services block access to Tor because they don't have a better
+\subsection{Get blocked less, get blocked less broadly}
+Right now, some services block connections from the Tor network because
+they don't have a better
 way to keep vandals from abusing them than blocking IP addresses associated
 with vandalism.  Our approach so far has been to educate them about better
 solutions that currently exist, but we should also {\bf create better
 solutions for limiting vandalism by anonymous users} like credential and
-blind-signature based implementations, and encourage their use.
+blind-signature based implementations, and encourage their use. Other
+promising starting points including writing a patch and explanation for
+Wikipedia, and helping Freenode to document, maintain, and expand its
+current Tor-friendly position.
 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
@@ -303,8 +348,13 @@
 \subsection{LiveCD Tor}
 \tmp{a.k.a anonym.os done right}
+\subsection{A Tor client in a VM}
+\tmp{a.k.a JanusVM} which is quite related to the firewall-level deployment
+section below
 \subsection{Interface improvements}
 \tmp{Allow controllers to manipulate server status.}
+(Why is this in the User Experience section?)
 \subsection{Firewall-level deployment}
@@ -320,10 +370,19 @@
 This is an area where {\bf deployment via a livecd}, or an installation
 targetted at specialized home routing hardware, could be useful.
+\subsection{Assess software and configurations for anonymity risks}
+which firefox extensions to use, and which to avoid. best practices for
+how to torify each class of application.
+clean up our own bundled software:
+E.g. Merge the good features of Foxtor into Torbutton
 Right now, most of our user-facing code is internationalized.  We need to
 internationalize the last few hold-outs (like the Tor installer), and get
 more translations for the parts that are already internationalized.
+[Do you mean the Vidalia bundle installer, or the Tor-installer-for-experts? -RD]
 Also, we should look into a {\bf unified translator's solution}.  Currently,
 since different tools have been internationalized using the
@@ -331,14 +390,21 @@
 them via different interfaces.  Inasmuch as possible, we should make
 translators only need to use a single tool to translate the whole Tor suite.
+would be nice to set up some actual user support infrastructure, especially
+focusing on server operators and on coordinating volunteers.
 \subsection{Unified documentation scheme}
 We need to {\bf inventory our documentation.}  Our documentation so far has
 been mostly produced on an {\it ad hoc} basis, in response to particular
-needs and requests.  We should figure out what documentation we have, whih of
-it (if any) should get priotority, and whether we can't put it all into a
+needs and requests.  We should figure out what documentation we have, which of
+it (if any) should get priority, and whether we can't put it all into a
 single format.
 We could {\bf unify the docs} into a single book-like thing.  This will also
@@ -359,4 +425,7 @@
 \tmp{Discoursive and comprehensive docs}
+\bibliographystyle{plain} \bibliography{tor-design}

Modified: tor/trunk/doc/design-paper/tor-design.bib
--- tor/trunk/doc/design-paper/tor-design.bib	2006-10-23 20:34:51 UTC (rev 8809)
+++ tor/trunk/doc/design-paper/tor-design.bib	2006-10-23 23:08:27 UTC (rev 8810)
@@ -1288,7 +1288,20 @@
   www_pdf_url = {http://afs.eecs.harvard.edu/~goodell/thesis.pdf},
+ at inproceedings{tap:pet2006,
+  title = {On the Security of the Tor Authentication Protocol},
+  author = {Ian Goldberg},
+  booktitle = {Proceedings of the Sixth Workshop on Privacy Enhancing Technologies (PET 2006)},
+  year = {2006},
+  month = {June},
+  address = {Cambridge, UK},
+  publisher = {Springer},
+  www_section = {Formal methods},
+  bookurl = {http://petworkshop.org/2006/},
+  www_pdf_url = {http://petworkshop.org/2006/preproc/preproc_18.pdf},
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "tor-design"

More information about the tor-commits mailing list