From f164a76f72cc8e3447a733dcb129239b4afdf8c5 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Sun, 7 Feb 2010 07:39:00 +0100 Subject: [PATCH] Remove legacy files from main source distribution The AUTHORS file was pretty outdated. Its contents moved onto the people page. Design paper and roadmaps moved to the projects directory in svn. --- AUTHORS | 41 - ChangeLog | 4 + contrib/privoxy-tor-toggle | 73 - contrib/proxy-some-domains | 52 - contrib/tor-0.1.2.17.tar.gz.metalink.in | 41 - doc/codecon04.mgp | 357 ---- doc/design-paper/Makefile | 21 - doc/design-paper/blocking.html | 2112 ------------------ doc/design-paper/blocking.pdf | Bin 156628 -> 0 bytes doc/design-paper/blocking.tex | 1894 ---------------- doc/design-paper/cell-struct.eps | 189 -- doc/design-paper/cell-struct.fig | 49 - doc/design-paper/cell-struct.pdf | Bin 6175 -> 0 bytes doc/design-paper/cell-struct.png | Bin 6090 -> 0 bytes doc/design-paper/challenges.pdf | Bin 199621 -> 0 bytes doc/design-paper/challenges.tex | 1505 ------------- doc/design-paper/challenges2.tex | 1612 -------------- doc/design-paper/graphnodes.eps | 168 -- doc/design-paper/graphnodes.pdf | Bin 62261 -> 0 bytes doc/design-paper/graphtraffic.eps | 143 -- doc/design-paper/graphtraffic.pdf | Bin 62459 -> 0 bytes doc/design-paper/interaction.eps | 463 ---- doc/design-paper/interaction.fig | 122 -- doc/design-paper/interaction.pdf | Bin 35540 -> 0 bytes doc/design-paper/interaction.png | Bin 29362 -> 0 bytes doc/design-paper/latex8.bst | 1122 ---------- doc/design-paper/llncs.cls | 1016 --------- doc/design-paper/sptor.tex | 353 --- doc/design-paper/tor-design.bib | 1493 ------------- doc/design-paper/tor-design.html | 2488 ---------------------- doc/design-paper/tor-design.pdf | Bin 175246 -> 0 bytes doc/design-paper/tor-design.tex | 1988 ----------------- doc/design-paper/usenix.sty | 96 - doc/design-paper/usenixsubmit.cls | 7 - doc/roadmaps/2008-12-19-roadmap-full.pdf | Bin 178487 -> 0 bytes doc/roadmaps/2009-03-11-performance.pdf | Bin 1018633 -> 0 bytes doc/roadmaps/roadmap-2007.pdf | Bin 119462 -> 0 bytes doc/roadmaps/roadmap-2007.tex | 690 ------ doc/roadmaps/roadmap-future.pdf | Bin 72297 -> 0 bytes doc/roadmaps/roadmap-future.tex | 895 -------- doc/rump-fc04.mgp | 175 -- 41 files changed, 4 insertions(+), 19165 deletions(-) delete mode 100644 AUTHORS delete mode 100644 contrib/privoxy-tor-toggle delete mode 100644 contrib/proxy-some-domains delete mode 100644 contrib/tor-0.1.2.17.tar.gz.metalink.in delete mode 100644 doc/codecon04.mgp delete mode 100644 doc/design-paper/Makefile delete mode 100644 doc/design-paper/blocking.html delete mode 100644 doc/design-paper/blocking.pdf delete mode 100644 doc/design-paper/blocking.tex delete mode 100644 doc/design-paper/cell-struct.eps delete mode 100644 doc/design-paper/cell-struct.fig delete mode 100644 doc/design-paper/cell-struct.pdf delete mode 100644 doc/design-paper/cell-struct.png delete mode 100644 doc/design-paper/challenges.pdf delete mode 100644 doc/design-paper/challenges.tex delete mode 100644 doc/design-paper/challenges2.tex delete mode 100644 doc/design-paper/graphnodes.eps delete mode 100644 doc/design-paper/graphnodes.pdf delete mode 100644 doc/design-paper/graphtraffic.eps delete mode 100644 doc/design-paper/graphtraffic.pdf delete mode 100644 doc/design-paper/interaction.eps delete mode 100644 doc/design-paper/interaction.fig delete mode 100644 doc/design-paper/interaction.pdf delete mode 100644 doc/design-paper/interaction.png delete mode 100644 doc/design-paper/latex8.bst delete mode 100644 doc/design-paper/llncs.cls delete mode 100644 doc/design-paper/sptor.tex delete mode 100644 doc/design-paper/tor-design.bib delete mode 100644 doc/design-paper/tor-design.html delete mode 100644 doc/design-paper/tor-design.pdf delete mode 100644 doc/design-paper/tor-design.tex delete mode 100644 doc/design-paper/usenix.sty delete mode 100644 doc/design-paper/usenixsubmit.cls delete mode 100644 doc/roadmaps/2008-12-19-roadmap-full.pdf delete mode 100644 doc/roadmaps/2009-03-11-performance.pdf delete mode 100644 doc/roadmaps/roadmap-2007.pdf delete mode 100644 doc/roadmaps/roadmap-2007.tex delete mode 100644 doc/roadmaps/roadmap-future.pdf delete mode 100644 doc/roadmaps/roadmap-future.tex delete mode 100644 doc/rump-fc04.mgp diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index e4e9bf65ef..0000000000 --- a/AUTHORS +++ /dev/null @@ -1,41 +0,0 @@ - This file lists the authors for Tor, - a free software project to provide anonymity on the Internet. - - For more information about Tor, see https://www.torproject.org/. - - If you got this file as a part of a larger bundle, - there are probably other authors that you should be aware of. - -Main authors: -------------- - -Roger Dingledine overhauled all of the code, did -a bunch of new design work, etc. - -Nick Mathewson wrote lots of stuff too, in -particular the router and descriptor parsing, and the crypto and tls -wrappers. - -Matej Pfajfar wrote the first version of the code -(called OR) in 2001-2002. - -Contributors: -------------- - -John Bashinski contributed the initial rpm spec file. - -Christian Grothoff contributed better daemonizing -behavior. - -Steven Hazel made 'make install' do the right -thing. - -Jason Holt contributed patches to the instructions -and the man page. - -Peter Palfrader maintains everything that's -debian-specific, and has written other useful features. - -Aaron Turner contributed the first version of -the tor.sh initscripts shell script. - diff --git a/ChangeLog b/ChangeLog index 07db64edc1..b676d33433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,6 +25,10 @@ Changes in version 0.2.2.9-alpha - 2010-??-?? - Generate our manpage and HTML documentation using Asciidoc. This should make it easier to maintain the documentation, and produce nicer HTML. + - Removed some unnecessary files from the source distribution. The + AUTHORS file had its content merged into the people page on the + website. The roadmaps and design doc can now be found in the + projects directory in svn. o Removed features: - Stop shipping parts of the website and the design paper in the diff --git a/contrib/privoxy-tor-toggle b/contrib/privoxy-tor-toggle deleted file mode 100644 index 8f9cd51bd9..0000000000 --- a/contrib/privoxy-tor-toggle +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# A script to turn Tor SOCKS4a in Privoxy on or off. - -CONFFILE=/etc/privoxy/config # privoxy config file. -TOR_REG="forward.*localhost:9050" # Regular expression to find Tor in privoxy -PRIVOXY="/etc/init.d/privoxy restart" # command to reload privoxy config file. -SED="/bin/sed" # sed command, of course. -GREP="/bin/grep" # grep command. - -usage () { -echo "\ -privoxy-tor-toggle: Change Privoxy's configuration to use/not use Tor. -Usage: - privoxy.tor <-- Switch Tor on or off. - privoxy.tor [on|off] <-- Set Tor on or off. - privoxy.tor status <-- Display Tor's current status. - privoxy.tor [-h|--help|-?] <-- Print usage. -" -} - -# Find out the current status of tor. Set $tor_status -get_status () { - gret=`$GREP -l -e "^$TOR_REG" $CONFFILE` - if [ x$gret = x ] ; then - tor_status=off; - else - tor_status=on; - fi - return -} - -# Turn tor on/off according to $1 -set_tor () { - tor_gate=$1 - get_status - if [ $tor_status = $tor_gate ] ; then - echo "Tor is already $1." - return - elif [ $tor_gate = flip ] ; then - if [ $tor_status = on ] ; then - tor_gate=off - elif [ $tor_status = off ] ; then - tor_gate=on - fi - fi - echo "Turning Tor $tor_gate..." - if [ $tor_gate = on ] ; then - reg=s/^#\($TOR_REG\)/\\1/ - $SED -i.bak -r "$reg" $CONFFILE - else - reg=s/^\($TOR_REG\)/#\\1/ - $SED -i.bak -r "$reg" $CONFFILE - fi - $PRIVOXY - return 0; -} - -if [ x$1 = x ] ; then - set_tor flip -elif [ $1 = on ] ; then - set_tor on -elif [ $1 = off ] ; then - set_tor off -elif [ $1 = status ] ; then - get_status - echo "Tor is $tor_status" -elif [ $1 = --help ] || [ $1 = -h ] || [ $1 = "-?" ] ; then - usage - exit 0 -else - echo "Unrecognized option: \"$1\"" -fi - diff --git a/contrib/proxy-some-domains b/contrib/proxy-some-domains deleted file mode 100644 index eb238a2feb..0000000000 --- a/contrib/proxy-some-domains +++ /dev/null @@ -1,52 +0,0 @@ -Subject: -Re: Anonymous/Nonymous Communication Coexisting? -From: -Kristian Köhntopp -Date: -Fri, 10 Jun 2005 08:56:19 +0200 -To: -or-talk@freehaven.net - -On Wednesday 08 June 2005 04:20, yancm@sdf.lonestar.org wrote: - ->> Is it possible to have a single application, such as a web ->> browser or a p2p client behave normally with normal url's but ->> use tor if the url is an xyz.onion address? Or is it ->> everything or nothing? - - -This is basically a question of using your proxy or not. You can -control the behaviour of your browser in great detail writing a -proxy.pac program in Javascript and setting that program as the -proxy autoconfiguration URL in your browser. - -An example: - -kris@jordan01:~> cat /srv/www/htdocs/proxy.pac - -function FindProxyForURL(url, host) -{ - var proxy_yes = "PROXY jordan01.int.cinetic.de:3128"; - var proxy_no = "DIRECT"; - - // Redirect all accesses to mlan hosts to the mlan proxy - if (dnsDomainIs(host, ".mlan.cinetic.de")) { - return proxy_yes; - } - - // Everything else is direct - return proxy_no; -} - -So here the program checks if the destination is a mlan-Host, and -if so, uses the appropriate proxy on jordan for the access, -while all other accesses are direct. - -You could do a similar thing with .onion accesses with a trivial -modification. - -Docs: -http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html - -Kristian - diff --git a/contrib/tor-0.1.2.17.tar.gz.metalink.in b/contrib/tor-0.1.2.17.tar.gz.metalink.in deleted file mode 100644 index 559748865d..0000000000 --- a/contrib/tor-0.1.2.17.tar.gz.metalink.in +++ /dev/null @@ -1,41 +0,0 @@ - - - - The Tor Project - https://www.torproject.org - - - BSD - http://opensource.org/licenses/bsd-license.php - - Tor - @VERSION@ - 2007 The Tor Project, Inc. - Anonymity Online - - - 1251636 - en - Source - - ef8fc7f45d167875c337063d437c9832 - 01092fb75c407b5c1d7f33db069cf7641973d94d - fc0fb0c2891ae09854a69512c6b4988964f2eaf62ce80ed6644cb21f87f6056a - - c778dd01e05734d57f769082545f9802386e42bb - 39b172ed8b9290884c7bd129db633a79e28d5ae9 - 28d708e7489a1e9951e757443672535aedfa3abe - a7623e07081819a37300de0511bbdda0bdc960bd - f246021e55affe320a1f86eac5b049dd0caad828 - - - - http://tor.cypherpunks.at/dist/ - http://tor.depthstrike.com/dist/ - http://tor.hermetix.org/dist/ - http://tor.boinc.ch/dist/ - http://tor.anonymity.cn/dist/ - - - - diff --git a/doc/codecon04.mgp b/doc/codecon04.mgp deleted file mode 100644 index e9815fcb37..0000000000 --- a/doc/codecon04.mgp +++ /dev/null @@ -1,357 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%deffont "standard" xfont "comic sans ms-medium-r" -%%deffont "thick" xfont "arial black-medium-r" -%%deffont "typewriter" xfont "courier new-bold-r" -%%deffont "type2writer" xfont "arial narrow-bold-r" -%%deffont "standard" tfont "standard.ttf", tmfont "kochi-mincho.ttf" -%%deffont "thick" tfont "thick.ttf", tmfont "goth.ttf" -%%deffont "typewriter" tfont "typewriter.ttf", tmfont "goth.ttf" -%deffont "standard" xfont "helvetica-medium-r", tfont "arial.ttf", tmfont "times.ttf" -%deffont "thick" xfont "helvetica-bold-r", tfont "arialbd.ttf", tmfont "hoso6.ttf" -%deffont "italic" xfont "helvetica-italic-r", tfont "ariali.ttf", tmfont "hoso6.ttf" -%deffont "typewriter" xfont "courier-medium-r", tfont "typewriter.ttf", tmfont "hoso6.ttf" -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Default settings per each line numbers. -%% -%default 1 leftfill, size 8, fore "black", back "white", font "thick", hgap 1 -%default 2 size 8, vgap 10, prefix " ", ccolor "black" -%default 3 size 6, bar "gray70", vgap 0 -%default 4 size 6, fore "black", vgap 0, prefix " ", font "standard" -%% -%%default 1 area 90 90, leftfill, size 9, fore "yellow", back "blue", font "thick" -%%default 2 size 9, vgap 10, prefix " " -%%default 3 size 7, bar "gray70", vgap 10 -%%default 4 size 7, vgap 30, prefix " ", font "standard" -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Default settings that are applied to TAB-indented lines. -%% -%tab 1 size 5, vgap 40, prefix " ", icon arc "red" 50 -%tab 2 size 4, vgap 35, prefix " ", icon delta3 "blue" 40 -%tab 3 size 3, vgap 35, prefix " ", icon dia "DarkViolet" 40 -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -%nodefault -%center, size 9, font "thick", back "white", fore "black" - -Tor: -%size 8 -Next-generation Onion Routing - - -%size 7 -Roger Dingledine -Nick Mathewson -Paul Syverson - -The Free Haven Project -%font "typewriter", fore "blue" -http://freehaven.net/ - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Low-latency anonymity system - -%leftfill -Deployed: 20 nodes, hundreds (?) of users - -Many improvements on earlier design - -Free software -- modified BSD license - -Design is not covered by earlier onion routing -patent - -Uses SOCKS to interface with client apps - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -We have working code - -(14 kloc of C) - -and a design document, -and a byte-level specification, -and a Debian package (in Unstable) - -Works on Linux, BSD, OSX, Cygwin, ... -User-space, doesn't need kernel mods or root - -%size 9 -http://freehaven.net/tor/ - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%page -%% -%%Talk Overview -%% -%%A bit about Onion Routing -%% -%%Improvements we've made -%% -%%Some related work -%% -%%Ask me questions -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Anonymity: Who needs it? - -Private citizens - advocacy, counseling, whistleblowing, reporting, ... -%size 6 -Higher-level protocols - voting, e-cash, auctions -%size 6 -Government applications - research, law enforcement -%size 6 -Business applications -%size 5 -(hide relationships and volumes of communication) - Who is visiting job sites? - Which groups are talking to patent lawyers? - Who are your suppliers and customers? - Is the CEO talking to a buyout partner? - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Anonymity is a network effect - - Systems need traffic (many low-sensitivity users) to attract the high-sensitivity users - Most users do not value anonymity much - Weak security (fast system) can mean more users - which can mean -%cont, font "italic" -stronger -%cont, font "standard" -anonymity - High-sensitivity agents have incentive to run nodes - so they can be certain first node in their path is good - to attract traffic for their messages - There can be an optimal level of free-riding - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Onion Routing is... - -An overlay network - -Users build virtual circuits through the network - -One layer of encryption at each hop - -Fixed-size cells - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Tor's goals - -Conservative design - minimize new design work needed - -%size 6 -Support testing of future research - -Design for deployment; deploy for use - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Threat model -- what we aim for - -Protect against somebody watching Alice - -Protect against curious Bob - -Protect against `some' curious nodes in the middle - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Differences / limitations - - -We're TCP-only, not all IP (but we're user-space and very portable) - -Not as strong as high-latency systems (Mixmaster, Mixminion) - -Not peer-to-peer - -No protocol normalization - -Not unobservable (no steg, etc) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Perfect forward secrecy - - -Telescoping circuit - - negotiates keys at each hop - no more need for replay detection - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -No mixing, padding, traffic shaping (yet) - - -Please show us they're worth the usability tradeoff - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%page -%% -%%Many TCP streams can share one circuit -%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Many TCP streams share a circuit - -Previous designs built a new circuit for each stream - - lots of public key ops per request - plus anonymity dangers from making so many circuits - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Leaky-pipe circuit topology - -Alice can direct cells to any node in her circuit - - So we can support long-range padding, - have multiple streams exiting at different places in the circuit - etc - -%size 6 -Unclear whether this is dangerous or useful - -More research needed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Congestion control - - -Simple rate limiting - -Plus have to keep internal nodes from overflowing - -(Can't use global state or inter-node control) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Directory servers - -To solve the `introduction' problem - -Approve new servers - -Tell clients who's up right now - - plus their keys, location, etc - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Variable exit policies - - -Each server allows different outgoing connections - -E.g. no servers allow outgoing mail currently - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -End-to-end integrity checking - - -In previous onion routing, an insider could change -the text being transmitted: - -"dir" => "rm *" - -Even an external adversary could do this! - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Rendezvous points - -allow hidden services - -don't need (brittle) reply onions - - Access-controlled: Bob can control who he talks to - Robust: Bob's service is available even when some Tor nodes go down - Smear-resistant: Evil service can't frame a rendezvous router - Application-transparent: Don't need to modify Bob's apache - -%size 6 -(Not implemented yet) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -How do we compare security? - -Assume adversary owns c of n nodes - can choose which -%size 6 -What's the chance for a random Alice and Bob that he wins? - -Freedom, Tor: (c/n)^2 -Peekabooty, six-four, etc: c/n -Jap (if no padding): 1 if c>1 -Anonymizer: 1 if c>0 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Future work - -Threshold directory agreement - -Scalability: Morphmix/p2p extensions? -Restricted-route (non-clique topology) - -Non-TCP transport - -Implement rendezvous points - -Make it work better - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -We have working code - -Plus a design document, -and a byte-level specification -and a Debian package (in Unstable) - -%size 9 -http://freehaven.net/tor/ - -%size 6 -Privacy Enhancing Technologies workshop - -%size 9 -http://petworkshop.org/ - diff --git a/doc/design-paper/Makefile b/doc/design-paper/Makefile deleted file mode 100644 index 3fdbbec131..0000000000 --- a/doc/design-paper/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -cell-struct.eps: cell-struct.fig - fig2dev -L eps $< $@ -interaction.eps: interaction.fig - fig2dev -L eps $< $@ -cell-struct.pdf: cell-struct.fig - fig2dev -L pdf $< $@ -interaction.pdf: interaction.fig - fig2dev -L pdf $< $@ - -tor-design.ps: cell-struct.eps interaction.eps tor-design.bib tor-design.tex usenix.sty latex8.bst - latex tor-design.tex - bibtex tor-design - latex tor-design.tex - latex tor-design.tex - dvips -o $@ tor-design.dvi - -tor-design.pdf: cell-struct.pdf interaction.pdf tor-design.bib tor-design.tex usenix.sty latex8.bst - pdflatex tor-design.tex - bibtex tor-design - pdflatex tor-design.tex - pdflatex tor-design.tex \ No newline at end of file diff --git a/doc/design-paper/blocking.html b/doc/design-paper/blocking.html deleted file mode 100644 index 6028f5dc1c..0000000000 --- a/doc/design-paper/blocking.html +++ /dev/null @@ -1,2112 +0,0 @@ - - - - - - - - - Design of a blocking-resistant anonymity system\DRAFT - -

Design of a blocking-resistant anonymity system
DRAFT

- -
- -

Roger Dingledine, Nick Mathewson

- - -
- -

Abstract

-Internet censorship is on the rise as websites around the world are -increasingly blocked by government-level firewalls. Although popular -anonymizing networks like Tor were originally designed to keep attackers from -tracing people's activities, many people are also using them to evade local -censorship. But if the censor simply denies access to the Tor network -itself, blocked users can no longer benefit from the security Tor offers. - -
-Here we describe a design that builds upon the current Tor network -to provide an anonymizing network that resists blocking -by government-level attackers. - -
- -

-1  Introduction and Goals

- -
-Anonymizing networks like Tor [11] bounce traffic around a -network of encrypting relays. Unlike encryption, which hides only what -is said, these networks also aim to hide who is communicating with whom, which -users are using which websites, and similar relations. These systems have a -broad range of users, including ordinary citizens who want to avoid being -profiled for targeted advertisements, corporations who don't want to reveal -information to their competitors, and law enforcement and government -intelligence agencies who need to do operations on the Internet without being -noticed. - -
-Historical anonymity research has focused on an -attacker who monitors the user (call her Alice) and tries to discover her -activities, yet lets her reach any piece of the network. In more modern -threat models such as Tor's, the adversary is allowed to perform active -attacks such as modifying communications to trick Alice -into revealing her destination, or intercepting some connections -to run a man-in-the-middle attack. But these systems still assume that -Alice can eventually reach the anonymizing network. - -
-An increasing number of users are using the Tor software -less for its anonymity properties than for its censorship -resistance properties — if they use Tor to access Internet sites like -Wikipedia -and Blogspot, they are no longer affected by local censorship -and firewall rules. In fact, an informal user study -showed China as the third largest user base -for Tor clients, with perhaps ten thousand people accessing the Tor -network from China each day. - -
-The current Tor design is easy to block if the attacker controls Alice's -connection to the Tor network — by blocking the directory authorities, -by blocking all the server IP addresses in the directory, or by filtering -based on the fingerprint of the Tor TLS handshake. Here we describe an -extended design that builds upon the current Tor network to provide an -anonymizing -network that resists censorship as well as anonymity-breaking attacks. -In section 2 we discuss our threat model — that is, -the assumptions we make about our adversary. Section 3 -describes the components of the current Tor design and how they can be -leveraged for a new blocking-resistant design. Section 4 -explains the features and drawbacks of the currently deployed solutions. -In sections 5 through 7, we explore the -components of our designs in detail. Section 8 considers -security implications and Section 9 presents other -issues with maintaining connectivity and sustainability for the design. -Section 10 speculates about future more complex designs, -and finally Section 11 summarizes our next steps and -recommendations. - -
- -
- -
- -
-

- -2  Adversary assumptions

- - -
-To design an effective anti-censorship tool, we need a good model for the -goals and resources of the censors we are evading. Otherwise, we risk -spending our effort on keeping the adversaries from doing things they have no -interest in doing, and thwarting techniques they do not use. -The history of blocking-resistance designs is littered with conflicting -assumptions about what adversaries to expect and what problems are -in the critical path to a solution. Here we describe our best -understanding of the current situation around the world. - -
-In the traditional security style, we aim to defeat a strong -attacker — if we can defend against this attacker, we inherit protection -against weaker attackers as well. After all, we want a general design -that will work for citizens of China, Thailand, and other censored -countries; for -whistleblowers in firewalled corporate networks; and for people in -unanticipated oppressive situations. In fact, by designing with -a variety of adversaries in mind, we can take advantage of the fact that -adversaries will be in different stages of the arms race at each location, -so a server blocked in one locale can still be useful in others. - -
-We assume that the attackers' goals are somewhat complex. - -
- -
-
  • The attacker would like to restrict the flow of certain kinds of - information, particularly when this information is seen as embarrassing to - those in power (such as information about rights violations or corruption), - or when it enables or encourages others to oppose them effectively (such as - information about opposition movements or sites that are used to organize - protests).
  • -
    -
  • As a second-order effect, censors aim to chill citizens' behavior by - creating an impression that their online activities are monitored.
  • -
    -
  • In some cases, censors make a token attempt to block a few sites for - obscenity, blasphemy, and so on, but their efforts here are mainly for - show. In other cases, they really do try hard to block such content.
  • -
    -
  • Complete blocking (where nobody at all can ever download censored - content) is not a - goal. Attackers typically recognize that perfect censorship is not only - impossible, but unnecessary: if "undesirable" information is known only - to a small few, further censoring efforts can be focused elsewhere.
  • -
    -
  • Similarly, the censors are not attempting to shut down or block - every anti-censorship tool — merely the tools that are popular and - effective (because these tools impede the censors' information restriction - goals) and those tools that are highly visible (thus making the censors - look ineffectual to their citizens and their bosses).
  • -
    -
  • Reprisal against most passive consumers of most kinds of - blocked information is also not a goal, given the broadness of most - censorship regimes. This seems borne out by fact.1
  • -
    -
  • Producers and distributors of targeted information are in much - greater danger than consumers; the attacker would like to not only block - their work, but identify them for reprisal.
  • -
    -
  • The censors (or their governments) would like to have a working, useful - Internet. There are economic, political, and social factors that prevent - them from "censoring" the Internet by outlawing it entirely, or by - blocking access to all but a tiny list of sites. - Nevertheless, the censors are willing to block innocuous content - (like the bulk of a newspaper's reporting) in order to censor other content - distributed through the same channels (like that newspaper's coverage of - the censored country). -
  • -
    - -
    -We assume there are three main technical network attacks in use by censors -currently [7]: - -
    - -
    - -
    -
  • Block a destination or type of traffic by automatically searching for - certain strings or patterns in TCP packets. Offending packets can be - dropped, or can trigger a response like closing the - connection.
  • -
    -
  • Block a destination by listing its IP address at a - firewall or other routing control point.
  • -
    -
  • Intercept DNS requests and give bogus responses for certain - destination hostnames. -
  • -
    - -
    -We assume the network firewall has limited CPU and memory per -connection [7]. Against an adversary who could carefully -examine the contents of every packet and correlate the packets in every -stream on the network, we would need some stronger mechanism such as -steganography, which introduces its own -problems [15,26]. But we make a "weak -steganography" assumption here: to remain unblocked, it is necessary to -remain unobservable only by computational resources on par with a modern -router, firewall, proxy, or IDS. - -
    -We assume that while various different regimes can coordinate and share -notes, there will be a time lag between one attacker learning how to overcome -a facet of our design and other attackers picking it up. (The most common -vector of transmission seems to be commercial providers of censorship tools: -once a provider adds a feature to meet one country's needs or requests, the -feature is available to all of the provider's customers.) Conversely, we -assume that insider attacks become a higher risk only after the early stages -of network development, once the system has reached a certain level of -success and visibility. - -
    -We do not assume that government-level attackers are always uniform -across the country. For example, users of different ISPs in China -experience different censorship policies and mechanisms. - -
    -We assume that the attacker may be able to use political and economic -resources to secure the cooperation of extraterritorial or multinational -corporations and entities in investigating information sources. -For example, the censors can threaten the service providers of -troublesome blogs with economic reprisals if they do not reveal the -authors' identities. - -
    -We assume that our users have control over their hardware and -software — they don't have any spyware installed, there are no -cameras watching their screens, etc. Unfortunately, in many situations -these threats are real [28]; yet -software-based security systems like ours are poorly equipped to handle -a user who is entirely observed and controlled by the adversary. See -Section 8.4 for more discussion of what little -we can do about this issue. - -
    -Similarly, we assume that the user will be able to fetch a genuine -version of Tor, rather than one supplied by the adversary; see -Section 8.5 for discussion on helping the user -confirm that he has a genuine version and that he can connect to the -real Tor network. - -
    -

    - -3  Adapting the current Tor design to anti-censorship

    - - -
    -Tor is popular and sees a lot of use — it's the largest anonymity -network of its kind, and has -attracted more than 800 volunteer-operated routers from around the -world. Tor protects each user by routing their traffic through a multiply -encrypted "circuit" built of a few randomly selected servers, each of which -can remove only a single layer of encryption. Each server sees only the step -before it and the step after it in the circuit, and so no single server can -learn the connection between a user and her chosen communication partners. -In this section, we examine some of the reasons why Tor has become popular, -with particular emphasis to how we can take advantage of these properties -for a blocking-resistance design. - -
    -Tor aims to provide three security properties: - -
    - -
    -
    1. A local network attacker can't learn, or influence, your -destination.
    -
    -
    2. No single router in the Tor network can link you to your -destination.
    -
    -
    3. The destination, or somebody watching the destination, -can't learn your location. -
    -
    - -
    -For blocking-resistance, we care most clearly about the first -property. But as the arms race progresses, the second property -will become important — for example, to discourage an adversary -from volunteering a relay in order to learn that Alice is reading -or posting to certain websites. The third property helps keep users safe from -collaborating websites: consider websites and other Internet services -that have been pressured -recently into revealing the identity of bloggers -or treating clients differently depending on their network -location [17]. - -
    -The Tor design provides other features as well that are not typically -present in manual or ad hoc circumvention techniques. - -
    -First, Tor has a well-analyzed and well-understood way to distribute -information about servers. -Tor directory authorities automatically aggregate, test, -and publish signed summaries of the available Tor routers. Tor clients -can fetch these summaries to learn which routers are available and -which routers are suitable for their needs. Directory information is cached -throughout the Tor network, so once clients have bootstrapped they never -need to interact with the authorities directly. (To tolerate a minority -of compromised directory authorities, we use a threshold trust scheme — -see Section 8.5 for details.) - -
    -Second, the list of directory authorities is not hard-wired. -Clients use the default authorities if no others are specified, -but it's easy to start a separate (or even overlapping) Tor network just -by running a different set of authorities and convincing users to prefer -a modified client. For example, we could launch a distinct Tor network -inside China; some users could even use an aggregate network made up of -both the main network and the China network. (But we should not be too -quick to create other Tor networks — part of Tor's anonymity comes from -users behaving like other users, and there are many unsolved anonymity -questions if different users know about different pieces of the network.) - -
    -Third, in addition to automatically learning from the chosen directories -which Tor routers are available and working, Tor takes care of building -paths through the network and rebuilding them as needed. So the user -never has to know how paths are chosen, never has to manually pick -working proxies, and so on. More generally, at its core the Tor protocol -is simply a tool that can build paths given a set of routers. Tor is -quite flexible about how it learns about the routers and how it chooses -the paths. Harvard's Blossom project [16] makes this -flexibility more concrete: Blossom makes use of Tor not for its security -properties but for its reachability properties. It runs a separate set -of directory authorities, its own set of Tor routers (called the Blossom -network), and uses Tor's flexible path-building to let users view Internet -resources from any point in the Blossom network. - -
    -Fourth, Tor separates the role of internal relay from the -role of exit relay. That is, some volunteers choose just to relay -traffic between Tor users and Tor routers, and others choose to also allow -connections to external Internet resources. Because we don't force all -volunteers to play both roles, we end up with more relays. This increased -diversity in turn is what gives Tor its security: the more options the -user has for her first hop, and the more options she has for her last hop, -the less likely it is that a given attacker will be watching both ends -of her circuit [11]. As a bonus, because our design attracts -more internal relays that want to help out but don't want to deal with -being an exit relay, we end up providing more options for the first -hop — the one most critical to being able to reach the Tor network. - -
    -Fifth, Tor is sustainable. Zero-Knowledge Systems offered the commercial -but now defunct Freedom Network [2], a design with -security comparable to Tor's, but its funding model relied on collecting -money from users to pay relay operators. Modern commercial proxy systems -similarly -need to keep collecting money to support their infrastructure. On the -other hand, Tor has built a self-sustaining community of volunteers who -donate their time and resources. This community trust is rooted in Tor's -open design: we tell the world exactly how Tor works, and we provide all -the source code. Users can decide for themselves, or pay any security -expert to decide, whether it is safe to use. Further, Tor's modularity -as described above, along with its open license, mean that its impact -will continue to grow. - -
    -Sixth, Tor has an established user base of hundreds of -thousands of people from around the world. This diversity of -users contributes to sustainability as above: Tor is used by -ordinary citizens, activists, corporations, law enforcement, and -even government and military users, -and they can -only achieve their security goals by blending together in the same -network [1,9]. This user base also provides -something else: hundreds of thousands of different and often-changing -addresses that we can leverage for our blocking-resistance design. - -
    -Finally and perhaps most importantly, Tor provides anonymity and prevents any -single server from linking users to their communication partners. Despite -initial appearances, distributed-trust anonymity is critical for -anti-censorship efforts. If any single server can expose dissident bloggers -or compile a list of users' behavior, the censors can profitably compromise -that server's operator, perhaps by applying economic pressure to their -employers, -breaking into their computer, pressuring their family (if they have relatives -in the censored area), or so on. Furthermore, in designs where any relay can -expose its users, the censors can spread suspicion that they are running some -of the relays and use this belief to chill use of the network. - -
    -We discuss and adapt these components further in -Section 5. But first we examine the strengths and -weaknesses of other blocking-resistance approaches, so we can expand -our repertoire of building blocks and ideas. - -
    -

    - -4  Current proxy solutions

    - - -
    -Relay-based blocking-resistance schemes generally have two main -components: a relay component and a discovery component. The relay part -encompasses the process of establishing a connection, sending traffic -back and forth, and so on — everything that's done once the user knows -where she's going to connect. Discovery is the step before that: the -process of finding one or more usable relays. - -
    -For example, we can divide the pieces of Tor in the previous section -into the process of building paths and sending -traffic over them (relay) and the process of learning from the directory -servers about what routers are available (discovery). With this distinction -in mind, we now examine several categories of relay-based schemes. - -
    -

    -4.1  Centrally-controlled shared proxies

    - -
    -Existing commercial anonymity solutions (like Anonymizer.com) are based -on a set of single-hop proxies. In these systems, each user connects to -a single proxy, which then relays traffic between the user and her -destination. These public proxy -systems are typically characterized by two features: they control and -operate the proxies centrally, and many different users get assigned -to each proxy. - -
    -In terms of the relay component, single proxies provide weak security -compared to systems that distribute trust over multiple relays, since a -compromised proxy can trivially observe all of its users' actions, and -an eavesdropper only needs to watch a single proxy to perform timing -correlation attacks against all its users' traffic and thus learn where -everyone is connecting. Worse, all users -need to trust the proxy company to have good security itself as well as -to not reveal user activities. - -
    -On the other hand, single-hop proxies are easier to deploy, and they -can provide better performance than distributed-trust designs like Tor, -since traffic only goes through one relay. They're also more convenient -from the user's perspective — since users entirely trust the proxy, -they can just use their web browser directly. - -
    -Whether public proxy schemes are more or less scalable than Tor is -still up for debate: commercial anonymity systems can use some of their -revenue to provision more bandwidth as they grow, whereas volunteer-based -anonymity systems can attract thousands of fast relays to spread the load. - -
    -The discovery piece can take several forms. Most commercial anonymous -proxies have one or a handful of commonly known websites, and their users -log in to those websites and relay their traffic through them. When -these websites get blocked (generally soon after the company becomes -popular), if the company cares about users in the blocked areas, they -start renting lots of disparate IP addresses and rotating through them -as they get blocked. They notify their users of new addresses (by email, -for example). It's an arms race, since attackers can sign up to receive the -email too, but operators have one nice trick available to them: because they -have a list of paying subscribers, they can notify certain subscribers -about updates earlier than others. - -
    -Access control systems on the proxy let them provide service only to -users with certain characteristics, such as paying customers or people -from certain IP address ranges. - -
    -Discovery in the face of a government-level firewall is a complex and -unsolved -topic, and we're stuck in this same arms race ourselves; we explore it -in more detail in Section 7. But first we examine the -other end of the spectrum — getting volunteers to run the proxies, -and telling only a few people about each proxy. - -
    -

    -4.2  Independent personal proxies

    - -
    -Personal proxies such as Circumventor [18] and -CGIProxy [23] use the same technology as the public ones as -far as the relay component goes, but they use a different strategy for -discovery. Rather than managing a few centralized proxies and constantly -getting new addresses for them as the old addresses are blocked, they -aim to have a large number of entirely independent proxies, each managing -its own (much smaller) set of users. - -
    -As the Circumventor site explains, "You don't -actually install the Circumventor on the computer that is blocked -from accessing Web sites. You, or a friend of yours, has to install the -Circumventor on some other machine which is not censored." - -
    -This tactic has great advantages in terms of blocking-resistance — recall -our assumption in Section 2 that the attention -a system attracts from the attacker is proportional to its number of -users and level of publicity. If each proxy only has a few users, and -there is no central list of proxies, most of them will never get noticed by -the censors. - -
    -On the other hand, there's a huge scalability question that so far has -prevented these schemes from being widely useful: how does the fellow -in China find a person in Ohio who will run a Circumventor for him? In -some cases he may know and trust some people on the outside, but in many -cases he's just out of luck. Just as hard, how does a new volunteer in -Ohio find a person in China who needs it? - -
    - -
    -This challenge leads to a hybrid design-centrally — distributed -personal proxies — which we will investigate in more detail in -Section 7. - -
    -

    -4.3  Open proxies

    - -
    -Yet another currently used approach to bypassing firewalls is to locate -open and misconfigured proxies on the Internet. A quick Google search -for "open proxy list" yields a wide variety of freely available lists -of HTTP, HTTPS, and SOCKS proxies. Many small companies have sprung up -providing more refined lists to paying customers. - -
    -There are some downsides to using these open proxies though. First, -the proxies are of widely varying quality in terms of bandwidth and -stability, and many of them are entirely unreachable. Second, unlike -networks of volunteers like Tor, the legality of routing traffic through -these proxies is questionable: it's widely believed that most of them -don't realize what they're offering, and probably wouldn't allow it if -they realized. Third, in many cases the connection to the proxy is -unencrypted, so firewalls that filter based on keywords in IP packets -will not be hindered. Fourth, in many countries (including China), the -firewall authorities hunt for open proxies as well, to preemptively -block them. And last, many users are suspicious that some -open proxies are a little too convenient: are they run by the -adversary, in which case they get to monitor all the user's requests -just as single-hop proxies can? - -
    -A distributed-trust design like Tor resolves each of these issues for -the relay component, but a constantly changing set of thousands of open -relays is clearly a useful idea for a discovery component. For example, -users might be able to make use of these proxies to bootstrap their -first introduction into the Tor network. - -
    -

    -4.4  Blocking resistance and JAP

    - -
    -Köpsell and Hilling's Blocking Resistance -design [20] is probably -the closest related work, and is the starting point for the design in this -paper. In this design, the JAP anonymity system [3] is used -as a base instead of Tor. Volunteers operate a large number of access -points that relay traffic to the core JAP -network, which in turn anonymizes users' traffic. The software to run these -relays is, as in our design, included in the JAP client software and enabled -only when the user decides to enable it. Discovery is handled with a -CAPTCHA-based mechanism; users prove that they aren't an automated process, -and are given the address of an access point. (The problem of a determined -attacker with enough manpower to launch many requests and enumerate all the -access points is not considered in depth.) There is also some suggestion -that information about access points could spread through existing social -networks. - -
    -

    -4.5  Infranet

    - -
    -The Infranet design [14] uses one-hop relays to deliver web -content, but disguises its communications as ordinary HTTP traffic. Requests -are split into multiple requests for URLs on the relay, which then encodes -its responses in the content it returns. The relay needs to be an actual -website with plausible content and a number of URLs which the user might want -to access — if the Infranet software produced its own cover content, it would -be far easier for censors to identify. To keep the censors from noticing -that cover content changes depending on what data is embedded, Infranet needs -the cover content to have an innocuous reason for changing frequently: the -paper recommends watermarked images and webcams. - -
    -The attacker and relay operators in Infranet's threat model are significantly -different than in ours. Unlike our attacker, Infranet's censor can't be -bypassed with encrypted traffic (presumably because the censor blocks -encrypted traffic, or at least considers it suspicious), and has more -computational resources to devote to each connection than ours (so it can -notice subtle patterns over time). Unlike our bridge operators, Infranet's -operators (and users) have more bandwidth to spare; the overhead in typical -steganography schemes is far higher than Tor's. - -
    -The Infranet design does not include a discovery element. Discovery, -however, is a critical point: if whatever mechanism allows users to learn -about relays also allows the censor to do so, he can trivially discover and -block their addresses, even if the steganography would prevent mere traffic -observation from revealing the relays' addresses. - -
    -

    -4.6  RST-evasion and other packet-level tricks

    - -
    -In their analysis of China's firewall's content-based blocking, Clayton, -Murdoch and Watson discovered that rather than blocking all packets in a TCP -streams once a forbidden word was noticed, the firewall was simply forging -RST packets to make the communicating parties believe that the connection was -closed [7]. They proposed altering operating systems -to ignore forged RST packets. This approach might work in some cases, but -in practice it appears that many firewalls start filtering by IP address -once a sufficient number of RST packets have been sent. - -
    -Other packet-level responses to filtering include splitting -sensitive words across multiple TCP packets, so that the censors' -firewalls can't notice them without performing expensive stream -reconstruction [27]. This technique relies on the -same insight as our weak steganography assumption. - -
    -

    -4.7  Internal caching networks

    - -
    -Freenet [6] is an anonymous peer-to-peer data store. -Analyzing Freenet's security can be difficult, as its design is in flux as -new discovery and routing mechanisms are proposed, and no complete -specification has (to our knowledge) been written. Freenet servers relay -requests for specific content (indexed by a digest of the content) -"toward" the server that hosts it, and then cache the content as it -follows the same path back to -the requesting user. If Freenet's routing mechanism is successful in -allowing nodes to learn about each other and route correctly even as some -node-to-node links are blocked by firewalls, then users inside censored areas -can ask a local Freenet server for a piece of content, and get an answer -without having to connect out of the country at all. Of course, operators of -servers inside the censored area can still be targeted, and the addresses of -external servers can still be blocked. - -
    -

    -4.8  Skype

    - -
    -The popular Skype voice-over-IP software uses multiple techniques to tolerate -restrictive networks, some of which allow it to continue operating in the -presence of censorship. By switching ports and using encryption, Skype -attempts to resist trivial blocking and content filtering. Even if no -encryption were used, it would still be expensive to scan all voice -traffic for sensitive words. Also, most current keyloggers are unable to -store voice traffic. Nevertheless, Skype can still be blocked, especially at -its central login server. - -
    -

    -4.9  Tor itself

    - -
    -And last, we include Tor itself in the list of current solutions -to firewalls. Tens of thousands of people use Tor from countries that -routinely filter their Internet. Tor's website has been blocked in most -of them. But why hasn't the Tor network been blocked yet? - -
    -We have several theories. The first is the most straightforward: tens of -thousands of people are simply too few to matter. It may help that Tor is -perceived to be for experts only, and thus not worth attention yet. The -more subtle variant on this theory is that we've positioned Tor in the -public eye as a tool for retaining civil liberties in more free countries, -so perhaps blocking authorities don't view it as a threat. (We revisit -this idea when we consider whether and how to publicize a Tor variant -that improves blocking-resistance — see Section 9.5 -for more discussion.) - -
    -The broader explanation is that the maintenance of most government-level -filters is aimed at stopping widespread information flow and appearing to be -in control, not by the impossible goal of blocking all possible ways to bypass -censorship. Censors realize that there will always -be ways for a few people to get around the firewall, and as long as Tor -has not publically threatened their control, they see no urgent need to -block it yet. - -
    -We should recognize that we're already in the arms race. These -constraints can give us insight into the priorities and capabilities of -our various attackers. - -
    -

    - -5  The relay component of our blocking-resistant design

    - - -
    -Section 3 describes many reasons why Tor is -well-suited as a building block in our context, but several changes will -allow the design to resist blocking better. The most critical changes are -to get more relay addresses, and to distribute them to users differently. - -
    - -
    - -
    -

    -5.1  Bridge relays

    - -
    -Today, Tor servers operate on less than a thousand distinct IP addresses; -an adversary -could enumerate and block them all with little trouble. To provide a -means of ingress to the network, we need a larger set of entry points, most -of which an adversary won't be able to enumerate easily. Fortunately, we -have such a set: the Tor users. - -
    -Hundreds of thousands of people around the world use Tor. We can leverage -our already self-selected user base to produce a list of thousands of -frequently-changing IP addresses. Specifically, we can give them a little -button in the GUI that says "Tor for Freedom", and users who click -the button will turn into bridge relays (or just bridges -for short). They can rate limit relayed connections to 10 KB/s (almost -nothing for a broadband user in a free country, but plenty for a user -who otherwise has no access at all), and since they are just relaying -bytes back and forth between blocked users and the main Tor network, they -won't need to make any external connections to Internet sites. Because -of this separation of roles, and because we're making use of software -that the volunteers have already installed for their own use, we expect -our scheme to attract and maintain more volunteers than previous schemes. - -
    -As usual, there are new anonymity and security implications from running a -bridge relay, particularly from letting people relay traffic through your -Tor client; but we leave this discussion for Section 8. - -
    - -
    -

    -5.2  The bridge directory authority

    - -
    -How do the bridge relays advertise their existence to the world? We -introduce a second new component of the design: a specialized directory -authority that aggregates and tracks bridges. Bridge relays periodically -publish server descriptors (summaries of their keys, locations, etc, -signed by their long-term identity key), just like the relays in the -"main" Tor network, but in this case they publish them only to the -bridge directory authorities. - -
    -The main difference between bridge authorities and the directory -authorities for the main Tor network is that the main authorities provide -a list of every known relay, but the bridge authorities only give -out a server descriptor if you already know its identity key. That is, -you can keep up-to-date on a bridge's location and other information -once you know about it, but you can't just grab a list of all the bridges. - -
    -The identity key, IP address, and directory port for each bridge -authority ship by default with the Tor software, so the bridge relays -can be confident they're publishing to the right location, and the -blocked users can establish an encrypted authenticated channel. See -Section 8.5 for more discussion of the public key -infrastructure and trust chain. - -
    -Bridges use Tor to publish their descriptors privately and securely, -so even an attacker monitoring the bridge directory authority's network -can't make a list of all the addresses contacting the authority. -Bridges may publish to only a subset of the -authorities, to limit the potential impact of an authority compromise. - -
    - -
    -

    - -5.3  Putting them together

    - - -
    -If a blocked user knows the identity keys of a set of bridge relays, and -he has correct address information for at least one of them, he can use -that one to make a secure connection to the bridge authority and update -his knowledge about the other bridge relays. He can also use it to make -secure connections to the main Tor network and directory servers, so he -can build circuits and connect to the rest of the Internet. All of these -updates happen in the background: from the blocked user's perspective, -he just accesses the Internet via his Tor client like always. - -
    -So now we've reduced the problem from how to circumvent the firewall -for all transactions (and how to know that the pages you get have not -been modified by the local attacker) to how to learn about a working -bridge relay. - -
    -There's another catch though. We need to make sure that the network -traffic we generate by simply connecting to a bridge relay doesn't stand -out too much. - -
    - -
    - -
    -

    - - -6  Hiding Tor's network fingerprint

    - - - -
    -Currently, Tor uses two protocols for its network communications. The -main protocol uses TLS for encrypted and authenticated communication -between Tor instances. The second protocol is standard HTTP, used for -fetching directory information. All Tor servers listen on their "ORPort" -for TLS connections, and some of them opt to listen on their "DirPort" -as well, to serve directory information. Tor servers choose whatever port -numbers they like; the server descriptor they publish to the directory -tells users where to connect. - -
    -One format for communicating address information about a bridge relay is -its IP address and DirPort. From there, the user can ask the bridge's -directory cache for an up-to-date copy of its server descriptor, and -learn its current circuit keys, its ORPort, and so on. - -
    -However, connecting directly to the directory cache involves a plaintext -HTTP request. A censor could create a network fingerprint (known as a -signature in the intrusion detection field) for the request -and/or its response, thus preventing these connections. To resolve this -vulnerability, we've modified the Tor protocol so that users can connect -to the directory cache via the main Tor port — they establish a TLS -connection with the bridge as normal, and then send a special "begindir" -relay command to establish an internal connection to its directory cache. - -
    -Therefore a better way to summarize a bridge's address is by its IP -address and ORPort, so all communications between the client and the -bridge will use ordinary TLS. But there are other details that need -more investigation. - -
    -What port should bridges pick for their ORPort? We currently recommend -that they listen on port 443 (the default HTTPS port) if they want to -be most useful, because clients behind standard firewalls will have -the best chance to reach them. Is this the best choice in all cases, -or should we encourage some fraction of them pick random ports, or other -ports commonly permitted through firewalls like 53 (DNS) or 110 -(POP)? Or perhaps we should use other ports where TLS traffic is -expected, like 993 (IMAPS) or 995 (POP3S). We need more research on our -potential users, and their current and anticipated firewall restrictions. - -
    -Furthermore, we need to look at the specifics of Tor's TLS handshake. -Right now Tor uses some predictable strings in its TLS handshakes. For -example, it sets the X.509 organizationName field to "Tor", and it puts -the Tor server's nickname in the certificate's commonName field. We -should tweak the handshake protocol so it doesn't rely on any unusual details -in the certificate, yet it remains secure; the certificate itself -should be made to resemble an ordinary HTTPS certificate. We should also try -to make our advertised cipher-suites closer to what an ordinary web server -would support. - -
    -Tor's TLS handshake uses two-certificate chains: one certificate -contains the self-signed identity key for -the router, and the second contains a current TLS key, signed by the -identity key. We use these to authenticate that we're talking to the right -router, and to limit the impact of TLS-key exposure. Most (though far from -all) consumer-oriented HTTPS services provide only a single certificate. -These extra certificates may help identify Tor's TLS handshake; instead, -bridges should consider using only a single TLS key certificate signed by -their identity key, and providing the full value of the identity key in an -early handshake cell. More significantly, Tor currently has all clients -present certificates, so that clients are harder to distinguish from servers. -But in a blocking-resistance environment, clients should not present -certificates at all. - -
    -Last, what if the adversary starts observing the network traffic even -more closely? Even if our TLS handshake looks innocent, our traffic timing -and volume still look different than a user making a secure web connection -to his bank. The same techniques used in the growing trend to build tools -to recognize encrypted Bittorrent traffic -could be used to identify Tor communication and recognize bridge -relays. Rather than trying to look like encrypted web traffic, we may be -better off trying to blend with some other encrypted network protocol. The -first step is to compare typical network behavior for a Tor client to -typical network behavior for various other protocols. This statistical -cat-and-mouse game is made more complex by the fact that Tor transports a -variety of protocols, and we'll want to automatically handle web browsing -differently from, say, instant messaging. - -
    - -
    -

    - -6.1  Identity keys as part of addressing information

    - - -
    -We have described a way for the blocked user to bootstrap into the -network once he knows the IP address and ORPort of a bridge. What about -local spoofing attacks? That is, since we never learned an identity -key fingerprint for the bridge, a local attacker could intercept our -connection and pretend to be the bridge we had in mind. It turns out -that giving false information isn't that bad — since the Tor client -ships with trusted keys for the bridge directory authority and the Tor -network directory authorities, the user can learn whether he's being -given a real connection to the bridge authorities or not. (After all, -if the adversary intercepts every connection the user makes and gives -him a bad connection each time, there's nothing we can do.) - -
    -What about anonymity-breaking attacks from observing traffic, if the -blocked user doesn't start out knowing the identity key of his intended -bridge? The vulnerabilities aren't so bad in this case either — the -adversary could do similar attacks just by monitoring the network -traffic. - -
    -Once the Tor client has fetched the bridge's server descriptor, it should -remember the identity key fingerprint for that bridge relay. Thus if -the bridge relay moves to a new IP address, the client can query the -bridge directory authority to look up a fresh server descriptor using -this fingerprint. - -
    -So we've shown that it's possible to bootstrap into the network -just by learning the IP address and ORPort of a bridge, but are there -situations where it's more convenient or more secure to learn the bridge's -identity fingerprint as well as instead, while bootstrapping? We keep -that question in mind as we next investigate bootstrapping and discovery. - -
    -

    - -7  Discovering working bridge relays

    - - -
    -Tor's modular design means that we can develop a better relay component -independently of developing the discovery component. This modularity's -great promise is that we can pick any discovery approach we like; but the -unfortunate fact is that we have no magic bullet for discovery. We're -in the same arms race as all the other designs we described in -Section 4. - -
    -In this section we describe a variety of approaches to adding discovery -components for our design. - -
    -

    - -7.1  Bootstrapping: finding your first bridge.

    - - -
    -In Section 5.3, we showed that a user who knows -a working bridge address can use it to reach the bridge authority and -to stay connected to the Tor network. But how do new users reach the -bridge authority in the first place? After all, the bridge authority -will be one of the first addresses that a censor blocks. - -
    -First, we should recognize that most government firewalls are not -perfect. That is, they may allow connections to Google cache or some -open proxy servers, or they let file-sharing traffic, Skype, instant -messaging, or World-of-Warcraft connections through. Different users will -have different mechanisms for bypassing the firewall initially. Second, -we should remember that most people don't operate in a vacuum; users will -hopefully know other people who are in other situations or have other -resources available. In the rest of this section we develop a toolkit -of different options and mechanisms, so that we can enable users in a -diverse set of contexts to bootstrap into the system. - -
    -(For users who can't use any of these techniques, hopefully they know -a friend who can — for example, perhaps the friend already knows some -bridge relay addresses. If they can't get around it at all, then we -can't help them — they should go meet more people or learn more about -the technology running the firewall in their area.) - -
    -By deploying all the schemes in the toolkit at once, we let bridges and -blocked users employ the discovery approach that is most appropriate -for their situation. - -
    -

    -7.2  Independent bridges, no central discovery

    - -
    -The first design is simply to have no centralized discovery component at -all. Volunteers run bridges, and we assume they have some blocked users -in mind and communicate their address information to them out-of-band -(for example, through Gmail). This design allows for small personal -bridges that have only one or a handful of users in mind, but it can -also support an entire community of users. For example, Citizen Lab's -upcoming Psiphon single-hop proxy tool [13] plans to use this -social network approach as its discovery component. - -
    -There are several ways to do bootstrapping in this design. In the simple -case, the operator of the bridge informs each chosen user about his -bridge's address information and/or keys. A different approach involves -blocked users introducing new blocked users to the bridges they know. -That is, somebody in the blocked area can pass along a bridge's address to -somebody else they trust. This scheme brings in appealing but complex game -theoretic properties: the blocked user making the decision has an incentive -only to delegate to trustworthy people, since an adversary who learns -the bridge's address and filters it makes it unavailable for both of them. -Also, delegating known bridges to members of your social network can be -dangerous: an the adversary who can learn who knows which bridges may -be able to reconstruct the social network. - -
    -Note that a central set of bridge directory authorities can still be -compatible with a decentralized discovery process. That is, how users -first learn about bridges is entirely up to the bridges, but the process -of fetching up-to-date descriptors for them can still proceed as described -in Section 5. Of course, creating a central place that -knows about all the bridges may not be smart, especially if every other -piece of the system is decentralized. Further, if a user only knows -about one bridge and he loses track of it, it may be quite a hassle to -reach the bridge authority. We address these concerns next. - -
    -

    -7.3  Families of bridges, no central discovery

    - -
    -Because the blocked users are running our software too, we have many -opportunities to improve usability or robustness. Our second design builds -on the first by encouraging volunteers to run several bridges at once -(or coordinate with other bridge volunteers), such that some -of the bridges are likely to be available at any given time. - -
    -The blocked user's Tor client would periodically fetch an updated set of -recommended bridges from any of the working bridges. Now the client can -learn new additions to the bridge pool, and can expire abandoned bridges -or bridges that the adversary has blocked, without the user ever needing -to care. To simplify maintenance of the community's bridge pool, each -community could run its own bridge directory authority — reachable via -the available bridges, and also mirrored at each bridge. - -
    -

    -7.4  Public bridges with central discovery

    - -
    -What about people who want to volunteer as bridges but don't know any -suitable blocked users? What about people who are blocked but don't -know anybody on the outside? Here we describe how to make use of these -public bridges in a way that still makes it hard for the attacker -to learn all of them. - -
    -The basic idea is to divide public bridges into a set of pools based on -identity key. Each pool corresponds to a distribution strategy: -an approach to distributing its bridge addresses to users. Each strategy -is designed to exercise a different scarce resource or property of -the user. - -
    -How do we divide bridges between these strategy pools such that they're -evenly distributed and the allocation is hard to influence or predict, -but also in a way that's amenable to creating more strategies later -on without reshuffling all the pools? We assign a given bridge -to a strategy pool by hashing the bridge's identity key along with a -secret that only the bridge authority knows: the first n bits of this -hash dictate the strategy pool number, where n is a parameter that -describes how many strategy pools we want at this point. We choose n=3 -to start, so we divide bridges between 8 pools; but as we later invent -new distribution strategies, we can increment n to split the 8 into -16. Since a bridge can't predict the next bit in its hash, it can't -anticipate which identity key will correspond to a certain new pool -when the pools are split. Further, since the bridge authority doesn't -provide any feedback to the bridge about which strategy pool it's in, -an adversary who signs up bridges with the goal of filling a certain -pool [12] will be hindered. - -
    - -
    -The first distribution strategy (used for the first pool) publishes bridge -addresses in a time-release fashion. The bridge authority divides the -available bridges into partitions, and each partition is deterministically -available only in certain time windows. That is, over the course of a -given time slot (say, an hour), each requester is given a random bridge -from within that partition. When the next time slot arrives, a new set -of bridges from the pool are available for discovery. Thus some bridge -address is always available when a new -user arrives, but to learn about all bridges the attacker needs to fetch -all new addresses at every new time slot. By varying the length of the -time slots, we can make it harder for the attacker to guess when to check -back. We expect these bridges will be the first to be blocked, but they'll -help the system bootstrap until they do get blocked. Further, -remember that we're dealing with different blocking regimes around the -world that will progress at different rates — so this pool will still -be useful to some users even as the arms races progress. - -
    -The second distribution strategy publishes bridge addresses based on the IP -address of the requesting user. Specifically, the bridge authority will -divide the available bridges in the pool into a bunch of partitions -(as in the first distribution scheme), hash the requester's IP address -with a secret of its own (as in the above allocation scheme for creating -pools), and give the requester a random bridge from the appropriate -partition. To raise the bar, we should discard the last octet of the -IP address before inputting it to the hash function, so an attacker -who only controls a single "/24" network only counts as one user. A -large attacker like China will still be able to control many addresses, -but the hassle of establishing connections from each network (or spoofing -TCP connections) may still slow them down. Similarly, as a special case, -we should treat IP addresses that are Tor exit nodes as all being on -the same network. - -
    -The third strategy combines the time-based and location-based -strategies to further constrain and rate-limit the available bridge -addresses. Specifically, the bridge address provided in a given time -slot to a given network location is deterministic within the partition, -rather than chosen randomly each time from the partition. Thus, repeated -requests during that time slot from a given network are given the same -bridge address as the first request. - -
    -The fourth strategy is based on Circumventor's discovery strategy. -The Circumventor project, realizing that its adoption will remain limited -if it has no central coordination mechanism, has started a mailing list to -distribute new proxy addresses every few days. From experimentation it -seems they have concluded that sending updates every three or four days -is sufficient to stay ahead of the current attackers. - -
    -The fifth strategy provides an alternative approach to a mailing list: -users provide an email address and receive an automated response -listing an available bridge address. We could limit one response per -email address. To further rate limit queries, we could require a CAPTCHA -solution -in each case too. In fact, we wouldn't need to -implement the CAPTCHA on our side: if we only deliver bridge addresses -to Yahoo or GMail addresses, we can leverage the rate-limiting schemes -that other parties already impose for account creation. - -
    -The sixth strategy ties in the social network design with public -bridges and a reputation system. We pick some seeds — trusted people in -blocked areas — and give them each a few dozen bridge addresses and a few -delegation tokens. We run a website next to the bridge authority, -where users can log in (they connect via Tor, and they don't need to -provide actual identities, just persistent pseudonyms). Users can delegate -trust to other people they know by giving them a token, which can be -exchanged for a new account on the website. Accounts in "good standing" -then accrue new bridge addresses and new tokens. As usual, reputation -schemes bring in a host of new complexities [10]: how do we -decide that an account is in good standing? We could tie reputation -to whether the bridges they're told about have been blocked — see -Section 7.7 below for initial thoughts on how to discover -whether bridges have been blocked. We could track reputation between -accounts (if you delegate to somebody who screws up, it impacts you too), -or we could use blinded delegation tokens [5] to prevent -the website from mapping the seeds' social network. We put off deeper -discussion of the social network reputation strategy for future work. - -
    -Pools seven and eight are held in reserve, in case our currently deployed -tricks all fail at once and the adversary blocks all those bridges — so -we can adapt and move to new approaches quickly, and have some bridges -immediately available for the new schemes. New strategies might be based -on some other scarce resource, such as relaying traffic for others or -other proof of energy spent. (We might also worry about the incentives -for bridges that sign up and get allocated to the reserve pools: will they -be unhappy that they're not being used? But this is a transient problem: -if Tor users are bridges by default, nobody will mind not being used yet. -See also Section 9.4.) - -
    - -
    -

    -7.5  Public bridges with coordinated discovery

    - -
    -We presented the above discovery strategies in the context of a single -bridge directory authority, but in practice we will want to distribute the -operations over several bridge authorities — a single point of failure -or attack is a bad move. The first answer is to run several independent -bridge directory authorities, and bridges gravitate to one based on -their identity key. The better answer would be some federation of bridge -authorities that work together to provide redundancy but don't introduce -new security issues. We could even imagine designs where the bridge -authorities have encrypted versions of the bridge's server descriptors, -and the users learn a decryption key that they keep private when they -first hear about the bridge — this way the bridge authorities would not -be able to learn the IP address of the bridges. - -
    -We leave this design question for future work. - -
    -

    -7.6  Assessing whether bridges are useful

    - -
    -Learning whether a bridge is useful is important in the bridge authority's -decision to include it in responses to blocked users. For example, if -we end up with a list of thousands of bridges and only a few dozen of -them are reachable right now, most blocked users will not end up knowing -about working bridges. - -
    -There are three components for assessing how useful a bridge is. First, -is it reachable from the public Internet? Second, what proportion of -the time is it available? Third, is it blocked in certain jurisdictions? - -
    -The first component can be tested just as we test reachability of -ordinary Tor servers. Specifically, the bridges do a self-test — connect -to themselves via the Tor network — before they are willing to -publish their descriptor, to make sure they're not obviously broken or -misconfigured. Once the bridges publish, the bridge authority also tests -reachability to make sure they're not confused or outright lying. - -
    -The second component can be measured and tracked by the bridge authority. -By doing periodic reachability tests, we can get a sense of how often the -bridge is available. More complex tests will involve bandwidth-intensive -checks to force the bridge to commit resources in order to be counted as -available. We need to evaluate how the relationship of uptime percentage -should weigh into our choice of which bridges to advertise. We leave -this to future work. - -
    -The third component is perhaps the trickiest: with many different -adversaries out there, how do we keep track of which adversaries have -blocked which bridges, and how do we learn about new blocks as they -occur? We examine this problem next. - -
    -

    - -7.7  How do we know if a bridge relay has been blocked?

    - - -
    -There are two main mechanisms for testing whether bridges are reachable -from inside each blocked area: active testing via users, and passive -testing via bridges. - -
    -In the case of active testing, certain users inside each area -sign up as testing relays. The bridge authorities can then use a -Blossom-like [16] system to build circuits through them -to each bridge and see if it can establish the connection. But how do -we pick the users? If we ask random users to do the testing (or if we -solicit volunteers from the users), the adversary should sign up so he -can enumerate the bridges we test. Indeed, even if we hand-select our -testers, the adversary might still discover their location and monitor -their network activity to learn bridge addresses. - -
    -Another answer is not to measure directly, but rather let the bridges -report whether they're being used. -Specifically, bridges should install a GeoIP database such as the public -IP-To-Country list [19], and then periodically report to the -bridge authorities which countries they're seeing use from. This data -would help us track which countries are making use of the bridge design, -and can also let us learn about new steps the adversary has taken in -the arms race. (The compressed GeoIP database is only several hundred -kilobytes, and we could even automate the update process by serving it -from the bridge authorities.) -More analysis of this passive reachability -testing design is needed to resolve its many edge cases: for example, -if a bridge stops seeing use from a certain area, does that mean the -bridge is blocked or does that mean those users are asleep? - -
    -There are many more problems with the general concept of detecting whether -bridges are blocked. First, different zones of the Internet are blocked -in different ways, and the actual firewall jurisdictions do not match -country borders. Our bridge scheme could help us map out the topology -of the censored Internet, but this is a huge task. More generally, -if a bridge relay isn't reachable, is that because of a network block -somewhere, because of a problem at the bridge relay, or just a temporary -outage somewhere in between? And last, an attacker could poison our -bridge database by signing up already-blocked bridges. In this case, -if we're stingy giving out bridge addresses, users in that country won't -learn working bridges. - -
    -All of these issues are made more complex when we try to integrate this -testing into our social network reputation system above. -Since in that case we punish or reward users based on whether bridges -get blocked, the adversary has new attacks to trick or bog down the -reputation tracking. Indeed, the bridge authority doesn't even know -what zone the blocked user is in, so do we blame him for any possible -censored zone, or what? - -
    -Clearly more analysis is required. The eventual solution will probably -involve a combination of passive measurement via GeoIP and active -measurement from trusted testers. More generally, we can use the passive -feedback mechanism to track usage of the bridge network as a whole — which -would let us respond to attacks and adapt the design, and it would also -let the general public track the progress of the project. - -
    - -
    -

    -7.8  Advantages of deploying all solutions at once

    - -
    -For once, we're not in the position of the defender: we don't have to -defend against every possible filtering scheme; we just have to defend -against at least one. On the flip side, the attacker is forced to guess -how to allocate his resources to defend against each of these discovery -strategies. So by deploying all of our strategies at once, we not only -increase our chances of finding one that the adversary has difficulty -blocking, but we actually make all of the strategies more robust -in the face of an adversary with limited resources. - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    -

    - -8  Security considerations

    - - -
    -

    -8.1  Possession of Tor in oppressed areas

    - -
    -Many people speculate that installing and using a Tor client in areas with -particularly extreme firewalls is a high risk — and the risk increases -as the firewall gets more restrictive. This notion certainly has merit, but -there's -a counter pressure as well: as the firewall gets more restrictive, more -ordinary people behind it end up using Tor for more mainstream activities, -such as learning -about Wall Street prices or looking at pictures of women's ankles. So -as the restrictive firewall pushes up the number of Tor users, the -"typical" Tor user becomes more mainstream, and therefore mere -use or possession of the Tor software is not so surprising. - -
    -It's hard to say which of these pressures will ultimately win out, -but we should keep both sides of the issue in mind. - -
    - -
    - -
    -

    - -8.2  Observers can tell who is publishing and who is reading

    - - -
    -Tor encrypts traffic on the local network, and it obscures the eventual -destination of the communication, but it doesn't do much to obscure the -traffic volume. In particular, a user publishing a home video will have a -different network fingerprint than a user reading an online news article. -Based on our assumption in Section 2 that users who -publish material are in more danger, should we work to improve Tor's -security in this situation? - -
    -In the general case this is an extremely challenging task: -effective end-to-end traffic confirmation attacks -are known where the adversary observes the origin and the -destination of traffic and confirms that they are part of the -same communication [8,24]. Related are -website fingerprinting attacks, where the adversary downloads -a few hundred popular websites, makes a set of "fingerprints" for each -site, and then observes the target Tor client's traffic to look for -a match [4,21]. But can we do better -against a limited adversary who just does coarse-grained sweeps looking -for unusually prolific publishers? - -
    -One answer is for bridge users to automatically send bursts of padding -traffic periodically. (This traffic can be implemented in terms of -long-range drop cells, which are already part of the Tor specification.) -Of course, convincingly simulating an actual human publishing interesting -content is a difficult arms race, but it may be worthwhile to at least -start the race. More research remains. - -
    -

    -8.3  Anonymity effects from acting as a bridge relay

    - -
    -Against some attacks, relaying traffic for others can improve -anonymity. The simplest example is an attacker who owns a small number -of Tor servers. He will see a connection from the bridge, but he won't -be able to know whether the connection originated there or was relayed -from somebody else. More generally, the mere uncertainty of whether the -traffic originated from that user may be helpful. - -
    -There are some cases where it doesn't seem to help: if an attacker can -watch all of the bridge's incoming and outgoing traffic, then it's easy -to learn which connections were relayed and which started there. (In this -case he still doesn't know the final destinations unless he is watching -them too, but in this case bridges are no better off than if they were -an ordinary client.) - -
    -There are also some potential downsides to running a bridge. First, while -we try to make it hard to enumerate all bridges, it's still possible to -learn about some of them, and for some people just the fact that they're -running one might signal to an attacker that they place a higher value -on their anonymity. Second, there are some more esoteric attacks on Tor -relays that are not as well-understood or well-tested — for example, an -attacker may be able to "observe" whether the bridge is sending traffic -even if he can't actually watch its network, by relaying traffic through -it and noticing changes in traffic timing [25]. On -the other hand, it may be that limiting the bandwidth the bridge is -willing to relay will allow this sort of attacker to determine if it's -being used as a bridge but not easily learn whether it is adding traffic -of its own. - -
    -We also need to examine how entry guards fit in. Entry guards -(a small set of nodes that are always used for the first -step in a circuit) help protect against certain attacks -where the attacker runs a few Tor servers and waits for -the user to choose these servers as the beginning and end of her -circuit2. -If the blocked user doesn't use the bridge's entry guards, then the bridge -doesn't gain as much cover benefit. On the other hand, what design changes -are needed for the blocked user to use the bridge's entry guards without -learning what they are (this seems hard), and even if we solve that, -do they then need to use the guards' guards and so on down the line? - -
    -It is an open research question whether the benefits of running a bridge -outweigh the risks. A lot of the decision rests on which attacks the -users are most worried about. For most users, we don't think running a -bridge relay will be that damaging, and it could help quite a bit. - -
    -

    - -8.4  Trusting local hardware: Internet cafes and LiveCDs

    - - -
    -Assuming that users have their own trusted hardware is not -always reasonable. - -
    -For Internet cafe Windows computers that let you attach your own USB key, -a USB-based Tor image would be smart. There's Torpark, and hopefully -there will be more thoroughly analyzed and trustworthy options down the -road. Worries remain about hardware or software keyloggers and other -spyware, as well as physical surveillance. - -
    -If the system lets you boot from a CD or from a USB key, you can gain -a bit more security by bringing a privacy LiveCD with you. (This -approach isn't foolproof either of course, since hardware -keyloggers and physical surveillance are still a worry). - -
    -In fact, LiveCDs are also useful if it's your own hardware, since it's -easier to avoid leaving private data and logs scattered around the -system. - -
    - -
    -

    - -8.5  The trust chain

    - - -
    -Tor's "public key infrastructure" provides a chain of trust to -let users verify that they're actually talking to the right servers. -There are four pieces to this trust chain. - -
    -First, when Tor clients are establishing circuits, at each step -they demand that the next Tor server in the path prove knowledge of -its private key [11]. This step prevents the first node -in the path from just spoofing the rest of the path. Second, the -Tor directory authorities provide a signed list of servers along with -their public keys — so unless the adversary can control a threshold -of directory authorities, he can't trick the Tor client into using other -Tor servers. Third, the location and keys of the directory authorities, -in turn, is hard-coded in the Tor source code — so as long as the user -got a genuine version of Tor, he can know that he is using the genuine -Tor network. And last, the source code and other packages are signed -with the GPG keys of the Tor developers, so users can confirm that they -did in fact download a genuine version of Tor. - -
    -In the case of blocked users contacting bridges and bridge directory -authorities, the same logic applies in parallel: the blocked users fetch -information from both the bridge authorities and the directory authorities -for the `main' Tor network, and they combine this information locally. - -
    -How can a user in an oppressed country know that he has the correct -key fingerprints for the developers? As with other security systems, it -ultimately comes down to human interaction. The keys are signed by dozens -of people around the world, and we have to hope that our users have met -enough people in the PGP web of trust -that they can learn -the correct keys. For users that aren't connected to the global security -community, though, this question remains a critical weakness. - -
    - -
    - -
    - -
    -

    - -9  Maintaining reachability

    - - -
    -

    -9.1  How many bridge relays should you know about?

    - -
    -The strategies described in Section 7 talked about -learning one bridge address at a time. But if most bridges are ordinary -Tor users on cable modem or DSL connection, many of them will disappear -and/or move periodically. How many bridge relays should a blocked user -know about so that she is likely to have at least one reachable at any -given point? This is already a challenging problem if we only consider -natural churn: the best approach is to see what bridges we attract in -reality and measure their churn. We may also need to factor in a parameter -for how quickly bridges get discovered and blocked by the attacker; -we leave this for future work after we have more deployment experience. - -
    -A related question is: if the bridge relays change IP addresses -periodically, how often does the blocked user need to fetch updates in -order to keep from being cut out of the loop? - -
    -Once we have more experience and intuition, we should explore technical -solutions to this problem too. For example, if the discovery strategies -give out k bridge addresses rather than a single bridge address, perhaps -we can improve robustness from the user perspective without significantly -aiding the adversary. Rather than giving out a new random subset of k -addresses at each point, we could bind them together into bridge -families, so all users that learn about one member of the bridge family -are told about the rest as well. - -
    -This scheme may also help defend against attacks to map the set of -bridges. That is, if all blocked users learn a random subset of bridges, -the attacker should learn about a few bridges, monitor the country-level -firewall for connections to them, then watch those users to see what -other bridges they use, and repeat. By segmenting the bridge address -space, we can limit the exposure of other users. - -
    -

    - -9.2  Cablemodem users don't usually provide important websites

    - - -
    -Another attacker we might be concerned about is that the attacker could -just block all DSL and cablemodem network addresses, on the theory that -they don't run any important services anyway. If most of our bridges -are on these networks, this attack could really hurt. - -
    -The first answer is to aim to get volunteers both from traditionally -"consumer" networks and also from traditionally "producer" networks. -Since bridges don't need to be Tor exit nodes, as we improve our usability -it seems quite feasible to get a lot of websites helping out. - -
    -The second answer (not as practical) would be to encourage more use of -consumer networks for popular and useful Internet services. - -
    -A related attack we might worry about is based on large countries putting -economic pressure on companies that want to expand their business. For -example, what happens if Verizon wants to sell services in China, and -China pressures Verizon to discourage its users in the free world from -running bridges? - -
    -

    -9.3  Scanning resistance: making bridges more subtle

    - -
    -If it's trivial to verify that a given address is operating as a bridge, -and most bridges run on a predictable port, then it's conceivable our -attacker could scan the whole Internet looking for bridges. (In fact, -he can just concentrate on scanning likely networks like cablemodem -and DSL services — see Section 9.2 -above for -related attacks.) It would be nice to slow down this attack. It would -be even nicer to make it hard to learn whether we're a bridge without -first knowing some secret. We call this general property scanning -resistance, and it goes along with normalizing Tor's TLS handshake and -network fingerprint. - -
    -We could provide a password to the blocked user, and she (or her Tor -client) provides a nonced hash of this password when she connects. We'd -need to give her an ID key for the bridge too (in addition to the IP -address and port — see Section 6.1), and wait to -present the password until we've finished the TLS handshake, else it -would look unusual. If Alice can authenticate the bridge before she -tries to send her password, we can resist an adversary who pretends -to be the bridge and launches a man-in-the-middle attack to learn the -password. But even if she can't, we still resist against widespread -scanning. - -
    -How should the bridge behave if accessed without the correct -authorization? Perhaps it should act like an unconfigured HTTPS server -("welcome to the default Apache page"), or maybe it should mirror -and act like common websites, or websites randomly chosen from Google. - -
    -We might assume that the attacker can recognize HTTPS connections that -use self-signed certificates. (This process would be resource-intensive -but not out of the realm of possibility.) But even in this case, many -popular websites around the Internet use self-signed or just plain broken -SSL certificates. - -
    - -
    - -
    - -
    -

    - -9.4  How to motivate people to run bridge relays

    - - -
    -One of the traditional ways to get people to run software that benefits -others is to give them motivation to install it themselves. An often -suggested approach is to install it as a stunning screensaver so everybody -will be pleased to run it. We take a similar approach here, by leveraging -the fact that these users are already interested in protecting their -own Internet traffic, so they will install and run the software. - -
    -Eventually, we may be able to make all Tor users become bridges if they -pass their self-reachability tests — the software and installers need -more work on usability first, but we're making progress. - -
    -In the mean time, we can make a snazzy network graph with -Vidalia3 that -emphasizes the connections the bridge user is currently relaying. - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    -

    - -9.5  Publicity attracts attention

    - - -
    -Many people working on this field want to publicize the existence -and extent of censorship concurrently with the deployment of their -circumvention software. The easy reason for this two-pronged push is -to attract volunteers for running proxies in their systems; but in many -cases their main goal is not to focus on actually allowing individuals -to circumvent the firewall, but rather to educate the world about the -censorship. The media also tries to do its part by broadcasting the -existence of each new circumvention system. - -
    -But at the same time, this publicity attracts the attention of the -censors. We can slow down the arms race by not attracting as much -attention, and just spreading by word of mouth. If our goal is to -establish a solid social network of bridges and bridge users before -the adversary gets involved, does this extra attention work to our -disadvantage? - -
    -

    -9.6  The Tor website: how to get the software

    - -
    -One of the first censoring attacks against a system like ours is to -block the website and make the software itself hard to find. Our system -should work well once the user is running an authentic -copy of Tor and has found a working bridge, but to get to that point -we rely on their individual skills and ingenuity. - -
    -Right now, most countries that block access to Tor block only the main -website and leave mirrors and the network itself untouched. -Falling back on word-of-mouth is always a good last resort, but we should -also take steps to make sure it's relatively easy for users to get a copy, -such as publicizing the mirrors more and making copies available through -other media. We might also mirror the latest version of the software on -each bridge, so users who hear about an honest bridge can get a good -copy. -See Section 7.1 for more discussion. - -
    - -
    -

    - -10  Future designs

    - - -
    -

    -10.1  Bridges inside the blocked network too

    - -
    -Assuming actually crossing the firewall is the risky part of the -operation, can we have some bridge relays inside the blocked area too, -and more established users can use them as relays so they don't need to -communicate over the firewall directly at all? A simple example here is -to make new blocked users into internal bridges also — so they sign up -on the bridge authority as part of doing their query, and we give out -their addresses -rather than (or along with) the external bridge addresses. This design -is a lot trickier because it brings in the complexity of whether the -internal bridges will remain available, can maintain reachability with -the outside world, etc. - -
    -More complex future designs involve operating a separate Tor network -inside the blocked area, and using hidden service bridges — bridges -that can be accessed by users of the internal Tor network but whose -addresses are not published or findable, even by these users — to get -from inside the firewall to the rest of the Internet. But this design -requires directory authorities to run inside the blocked area too, -and they would be a fine target to take down the network. - -
    - -
    -

    - -11  Next Steps

    - - -
    -Technical solutions won't solve the whole censorship problem. After all, -the firewalls in places like China are socially very -successful, even if technologies and tricks exist to get around them. -However, having a strong technical solution is still necessary as one -important piece of the puzzle. - -
    -In this paper, we have shown that Tor provides a great set of building -blocks to start from. The next steps are to deploy prototype bridges and -bridge authorities, implement some of the proposed discovery strategies, -and then observe the system in operation and get more intuition about -the actual requirements and adversaries we're up against. - -
    - -

    References

    - -
    -
    [1]
    -Alessandro Acquisti, Roger Dingledine, and Paul Syverson. - On the economics of anonymity. - In Rebecca N. Wright, editor, Financial Cryptography. - Springer-Verlag, LNCS 2742, 2003. - -
    -
    -
    [2]
    -Adam Back, Ian Goldberg, and Adam Shostack. - Freedom systems 2.1 security issues and analysis. - White paper, Zero Knowledge Systems, Inc., May 2001. - -
    -
    -
    [3]
    -Oliver Berthold, Hannes Federrath, and Stefan Köpsell. - Web MIXes: A system for anonymous and unobservable Internet - access. - In H. Federrath, editor, Designing Privacy Enhancing - Technologies: Workshop on Design Issue in Anonymity and Unobservability. - Springer-Verlag, LNCS 2009, 2000. - -
    -
    -
    [4]
    -George Dean Bissias, Marc Liberatore, and Brian Neil Levine. - Privacy vulnerabilities in encrypted http streams. - In Proceedings of Privacy Enhancing Technologies workshop (PET - 2005), May 2005. - - http://prisms.cs.umass.edu/brian/pubs/bissias.liberatore.pet.2005.pdf. - -
    -
    -
    [5]
    -David Chaum. - Blind signatures for untraceable payments. - In D. Chaum, R.L. Rivest, and A.T. Sherman, editors, Advances in - Cryptology: Proceedings of Crypto 82, pages 199-203. Plenum Press, 1983. - -
    -
    -
    [6]
    -Ian Clarke, Oskar Sandberg, Brandon Wiley, and Theodore W. Hong. - Freenet: A distributed anonymous information storage and retrieval - system. - In H. Federrath, editor, Designing Privacy Enhancing - Technologies: Workshop on Design Issue in Anonymity and Unobservability, - pages 46-66. Springer-Verlag, LNCS 2009, July 2000. - -
    -
    -
    [7]
    -Richard Clayton, Steven J. Murdoch, and Robert N. M. Watson. - Ignoring the great firewall of china. - In Proceedings of the Sixth Workshop on Privacy Enhancing - Technologies (PET 2006), Cambridge, UK, June 2006. Springer. - http://www.cl.cam.ac.uk/~rnc1/ignoring.pdf. - -
    -
    -
    [8]
    -George Danezis. - The traffic analysis of continuous-time mixes. - In David Martin and Andrei Serjantov, editors, Privacy Enhancing - Technologies (PET 2004), LNCS, May 2004. - http://www.cl.cam.ac.uk/users/gd216/cmm2.pdf. - -
    -
    -
    [9]
    -Roger Dingledine and Nick Mathewson. - Anonymity loves company: Usability and the network effect. - In Proceedings of the Fifth Workshop on the Economics of - Information Security (WEIS 2006), Cambridge, UK, June 2006. - http://freehaven.net/doc/wupss04/usability.pdf. - -
    -
    -
    [10]
    -Roger Dingledine, Nick Mathewson, and Paul Syverson. - Reputation in P2P Anonymity Systems. - In Proceedings of Workshop on Economics of Peer-to-Peer - Systems, June 2003. - http://freehaven.net/doc/econp2p03/econp2p03.pdf. - -
    -
    -
    [11]
    -Roger Dingledine, Nick Mathewson, and Paul Syverson. - Tor: The second-generation onion router. - In Proceedings of the 13th USENIX Security Symposium, August - 2004. - http://tor.eff.org/tor-design.pdf. - -
    -
    -
    [12]
    -Roger Dingledine and Paul Syverson. - Reliable MIX Cascade Networks through Reputation. - In Matt Blaze, editor, Financial Cryptography. Springer-Verlag, - LNCS 2357, 2002. - -
    -
    -
    [13]
    -Ronald Deibert et al. - Psiphon. - http://psiphon.civisec.org/. - -
    -
    -
    [14]
    -Nick Feamster, Magdalena Balazinska, Greg Harfst, Hari Balakrishnan, and David - Karger. - Infranet: Circumventing web censorship and surveillance. - In Proceedings of the 11th USENIX Security Symposium, August - 2002. - http://nms.lcs.mit.edu/~feamster/papers/usenixsec2002.pdf. - -
    -
    -
    [15]
    -Gina Fisk, Mike Fisk, Christos Papadopoulos, and Joshua Neil. - Eliminating steganography in internet traffic with active wardens. - In Fabien Petitcolas, editor, Information Hiding Workshop (IH - 2002). Springer-Verlag, LNCS 2578, October 2002. - -
    -
    -
    [16]
    -Geoffrey Goodell. - Perspective Access Networks. - PhD thesis, Harvard University, July 2006. - http://afs.eecs.harvard.edu/~goodell/thesis.pdf. - -
    -
    -
    [17]
    -Geoffrey Goodell and Paul Syverson. - The right place at the right time: The use of network location in - authentication and abuse prevention, 2006. - Submitted. - -
    -
    -
    [18]
    -Bennett Haselton. - How to install the Circumventor program. - - http://www.peacefire.org/circumventor/simple-circumventor-instructions.html. - -
    -
    -
    [19]
    -Ip-to-country database. - http://ip-to-country.webhosting.info/. - -
    -
    -
    [20]
    -Stefan Köpsell and Ulf Hilling. - How to achieve blocking resistance for existing systems enabling - anonymous web surfing. - In Proceedings of the Workshop on Privacy in the Electronic - Society (WPES 2004), Washington, DC, USA, October 2004. - http://freehaven.net/anonbib/papers/p103-koepsell.pdf. - -
    -
    -
    [21]
    -Brian N. Levine, Michael K. Reiter, Chenxi Wang, and Matthew Wright. - Timing analysis in low-latency mix-based systems. - In Ari Juels, editor, Financial Cryptography. Springer-Verlag, - LNCS (forthcoming), 2004. - -
    -
    -
    [22]
    -Rebecca MacKinnon. - Private communication, 2006. - -
    -
    -
    [23]
    -James Marshall. - CGIProxy: HTTP/FTP Proxy in a CGI Script. - http://www.jmarshall.com/tools/cgiproxy/. - -
    -
    -
    [24]
    -Nick Mathewson and Roger Dingledine. - Practical traffic analysis: Extending and resisting statistical - disclosure. - In David Martin and Andrei Serjantov, editors, Privacy Enhancing - Technologies (PET 2004), LNCS, May 2004. - http://freehaven.net/doc/e2e-traffic/e2e-traffic.pdf. - -
    -
    -
    [25]
    -Steven J. Murdoch and George Danezis. - Low-cost traffic analysis of tor. - In IEEE Symposium on Security and Privacy. IEEE CS, May 2005. - -
    -
    -
    [26]
    -Steven J. Murdoch and Stephen Lewis. - Embedding covert channels into TCP/IP. - In Mauro Barni, Jordi Herrera-Joancomartí, Stefan Katzenbeisser, - and Fernando Pérez-González, editors, Information Hiding: 7th - International Workshop, volume 3727 of LNCS, pages 247-261, - Barcelona, Catalonia (Spain), June 2005. Springer-Verlag. - -
    -
    -
    [27]
    -Thomas H. Ptacek and Timothy N. Newsham. - Insertion, evasion, and denial of service: Eluding network intrusion - detection. - Technical report, Secure Networks, Inc., Suite 330, 1201 5th Street - S.W, Calgary, Alberta, Canada, T2R-0Y6, 1998. - -
    -
    -
    [28]
    -Ethan Zuckerman. - We've got to adjust some of our threat models. - http://www.ethanzuckerman.com/blog/?p=1019.
    -
    - - -
    - -
    - -
    -

    Footnotes:

    - -
    -1So far in places - like China, the authorities mainly go after people who publish materials - and coordinate organized movements [22]. - If they find that a - user happens to be reading a site that should be blocked, the typical - response is simply to block the site. Of course, even with an encrypted - connection, the adversary may be able to distinguish readers from - publishers by observing whether Alice is mostly downloading bytes or mostly - uploading them — we discuss this issue more in - Section 8.2. -
    -2http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#EntryGuards -
    -3http://vidalia-project.net/ -


    File translated from -TEX -by -TTH, -version 3.77.
    On 11 May 2007, 21:49.
    - - diff --git a/doc/design-paper/blocking.pdf b/doc/design-paper/blocking.pdf deleted file mode 100644 index 1ee0eb0bbd5a88a9eb44e932db3299aa0bf6c88f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156628 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⁣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 Neh`0%e4By9JgxXPV% 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 L;pCK6l_U8-8e<2r diff --git a/doc/design-paper/blocking.tex b/doc/design-paper/blocking.tex deleted file mode 100644 index 3b7d05ca57..0000000000 --- a/doc/design-paper/blocking.tex +++ /dev/null @@ -1,1894 +0,0 @@ -%\documentclass{llncs} -\documentclass{usenixsubmit} -%\documentclass[twocolumn]{article} -%usepackage{usenix} - -\usepackage{url} -\usepackage{amsmath} -\usepackage{epsfig} - -\setlength{\textwidth}{6.0in} -\setlength{\textheight}{8.5in} -\setlength{\topmargin}{.5cm} -\setlength{\oddsidemargin}{1cm} -\setlength{\evensidemargin}{1cm} - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} - -\newcommand{\workingnote}[1]{} % The version that hides the note. -%\newcommand{\workingnote}[1]{(**#1)} % makes the note visible. - -\date{} -\title{Design of a blocking-resistant anonymity system\\DRAFT} - -%\author{Roger Dingledine\inst{1} \and Nick Mathewson\inst{1}} -\author{Roger Dingledine \\ The Tor Project \\ arma@torproject.org \and -Nick Mathewson \\ The Tor Project \\ nickm@torproject.org} - -\begin{document} -\maketitle -\pagestyle{plain} - -\begin{abstract} - -Internet censorship is on the rise as websites around the world are -increasingly blocked by government-level firewalls. Although popular -anonymizing networks like Tor were originally designed to keep attackers from -tracing people's activities, many people are also using them to evade local -censorship. But if the censor simply denies access to the Tor network -itself, blocked users can no longer benefit from the security Tor offers. - -Here we describe a design that builds upon the current Tor network -to provide an anonymizing network that resists blocking -by government-level attackers. We have implemented and deployed this -design, and talk briefly about early use. - -\end{abstract} - -\section{Introduction} - -Anonymizing networks like Tor~\cite{tor-design} bounce traffic around a -network of encrypting relays. Unlike encryption, which hides only {\it what} -is said, these networks also aim to hide who is communicating with whom, which -users are using which websites, and so on. These systems have a -broad range of users, including ordinary citizens who want to avoid being -profiled for targeted advertisements, corporations who don't want to reveal -information to their competitors, and law enforcement and government -intelligence agencies who need to do operations on the Internet without being -noticed. - -Historical anonymity research has focused on an -attacker who monitors the user (call her Alice) and tries to discover her -activities, yet lets her reach any piece of the network. In more modern -threat models such as Tor's, the adversary is allowed to perform active -attacks such as modifying communications to trick Alice -into revealing her destination, or intercepting some connections -to run a man-in-the-middle attack. But these systems still assume that -Alice can eventually reach the anonymizing network. - -An increasing number of users are using the Tor software -less for its anonymity properties than for its censorship -resistance properties---if they use Tor to access Internet sites like -Wikipedia -and Blogspot, they are no longer affected by local censorship -and firewall rules. In fact, an informal user study -%(described in Appendix~\ref{app:geoip}) -showed that a few hundred thousand users people access the Tor network -each day, with about 20\% of them coming from China~\cite{something}. - -The current Tor design is easy to block if the attacker controls Alice's -connection to the Tor network---by blocking the directory authorities, -by blocking all the relay IP addresses in the directory, or by filtering -based on the network fingerprint of the Tor TLS handshake. Here we -describe an -extended design that builds upon the current Tor network to provide an -anonymizing -network that resists censorship as well as anonymity-breaking attacks. -In section~\ref{sec:adversary} we discuss our threat model---that is, -the assumptions we make about our adversary. Section~\ref{sec:current-tor} -describes the components of the current Tor design and how they can be -leveraged for a new blocking-resistant design. Section~\ref{sec:related} -explains the features and drawbacks of the currently deployed solutions. -In sections~\ref{sec:bridges} through~\ref{sec:discovery}, we explore the -components of our designs in detail. Section~\ref{sec:security} considers -security implications and Section~\ref{sec:reachability} presents other -issues with maintaining connectivity and sustainability for the design. -%Section~\ref{sec:future} speculates about future more complex designs, -Finally section~\ref{sec:conclusion} summarizes our next steps and -recommendations. - -% The other motivation is for places where we're concerned they will -% try to enumerate a list of Tor users. So even if they're not blocking -% the Tor network, it may be smart to not be visible as connecting to it. - -%And adding more different classes of users and goals to the Tor network -%improves the anonymity for all Tor users~\cite{econymics,usability:weis2006}. - -% Adding use classes for countering blocking as well as anonymity has -% benefits too. Should add something about how providing undetected -% access to Tor would facilitate people talking to, e.g., govt. authorities -% about threats to public safety etc. in an environment where Tor use -% is not otherwise widespread and would make one stand out. - -\section{Adversary assumptions} -\label{sec:adversary} - -To design an effective anti-censorship tool, we need a good model for the -goals and resources of the censors we are evading. Otherwise, we risk -spending our effort on keeping the adversaries from doing things they have no -interest in doing, and thwarting techniques they do not use. -The history of blocking-resistance designs is littered with conflicting -assumptions about what adversaries to expect and what problems are -in the critical path to a solution. Here we describe our best -understanding of the current situation around the world. - -In the traditional security style, we aim to defeat a strong -attacker---if we can defend against this attacker, we inherit protection -against weaker attackers as well. After all, we want a general design -that will work for citizens of China, Thailand, and other censored -countries; for -whistleblowers in firewalled corporate networks; and for people in -unanticipated oppressive situations. In fact, by designing with -a variety of adversaries in mind, we can take advantage of the fact that -adversaries will be in different stages of the arms race at each location, -so an address blocked in one locale can still be useful in others. -We focus on an attacker with somewhat complex goals: - -\begin{tightlist} -\item The attacker would like to restrict the flow of certain kinds of - information, particularly when this information is seen as embarrassing to - those in power (such as information about rights violations or corruption), - or when it enables or encourages others to oppose them effectively (such as - information about opposition movements or sites that are used to organize - protests). -\item As a second-order effect, censors aim to chill citizens' behavior by - creating an impression that their online activities are monitored. -\item In some cases, censors make a token attempt to block a few sites for - obscenity, blasphemy, and so on, but their efforts here are mainly for - show. In other cases, they really do try hard to block such content. -\item Complete blocking (where nobody at all can ever download censored - content) is not a - goal. Attackers typically recognize that perfect censorship is not only - impossible, it is unnecessary: if ``undesirable'' information is known only - to a small few, further censoring efforts can be focused elsewhere. -\item Similarly, the censors do not attempt to shut down or block {\it - every} anti-censorship tool---merely the tools that are popular and - effective (because these tools impede the censors' information restriction - goals) and those tools that are highly visible (thus making the censors - look ineffectual to their citizens and their bosses). -\item Reprisal against {\it most} passive consumers of {\it most} kinds of - blocked information is also not a goal, given the broadness of most - censorship regimes. This seems borne out by fact.\footnote{So far in places - like China, the authorities mainly go after people who publish materials - and coordinate organized movements~\cite{mackinnon-personal}. - If they find that a - user happens to be reading a site that should be blocked, the typical - response is simply to block the site. Of course, even with an encrypted - connection, the adversary may be able to distinguish readers from - publishers by observing whether Alice is mostly downloading bytes or mostly - uploading them---we discuss this issue more in - Section~\ref{subsec:upload-padding}.} -\item Producers and distributors of targeted information are in much - greater danger than consumers; the attacker would like to not only block - their work, but identify them for reprisal. -\item The censors (or their governments) would like to have a working, useful - Internet. There are economic, political, and social factors that prevent - them from ``censoring'' the Internet by outlawing it entirely, or by - blocking access to all but a tiny list of sites. - Nevertheless, the censors {\it are} willing to block innocuous content - (like the bulk of a newspaper's reporting) in order to censor other content - distributed through the same channels (like that newspaper's coverage of - the censored country). -\end{tightlist} - -We assume there are three main technical network attacks in use by censors -currently~\cite{clayton:pet2006}: - -\begin{tightlist} -\item Block a destination or type of traffic by automatically searching for - certain strings or patterns in TCP packets. Offending packets can be - dropped, or can trigger a response like closing the - connection. -\item Block certain IP addresses or destination ports at a - firewall or other routing control point. -\item Intercept DNS requests and give bogus responses for certain - destination hostnames. -\end{tightlist} - -We assume the network firewall has limited CPU and memory per -connection~\cite{clayton:pet2006}. Against an adversary who could carefully -examine the contents of every packet and correlate the packets in every -stream on the network, we would need some stronger mechanism such as -steganography, which introduces its own -problems~\cite{active-wardens,tcpstego}. But we make a ``weak -steganography'' assumption here: to remain unblocked, it is necessary to -remain unobservable only by computational resources on par with a modern -router, firewall, proxy, or IDS. - -We assume that while various different regimes can coordinate and share -notes, there will be a time lag between one attacker learning how to overcome -a facet of our design and other attackers picking it up. (The most common -vector of transmission seems to be commercial providers of censorship tools: -once a provider adds a feature to meet one country's needs or requests, the -feature is available to all of the provider's customers.) Conversely, we -assume that insider attacks become a higher risk only after the early stages -of network development, once the system has reached a certain level of -success and visibility. - -We do not assume that government-level attackers are always uniform -across the country. For example, users of different ISPs in China -experience different censorship policies and mechanisms~\cite{china-ccs07}. -%there is no single centralized place in China -%that coordinates its specific censorship decisions and steps. - -We assume that the attacker may be able to use political and economic -resources to secure the cooperation of extraterritorial or multinational -corporations and entities in investigating information sources. -For example, the censors can threaten the service providers of -troublesome blogs with economic reprisals if they do not reveal the -authors' identities. - -We assume that our users have control over their hardware and -software---they don't have any spyware installed, there are no -cameras watching their screens, etc. Unfortunately, in many situations -these threats are real~\cite{zuckerman-threatmodels}; yet -software-based security systems like ours are poorly equipped to handle -a user who is entirely observed and controlled by the adversary. See -Section~\ref{subsec:cafes-and-livecds} for more discussion of what little -we can do about this issue. - -Similarly, we assume that the user will be able to fetch a genuine -version of Tor, rather than one supplied by the adversary; see -Section~\ref{subsec:trust-chain} for discussion on helping the user -confirm that he has a genuine version and that he can connect to the -real Tor network. - -\section{Adapting the current Tor design to anti-censorship} -\label{sec:current-tor} - -Tor is popular and sees a lot of use---it's the largest anonymity -network of its kind, and has -attracted more than 1500 volunteer-operated routers from around the -world. Tor protects each user by routing their traffic through a multiply -encrypted ``circuit'' built of a few randomly selected relay, each of which -can remove only a single layer of encryption. Each relay sees only the step -before it and the step after it in the circuit, and so no single relay can -learn the connection between a user and her chosen communication partners. -In this section, we examine some of the reasons why Tor has become popular, -with particular emphasis to how we can take advantage of these properties -for a blocking-resistance design. - -Tor aims to provide three security properties: -\begin{tightlist} -\item 1. A local network attacker can't learn, or influence, your -destination. -\item 2. No single router in the Tor network can link you to your -destination. -\item 3. The destination, or somebody watching the destination, -can't learn your location. -\end{tightlist} - -For blocking-resistance, we care most clearly about the first -property. But as the arms race progresses, the second property -will become important---for example, to discourage an adversary -from volunteering a relay in order to learn that Alice is reading -or posting to certain websites. The third property helps keep users safe from -collaborating websites: consider websites and other Internet services -that have been pressured -recently into revealing the identity of bloggers -%~\cite{arrested-bloggers} -or treating clients differently depending on their network -location~\cite{netauth}. -%~\cite{google-geolocation}. - -The Tor design provides other features as well that are not typically -present in manual or ad hoc circumvention techniques. - -First, Tor has a well-analyzed and well-understood way to distribute -information about relay. -Tor directory authorities automatically aggregate, test, -and publish signed summaries of the available Tor routers. Tor clients -can fetch these summaries to learn which routers are available and -which routers are suitable for their needs. Directory information is cached -throughout the Tor network, so once clients have bootstrapped they never -need to interact with the authorities directly. (To tolerate a minority -of compromised directory authorities, we use a threshold trust scheme--- -see Section~\ref{subsec:trust-chain} for details.) - -Second, the list of directory authorities is not hard-wired. -Clients use the default authorities if no others are specified, -but it's easy to start a separate (or even overlapping) Tor network just -by running a different set of authorities and convincing users to prefer -a modified client. For example, we could launch a distinct Tor network -inside China; some users could even use an aggregate network made up of -both the main network and the China network. (But we should not be too -quick to create other Tor networks---part of Tor's anonymity comes from -users behaving like other users, and there are many unsolved anonymity -questions if different users know about different pieces of the network.) - -Third, in addition to automatically learning from the chosen directories -which Tor routers are available and working, Tor takes care of building -paths through the network and rebuilding them as needed. So the user -never has to know how paths are chosen, never has to manually pick -working proxies, and so on. More generally, at its core the Tor protocol -is simply a tool that can build paths given a set of routers. Tor is -quite flexible about how it learns about the routers and how it chooses -the paths. Harvard's Blossom project~\cite{blossom-thesis} makes this -flexibility more concrete: Blossom makes use of Tor not for its security -properties but for its reachability properties. It runs a separate set -of directory authorities, its own set of Tor routers (called the Blossom -network), and uses Tor's flexible path-building to let users view Internet -resources from any point in the Blossom network. - -Fourth, Tor separates the role of \emph{internal relay} from the -role of \emph{exit relay}. That is, some volunteers choose just to relay -traffic between Tor users and Tor routers, and others choose to also allow -connections to external Internet resources. Because we don't force all -volunteers to play both roles, we end up with more relays. This increased -diversity in turn is what gives Tor its security: the more options the -user has for her first hop, and the more options she has for her last hop, -the less likely it is that a given attacker will be watching both ends -of her circuit~\cite{tor-design}. As a bonus, because our design attracts -more internal relays that want to help out but don't want to deal with -being an exit relay, we end up providing more options for the first -hop---the one most critical to being able to reach the Tor network. - -Fifth, Tor is sustainable. Zero-Knowledge Systems offered the commercial -but now defunct Freedom Network~\cite{freedom21-security}, a design with -security comparable to Tor's, but its funding model relied on collecting -money from users to pay relay operators. Modern commercial proxy systems -similarly -need to keep collecting money to support their infrastructure. On the -other hand, Tor has built a self-sustaining community of volunteers who -donate their time and resources. This community trust is rooted in Tor's -open design: we tell the world exactly how Tor works, and we provide all -the source code. Users can decide for themselves, or pay any security -expert to decide, whether it is safe to use. Further, Tor's modularity -as described above, along with its open license, mean that its impact -will continue to grow. - -Sixth, Tor has an established user base of hundreds of -thousands of people from around the world. This diversity of -users contributes to sustainability as above: Tor is used by -ordinary citizens, activists, corporations, law enforcement, and -even government and military users, -%\footnote{\url{https://www.torproject.org/overview}} -and they can -only achieve their security goals by blending together in the same -network~\cite{econymics,usability:weis2006}. This user base also provides -something else: hundreds of thousands of different and often-changing -addresses that we can leverage for our blocking-resistance design. - -Finally and perhaps most importantly, Tor provides anonymity and prevents any -single relay from linking users to their communication partners. Despite -initial appearances, {\it distributed-trust anonymity is critical for -anti-censorship efforts}. If any single relay can expose dissident bloggers -or compile a list of users' behavior, the censors can profitably compromise -that relay's operator, perhaps by applying economic pressure to their -employers, -breaking into their computer, pressuring their family (if they have relatives -in the censored area), or so on. Furthermore, in designs where any relay can -expose its users, the censors can spread suspicion that they are running some -of the relays and use this belief to chill use of the network. - -We discuss and adapt these components further in -Section~\ref{sec:bridges}. But first we examine the strengths and -weaknesses of other blocking-resistance approaches, so we can expand -our repertoire of building blocks and ideas. - -\section{Current proxy solutions} -\label{sec:related} - -Relay-based blocking-resistance schemes generally have two main -components: a relay component and a discovery component. The relay part -encompasses the process of establishing a connection, sending traffic -back and forth, and so on---everything that's done once the user knows -where she's going to connect. Discovery is the step before that: the -process of finding one or more usable relays. - -For example, we can divide the pieces of Tor in the previous section -into the process of building paths and sending -traffic over them (relay) and the process of learning from the directory -authorities about what routers are available (discovery). With this -distinction -in mind, we now examine several categories of relay-based schemes. - -\subsection{Centrally-controlled shared proxies} - -Existing commercial anonymity solutions (like Anonymizer.com) are based -on a set of single-hop proxies. In these systems, each user connects to -a single proxy, which then relays traffic between the user and her -destination. These public proxy -systems are typically characterized by two features: they control and -operate the proxies centrally, and many different users get assigned -to each proxy. - -In terms of the relay component, single proxies provide weak security -compared to systems that distribute trust over multiple relays, since a -compromised proxy can trivially observe all of its users' actions, and -an eavesdropper only needs to watch a single proxy to perform timing -correlation attacks against all its users' traffic and thus learn where -everyone is connecting. Worse, all users -need to trust the proxy company to have good security itself as well as -to not reveal user activities. - -On the other hand, single-hop proxies are easier to deploy, and they -can provide better performance than distributed-trust designs like Tor, -since traffic only goes through one relay. They're also more convenient -from the user's perspective---since users entirely trust the proxy, -they can just use their web browser directly. - -Whether public proxy schemes are more or less scalable than Tor is -still up for debate: commercial anonymity systems can use some of their -revenue to provision more bandwidth as they grow, whereas volunteer-based -anonymity systems can attract thousands of fast relays to spread the load. - -The discovery piece can take several forms. Most commercial anonymous -proxies have one or a handful of commonly known websites, and their users -log in to those websites and relay their traffic through them. When -these websites get blocked (generally soon after the company becomes -popular), if the company cares about users in the blocked areas, they -start renting lots of disparate IP addresses and rotating through them -as they get blocked. They notify their users of new addresses (by email, -for example). It's an arms race, since attackers can sign up to receive the -email too, but operators have one nice trick available to them: because they -have a list of paying subscribers, they can notify certain subscribers -about updates earlier than others. - -Access control systems on the proxy let them provide service only to -users with certain characteristics, such as paying customers or people -from certain IP address ranges. - -Discovery in the face of a government-level firewall is a complex and -unsolved -topic, and we're stuck in this same arms race ourselves; we explore it -in more detail in Section~\ref{sec:discovery}. But first we examine the -other end of the spectrum---getting volunteers to run the proxies, -and telling only a few people about each proxy. - -\subsection{Independent personal proxies} - -Personal proxies such as Circumventor~\cite{circumventor} and -CGIProxy~\cite{cgiproxy} use the same technology as the public ones as -far as the relay component goes, but they use a different strategy for -discovery. Rather than managing a few centralized proxies and constantly -getting new addresses for them as the old addresses are blocked, they -aim to have a large number of entirely independent proxies, each managing -its own (much smaller) set of users. - -As the Circumventor site explains, ``You don't -actually install the Circumventor \emph{on} the computer that is blocked -from accessing Web sites. You, or a friend of yours, has to install the -Circumventor on some \emph{other} machine which is not censored.'' - -This tactic has great advantages in terms of blocking-resistance---recall -our assumption in Section~\ref{sec:adversary} that the attention -a system attracts from the attacker is proportional to its number of -users and level of publicity. If each proxy only has a few users, and -there is no central list of proxies, most of them will never get noticed by -the censors. - -On the other hand, there's a huge scalability question that so far has -prevented these schemes from being widely useful: how does the fellow -in China find a person in Ohio who will run a Circumventor for him? In -some cases he may know and trust some people on the outside, but in many -cases he's just out of luck. Just as hard, how does a new volunteer in -Ohio find a person in China who needs it? - -% another key feature of a proxy run by your uncle is that you -% self-censor, so you're unlikely to bring abuse complaints onto -% your uncle. self-censoring clearly has a downside too, though. - -This challenge leads to a hybrid design---centrally-distributed -personal proxies---which we will investigate in more detail in -Section~\ref{sec:discovery}. - -\subsection{Open proxies} - -Yet another currently used approach to bypassing firewalls is to locate -open and misconfigured proxies on the Internet. A quick Google search -for ``open proxy list'' yields a wide variety of freely available lists -of HTTP, HTTPS, and SOCKS proxies. Many small companies have sprung up -providing more refined lists to paying customers. - -There are some downsides to using these open proxies though. First, -the proxies are of widely varying quality in terms of bandwidth and -stability, and many of them are entirely unreachable. Second, unlike -networks of volunteers like Tor, the legality of routing traffic through -these proxies is questionable: it's widely believed that most of them -don't realize what they're offering, and probably wouldn't allow it if -they realized. Third, in many cases the connection to the proxy is -unencrypted, so firewalls that filter based on keywords in IP packets -will not be hindered. Fourth, in many countries (including China), the -firewall authorities hunt for open proxies as well, to preemptively -block them. And last, many users are suspicious that some -open proxies are a little \emph{too} convenient: are they run by the -adversary, in which case they get to monitor all the user's requests -just as single-hop proxies can? - -A distributed-trust design like Tor resolves each of these issues for -the relay component, but a constantly changing set of thousands of open -relays is clearly a useful idea for a discovery component. For example, -users might be able to make use of these proxies to bootstrap their -first introduction into the Tor network. - -\subsection{Blocking resistance and JAP} - -K\"{o}psell and Hilling's Blocking Resistance -design~\cite{koepsell:wpes2004} is probably -the closest related work, and is the starting point for the design in this -paper. In this design, the JAP anonymity system~\cite{web-mix} is used -as a base instead of Tor. Volunteers operate a large number of access -points that relay traffic to the core JAP -network, which in turn anonymizes users' traffic. The software to run these -relays is, as in our design, included in the JAP client software and enabled -only when the user decides to enable it. Discovery is handled with a -CAPTCHA-based mechanism; users prove that they aren't an automated process, -and are given the address of an access point. (The problem of a determined -attacker with enough manpower to launch many requests and enumerate all the -access points is not considered in depth.) There is also some suggestion -that information about access points could spread through existing social -networks. - -\subsection{Infranet} - -The Infranet design~\cite{infranet} uses one-hop relays to deliver web -content, but disguises its communications as ordinary HTTP traffic. Requests -are split into multiple requests for URLs on the relay, which then encodes -its responses in the content it returns. The relay needs to be an actual -website with plausible content and a number of URLs which the user might want -to access---if the Infranet software produced its own cover content, it would -be far easier for censors to identify. To keep the censors from noticing -that cover content changes depending on what data is embedded, Infranet needs -the cover content to have an innocuous reason for changing frequently: the -paper recommends watermarked images and webcams. - -The attacker and relay operators in Infranet's threat model are significantly -different than in ours. Unlike our attacker, Infranet's censor can't be -bypassed with encrypted traffic (presumably because the censor blocks -encrypted traffic, or at least considers it suspicious), and has more -computational resources to devote to each connection than ours (so it can -notice subtle patterns over time). Unlike our bridge operators, Infranet's -operators (and users) have more bandwidth to spare; the overhead in typical -steganography schemes is far higher than Tor's. - -The Infranet design does not include a discovery element. Discovery, -however, is a critical point: if whatever mechanism allows users to learn -about relays also allows the censor to do so, he can trivially discover and -block their addresses, even if the steganography would prevent mere traffic -observation from revealing the relays' addresses. - -\subsection{RST-evasion and other packet-level tricks} - -In their analysis of China's firewall's content-based blocking, Clayton, -Murdoch and Watson discovered that rather than blocking all packets in a TCP -streams once a forbidden word was noticed, the firewall was simply forging -RST packets to make the communicating parties believe that the connection was -closed~\cite{clayton:pet2006}. They proposed altering operating systems -to ignore forged RST packets. This approach might work in some cases, but -in practice it appears that many firewalls start filtering by IP address -once a sufficient number of RST packets have been sent. - -Other packet-level responses to filtering include splitting -sensitive words across multiple TCP packets, so that the censors' -firewalls can't notice them without performing expensive stream -reconstruction~\cite{ptacek98insertion}. This technique relies on the -same insight as our weak steganography assumption. - -%\subsection{Internal caching networks} - -%Freenet~\cite{freenet-pets00} is an anonymous peer-to-peer data store. -%Analyzing Freenet's security can be difficult, as its design is in flux as -%new discovery and routing mechanisms are proposed, and no complete -%specification has (to our knowledge) been written. Freenet servers relay -%requests for specific content (indexed by a digest of the content) -%``toward'' the server that hosts it, and then cache the content as it -%follows the same path back to -%the requesting user. If Freenet's routing mechanism is successful in -%allowing nodes to learn about each other and route correctly even as some -%node-to-node links are blocked by firewalls, then users inside censored areas -%can ask a local Freenet server for a piece of content, and get an answer -%without having to connect out of the country at all. Of course, operators of -%servers inside the censored area can still be targeted, and the addresses of -%external servers can still be blocked. - -%\subsection{Skype} - -%The popular Skype voice-over-IP software uses multiple techniques to tolerate -%restrictive networks, some of which allow it to continue operating in the -%presence of censorship. By switching ports and using encryption, Skype -%attempts to resist trivial blocking and content filtering. Even if no -%encryption were used, it would still be expensive to scan all voice -%traffic for sensitive words. Also, most current keyloggers are unable to -%store voice traffic. Nevertheless, Skype can still be blocked, especially at -%its central login server. - -%*sjmurdoch* "we consider the login server to be the only central component in -%the Skype p2p network." -%*sjmurdoch* http://www1.cs.columbia.edu/~salman/publications/skype1_4.pdf -%-> *sjmurdoch* ok. what is the login server's role? -%-> *sjmurdoch* and do you need to reach it directly to use skype? -%*sjmurdoch* It checks the username and password -%*sjmurdoch* It is necessary in the current implementation, but I don't know if -%it is a fundemental limitation of the architecture - -\subsection{Tor itself} - -And last, we include Tor itself in the list of current solutions -to firewalls. Tens of thousands of people use Tor from countries that -routinely filter their Internet. Tor's website has been blocked in most -of them. But why hasn't the Tor network been blocked yet? - -We have several theories. The first is the most straightforward: tens of -thousands of people are simply too few to matter. It may help that Tor is -perceived to be for experts only, and thus not worth attention yet. The -more subtle variant on this theory is that we've positioned Tor in the -public eye as a tool for retaining civil liberties in more free countries, -so perhaps blocking authorities don't view it as a threat. (We revisit -this idea when we consider whether and how to publicize a Tor variant -that improves blocking-resistance---see Section~\ref{subsec:publicity} -for more discussion.) - -The broader explanation is that the maintenance of most government-level -filters is aimed at stopping widespread information flow and appearing to be -in control, not by the impossible goal of blocking all possible ways to bypass -censorship. Censors realize that there will always -be ways for a few people to get around the firewall, and as long as Tor -has not publically threatened their control, they see no urgent need to -block it yet. - -We should recognize that we're \emph{already} in the arms race. These -constraints can give us insight into the priorities and capabilities of -our various attackers. - -\section{The relay component of our blocking-resistant design} -\label{sec:bridges} - -Section~\ref{sec:current-tor} describes many reasons why Tor is -well-suited as a building block in our context, but several changes will -allow the design to resist blocking better. The most critical changes are -to get more relay addresses, and to distribute them to users differently. - -%We need to address three problems: -%- adapting the relay component of Tor so it resists blocking better. -%- Discovery. -%- Tor's network fingerprint. - -%Here we describe the new pieces we need to add to the current Tor design. - -\subsection{Bridge relays} - -Today, Tor relays operate on a few thousand distinct IP addresses; -an adversary -could enumerate and block them all with little trouble. To provide a -means of ingress to the network, we need a larger set of entry points, most -of which an adversary won't be able to enumerate easily. Fortunately, we -have such a set: the Tor users. - -Hundreds of thousands of people around the world use Tor. We can leverage -our already self-selected user base to produce a list of thousands of -frequently-changing IP addresses. Specifically, we can give them a little -button in the GUI that says ``Tor for Freedom'', and users who click -the button will turn into \emph{bridge relays} (or just \emph{bridges} -for short). They can rate limit relayed connections to 10 KB/s (almost -nothing for a broadband user in a free country, but plenty for a user -who otherwise has no access at all), and since they are just relaying -bytes back and forth between blocked users and the main Tor network, they -won't need to make any external connections to Internet sites. Because -of this separation of roles, and because we're making use of software -that the volunteers have already installed for their own use, we expect -our scheme to attract and maintain more volunteers than previous schemes. - -As usual, there are new anonymity and security implications from running a -bridge relay, particularly from letting people relay traffic through your -Tor client; but we leave this discussion for Section~\ref{sec:security}. - -%...need to outline instructions for a Tor config that will publish -%to an alternate directory authority, and for controller commands -%that will do this cleanly. - -\subsection{The bridge directory authority} - -How do the bridge relays advertise their existence to the world? We -introduce a second new component of the design: a specialized directory -authority that aggregates and tracks bridges. Bridge relays periodically -publish relay descriptors (summaries of their keys, locations, etc, -signed by their long-term identity key), just like the relays in the -``main'' Tor network, but in this case they publish them only to the -bridge directory authorities. - -The main difference between bridge authorities and the directory -authorities for the main Tor network is that the main authorities provide -a list of every known relay, but the bridge authorities only give -out a relay descriptor if you already know its identity key. That is, -you can keep up-to-date on a bridge's location and other information -once you know about it, but you can't just grab a list of all the bridges. - -The identity key, IP address, and directory port for each bridge -authority ship by default with the Tor software, so the bridge relays -can be confident they're publishing to the right location, and the -blocked users can establish an encrypted authenticated channel. See -Section~\ref{subsec:trust-chain} for more discussion of the public key -infrastructure and trust chain. - -Bridges use Tor to publish their descriptors privately and securely, -so even an attacker monitoring the bridge directory authority's network -can't make a list of all the addresses contacting the authority. -Bridges may publish to only a subset of the -authorities, to limit the potential impact of an authority compromise. - - -%\subsection{A simple matter of engineering} -% -%Although we've described bridges and bridge authorities in simple terms -%above, some design modifications and features are needed in the Tor -%codebase to add them. We describe the four main changes here. -% -%Firstly, we need to get smarter about rate limiting: -%Bandwidth classes -% -%Secondly, while users can in fact configure which directory authorities -%they use, we need to add a new type of directory authority and teach -%bridges to fetch directory information from the main authorities while -%publishing relay descriptors to the bridge authorities. We're most of -%the way there, since we can already specify attributes for directory -%authorities: -%add a separate flag named ``blocking''. -% -%Thirdly, need to build paths using bridges as the first -%hop. One more hole in the non-clique assumption. -% -%Lastly, since bridge authorities don't answer full network statuses, -%we need to add a new way for users to learn the current status for a -%single relay or a small set of relays---to answer such questions as -%``is it running?'' or ``is it behaving correctly?'' We describe in -%Section~\ref{subsec:enclave-dirs} a way for the bridge authority to -%publish this information without resorting to signing each answer -%individually. - -\subsection{Putting them together} -\label{subsec:relay-together} - -If a blocked user knows the identity keys of a set of bridge relays, and -he has correct address information for at least one of them, he can use -that one to make a secure connection to the bridge authority and update -his knowledge about the other bridge relays. He can also use it to make -secure connections to the main Tor network and directory authorities, so he -can build circuits and connect to the rest of the Internet. All of these -updates happen in the background: from the blocked user's perspective, -he just accesses the Internet via his Tor client like always. - -So now we've reduced the problem from how to circumvent the firewall -for all transactions (and how to know that the pages you get have not -been modified by the local attacker) to how to learn about a working -bridge relay. - -There's another catch though. We need to make sure that the network -traffic we generate by simply connecting to a bridge relay doesn't stand -out too much. - -%The following section describes ways to bootstrap knowledge of your first -%bridge relay, and ways to maintain connectivity once you know a few -%bridge relays. - -% (See Section~\ref{subsec:first-bridge} for a discussion -%of exactly what information is sufficient to characterize a bridge relay.) - - - -\section{Hiding Tor's network fingerprint} -\label{sec:network-fingerprint} -\label{subsec:enclave-dirs} - -Currently, Tor uses two protocols for its network communications. The -main protocol uses TLS for encrypted and authenticated communication -between Tor instances. The second protocol is standard HTTP, used for -fetching directory information. All Tor relays listen on their ``ORPort'' -for TLS connections, and some of them opt to listen on their ``DirPort'' -as well, to serve directory information. Tor relays choose whatever port -numbers they like; the relay descriptor they publish to the directory -tells users where to connect. - -One format for communicating address information about a bridge relay is -its IP address and DirPort. From there, the user can ask the bridge's -directory cache for an up-to-date copy of its relay descriptor, and -learn its current circuit keys, its ORPort, and so on. - -However, connecting directly to the directory cache involves a plaintext -HTTP request. A censor could create a network fingerprint (known as a -\emph{signature} in the intrusion detection field) for the request -and/or its response, thus preventing these connections. To resolve this -vulnerability, we've modified the Tor protocol so that users can connect -to the directory cache via the main Tor port---they establish a TLS -connection with the bridge as normal, and then send a special ``begindir'' -relay command to establish an internal connection to its directory cache. - -Therefore a better way to summarize a bridge's address is by its IP -address and ORPort, so all communications between the client and the -bridge will use ordinary TLS. But there are other details that need -more investigation. - -What port should bridges pick for their ORPort? We currently recommend -that they listen on port 443 (the default HTTPS port) if they want to -be most useful, because clients behind standard firewalls will have -the best chance to reach them. Is this the best choice in all cases, -or should we encourage some fraction of them pick random ports, or other -ports commonly permitted through firewalls like 53 (DNS) or 110 -(POP)? Or perhaps we should use other ports where TLS traffic is -expected, like 993 (IMAPS) or 995 (POP3S). We need more research on our -potential users, and their current and anticipated firewall restrictions. - -Furthermore, we need to look at the specifics of Tor's TLS handshake. -Right now Tor uses some predictable strings in its TLS handshakes. For -example, it sets the X.509 organizationName field to ``Tor'', and it puts -the Tor relay's nickname in the certificate's commonName field. We -should tweak the handshake protocol so it doesn't rely on any unusual details -in the certificate, yet it remains secure; the certificate itself -should be made to resemble an ordinary HTTPS certificate. We should also try -to make our advertised cipher-suites closer to what an ordinary web server -would support. - -Tor's TLS handshake uses two-certificate chains: one certificate -contains the self-signed identity key for -the router, and the second contains a current TLS key, signed by the -identity key. We use these to authenticate that we're talking to the right -router, and to limit the impact of TLS-key exposure. Most (though far from -all) consumer-oriented HTTPS services provide only a single certificate. -These extra certificates may help identify Tor's TLS handshake; instead, -bridges should consider using only a single TLS key certificate signed by -their identity key, and providing the full value of the identity key in an -early handshake cell. More significantly, Tor currently has all clients -present certificates, so that clients are harder to distinguish from relays. -But in a blocking-resistance environment, clients should not present -certificates at all. - -Last, what if the adversary starts observing the network traffic even -more closely? Even if our TLS handshake looks innocent, our traffic timing -and volume still look different than a user making a secure web connection -to his bank. The same techniques used in the growing trend to build tools -to recognize encrypted Bittorrent traffic -%~\cite{bt-traffic-shaping} -could be used to identify Tor communication and recognize bridge -relays. Rather than trying to look like encrypted web traffic, we may be -better off trying to blend with some other encrypted network protocol. The -first step is to compare typical network behavior for a Tor client to -typical network behavior for various other protocols. This statistical -cat-and-mouse game is made more complex by the fact that Tor transports a -variety of protocols, and we'll want to automatically handle web browsing -differently from, say, instant messaging. - -% Tor cells are 512 bytes each. So TLS records will be roughly -% multiples of this size? How bad is this? -RD -% Look at ``Inferring the Source of Encrypted HTTP Connections'' -% by Marc Liberatore and Brian Neil Levine (CCS 2006) -% They substantially flesh out the numbers for the web fingerprinting -% attack. -PS -% Yes, but I meant detecting the fingerprint of Tor traffic itself, not -% learning what websites we're going to. I wouldn't be surprised to -% learn that these are related problems, but it's not obvious to me. -RD - -\subsection{Identity keys as part of addressing information} -\label{subsec:id-address} - -We have described a way for the blocked user to bootstrap into the -network once he knows the IP address and ORPort of a bridge. What about -local spoofing attacks? That is, since we never learned an identity -key fingerprint for the bridge, a local attacker could intercept our -connection and pretend to be the bridge we had in mind. It turns out -that giving false information isn't that bad---since the Tor client -ships with trusted keys for the bridge directory authority and the Tor -network directory authorities, the user can learn whether he's being -given a real connection to the bridge authorities or not. (After all, -if the adversary intercepts every connection the user makes and gives -him a bad connection each time, there's nothing we can do.) - -What about anonymity-breaking attacks from observing traffic, if the -blocked user doesn't start out knowing the identity key of his intended -bridge? The vulnerabilities aren't so bad in this case either---the -adversary could do similar attacks just by monitoring the network -traffic. -% cue paper by steven and george - -Once the Tor client has fetched the bridge's relay descriptor, it should -remember the identity key fingerprint for that bridge relay. Thus if -the bridge relay moves to a new IP address, the client can query the -bridge directory authority to look up a fresh relay descriptor using -this fingerprint. - -So we've shown that it's \emph{possible} to bootstrap into the network -just by learning the IP address and ORPort of a bridge, but are there -situations where it's more convenient or more secure to learn the bridge's -identity fingerprint as well as instead, while bootstrapping? We keep -that question in mind as we next investigate bootstrapping and discovery. - -\section{Discovering working bridge relays} -\label{sec:discovery} - -Tor's modular design means that we can develop a better relay component -independently of developing the discovery component. This modularity's -great promise is that we can pick any discovery approach we like; but the -unfortunate fact is that we have no magic bullet for discovery. We're -in the same arms race as all the other designs we described in -Section~\ref{sec:related}. - -In this section we describe a variety of approaches to adding discovery -components for our design. - -\subsection{Bootstrapping: finding your first bridge.} -\label{subsec:first-bridge} - -In Section~\ref{subsec:relay-together}, we showed that a user who knows -a working bridge address can use it to reach the bridge authority and -to stay connected to the Tor network. But how do new users reach the -bridge authority in the first place? After all, the bridge authority -will be one of the first addresses that a censor blocks. - -First, we should recognize that most government firewalls are not -perfect. That is, they may allow connections to Google cache or some -open proxy servers, or they let file-sharing traffic, Skype, instant -messaging, or World-of-Warcraft connections through. Different users will -have different mechanisms for bypassing the firewall initially. Second, -we should remember that most people don't operate in a vacuum; users will -hopefully know other people who are in other situations or have other -resources available. In the rest of this section we develop a toolkit -of different options and mechanisms, so that we can enable users in a -diverse set of contexts to bootstrap into the system. - -(For users who can't use any of these techniques, hopefully they know -a friend who can---for example, perhaps the friend already knows some -bridge relay addresses. If they can't get around it at all, then we -can't help them---they should go meet more people or learn more about -the technology running the firewall in their area.) - -By deploying all the schemes in the toolkit at once, we let bridges and -blocked users employ the discovery approach that is most appropriate -for their situation. - -\subsection{Independent bridges, no central discovery} - -The first design is simply to have no centralized discovery component at -all. Volunteers run bridges, and we assume they have some blocked users -in mind and communicate their address information to them out-of-band -(for example, through Gmail). This design allows for small personal -bridges that have only one or a handful of users in mind, but it can -also support an entire community of users. For example, Citizen Lab's -upcoming Psiphon single-hop proxy tool~\cite{psiphon} plans to use this -\emph{social network} approach as its discovery component. - -There are several ways to do bootstrapping in this design. In the simple -case, the operator of the bridge informs each chosen user about his -bridge's address information and/or keys. A different approach involves -blocked users introducing new blocked users to the bridges they know. -That is, somebody in the blocked area can pass along a bridge's address to -somebody else they trust. This scheme brings in appealing but complex game -theoretic properties: the blocked user making the decision has an incentive -only to delegate to trustworthy people, since an adversary who learns -the bridge's address and filters it makes it unavailable for both of them. -Also, delegating known bridges to members of your social network can be -dangerous: an the adversary who can learn who knows which bridges may -be able to reconstruct the social network. - -Note that a central set of bridge directory authorities can still be -compatible with a decentralized discovery process. That is, how users -first learn about bridges is entirely up to the bridges, but the process -of fetching up-to-date descriptors for them can still proceed as described -in Section~\ref{sec:bridges}. Of course, creating a central place that -knows about all the bridges may not be smart, especially if every other -piece of the system is decentralized. Further, if a user only knows -about one bridge and he loses track of it, it may be quite a hassle to -reach the bridge authority. We address these concerns next. - -\subsection{Families of bridges, no central discovery} - -Because the blocked users are running our software too, we have many -opportunities to improve usability or robustness. Our second design builds -on the first by encouraging volunteers to run several bridges at once -(or coordinate with other bridge volunteers), such that some -of the bridges are likely to be available at any given time. - -The blocked user's Tor client would periodically fetch an updated set of -recommended bridges from any of the working bridges. Now the client can -learn new additions to the bridge pool, and can expire abandoned bridges -or bridges that the adversary has blocked, without the user ever needing -to care. To simplify maintenance of the community's bridge pool, each -community could run its own bridge directory authority---reachable via -the available bridges, and also mirrored at each bridge. - -\subsection{Public bridges with central discovery} - -What about people who want to volunteer as bridges but don't know any -suitable blocked users? What about people who are blocked but don't -know anybody on the outside? Here we describe how to make use of these -\emph{public bridges} in a way that still makes it hard for the attacker -to learn all of them. - -The basic idea is to divide public bridges into a set of pools based on -identity key. Each pool corresponds to a \emph{distribution strategy}: -an approach to distributing its bridge addresses to users. Each strategy -is designed to exercise a different scarce resource or property of -the user. - -How do we divide bridges between these strategy pools such that they're -evenly distributed and the allocation is hard to influence or predict, -but also in a way that's amenable to creating more strategies later -on without reshuffling all the pools? We assign a given bridge -to a strategy pool by hashing the bridge's identity key along with a -secret that only the bridge authority knows: the first $n$ bits of this -hash dictate the strategy pool number, where $n$ is a parameter that -describes how many strategy pools we want at this point. We choose $n=3$ -to start, so we divide bridges between 8 pools; but as we later invent -new distribution strategies, we can increment $n$ to split the 8 into -16. Since a bridge can't predict the next bit in its hash, it can't -anticipate which identity key will correspond to a certain new pool -when the pools are split. Further, since the bridge authority doesn't -provide any feedback to the bridge about which strategy pool it's in, -an adversary who signs up bridges with the goal of filling a certain -pool~\cite{casc-rep} will be hindered. - -% This algorithm is not ideal. When we split pools, each existing -% pool is cut in half, where half the bridges remain with the -% old distribution policy, and half will be under what the new one -% is. So the new distribution policy inherits a bunch of blocked -% bridges if the old policy was too loose, or a bunch of unblocked -% bridges if its policy was still secure. -RD -% -% I think it should be more chordlike. -% Bridges are allocated to wherever on the ring which is divided -% into arcs (buckets). -% If a bucket gets too full, you can just split it. -% More on this below. -PFS - -The first distribution strategy (used for the first pool) publishes bridge -addresses in a time-release fashion. The bridge authority divides the -available bridges into partitions, and each partition is deterministically -available only in certain time windows. That is, over the course of a -given time slot (say, an hour), each requester is given a random bridge -from within that partition. When the next time slot arrives, a new set -of bridges from the pool are available for discovery. Thus some bridge -address is always available when a new -user arrives, but to learn about all bridges the attacker needs to fetch -all new addresses at every new time slot. By varying the length of the -time slots, we can make it harder for the attacker to guess when to check -back. We expect these bridges will be the first to be blocked, but they'll -help the system bootstrap until they \emph{do} get blocked. Further, -remember that we're dealing with different blocking regimes around the -world that will progress at different rates---so this pool will still -be useful to some users even as the arms races progress. - -The second distribution strategy publishes bridge addresses based on the IP -address of the requesting user. Specifically, the bridge authority will -divide the available bridges in the pool into a bunch of partitions -(as in the first distribution scheme), hash the requester's IP address -with a secret of its own (as in the above allocation scheme for creating -pools), and give the requester a random bridge from the appropriate -partition. To raise the bar, we should discard the last octet of the -IP address before inputting it to the hash function, so an attacker -who only controls a single ``/24'' network only counts as one user. A -large attacker like China will still be able to control many addresses, -but the hassle of establishing connections from each network (or spoofing -TCP connections) may still slow them down. Similarly, as a special case, -we should treat IP addresses that are Tor exit nodes as all being on -the same network. - -The third strategy combines the time-based and location-based -strategies to further constrain and rate-limit the available bridge -addresses. Specifically, the bridge address provided in a given time -slot to a given network location is deterministic within the partition, -rather than chosen randomly each time from the partition. Thus, repeated -requests during that time slot from a given network are given the same -bridge address as the first request. - -The fourth strategy is based on Circumventor's discovery strategy. -The Circumventor project, realizing that its adoption will remain limited -if it has no central coordination mechanism, has started a mailing list to -distribute new proxy addresses every few days. From experimentation it -seems they have concluded that sending updates every three or four days -is sufficient to stay ahead of the current attackers. - -The fifth strategy provides an alternative approach to a mailing list: -users provide an email address and receive an automated response -listing an available bridge address. We could limit one response per -email address. To further rate limit queries, we could require a CAPTCHA -solution -%~\cite{captcha} -in each case too. In fact, we wouldn't need to -implement the CAPTCHA on our side: if we only deliver bridge addresses -to Yahoo or GMail addresses, we can leverage the rate-limiting schemes -that other parties already impose for account creation. - -The sixth strategy ties in the social network design with public -bridges and a reputation system. We pick some seeds---trusted people in -blocked areas---and give them each a few dozen bridge addresses and a few -\emph{delegation tokens}. We run a website next to the bridge authority, -where users can log in (they connect via Tor, and they don't need to -provide actual identities, just persistent pseudonyms). Users can delegate -trust to other people they know by giving them a token, which can be -exchanged for a new account on the website. Accounts in ``good standing'' -then accrue new bridge addresses and new tokens. As usual, reputation -schemes bring in a host of new complexities~\cite{rep-anon}: how do we -decide that an account is in good standing? We could tie reputation -to whether the bridges they're told about have been blocked---see -Section~\ref{subsec:geoip} below for initial thoughts on how to discover -whether bridges have been blocked. We could track reputation between -accounts (if you delegate to somebody who screws up, it impacts you too), -or we could use blinded delegation tokens~\cite{chaum-blind} to prevent -the website from mapping the seeds' social network. We put off deeper -discussion of the social network reputation strategy for future work. - -Pools seven and eight are held in reserve, in case our currently deployed -tricks all fail at once and the adversary blocks all those bridges---so -we can adapt and move to new approaches quickly, and have some bridges -immediately available for the new schemes. New strategies might be based -on some other scarce resource, such as relaying traffic for others or -other proof of energy spent. (We might also worry about the incentives -for bridges that sign up and get allocated to the reserve pools: will they -be unhappy that they're not being used? But this is a transient problem: -if Tor users are bridges by default, nobody will mind not being used yet. -See also Section~\ref{subsec:incentives}.) - -%Is it useful to load balance which bridges are handed out? The above -%pool concept makes some bridges wildly popular and others less so. -%But I guess that's the point. - -\subsection{Public bridges with coordinated discovery} - -We presented the above discovery strategies in the context of a single -bridge directory authority, but in practice we will want to distribute the -operations over several bridge authorities---a single point of failure -or attack is a bad move. The first answer is to run several independent -bridge directory authorities, and bridges gravitate to one based on -their identity key. The better answer would be some federation of bridge -authorities that work together to provide redundancy but don't introduce -new security issues. We could even imagine designs where the bridge -authorities have encrypted versions of the bridge's relay descriptors, -and the users learn a decryption key that they keep private when they -first hear about the bridge---this way the bridge authorities would not -be able to learn the IP address of the bridges. - -We leave this design question for future work. - -\subsection{Assessing whether bridges are useful} - -Learning whether a bridge is useful is important in the bridge authority's -decision to include it in responses to blocked users. For example, if -we end up with a list of thousands of bridges and only a few dozen of -them are reachable right now, most blocked users will not end up knowing -about working bridges. - -There are three components for assessing how useful a bridge is. First, -is it reachable from the public Internet? Second, what proportion of -the time is it available? Third, is it blocked in certain jurisdictions? - -The first component can be tested just as we test reachability of -ordinary Tor relays. Specifically, the bridges do a self-test---connect -to themselves via the Tor network---before they are willing to -publish their descriptor, to make sure they're not obviously broken or -misconfigured. Once the bridges publish, the bridge authority also tests -reachability to make sure they're not confused or outright lying. - -The second component can be measured and tracked by the bridge authority. -By doing periodic reachability tests, we can get a sense of how often the -bridge is available. More complex tests will involve bandwidth-intensive -checks to force the bridge to commit resources in order to be counted as -available. We need to evaluate how the relationship of uptime percentage -should weigh into our choice of which bridges to advertise. We leave -this to future work. - -The third component is perhaps the trickiest: with many different -adversaries out there, how do we keep track of which adversaries have -blocked which bridges, and how do we learn about new blocks as they -occur? We examine this problem next. - -\subsection{How do we know if a bridge relay has been blocked?} -\label{subsec:geoip} - -There are two main mechanisms for testing whether bridges are reachable -from inside each blocked area: active testing via users, and passive -testing via bridges. - -In the case of active testing, certain users inside each area -sign up as testing relays. The bridge authorities can then use a -Blossom-like~\cite{blossom-thesis} system to build circuits through them -to each bridge and see if it can establish the connection. But how do -we pick the users? If we ask random users to do the testing (or if we -solicit volunteers from the users), the adversary should sign up so he -can enumerate the bridges we test. Indeed, even if we hand-select our -testers, the adversary might still discover their location and monitor -their network activity to learn bridge addresses. - -Another answer is not to measure directly, but rather let the bridges -report whether they're being used. -%If they periodically report to their -%bridge directory authority how much use they're seeing, perhaps the -%authority can make smart decisions from there. -Specifically, bridges should install a GeoIP database such as the public -IP-To-Country list~\cite{ip-to-country}, and then periodically report to the -bridge authorities which countries they're seeing use from. This data -would help us track which countries are making use of the bridge design, -and can also let us learn about new steps the adversary has taken in -the arms race. (The compressed GeoIP database is only several hundred -kilobytes, and we could even automate the update process by serving it -from the bridge authorities.) -More analysis of this passive reachability -testing design is needed to resolve its many edge cases: for example, -if a bridge stops seeing use from a certain area, does that mean the -bridge is blocked or does that mean those users are asleep? - -There are many more problems with the general concept of detecting whether -bridges are blocked. First, different zones of the Internet are blocked -in different ways, and the actual firewall jurisdictions do not match -country borders. Our bridge scheme could help us map out the topology -of the censored Internet, but this is a huge task. More generally, -if a bridge relay isn't reachable, is that because of a network block -somewhere, because of a problem at the bridge relay, or just a temporary -outage somewhere in between? And last, an attacker could poison our -bridge database by signing up already-blocked bridges. In this case, -if we're stingy giving out bridge addresses, users in that country won't -learn working bridges. - -All of these issues are made more complex when we try to integrate this -testing into our social network reputation system above. -Since in that case we punish or reward users based on whether bridges -get blocked, the adversary has new attacks to trick or bog down the -reputation tracking. Indeed, the bridge authority doesn't even know -what zone the blocked user is in, so do we blame him for any possible -censored zone, or what? - -Clearly more analysis is required. The eventual solution will probably -involve a combination of passive measurement via GeoIP and active -measurement from trusted testers. More generally, we can use the passive -feedback mechanism to track usage of the bridge network as a whole---which -would let us respond to attacks and adapt the design, and it would also -let the general public track the progress of the project. - -%Worry: the adversary could choose not to block bridges but just record -%connections to them. So be it, I guess. - -\subsection{Advantages of deploying all solutions at once} - -For once, we're not in the position of the defender: we don't have to -defend against every possible filtering scheme; we just have to defend -against at least one. On the flip side, the attacker is forced to guess -how to allocate his resources to defend against each of these discovery -strategies. So by deploying all of our strategies at once, we not only -increase our chances of finding one that the adversary has difficulty -blocking, but we actually make \emph{all} of the strategies more robust -in the face of an adversary with limited resources. - -%\subsection{Remaining unsorted notes} - -%In the first subsection we describe how to find a first bridge. - -%Going to be an arms race. Need a bag of tricks. Hard to say -%which ones will work. Don't spend them all at once. - -%Some techniques are sufficient to get us an IP address and a port, -%and others can get us IP:port:key. Lay out some plausible options -%for how users can bootstrap into learning their first bridge. - -%\section{The account / reputation system} -%\section{Social networks with directory-side support} -%\label{sec:accounts} - -%One answer is to measure based on whether the bridge addresses -%we give it end up blocked. But how do we decide if they get blocked? - -%Perhaps each bridge should be known by a single bridge directory -%authority. This makes it easier to trace which users have learned about -%it, so easier to blame or reward. It also makes things more brittle, -%since loss of that authority means its bridges aren't advertised until -%they switch, and means its bridge users are sad too. -%(Need a slick hash algorithm that will map our identity key to a -%bridge authority, in a way that's sticky even when we add bridge -%directory authorities, but isn't sticky when our authority goes -%away. Does this exist?) -% [[Ian says: What about just using something like hash table chaining? -% This should work, so long as the client knows which authorities currently -% exist.]] - -%\subsection{Discovery based on social networks} - -%A token that can be exchanged at the bridge authority (assuming you -%can reach it) for a new bridge address. - -%The account server runs as a Tor controller for the bridge authority. - -%Users can establish reputations, perhaps based on social network -%connectivity, perhaps based on not getting their bridge relays blocked, - -%Probably the most critical lesson learned in past work on reputation -%systems in privacy-oriented environments~\cite{rep-anon} is the need for -%verifiable transactions. That is, the entity computing and advertising -%reputations for participants needs to actually learn in a convincing -%way that a given transaction was successful or unsuccessful. - -%(Lesson from designing reputation systems~\cite{rep-anon}: easy to -%reward good behavior, hard to punish bad behavior. - -\section{Security considerations} -\label{sec:security} - -\subsection{Possession of Tor in oppressed areas} - -Many people speculate that installing and using a Tor client in areas with -particularly extreme firewalls is a high risk---and the risk increases -as the firewall gets more restrictive. This notion certainly has merit, but -there's -a counter pressure as well: as the firewall gets more restrictive, more -ordinary people behind it end up using Tor for more mainstream activities, -such as learning -about Wall Street prices or looking at pictures of women's ankles. So -as the restrictive firewall pushes up the number of Tor users, the -``typical'' Tor user becomes more mainstream, and therefore mere -use or possession of the Tor software is not so surprising. - -It's hard to say which of these pressures will ultimately win out, -but we should keep both sides of the issue in mind. - -%Nick, want to rewrite/elaborate on this section? - -%Ian suggests: -% Possession of Tor: this is totally of-the-cuff, and there are lots of -% security issues to think about, but what about an ActiveX version of -% Tor? The magic you learn (as opposed to a bridge address) is a plain -% old HTTPS server, which feeds you an ActiveX applet pre-configured with -% some bridge address (possibly on the same machine). For bonus points, -% somehow arrange that (a) the applet is signed in some way the user can -% reliably check, but (b) don't end up with anything like an incriminating -% long-term cert stored on the user's computer. This may be marginally -% useful in some Internet-cafe situations as well, though (a) is even -% harder to get right there. - - -\subsection{Observers can tell who is publishing and who is reading} -\label{subsec:upload-padding} - -Tor encrypts traffic on the local network, and it obscures the eventual -destination of the communication, but it doesn't do much to obscure the -traffic volume. In particular, a user publishing a home video will have a -different network fingerprint than a user reading an online news article. -Based on our assumption in Section~\ref{sec:adversary} that users who -publish material are in more danger, should we work to improve Tor's -security in this situation? - -In the general case this is an extremely challenging task: -effective \emph{end-to-end traffic confirmation attacks} -are known where the adversary observes the origin and the -destination of traffic and confirms that they are part of the -same communication~\cite{danezis:pet2004,e2e-traffic}. Related are -\emph{website fingerprinting attacks}, where the adversary downloads -a few hundred popular websites, makes a set of "fingerprints" for each -site, and then observes the target Tor client's traffic to look for -a match~\cite{pet05-bissias,defensive-dropping}. But can we do better -against a limited adversary who just does coarse-grained sweeps looking -for unusually prolific publishers? - -One answer is for bridge users to automatically send bursts of padding -traffic periodically. (This traffic can be implemented in terms of -long-range drop cells, which are already part of the Tor specification.) -Of course, convincingly simulating an actual human publishing interesting -content is a difficult arms race, but it may be worthwhile to at least -start the race. More research remains. - -\subsection{Anonymity effects from acting as a bridge relay} - -Against some attacks, relaying traffic for others can improve -anonymity. The simplest example is an attacker who owns a small number -of Tor relays. He will see a connection from the bridge, but he won't -be able to know whether the connection originated there or was relayed -from somebody else. More generally, the mere uncertainty of whether the -traffic originated from that user may be helpful. - -There are some cases where it doesn't seem to help: if an attacker can -watch all of the bridge's incoming and outgoing traffic, then it's easy -to learn which connections were relayed and which started there. (In this -case he still doesn't know the final destinations unless he is watching -them too, but in this case bridges are no better off than if they were -an ordinary client.) - -There are also some potential downsides to running a bridge. First, while -we try to make it hard to enumerate all bridges, it's still possible to -learn about some of them, and for some people just the fact that they're -running one might signal to an attacker that they place a higher value -on their anonymity. Second, there are some more esoteric attacks on Tor -relays that are not as well-understood or well-tested---for example, an -attacker may be able to ``observe'' whether the bridge is sending traffic -even if he can't actually watch its network, by relaying traffic through -it and noticing changes in traffic timing~\cite{attack-tor-oak05}. On -the other hand, it may be that limiting the bandwidth the bridge is -willing to relay will allow this sort of attacker to determine if it's -being used as a bridge but not easily learn whether it is adding traffic -of its own. - -We also need to examine how entry guards fit in. Entry guards -(a small set of nodes that are always used for the first -step in a circuit) help protect against certain attacks -where the attacker runs a few Tor relays and waits for -the user to choose these relays as the beginning and end of her -circuit\footnote{\url{http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#EntryGuards}}. -If the blocked user doesn't use the bridge's entry guards, then the bridge -doesn't gain as much cover benefit. On the other hand, what design changes -are needed for the blocked user to use the bridge's entry guards without -learning what they are (this seems hard), and even if we solve that, -do they then need to use the guards' guards and so on down the line? - -It is an open research question whether the benefits of running a bridge -outweigh the risks. A lot of the decision rests on which attacks the -users are most worried about. For most users, we don't think running a -bridge relay will be that damaging, and it could help quite a bit. - -\subsection{Trusting local hardware: Internet cafes and LiveCDs} -\label{subsec:cafes-and-livecds} - -Assuming that users have their own trusted hardware is not -always reasonable. - -For Internet cafe Windows computers that let you attach your own USB key, -a USB-based Tor image would be smart. There's Torpark, and hopefully -there will be more thoroughly analyzed and trustworthy options down the -road. Worries remain about hardware or software keyloggers and other -spyware, as well as physical surveillance. - -If the system lets you boot from a CD or from a USB key, you can gain -a bit more security by bringing a privacy LiveCD with you. (This -approach isn't foolproof either of course, since hardware -keyloggers and physical surveillance are still a worry). - -In fact, LiveCDs are also useful if it's your own hardware, since it's -easier to avoid leaving private data and logs scattered around the -system. - -%\subsection{Forward compatibility and retiring bridge authorities} -% -%Eventually we'll want to change the identity key and/or location -%of a bridge authority. How do we do this mostly cleanly? - -\subsection{The trust chain} -\label{subsec:trust-chain} - -Tor's ``public key infrastructure'' provides a chain of trust to -let users verify that they're actually talking to the right relays. -There are four pieces to this trust chain. - -First, when Tor clients are establishing circuits, at each step -they demand that the next Tor relay in the path prove knowledge of -its private key~\cite{tor-design}. This step prevents the first node -in the path from just spoofing the rest of the path. Second, the -Tor directory authorities provide a signed list of relays along with -their public keys---so unless the adversary can control a threshold -of directory authorities, he can't trick the Tor client into using other -Tor relays. Third, the location and keys of the directory authorities, -in turn, is hard-coded in the Tor source code---so as long as the user -got a genuine version of Tor, he can know that he is using the genuine -Tor network. And last, the source code and other packages are signed -with the GPG keys of the Tor developers, so users can confirm that they -did in fact download a genuine version of Tor. - -In the case of blocked users contacting bridges and bridge directory -authorities, the same logic applies in parallel: the blocked users fetch -information from both the bridge authorities and the directory authorities -for the `main' Tor network, and they combine this information locally. - -How can a user in an oppressed country know that he has the correct -key fingerprints for the developers? As with other security systems, it -ultimately comes down to human interaction. The keys are signed by dozens -of people around the world, and we have to hope that our users have met -enough people in the PGP web of trust -%~\cite{pgp-wot} -that they can learn -the correct keys. For users that aren't connected to the global security -community, though, this question remains a critical weakness. - -%\subsection{Security through obscurity: publishing our design} - -%Many other schemes like dynaweb use the typical arms race strategy of -%not publishing their plans. Our goal here is to produce a design---a -%framework---that can be public and still secure. Where's the tradeoff? - -%\section{Performance improvements} -%\label{sec:performance} -% -%\subsection{Fetch relay descriptors just-in-time} -% -%I guess we should encourage most places to do this, so blocked -%users don't stand out. -% -% -%network-status and directory optimizations. caching better. partitioning -%issues? - -\section{Maintaining reachability} -\label{sec:reachability} - -\subsection{How many bridge relays should you know about?} - -The strategies described in Section~\ref{sec:discovery} talked about -learning one bridge address at a time. But if most bridges are ordinary -Tor users on cable modem or DSL connection, many of them will disappear -and/or move periodically. How many bridge relays should a blocked user -know about so that she is likely to have at least one reachable at any -given point? This is already a challenging problem if we only consider -natural churn: the best approach is to see what bridges we attract in -reality and measure their churn. We may also need to factor in a parameter -for how quickly bridges get discovered and blocked by the attacker; -we leave this for future work after we have more deployment experience. - -A related question is: if the bridge relays change IP addresses -periodically, how often does the blocked user need to fetch updates in -order to keep from being cut out of the loop? - -Once we have more experience and intuition, we should explore technical -solutions to this problem too. For example, if the discovery strategies -give out $k$ bridge addresses rather than a single bridge address, perhaps -we can improve robustness from the user perspective without significantly -aiding the adversary. Rather than giving out a new random subset of $k$ -addresses at each point, we could bind them together into \emph{bridge -families}, so all users that learn about one member of the bridge family -are told about the rest as well. - -This scheme may also help defend against attacks to map the set of -bridges. That is, if all blocked users learn a random subset of bridges, -the attacker should learn about a few bridges, monitor the country-level -firewall for connections to them, then watch those users to see what -other bridges they use, and repeat. By segmenting the bridge address -space, we can limit the exposure of other users. - -\subsection{Cablemodem users don't usually provide important websites} -\label{subsec:block-cable} - -Another attacker we might be concerned about is that the attacker could -just block all DSL and cablemodem network addresses, on the theory that -they don't run any important services anyway. If most of our bridges -are on these networks, this attack could really hurt. - -The first answer is to aim to get volunteers both from traditionally -``consumer'' networks and also from traditionally ``producer'' networks. -Since bridges don't need to be Tor exit nodes, as we improve our usability -it seems quite feasible to get a lot of websites helping out. - -The second answer (not as practical) would be to encourage more use of -consumer networks for popular and useful Internet services. -%(But P2P exists; -%minor websites exist; gaming exists; IM exists; ...) - -A related attack we might worry about is based on large countries putting -economic pressure on companies that want to expand their business. For -example, what happens if Verizon wants to sell services in China, and -China pressures Verizon to discourage its users in the free world from -running bridges? - -\subsection{Scanning resistance: making bridges more subtle} - -If it's trivial to verify that a given address is operating as a bridge, -and most bridges run on a predictable port, then it's conceivable our -attacker could scan the whole Internet looking for bridges. (In fact, -he can just concentrate on scanning likely networks like cablemodem -and DSL services---see Section~\ref{subsec:block-cable} above for -related attacks.) It would be nice to slow down this attack. It would -be even nicer to make it hard to learn whether we're a bridge without -first knowing some secret. We call this general property \emph{scanning -resistance}, and it goes along with normalizing Tor's TLS handshake and -network fingerprint. - -We could provide a password to the blocked user, and she (or her Tor -client) provides a nonced hash of this password when she connects. We'd -need to give her an ID key for the bridge too (in addition to the IP -address and port---see Section~\ref{subsec:id-address}), and wait to -present the password until we've finished the TLS handshake, else it -would look unusual. If Alice can authenticate the bridge before she -tries to send her password, we can resist an adversary who pretends -to be the bridge and launches a man-in-the-middle attack to learn the -password. But even if she can't, we still resist against widespread -scanning. - -How should the bridge behave if accessed without the correct -authorization? Perhaps it should act like an unconfigured HTTPS server -(``welcome to the default Apache page''), or maybe it should mirror -and act like common websites, or websites randomly chosen from Google. - -We might assume that the attacker can recognize HTTPS connections that -use self-signed certificates. (This process would be resource-intensive -but not out of the realm of possibility.) But even in this case, many -popular websites around the Internet use self-signed or just plain broken -SSL certificates. - -%to unknown servers. It can then attempt to connect to them and block -%connections to servers that seem suspicious. It may be that password -%protected web sites will not be suspicious in general, in which case -%that may be the easiest way to give controlled access to the bridge. -%If such sites that have no other overt features are automatically -%blocked when detected, then we may need to be more subtle. -%Possibilities include serving an innocuous web page if a TLS encrypted -%request is received without the authorization needed to access the Tor -%network and only responding to a requested access to the Tor network -%of proper authentication is given. If an unauthenticated request to -%access the Tor network is sent, the bridge should respond as if -%it has received a message it does not understand (as would be the -%case were it not a bridge). - -% Ian suggests a ``socialist millionaires'' protocol here, for something. - -% Did we once mention knocking here? it's a good idea, but we should clarify -% what we mean. Ian also notes that knocking itself is very fingerprintable, -% and we should beware. - -\subsection{How to motivate people to run bridge relays} -\label{subsec:incentives} - -One of the traditional ways to get people to run software that benefits -others is to give them motivation to install it themselves. An often -suggested approach is to install it as a stunning screensaver so everybody -will be pleased to run it. We take a similar approach here, by leveraging -the fact that these users are already interested in protecting their -own Internet traffic, so they will install and run the software. - -Eventually, we may be able to make all Tor users become bridges if they -pass their self-reachability tests---the software and installers need -more work on usability first, but we're making progress. - -In the mean time, we can make a snazzy network graph with -Vidalia\footnote{\url{http://vidalia-project.net/}} that -emphasizes the connections the bridge user is currently relaying. -%(Minor -%anonymity implications, but hey.) (In many cases there won't be much -%activity, so this may backfire. Or it may be better suited to full-fledged -%Tor relay.) - -% Also consider everybody-a-relay. Many of the scalability questions -% are easier when you're talking about making everybody a bridge. - -%\subsection{What if the clients can't install software?} - -%[this section should probably move to the related work section, -%or just disappear entirely.] - -%Bridge users without Tor software - -%Bridge relays could always open their socks proxy. This is bad though, -%first -%because bridges learn the bridge users' destinations, and second because -%we've learned that open socks proxies tend to attract abusive users who -%have no idea they're using Tor. - -%Bridges could require passwords in the socks handshake (not supported -%by most software including Firefox). Or they could run web proxies -%that require authentication and then pass the requests into Tor. This -%approach is probably a good way to help bootstrap the Psiphon network, -%if one of its barriers to deployment is a lack of volunteers willing -%to exit directly to websites. But it clearly drops some of the nice -%anonymity and security features Tor provides. - -%A hybrid approach where the user gets his anonymity from Tor but his -%software-less use from a web proxy running on a trusted machine on the -%free side. - -\subsection{Publicity attracts attention} -\label{subsec:publicity} - -Many people working on this field want to publicize the existence -and extent of censorship concurrently with the deployment of their -circumvention software. The easy reason for this two-pronged push is -to attract volunteers for running proxies in their systems; but in many -cases their main goal is not to focus on getting more users signed up, -but rather to educate the rest of the world about the -censorship. The media also tries to do its part by broadcasting the -existence of each new circumvention system. - -But at the same time, this publicity attracts the attention of the -censors. We can slow down the arms race by not attracting as much -attention, and just spreading by word of mouth. If our goal is to -establish a solid social network of bridges and bridge users before -the adversary gets involved, does this extra attention work to our -disadvantage? - -\subsection{The Tor website: how to get the software} - -One of the first censoring attacks against a system like ours is to -block the website and make the software itself hard to find. Our system -should work well once the user is running an authentic -copy of Tor and has found a working bridge, but to get to that point -we rely on their individual skills and ingenuity. - -Right now, most countries that block access to Tor block only the main -website and leave mirrors and the network itself untouched. -Falling back on word-of-mouth is always a good last resort, but we should -also take steps to make sure it's relatively easy for users to get a copy, -such as publicizing the mirrors more and making copies available through -other media. We might also mirror the latest version of the software on -each bridge, so users who hear about an honest bridge can get a good -copy. -See Section~\ref{subsec:first-bridge} for more discussion. - -% Ian suggests that we have every tor relay distribute a signed copy of the -% software. - -\section{Next Steps} -\label{sec:conclusion} - -Technical solutions won't solve the whole censorship problem. After all, -the firewalls in places like China are \emph{socially} very -successful, even if technologies and tricks exist to get around them. -However, having a strong technical solution is still necessary as one -important piece of the puzzle. - -In this paper, we have shown that Tor provides a great set of building -blocks to start from. The next steps are to deploy prototype bridges and -bridge authorities, implement some of the proposed discovery strategies, -and then observe the system in operation and get more intuition about -the actual requirements and adversaries we're up against. - -\bibliographystyle{plain} \bibliography{tor-design} - -%\appendix - -%\section{Counting Tor users by country} -%\label{app:geoip} - -\end{document} - - - -\section{Future designs} -\label{sec:future} - -\subsection{Bridges inside the blocked network too} - -Assuming actually crossing the firewall is the risky part of the -operation, can we have some bridge relays inside the blocked area too, -and more established users can use them as relays so they don't need to -communicate over the firewall directly at all? A simple example here is -to make new blocked users into internal bridges also---so they sign up -on the bridge authority as part of doing their query, and we give out -their addresses -rather than (or along with) the external bridge addresses. This design -is a lot trickier because it brings in the complexity of whether the -internal bridges will remain available, can maintain reachability with -the outside world, etc. - -More complex future designs involve operating a separate Tor network -inside the blocked area, and using \emph{hidden service bridges}---bridges -that can be accessed by users of the internal Tor network but whose -addresses are not published or findable, even by these users---to get -from inside the firewall to the rest of the Internet. But this design -requires directory authorities to run inside the blocked area too, -and they would be a fine target to take down the network. - -% Hidden services as bridge directory authorities. - - ------------------------------------------- - -ship geoip db to bridges. they look up users who tls to them in the db, -and upload a signed list of countries and number-of-users each day. the -bridge authority aggregates them and publishes stats. - -bridge relays have buddies -they ask a user to test the reachability of their buddy. -leaks O(1) bridges, but not O(n). - -we should not be blockable by ordinary cisco censorship features. -that is, if they want to block our new design, they will need to -add a feature to block exactly this. -strategically speaking, this may come in handy. - -Bridges come in clumps of 4 or 8 or whatever. If you know one bridge -in a clump, the authority will tell you the rest. Now bridges can -ask users to test reachability of their buddies. - -Giving out clumps helps with dynamic IP addresses too. Whether it -should be 4 or 8 depends on our churn. - -the account server. let's call it a database, it doesn't have to -be a thing that human interacts with. - -so how do we reward people for being good? - -\subsubsection{Public Bridges with Coordinated Discovery} - -****Pretty much this whole subsubsection will probably need to be -deferred until ``later'' and moved to after end document, but I'm leaving -it here for now in case useful.****** - -Rather than be entirely centralized, we can have a coordinated -collection of bridge authorities, analogous to how Tor network -directory authorities now work. - -Key components -``Authorities'' will distribute caches of what they know to overlapping -collections of nodes so that no one node is owned by one authority. -Also so that it is impossible to DoS info maintained by one authority -simply by making requests to it. - -Where a bridge gets assigned is not predictable by the bridge? - -If authorities don't know the IP addresses of the bridges they -are responsible for, they can't abuse that info (or be attacked for -having it). But, they also can't, e.g., control being sent massive -lists of nodes that were never good. This raises another question. -We generally decry use of IP address for location, etc. but we -need to do that to limit the introduction of functional but useless -IP addresses because, e.g., they are in China and the adversary -owns massive chunks of the IP space there. - -We don't want an arbitrary someone to be able to contact the -authorities and say an IP address is bad because it would be easy -for an adversary to take down all the suspicious bridges -even if they provide good cover websites, etc. Only the bridge -itself and/or the directory authority can declare a bridge blocked -from somewhere. - - -9. Bridge directories must not simply be a handful of nodes that -provide the list of bridges. They must flood or otherwise distribute -information out to other Tor nodes as mirrors. That way it becomes -difficult for censors to flood the bridge directory authorities with -requests, effectively denying access for others. But, there's lots of -churn and a much larger size than Tor directories. We are forced to -handle the directory scaling problem here much sooner than for the -network in general. Authorities can pass their bridge directories -(and policy info) to some moderate number of unidentified Tor nodes. -Anyone contacting one of those nodes can get bridge info. the nodes -must remain somewhat synched to prevent the adversary from abusing, -e.g., a timed release policy or the distribution to those nodes must -be resilient even if they are not coordinating. - -I think some kind of DHT like scheme would work here. A Tor node is -assigned a chunk of the directory. Lookups in the directory should be -via hashes of keys (fingerprints) and that should determine the Tor -nodes responsible. Ordinary directories can publish lists of Tor nodes -responsible for fingerprint ranges. Clients looking to update info on -some bridge will make a Tor connection to one of the nodes responsible -for that address. Instead of shutting down a circuit after getting -info on one address, extend it to another that is responsible for that -address (the node from which you are extending knows you are doing so -anyway). Keep going. This way you can amortize the Tor connection. - -10. We need some way to give new identity keys out to those who need -them without letting those get immediately blocked by authorities. One -way is to give a fingerprint that gets you more fingerprints, as -already described. These are meted out/updated periodically but allow -us to keep track of which sources are compromised: if a distribution -fingerprint repeatedly leads to quickly blocked bridges, it should be -suspect, dropped, etc. Since we're using hashes, there shouldn't be a -correlation with bridge directory mirrors, bridges, portions of the -network observed, etc. It should just be that the authorities know -about that key that leads to new addresses. - -This last point is very much like the issues in the valet nodes paper, -which is essentially about blocking resistance wrt exiting the Tor network, -while this paper is concerned with blocking the entering to the Tor network. -In fact the tickets used to connect to the IPo (Introduction Point), -could serve as an example, except that instead of authorizing -a connection to the Hidden Service, it's authorizing the downloading -of more fingerprints. - -Also, the fingerprints can follow the hash(q + '1' + cookie) scheme of -that paper (where q = hash(PK + salt) gave the q.onion address). This -allows us to control and track which fingerprint was causing problems. - -Note that, unlike many settings, the reputation problem should not be -hard here. If a bridge says it is blocked, then it might as well be. -If an adversary can say that the bridge is blocked wrt -$\mathit{censor}_i$, then it might as well be, since -$\mathit{censor}_i$ can presumably then block that bridge if it so -chooses. - -11. How much damage can the adversary do by running nodes in the Tor -network and watching for bridge nodes connecting to it? (This is -analogous to an Introduction Point watching for Valet Nodes connecting -to it.) What percentage of the network do you need to own to do how -much damage. Here the entry-guard design comes in helpfully. So we -need to have bridges use entry-guards, but (cf. 3 above) not use -bridges as entry-guards. Here's a serious tradeoff (again akin to the -ratio of valets to IPos) the more bridges/client the worse the -anonymity of that client. The fewer bridges/client the worse the -blocking resistance of that client. - - - diff --git a/doc/design-paper/cell-struct.eps b/doc/design-paper/cell-struct.eps deleted file mode 100644 index eb9fcb8643..0000000000 --- a/doc/design-paper/cell-struct.eps +++ /dev/null @@ -1,189 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: cell-struct.fig -%%Creator: fig2dev Version 3.2 Patchlevel 4 -%%CreationDate: Mon May 17 00:04:58 2004 -%%For: root@localhost.localdomain (root) -%%BoundingBox: 0 0 254 73 -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 73 moveto 0 0 lineto 254 0 lineto 254 73 lineto closepath clip newpath --35.3 77.2 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06000 0.06000 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Polyline -7.500 slw -n 1200 975 m - 1200 1275 l gs col0 s gr -% Polyline -n 1725 975 m - 1725 1275 l gs col0 s gr -% Polyline -n 600 975 m 4800 975 l 4800 1275 l 600 1275 l - cp gs col0 s gr -% Polyline -n 1200 300 m - 1200 600 l gs col0 s gr -% Polyline -n 1725 300 m - 1725 600 l gs col0 s gr -% Polyline -n 600 300 m 4800 300 l 4800 600 l 600 600 l - cp gs col0 s gr -% Polyline -n 2550 975 m - 2550 1275 l gs col0 s gr -% Polyline -n 3150 975 m - 3150 1275 l gs col0 s gr -% Polyline -n 3450 975 m - 3450 1275 l gs col0 s gr -% Polyline -n 3900 975 m - 3900 1275 l gs col0 s gr -/Times-Roman ff 180.00 scf sf -675 1200 m -gs 1 -1 sc (CircID) col0 sh gr -/Times-Roman ff 180.00 scf sf -900 900 m -gs 1 -1 sc (2) col0 sh gr -/Times-Roman ff 180.00 scf sf -1275 1200 m -gs 1 -1 sc (Relay) col0 sh gr -/Times-Roman ff 180.00 scf sf -1800 1200 m -gs 1 -1 sc (StreamID) col0 sh gr -/Times-Roman ff 180.00 scf sf -2625 1200 m -gs 1 -1 sc (Digest) col0 sh gr -/Times-Roman ff 180.00 scf sf -3150 1200 m -gs 1 -1 sc (Len) col0 sh gr -/Times-Roman ff 180.00 scf sf -4200 1200 m -gs 1 -1 sc (DATA) col0 sh gr -/Times-Roman ff 180.00 scf sf -675 525 m -gs 1 -1 sc (CircID) col0 sh gr -/Times-Roman ff 180.00 scf sf -1275 525 m -gs 1 -1 sc (CMD) col0 sh gr -/Times-Roman ff 180.00 scf sf -900 225 m -gs 1 -1 sc (2) col0 sh gr -/Times-Roman ff 180.00 scf sf -1425 225 m -gs 1 -1 sc (1) col0 sh gr -/Times-Roman ff 180.00 scf sf -3225 525 m -gs 1 -1 sc (DATA) col0 sh gr -/Times-Roman ff 180.00 scf sf -3225 900 m -gs 1 -1 sc (2) col0 sh gr -/Times-Roman ff 180.00 scf sf -3450 1200 m -gs 1 -1 sc (CMD) col0 sh gr -/Times-Roman ff 180.00 scf sf -3600 900 m -gs 1 -1 sc (1) col0 sh gr -/Times-Roman ff 180.00 scf sf -3300 225 m -gs 1 -1 sc (509 bytes) col0 sh gr -/Times-Roman ff 180.00 scf sf -1425 900 m -gs 1 -1 sc (1) col0 sh gr -/Times-Roman ff 180.00 scf sf -2100 900 m -gs 1 -1 sc (2) col0 sh gr -/Times-Roman ff 180.00 scf sf -2850 900 m -gs 1 -1 sc (6) col0 sh gr -/Times-Roman ff 180.00 scf sf -4350 900 m -gs 1 -1 sc (498) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage diff --git a/doc/design-paper/cell-struct.fig b/doc/design-paper/cell-struct.fig deleted file mode 100644 index 3490673ca6..0000000000 --- a/doc/design-paper/cell-struct.fig +++ /dev/null @@ -1,49 +0,0 @@ -#FIG 3.2 -Landscape -Center -Inches -Letter -100.00 -Single --2 -1200 2 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1200 975 1200 1275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1725 975 1725 1275 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 600 975 4800 975 4800 1275 600 1275 600 975 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1200 300 1200 600 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1725 300 1725 600 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 600 300 4800 300 4800 600 600 600 600 300 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 2550 975 2550 1275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 3150 975 3150 1275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 3450 975 3450 1275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 3900 975 3900 1275 -4 0 0 50 -1 0 12 0.0000 4 135 510 675 1200 CircID\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 900 900 2\001 -4 0 0 50 -1 0 12 0.0000 4 180 435 1275 1200 Relay\001 -4 0 0 50 -1 0 12 0.0000 4 135 735 1800 1200 StreamID\001 -4 0 0 50 -1 0 12 0.0000 4 180 510 2625 1200 Digest\001 -4 0 0 50 -1 0 12 0.0000 4 135 285 3150 1200 Len\001 -4 0 0 50 -1 0 12 0.0000 4 135 510 4200 1200 DATA\001 -4 0 0 50 -1 0 12 0.0000 4 135 510 675 525 CircID\001 -4 0 0 50 -1 0 12 0.0000 4 135 420 1275 525 CMD\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 900 225 2\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 1425 225 1\001 -4 0 0 50 -1 0 12 0.0000 4 135 510 3225 525 DATA\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 3225 900 2\001 -4 0 0 50 -1 0 12 0.0000 4 135 420 3450 1200 CMD\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 3600 900 1\001 -4 0 0 50 -1 0 12 0.0000 4 180 735 3300 225 509 bytes\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 1425 900 1\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 2100 900 2\001 -4 0 0 50 -1 0 12 0.0000 4 135 90 2850 900 6\001 -4 0 0 50 -1 0 12 0.0000 4 135 270 4350 900 498\001 diff --git a/doc/design-paper/cell-struct.pdf b/doc/design-paper/cell-struct.pdf deleted file mode 100644 index 8ca52deeb90a5d4a7a6de6fc4dba5dc1b03f6653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6175 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 diff --git a/doc/design-paper/challenges.tex b/doc/design-paper/challenges.tex deleted file mode 100644 index 6949693bf0..0000000000 --- a/doc/design-paper/challenges.tex +++ /dev/null @@ -1,1505 +0,0 @@ -\documentclass{llncs} - -\usepackage{url} -\usepackage{amsmath} -\usepackage{epsfig} - -\setlength{\textwidth}{5.9in} -\setlength{\textheight}{8.4in} -\setlength{\topmargin}{.5cm} -\setlength{\oddsidemargin}{1cm} -\setlength{\evensidemargin}{1cm} - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} - -\begin{document} - -\title{Challenges in deploying low-latency anonymity (DRAFT)} - -\author{Roger Dingledine\inst{1} \and -Nick Mathewson\inst{1} \and -Paul Syverson\inst{2}} -\institute{The Free Haven Project \email{<\{arma,nickm\}@freehaven.net>} \and -Naval Research Laboratory \email{}} - -\maketitle -\pagestyle{plain} - -\begin{abstract} - There are many unexpected or unexpectedly difficult obstacles to - deploying anonymous communications. Drawing on our experiences deploying - Tor (the second-generation onion routing network), we describe social - challenges and technical issues that must be faced - in building, deploying, and sustaining a scalable, distributed, low-latency - anonymity network. -\end{abstract} - -\section{Introduction} -% Your network is not practical unless it is sustainable and distributed. -Anonymous communication is full of surprises. This paper discusses some -unexpected challenges arising from our experiences deploying Tor, a -low-latency general-purpose anonymous communication system. We will discuss -some of the difficulties we have experienced and how we have met them (or how -we plan to meet them, if we know). We also discuss some less -troublesome open problems that we must nevertheless eventually address. -%We will describe both those future challenges that we intend to explore and -%those that we have decided not to explore and why. - -Tor is an overlay network for anonymizing TCP streams over the -Internet~\cite{tor-design}. It addresses limitations in earlier Onion -Routing designs~\cite{or-ih96,or-jsac98,or-discex00,or-pet00} by adding -perfect forward secrecy, congestion control, directory servers, data -integrity, configurable exit policies, and location-hidden services using -rendezvous points. Tor works on the real-world Internet, requires no special -privileges or kernel modifications, requires little synchronization or -coordination between nodes, and provides a reasonable trade-off between -anonymity, usability, and efficiency. - -We deployed the public Tor network in October 2003; since then it has -grown to over a hundred volunteer-operated nodes -and as much as 80 megabits of -average traffic per second. Tor's research strategy has focused on deploying -a network to as many users as possible; thus, we have resisted designs that -would compromise deployability by imposing high resource demands on node -operators, and designs that would compromise usability by imposing -unacceptable restrictions on which applications we support. Although this -strategy has -drawbacks (including a weakened threat model, as discussed below), it has -made it possible for Tor to serve many thousands of users and attract -funding from diverse sources whose goals range from security on a -national scale down to individual liberties. - -In~\cite{tor-design} we gave an overall view of Tor's -design and goals. Here we describe some policy, social, and technical -issues that we face as we continue deployment. -Rather than providing complete solutions to every problem, we -instead lay out the challenges and constraints that we have observed while -deploying Tor. In doing so, we aim to provide a research agenda -of general interest to projects attempting to build -and deploy practical, usable anonymity networks in the wild. - -%While the Tor design paper~\cite{tor-design} gives an overall view its -%design and goals, -%this paper describes the policy and technical issues that Tor faces as -%we continue deployment. Rather than trying to provide complete solutions -%to every problem here, we lay out the assumptions and constraints -%that we have observed through deploying Tor in the wild. In doing so, we -%aim to create a research agenda for others to -%help in addressing these issues. -% Section~\ref{sec:what-is-tor} gives an -%overview of the Tor -%design and ours goals. Sections~\ref{sec:crossroads-policy} -%and~\ref{sec:crossroads-design} go on to describe the practical challenges, -%both policy and technical respectively, -%that stand in the way of moving -%from a practical useful network to a practical useful anonymous network. - -%\section{What Is Tor} -\section{Background} -Here we give a basic overview of the Tor design and its properties, and -compare Tor to other low-latency anonymity designs. - -\subsection{Tor, threat models, and distributed trust} -\label{sec:what-is-tor} - -%Here we give a basic overview of the Tor design and its properties. For -%details on the design, assumptions, and security arguments, we refer -%the reader to the Tor design paper~\cite{tor-design}. - -Tor provides \emph{forward privacy}, so that users can connect to -Internet sites without revealing their logical or physical locations -to those sites or to observers. It also provides \emph{location-hidden -services}, so that servers can support authorized users without -giving an effective vector for physical or online attackers. -Tor provides these protections even when a portion of its -infrastructure is compromised. - -To connect to a remote server via Tor, the client software learns a signed -list of Tor nodes from one of several central \emph{directory servers}, and -incrementally creates a private pathway or \emph{circuit} of encrypted -connections through authenticated Tor nodes on the network, negotiating a -separate set of encryption keys for each hop along the circuit. The circuit -is extended one node at a time, and each node along the way knows only the -immediately previous and following nodes in the circuit, so no individual Tor -node knows the complete path that each fixed-sized data packet (or -\emph{cell}) will take. -%Because each node sees no more than one hop in the -%circuit, -Thus, neither an eavesdropper nor a compromised node can -see both the connection's source and destination. Later requests use a new -circuit, to complicate long-term linkability between different actions by -a single user. - -Tor also helps servers hide their locations while -providing services such as web publishing or instant -messaging. Using ``rendezvous points'', other Tor users can -connect to these authenticated hidden services, neither one learning the -other's network identity. - -Tor attempts to anonymize the transport layer, not the application layer. -This approach is useful for applications such as SSH -where authenticated communication is desired. However, when anonymity from -those with whom we communicate is desired, -application protocols that include personally identifying information need -additional application-level scrubbing proxies, such as -Privoxy~\cite{privoxy} for HTTP\@. Furthermore, Tor does not relay arbitrary -IP packets; it only anonymizes TCP streams and DNS requests -%, and only supports -%connections via SOCKS -(but see Section~\ref{subsec:tcp-vs-ip}). - -Most node operators do not want to allow arbitrary TCP traffic. % to leave -%their server. -To address this, Tor provides \emph{exit policies} so -each exit node can block the IP addresses and ports it is unwilling to allow. -Tor nodes advertise their exit policies to the directory servers, so that -clients can tell which nodes will support their connections. - -As of January 2005, the Tor network has grown to around a hundred nodes -on four continents, with a total capacity exceeding 1Gbit/s. Appendix A -shows a graph of the number of working nodes over time, as well as a -graph of the number of bytes being handled by the network over time. -The network is now sufficiently diverse for further development -and testing; but of course we always encourage new nodes -to join. - -Tor research and development has been funded by ONR and DARPA -for use in securing government -communications, and by the Electronic Frontier Foundation for use -in maintaining civil liberties for ordinary citizens online. The Tor -protocol is one of the leading choices -for the anonymizing layer in the European Union's PRIME directive to -help maintain privacy in Europe. -The AN.ON project in Germany -has integrated an independent implementation of the Tor protocol into -their popular Java Anon Proxy anonymizing client. -% This wide variety of -%interests helps maintain both the stability and the security of the -%network. - -\medskip -\noindent -{\bf Threat models and design philosophy.} -The ideal Tor network would be practical, useful and anonymous. When -trade-offs arise between these properties, Tor's research strategy has been -to remain useful enough to attract many users, -and practical enough to support them. Only subject to these -constraints do we try to maximize -anonymity.\footnote{This is not the only possible -direction in anonymity research: designs exist that provide more anonymity -than Tor at the expense of significantly increased resource requirements, or -decreased flexibility in application support (typically because of increased -latency). Such research does not typically abandon aspirations toward -deployability or utility, but instead tries to maximize deployability and -utility subject to a certain degree of structural anonymity (structural because -usability and practicality affect usage which affects the actual anonymity -provided by the network \cite{econymics,back01}).} -%{We believe that these -%approaches can be promising and useful, but that by focusing on deploying a -%usable system in the wild, Tor helps us experiment with the actual parameters -%of what makes a system ``practical'' for volunteer operators and ``useful'' -%for home users, and helps illuminate undernoticed issues which any deployed -%volunteer anonymity network will need to address.} -Because of our strategy, Tor has a weaker threat model than many designs in -the literature. In particular, because we -support interactive communications without impractically expensive padding, -we fall prey to a variety -of intra-network~\cite{back01,attack-tor-oak05,flow-correlation04} and -end-to-end~\cite{danezis:pet2004,SS03} anonymity-breaking attacks. - -Tor does not attempt to defend against a global observer. In general, an -attacker who can measure both ends of a connection through the Tor network -% I say 'measure' rather than 'observe', to encompass murdoch-danezis -% style attacks. -RD -can correlate the timing and volume of data on that connection as it enters -and leaves the network, and so link communication partners. -Known solutions to this attack would seem to require introducing a -prohibitive degree of traffic padding between the user and the network, or -introducing an unacceptable degree of latency (but see Section -\ref{subsec:mid-latency}). Also, it is not clear that these methods would -work at all against a minimally active adversary who could introduce timing -patterns or additional traffic. Thus, Tor only attempts to defend against -external observers who cannot observe both sides of a user's connections. - - -Against internal attackers who sign up Tor nodes, the situation is more -complicated. In the simplest case, if an adversary has compromised $c$ of -$n$ nodes on the Tor network, then the adversary will be able to compromise -a random circuit with probability $\frac{c^2}{n^2}$ (since the circuit -initiator chooses hops randomly). But there are -complicating factors: -(1)~If the user continues to build random circuits over time, an adversary - is pretty certain to see a statistical sample of the user's traffic, and - thereby can build an increasingly accurate profile of her behavior. (See - Section~\ref{subsec:helper-nodes} for possible solutions.) -(2)~An adversary who controls a popular service outside the Tor network - can be certain to observe all connections to that service; he - can therefore trace connections to that service with probability - $\frac{c}{n}$. -(3)~Users do not in fact choose nodes with uniform probability; they - favor nodes with high bandwidth or uptime, and exit nodes that - permit connections to their favorite services. -(See Section~\ref{subsec:routing-zones} for discussion of larger -adversaries and our dispersal goals.) - -% I'm trying to make this paragraph work without reference to the -% analysis/confirmation distinction, which we haven't actually introduced -% yet, and which we realize isn't very stable anyway. Also, I don't want to -% deprecate these attacks if we can't demonstrate that they don't work, since -% in case they *do* turn out to work well against Tor, we'll look pretty -% foolish. -NM -More powerful attacks may exist. In \cite{hintz-pet02} it was -shown that an attacker who can catalog data volumes of popular -responder destinations (say, websites with consistent data volumes) may not -need to -observe both ends of a stream to learn source-destination links for those -responders. -Similarly, latencies of going through various routes can be -cataloged~\cite{back01} to connect endpoints. -% Also, \cite{kesdogan:pet2002} takes the -% attack another level further, to narrow down where you could be -% based on an intersection attack on subpages in a website. -RD -It has not yet been shown whether these attacks will succeed or fail -in the presence of the variability and volume quantization introduced by the -Tor network, but it seems likely that these factors will at best delay -rather than halt the attacks in the cases where they succeed. -Along similar lines, the same paper suggests a ``clogging -attack'' in which the throughput on a circuit is observed to slow -down when an adversary clogs the right nodes with his own traffic. -To determine the nodes in a circuit this attack requires the ability -to continuously monitor the traffic exiting the network on a circuit -that is up long enough to probe all network nodes in binary fashion. -% Though somewhat related, clogging and interference are really different -% attacks with different assumptions about adversary distribution and -% capabilities as well as different techniques. -pfs -Murdoch and Danezis~\cite{attack-tor-oak05} show a practical -interference attack against portions of -the fifty node Tor network as deployed in mid 2004. -An outside attacker can actively trace a circuit through the Tor network -by observing changes in the latency of his -own traffic sent through various Tor nodes. This can be done -simultaneously at multiple nodes; however, like clogging, -this attack only reveals -the Tor nodes in the circuit, not initiator and responder addresses, -so it is still necessary to discover the endpoints to complete an -effective attack. Increasing the size and diversity of the Tor network may -help counter these attacks. - -%discuss $\frac{c^2}{n^2}$, except how in practice the chance of owning -%the last hop is not $c/n$ since that doesn't take the destination (website) -%into account. so in cases where the adversary does not also control the -%final destination we're in good shape, but if he *does* then we'd be better -%off with a system that lets each hop choose a path. -% -%Isn't it more accurate to say ``If the adversary _always_ controls the final -% dest, we would be just as well off with such as system.'' ? If not, why -% not? -nm -% Sure. In fact, better off, since they seem to scale more easily. -rd - -%Murdoch and Danezis describe an attack -%\cite{attack-tor-oak05} that lets an attacker determine the nodes used -%in a circuit; yet s/he cannot identify the initiator or responder, -%e.g., client or web server, through this attack. So the endpoints -%remain secure, which is the goal. It is conceivable that an -%adversary could attack or set up observation of all connections -%to an arbitrary Tor node in only a few minutes. If such an adversary -%were to exist, s/he could use this probing to remotely identify a node -%for further attack. Of more likely immediate practical concern -%an adversary with active access to the responder traffic -%wants to keep a circuit alive long enough to attack an identified -%node. Thus it is important to prevent the responding end of the circuit -%from keeping it open indefinitely. -%Also, someone could identify nodes in this way and if in their -%jurisdiction, immediately get a subpoena (if they even need one) -%telling the node operator(s) that she must retain all the active -%circuit data she now has. -%Further, the enclave model, which had previously looked to be the most -%generally secure, seems particularly threatened by this attack, since -%it identifies endpoints when they're also nodes in the Tor network: -%see Section~\ref{subsec:helper-nodes} for discussion of some ways to -%address this issue. - -\medskip -\noindent -{\bf Distributed trust.} -In practice Tor's threat model is based on -dispersal and diversity. -Our defense lies in having a diverse enough set of nodes -to prevent most real-world -adversaries from being in the right places to attack users, -by distributing each transaction -over several nodes in the network. This ``distributed trust'' approach -means the Tor network can be safely operated and used by a wide variety -of mutually distrustful users, providing sustainability and security. -%than some previous attempts at anonymizing networks. - -No organization can achieve this security on its own. If a single -corporation or government agency were to build a private network to -protect its operations, any connections entering or leaving that network -would be obviously linkable to the controlling organization. The members -and operations of that agency would be easier, not harder, to distinguish. - -Instead, to protect our networks from traffic analysis, we must -collaboratively blend the traffic from many organizations and private -citizens, so that an eavesdropper can't tell which users are which, -and who is looking for what information. %By bringing more users onto -%the network, all users become more secure~\cite{econymics}. -%[XXX I feel uncomfortable saying this last sentence now. -RD] -%[So, I took it out. I think we can do without it. -PFS] -The Tor network has a broad range of users, including ordinary citizens -concerned about their privacy, corporations -who don't want to reveal information to their competitors, and law -enforcement and government intelligence agencies who need -to do operations on the Internet without being noticed. -Naturally, organizations will not want to depend on others for their -security. If most participating providers are reliable, Tor tolerates -some hostile infiltration of the network. For maximum protection, -the Tor design includes an enclave approach that lets data be encrypted -(and authenticated) end-to-end, so high-sensitivity users can be sure it -hasn't been read or modified. This even works for Internet services that -don't have built-in encryption and authentication, such as unencrypted -HTTP or chat, and it requires no modification of those services. - -\subsection{Related work} -Tor differs from other deployed systems for traffic analysis resistance -in its security and flexibility. Mix networks such as -Mixmaster~\cite{mixmaster-spec} or its successor Mixminion~\cite{minion-design} -gain the highest degrees of anonymity at the expense of introducing highly -variable delays, making them unsuitable for applications such as web -browsing. Commercial single-hop -proxies~\cite{anonymizer} can provide good performance, but -a single compromise can expose all users' traffic, and a single-point -eavesdropper can perform traffic analysis on the entire network. -%Also, their proprietary implementations place any infrastructure that -%depends on these single-hop solutions at the mercy of their providers' -%financial health as well as network security. -The Java -Anon Proxy~\cite{web-mix} provides similar functionality to Tor but -handles only web browsing rather than all TCP\@. -%Some peer-to-peer file-sharing overlay networks such as -%Freenet~\cite{freenet} and Mute~\cite{mute} -The Freedom -network from Zero-Knowledge Systems~\cite{freedom21-security} -was even more flexible than Tor in -transporting arbitrary IP packets, and also supported -pseudonymity in addition to anonymity; but it had -a different approach to sustainability (collecting money from users -and paying ISPs to run Tor nodes), and was eventually shut down due to financial -load. Finally, %potentially more scalable -% [I had added 'potentially' because the scalability of these designs -% is not established, and I am uncomfortable making the -% bolder unmodified assertion. Roger took 'potentially' out. -% Here's an attempt at more neutral wording -pfs] -peer-to-peer designs that are intended to be more scalable, -for example Tarzan~\cite{tarzan:ccs02} and -MorphMix~\cite{morphmix:fc04}, have been proposed in the literature but -have not been fielded. These systems differ somewhat -in threat model and presumably practical resistance to threats. -Note that MorphMix differs from Tor only in -node discovery and circuit setup; so Tor's architecture is flexible -enough to contain a MorphMix experiment. -We direct the interested reader -to~\cite{tor-design} for a more in-depth review of related work. - -%XXXX six-four. crowds. i2p. - -%XXXX -%have a serious discussion of morphmix's assumptions, since they would -%seem to be the direct competition. in fact tor is a flexible architecture -%that would encompass morphmix, and they're nearly identical except for -%path selection and node discovery. and the trust system morphmix has -%seems overkill (and/or insecure) based on the threat model we've picked. -% this para should probably move to the scalability / directory system. -RD -% Nope. Cut for space, except for small comment added above -PFS - -\section{Social challenges} - -Many of the issues the Tor project needs to address extend beyond -system design and technology development. In particular, the -Tor project's \emph{image} with respect to its users and the rest of -the Internet impacts the security it can provide. -With this image issue in mind, this section discusses the Tor user base and -Tor's interaction with other services on the Internet. - -\subsection{Communicating security} - -Usability for anonymity systems -contributes to their security, because usability -affects the possible anonymity set~\cite{econymics,back01}. -Conversely, an unusable system attracts few users and thus can't provide -much anonymity. - -This phenomenon has a second-order effect: knowing this, users should -choose which anonymity system to use based in part on how usable -and secure -\emph{others} will find it, in order to get the protection of a larger -anonymity set. Thus we might supplement the adage ``usability is a security -parameter''~\cite{back01} with a new one: ``perceived usability is a -security parameter.'' From here we can better understand the effects -of publicity on security: the more convincing your -advertising, the more likely people will believe you have users, and thus -the more users you will attract. Perversely, over-hyped systems (if they -are not too broken) may be a better choice than modestly promoted ones, -if the hype attracts more users~\cite{usability-network-effect}. - -So it follows that we should come up with ways to accurately communicate -the available security levels to the user, so she can make informed -decisions. JAP aims to do this by including a -comforting `anonymity meter' dial in the software's graphical interface, -giving the user an impression of the level of protection for her current -traffic. - -However, there's a catch. For users to share the same anonymity set, -they need to act like each other. An attacker who can distinguish -a given user's traffic from the rest of the traffic will not be -distracted by anonymity set size. For high-latency systems like -Mixminion, where the threat model is based on mixing messages with each -other, there's an arms race between end-to-end statistical attacks and -counter-strategies~\cite{statistical-disclosure,minion-design,e2e-traffic,trickle02}. -But for low-latency systems like Tor, end-to-end \emph{traffic -correlation} attacks~\cite{danezis:pet2004,defensive-dropping,SS03} -allow an attacker who can observe both ends of a communication -to correlate packet timing and volume, quickly linking -the initiator to her destination. - -Like Tor, the current JAP implementation does not pad connections -apart from using small fixed-size cells for transport. In fact, -JAP's cascade-based network topology may be more vulnerable to these -attacks, because its network has fewer edges. JAP was born out of -the ISDN mix design~\cite{isdn-mixes}, where padding made sense because -every user had a fixed bandwidth allocation and altering the timing -pattern of packets could be immediately detected. But in its current context -as an Internet web anonymizer, adding sufficient padding to JAP -would probably be prohibitively expensive and ineffective against a -minimally active attacker.\footnote{Even if JAP could -fund higher-capacity nodes indefinitely, our experience -suggests that many users would not accept the increased per-user -bandwidth requirements, leading to an overall much smaller user base. But -see Section~\ref{subsec:mid-latency}.} Therefore, since under this threat -model the number of concurrent users does not seem to have much impact -on the anonymity provided, we suggest that JAP's anonymity meter is not -accurately communicating security levels to its users. - -On the other hand, while the number of active concurrent users may not -matter as much as we'd like, it still helps to have some other users -on the network. We investigate this issue next. - -\subsection{Reputability and perceived social value} -Another factor impacting the network's security is its reputability: -the perception of its social value based on its current user base. If Alice is -the only user who has ever downloaded the software, it might be socially -accepted, but she's not getting much anonymity. Add a thousand -activists, and she's anonymous, but everyone thinks she's an activist too. -Add a thousand -diverse citizens (cancer survivors, privacy enthusiasts, and so on) -and now she's harder to profile. - -Furthermore, the network's reputability affects its operator base: more people -are willing to run a service if they believe it will be used by human rights -workers than if they believe it will be used exclusively for disreputable -ends. This effect becomes stronger if node operators themselves think they -will be associated with their users' disreputable ends. - -So the more cancer survivors on Tor, the better for the human rights -activists. The more malicious hackers, the worse for the normal users. Thus, -reputability is an anonymity issue for two reasons. First, it impacts -the sustainability of the network: a network that's always about to be -shut down has difficulty attracting and keeping adequate nodes. -Second, a disreputable network is more vulnerable to legal and -political attacks, since it will attract fewer supporters. - -While people therefore have an incentive for the network to be used for -``more reputable'' activities than their own, there are still trade-offs -involved when it comes to anonymity. To follow the above example, a -network used entirely by cancer survivors might welcome file sharers -onto the network, though of course they'd prefer a wider -variety of users. - -Reputability becomes even more tricky in the case of privacy networks, -since the good uses of the network (such as publishing by journalists in -dangerous countries) are typically kept private, whereas network abuses -or other problems tend to be more widely publicized. - -The impact of public perception on security is especially important -during the bootstrapping phase of the network, where the first few -widely publicized uses of the network can dictate the types of users it -attracts next. -As an example, some U.S.~Department of Energy -penetration testing engineers are tasked with compromising DoE computers -from the outside. They only have a limited number of ISPs from which to -launch their attacks, and they found that the defenders were recognizing -attacks because they came from the same IP space. These engineers wanted -to use Tor to hide their tracks. First, from a technical standpoint, -Tor does not support the variety of IP packets one would like to use in -such attacks (see Section~\ref{subsec:tcp-vs-ip}). But aside from this, -we also decided that it would probably be poor precedent to encourage -such use---even legal use that improves national security---and managed -to dissuade them. - -%% "outside of academia, jap has just lost, permanently". (That is, -%% even though the crime detection issues are resolved and are unlikely -%% to go down the same way again, public perception has not been kind.) - -\subsection{Sustainability and incentives} -One of the unsolved problems in low-latency anonymity designs is -how to keep the nodes running. ZKS's Freedom network -depended on paying third parties to run its servers; the JAP project's -bandwidth depends on grants to pay for its bandwidth and -administrative expenses. In Tor, bandwidth and administrative costs are -distributed across the volunteers who run Tor nodes, so we at least have -reason to think that the Tor network could survive without continued research -funding.\footnote{It also helps that Tor is implemented with free and open - source software that can be maintained by anybody with the ability and - inclination.} But why are these volunteers running nodes, and what can we -do to encourage more volunteers to do so? - -We have not formally surveyed Tor node operators to learn why they are -running nodes, but -from the information they have provided, it seems that many of them run Tor -nodes for reasons of personal interest in privacy issues. It is possible -that others are running Tor nodes to protect their own -anonymity, but of course they are -hardly likely to tell us specifics if they are. -%Significantly, Tor's threat model changes the anonymity incentives for running -%a node. In a high-latency mix network, users can receive additional -%anonymity by running their own node, since doing so obscures when they are -%injecting messages into the network. But, anybody observing all I/O to a Tor -%node can tell when the node is generating traffic that corresponds to -%none of its incoming traffic. -% -%I didn't buy the above for reason's subtle enough that I just cut it -PFS -Tor exit node operators do attain a degree of -``deniability'' for traffic that originates at that exit node. For - example, it is likely in practice that HTTP requests from a Tor node's IP - will be assumed to be from the Tor network. - More significantly, people and organizations who use Tor for - anonymity depend on the - continued existence of the Tor network to do so; running a node helps to - keep the network operational. -%\item Local Tor entry and exit nodes allow users on a network to run in an -% `enclave' configuration. [XXXX need to resolve this. They would do this -% for E2E encryption + auth?] - - -%We must try to make the costs of running a Tor node easily minimized. -Since Tor is run by volunteers, the most crucial software usability issue is -usability by operators: when an operator leaves, the network becomes less -usable by everybody. To keep operators pleased, we must try to keep Tor's -resource and administrative demands as low as possible. - -Because of ISP billing structures, many Tor operators have underused capacity -that they are willing to donate to the network, at no additional monetary -cost to them. Features to limit bandwidth have been essential to adoption. -Also useful has been a ``hibernation'' feature that allows a Tor node that -wants to provide high bandwidth, but no more than a certain amount in a -giving billing cycle, to become dormant once its bandwidth is exhausted, and -to reawaken at a random offset into the next billing cycle. This feature has -interesting policy implications, however; see -the next section below. -Exit policies help to limit administrative costs by limiting the frequency of -abuse complaints (see Section~\ref{subsec:tor-and-blacklists}). We discuss -technical incentive mechanisms in Section~\ref{subsec:incentives-by-design}. - -%[XXXX say more. Why else would you run a node? What else can we do/do we -% already do to make running a node more attractive?] -%[We can enforce incentives; see Section 6.1. We can rate-limit clients. -% We can put "top bandwidth nodes lists" up a la seti@home.] - -\subsection{Bandwidth and file-sharing} -\label{subsec:bandwidth-and-file-sharing} -%One potentially problematical area with deploying Tor has been our response -%to file-sharing applications. -Once users have configured their applications to work with Tor, the largest -remaining usability issue is performance. Users begin to suffer -when websites ``feel slow.'' -Clients currently try to build their connections through nodes that they -guess will have enough bandwidth. But even if capacity is allocated -optimally, it seems unlikely that the current network architecture will have -enough capacity to provide every user with as much bandwidth as she would -receive if she weren't using Tor, unless far more nodes join the network. - -%Limited capacity does not destroy the network, however. Instead, usage tends -%towards an equilibrium: when performance suffers, users who value performance -%over anonymity tend to leave the system, thus freeing capacity until the -%remaining users on the network are exactly those willing to use that capacity -%there is. - -Much of Tor's recent bandwidth difficulties have come from file-sharing -applications. These applications provide two challenges to -any anonymizing network: their intensive bandwidth requirement, and the -degree to which they are associated (correctly or not) with copyright -infringement. - -High-bandwidth protocols can make the network unresponsive, -but tend to be somewhat self-correcting as lack of bandwidth drives away -users who need it. Issues of copyright violation, -however, are more interesting. Typical exit node operators want to help -people achieve private and anonymous speech, not to help people (say) host -Vin Diesel movies for download; and typical ISPs would rather not -deal with customers who draw menacing letters -from the MPAA\@. While it is quite likely that the operators are doing nothing -illegal, many ISPs have policies of dropping users who get repeated legal -threats regardless of the merits of those threats, and many operators would -prefer to avoid receiving even meritless legal threats. -So when letters arrive, operators are likely to face -pressure to block file-sharing applications entirely, in order to avoid the -hassle. - -But blocking file-sharing is not easy: popular -protocols have evolved to run on non-standard ports to -get around other port-based bans. Thus, exit node operators who want to -block file-sharing would have to find some way to integrate Tor with a -protocol-aware exit filter. This could be a technically expensive -undertaking, and one with poor prospects: it is unlikely that Tor exit nodes -would succeed where so many institutional firewalls have failed. Another -possibility for sensitive operators is to run a restrictive node that -only permits exit connections to a restricted range of ports that are -not frequently associated with file sharing. There are increasingly few such -ports. - -Other possible approaches might include rate-limiting connections, especially -long-lived connections or connections to file-sharing ports, so that -high-bandwidth connections do not flood the network. We might also want to -give priority to cells on low-bandwidth connections to keep them interactive, -but this could have negative anonymity implications. - -For the moment, it seems that Tor's bandwidth issues have rendered it -unattractive for bulk file-sharing traffic; this may continue to be so in the -future. Nevertheless, Tor will likely remain attractive for limited use in -file-sharing protocols that have separate control and data channels. - -%[We should say more -- but what? That we'll see a similar -% equilibriating effect as with bandwidth, where sensitive ops switch to -% middleman, and we become less useful for file-sharing, so the file-sharing -% people back off, so we get more ops since there's less file-sharing, so the -% file-sharers come back, etc.] - -%XXXX -%in practice, plausible deniability is hypothetical and doesn't seem very -%convincing. if ISPs find the activity antisocial, they don't care *why* -%your computer is doing that behavior. - -\subsection{Tor and blacklists} -\label{subsec:tor-and-blacklists} - -It was long expected that, alongside legitimate users, Tor would also -attract troublemakers who exploit Tor to abuse services on the -Internet with vandalism, rude mail, and so on. -Our initial answer to this situation was to use ``exit policies'' -to allow individual Tor nodes to block access to specific IP/port ranges. -This approach aims to make operators more willing to run Tor by allowing -them to prevent their nodes from being used for abusing particular -services. For example, all Tor nodes currently block SMTP (port 25), -to avoid being used for spam. - -Exit policies are useful, but they are insufficient: if not all nodes -block a given service, that service may try to block Tor instead. -While being blockable is important to being good netizens, we would like -to encourage services to allow anonymous access. Services should not -need to decide between blocking legitimate anonymous use and allowing -unlimited abuse. - -This is potentially a bigger problem than it may appear. -On the one hand, services should be allowed to refuse connections from -sources of possible abuse. -But when a Tor node administrator decides whether he prefers to be able -to post to Wikipedia from his IP address, or to allow people to read -Wikipedia anonymously through his Tor node, he is making the decision -for others as well. (For a while, Wikipedia -blocked all posting from all Tor nodes based on IP addresses.) If -the Tor node shares an address with a campus or corporate NAT, -then the decision can prevent the entire population from posting. -This is a loss for both Tor -and Wikipedia: we don't want to compete for (or divvy up) the -NAT-protected entities of the world. - -Worse, many IP blacklists are coarse-grained: they ignore Tor's exit -policies, partly because it's easier to implement and partly -so they can punish -all Tor nodes. One IP blacklist even bans -every class C network that contains a Tor node, and recommends banning SMTP -from these networks even though Tor does not allow SMTP at all. This -strategic decision aims to discourage the -operation of anything resembling an open proxy by encouraging its neighbors -to shut it down to get unblocked themselves. This pressure even -affects Tor nodes running in middleman mode (disallowing all exits) when -those nodes are blacklisted too. - -Problems of abuse occur mainly with services such as IRC networks and -Wikipedia, which rely on IP blocking to ban abusive users. While at first -blush this practice might seem to depend on the anachronistic assumption that -each IP is an identifier for a single user, it is actually more reasonable in -practice: it assumes that non-proxy IPs are a costly resource, and that an -abuser can not change IPs at will. By blocking IPs which are used by Tor -nodes, open proxies, and service abusers, these systems hope to make -ongoing abuse difficult. Although the system is imperfect, it works -tolerably well for them in practice. - -Of course, we would prefer that legitimate anonymous users be able to -access abuse-prone services. One conceivable approach would require -would-be IRC users, for instance, to register accounts if they want to -access the IRC network from Tor. In practice this would not -significantly impede abuse if creating new accounts were easily automatable; -this is why services use IP blocking. To deter abuse, pseudonymous -identities need to require a significant switching cost in resources or human -time. Some popular webmail applications -impose cost with Reverse Turing Tests, but this step may not deter all -abusers. Freedom used blind signatures to limit -the number of pseudonyms for each paying account, but Tor has neither the -ability nor the desire to collect payment. - -We stress that as far as we can tell, most Tor uses are not -abusive. Most services have not complained, and others are actively -working to find ways besides banning to cope with the abuse. For example, -the Freenode IRC network had a problem with a coordinated group of -abusers joining channels and subtly taking over the conversation; but -when they labelled all users coming from Tor IPs as ``anonymous users,'' -removing the ability of the abusers to blend in, the abuse stopped. - -%The use of squishy IP-based ``authentication'' and ``authorization'' -%has not broken down even to the level that SSNs used for these -%purposes have in commercial and public record contexts. Externalities -%and misplaced incentives cause a continued focus on fighting identity -%theft by protecting SSNs rather than developing better authentication -%and incentive schemes \cite{price-privacy}. Similarly we can expect a -%continued use of identification by IP number as long as there is no -%workable alternative. - -%[XXX Mention correct DNS-RBL implementation. -NM] - -\section{Design choices} - -In addition to social issues, Tor also faces some design trade-offs that must -be investigated as the network develops. - -\subsection{Transporting the stream vs transporting the packets} -\label{subsec:stream-vs-packet} -\label{subsec:tcp-vs-ip} - -Tor transports streams; it does not tunnel packets. -It has often been suggested that like the old Freedom -network~\cite{freedom21-security}, Tor should -``obviously'' anonymize IP traffic -at the IP layer. Before this could be done, many issues need to be resolved: - -\begin{enumerate} -\setlength{\itemsep}{0mm} -\setlength{\parsep}{0mm} -\item \emph{IP packets reveal OS characteristics.} We would still need to do -IP-level packet normalization, to stop things like TCP fingerprinting -attacks. %There likely exist libraries that can help with this. -This is unlikely to be a trivial task, given the diversity and complexity of -TCP stacks. -\item \emph{Application-level streams still need scrubbing.} We still need -Tor to be easy to integrate with user-level application-specific proxies -such as Privoxy. So it's not just a matter of capturing packets and -anonymizing them at the IP layer. -\item \emph{Certain protocols will still leak information.} For example, we -must rewrite DNS requests so they are delivered to an unlinkable DNS server -rather than the DNS server at a user's ISP; thus, we must understand the -protocols we are transporting. -\item \emph{The crypto is unspecified.} First we need a block-level encryption -approach that can provide security despite -packet loss and out-of-order delivery. Freedom allegedly had one, but it was -never publicly specified. -Also, TLS over UDP is not yet implemented or -specified, though some early work has begun~\cite{dtls}. -\item \emph{We'll still need to tune network parameters.} Since the above -encryption system will likely need sequence numbers (and maybe more) to do -replay detection, handle duplicate frames, and so on, we will be reimplementing -a subset of TCP anyway---a notoriously tricky path. -\item \emph{Exit policies for arbitrary IP packets mean building a secure -IDS\@.} Our node operators tell us that exit policies are one of -the main reasons they're willing to run Tor. -Adding an Intrusion Detection System to handle exit policies would -increase the security complexity of Tor, and would likely not work anyway, -as evidenced by the entire field of IDS and counter-IDS papers. Many -potential abuse issues are resolved by the fact that Tor only transports -valid TCP streams (as opposed to arbitrary IP including malformed packets -and IP floods), so exit policies become even \emph{more} important as -we become able to transport IP packets. We also need to compactly -describe exit policies so clients can predict -which nodes will allow which packets to exit. -\item \emph{The Tor-internal name spaces would need to be redesigned.} We -support hidden service {\tt{.onion}} addresses (and other special addresses, -like {\tt{.exit}} which lets the user request a particular exit node), -by intercepting the addresses when they are passed to the Tor client. -Doing so at the IP level would require a more complex interface between -Tor and the local DNS resolver. -\end{enumerate} - -This list is discouragingly long, but being able to transport more -protocols obviously has some advantages. It would be good to learn which -items are actual roadblocks and which are easier to resolve than we think. - -To be fair, Tor's stream-based approach has run into -stumbling blocks as well. While Tor supports the SOCKS protocol, -which provides a standardized interface for generic TCP proxies, many -applications do not support SOCKS\@. For them we already need to -replace the networking system calls with SOCKS-aware -versions, or run a SOCKS tunnel locally, neither of which is -easy for the average user. %---even with good instructions. -Even when applications can use SOCKS, they often make DNS requests -themselves before handing an IP address to Tor, which advertises -where the user is about to connect. -We are still working on more usable solutions. - -%So to actually provide good anonymity, we need to make sure that -%users have a practical way to use Tor anonymously. Possibilities include -%writing wrappers for applications to anonymize them automatically; improving -%the applications' support for SOCKS; writing libraries to help application -%writers use Tor properly; and implementing a local DNS proxy to reroute DNS -%requests to Tor so that applications can simply point their DNS resolvers at -%localhost and continue to use SOCKS for data only. - -\subsection{Mid-latency} -\label{subsec:mid-latency} - -Some users need to resist traffic correlation attacks. Higher-latency -mix-networks introduce variability into message -arrival times: as timing variance increases, timing correlation attacks -require increasingly more data~\cite{e2e-traffic}. Can we improve Tor's -resistance without losing too much usability? - -We need to learn whether we can trade a small increase in latency -for a large anonymity increase, or if we'd end up trading a lot of -latency for only a minimal security gain. A trade-off might be worthwhile -even if we -could only protect certain use cases, such as infrequent short-duration -transactions. % To answer this question -We might adapt the techniques of~\cite{e2e-traffic} to a lower-latency mix -network, where the messages are batches of cells in temporally clustered -connections. These large fixed-size batches can also help resist volume -signature attacks~\cite{hintz-pet02}. We could also experiment with traffic -shaping to get a good balance of throughput and security. -%Other padding regimens might supplement the -%mid-latency option; however, we should continue the caution with which -%we have always approached padding lest the overhead cost us too much -%performance or too many volunteers. - -We must keep usability in mind too. How much can latency increase -before we drive users away? We've already been forced to increase -latency slightly, as our growing network incorporates more DSL and -cable-modem nodes and more nodes in distant continents. Perhaps we can -harness this increased latency to improve anonymity rather than just -reduce usability. Further, if we let clients label certain circuits as -mid-latency as they are constructed, we could handle both types of traffic -on the same network, giving users a choice between speed and security---and -giving researchers a chance to experiment with parameters to improve the -quality of those choices. - -\subsection{Enclaves and helper nodes} -\label{subsec:helper-nodes} - -It has long been thought that users can improve their anonymity by -running their own node~\cite{tor-design,or-ih96,or-pet00}, and using -it in an \emph{enclave} configuration, where all their circuits begin -at the node under their control. Running Tor clients or servers at -the enclave perimeter is useful when policy or other requirements -prevent individual machines within the enclave from running Tor -clients~\cite{or-jsac98,or-discex00}. - -Of course, Tor's default path length of -three is insufficient for these enclaves, since the entry and/or exit -% [edit war: without the ``and/'' the natural reading here -% is aut rather than vel. And the use of the plural verb does not work -pfs] -themselves are sensitive. Tor thus increments path length by one -for each sensitive endpoint in the circuit. -Enclaves also help to protect against end-to-end attacks, since it's -possible that traffic coming from the node has simply been relayed from -elsewhere. However, if the node has recognizable behavior patterns, -an attacker who runs nodes in the network can triangulate over time to -gain confidence that it is in fact originating the traffic. Wright et -al.~\cite{wright03} introduce the notion of a \emph{helper node}---a -single fixed entry node for each user---to combat this \emph{predecessor -attack}. - -However, the attack in~\cite{attack-tor-oak05} shows that simply adding -to the path length, or using a helper node, may not protect an enclave -node. A hostile web server can send constant interference traffic to -all nodes in the network, and learn which nodes are involved in the -circuit (though at least in the current attack, he can't learn their -order). Using randomized path lengths may help some, since the attacker -will never be certain he has identified all nodes in the path unless -he probes the entire network, but as -long as the network remains small this attack will still be feasible. - -Helper nodes also aim to help Tor clients, because choosing entry and exit -points -randomly and changing them frequently allows an attacker who controls -even a few nodes to eventually link some of their destinations. The goal -is to take the risk once and for all about choosing a bad entry node, -rather than taking a new risk for each new circuit. (Choosing fixed -exit nodes is less useful, since even an honest exit node still doesn't -protect against a hostile website.) But obstacles remain before -we can implement helper nodes. -For one, the literature does not describe how to choose helpers from a list -of nodes that changes over time. If Alice is forced to choose a new entry -helper every $d$ days and $c$ of the $n$ nodes are bad, she can expect -to choose a compromised node around -every $dc/n$ days. Statistically over time this approach only helps -if she is better at choosing honest helper nodes than at choosing -honest nodes. Worse, an attacker with the ability to DoS nodes could -force users to switch helper nodes more frequently, or remove -other candidate helpers. - -%Do general DoS attacks have anonymity implications? See e.g. Adam -%Back's IH paper, but I think there's more to be pointed out here. -RD -% Not sure what you want to say here. -NM - -%Game theory for helper nodes: if Alice offers a hidden service on a -%server (enclave model), and nobody ever uses helper nodes, then against -%George+Steven's attack she's totally nailed. If only Alice uses a helper -%node, then she's still identified as the source of the data. If everybody -%uses a helper node (including Alice), then the attack identifies the -%helper node and also Alice, and knows which one is which. If everybody -%uses a helper node (but not Alice), then the attacker figures the real -%source was a client that is using Alice as a helper node. [How's my -%logic here?] -RD -% -% Not sure about the logic. For the attack to work with helper nodes, the -%attacker needs to guess that Alice is running the hidden service, right? -%Otherwise, how can he know to measure her traffic specifically? -NM -% -% In the Murdoch-Danezis attack, the adversary measures all servers. -RD - -%point to routing-zones section re: helper nodes to defend against -%big stuff. - -\subsection{Location-hidden services} -\label{subsec:hidden-services} - -% This section is first up against the wall when the revolution comes. - -Tor's \emph{rendezvous points} -let users provide TCP services to other Tor users without revealing -the service's location. Since this feature is relatively recent, we describe -here -a couple of our early observations from its deployment. - -First, our implementation of hidden services seems less hidden than we'd -like, since they build a different rendezvous circuit for each user, -and an external adversary can induce them to -produce traffic. This insecurity means that they may not be suitable as -a building block for Free Haven~\cite{freehaven-berk} or other anonymous -publishing systems that aim to provide long-term security, though helper -nodes, as discussed above, would seem to help. - -\emph{Hot-swap} hidden services, where more than one location can -provide the service and loss of any one location does not imply a -change in service, would help foil intersection and observation attacks -where an adversary monitors availability of a hidden service and also -monitors whether certain users or servers are online. The design -challenges in providing such services without otherwise compromising -the hidden service's anonymity remain an open problem; -however, see~\cite{move-ndss05}. - -In practice, hidden services are used for more than just providing private -access to a web server or IRC server. People are using hidden services -as a poor man's VPN and firewall-buster. Many people want to be able -to connect to the computers in their private network via secure shell, -and rather than playing with dyndns and trying to pierce holes in their -firewall, they run a hidden service on the inside and then rendezvous -with that hidden service externally. - -News sites like Bloggers Without Borders (www.b19s.org) are advertising -a hidden-service address on their front page. Doing this can provide -increased robustness if they use the dual-IP approach we describe -in~\cite{tor-design}, -but in practice they do it to increase visibility -of the Tor project and their support for privacy, and to offer -a way for their users, using unmodified software, to get end-to-end -encryption and authentication to their website. - -\subsection{Location diversity and ISP-class adversaries} -\label{subsec:routing-zones} - -Anonymity networks have long relied on diversity of node location for -protection against attacks---typically an adversary who can observe a -larger fraction of the network can launch a more effective attack. One -way to achieve dispersal involves growing the network so a given adversary -sees less. Alternately, we can arrange the topology so traffic can enter -or exit at many places (for example, by using a free-route network -like Tor rather than a cascade network like JAP). Lastly, we can use -distributed trust to spread each transaction over multiple jurisdictions. -But how do we decide whether two nodes are in related locations? - -Feamster and Dingledine defined a \emph{location diversity} metric -in~\cite{feamster:wpes2004}, and began investigating a variant of location -diversity based on the fact that the Internet is divided into thousands of -independently operated networks called {\em autonomous systems} (ASes). -The key insight from their paper is that while we typically think of a -connection as going directly from the Tor client to the first Tor node, -actually it traverses many different ASes on each hop. An adversary at -any of these ASes can monitor or influence traffic. Specifically, given -plausible initiators and recipients, and given random path selection, -some ASes in the simulation were able to observe 10\% to 30\% of the -transactions (that is, learn both the origin and the destination) on -the deployed Tor network (33 nodes as of June 2004). - -The paper concludes that for best protection against the AS-level -adversary, nodes should be in ASes that have the most links to other ASes: -Tier-1 ISPs such as AT\&T and Abovenet. Further, a given transaction -is safest when it starts or ends in a Tier-1 ISP\@. Therefore, assuming -initiator and responder are both in the U.S., it actually \emph{hurts} -our location diversity to use far-flung nodes in -continents like Asia or South America. -% it's not just entering or exiting from them. using them as the middle -% hop reduces your effective path length, which you presumably don't -% want because you chose that path length for a reason. -% -% Not sure I buy that argument. Two end nodes in the right ASs to -% discourage linking are still not known to each other. If some -% adversary in a single AS can bridge the middle node, it shouldn't -% therefore be able to identify initiator or responder; although it could -% contribute to further attacks given more assumptions. -% Nonetheless, no change to the actual text for now. - -Many open questions remain. First, it will be an immense engineering -challenge to get an entire BGP routing table to each Tor client, or to -summarize it sufficiently. Without a local copy, clients won't be -able to safely predict what ASes will be traversed on the various paths -through the Tor network to the final destination. Tarzan~\cite{tarzan:ccs02} -and MorphMix~\cite{morphmix:fc04} suggest that we compare IP prefixes to -determine location diversity; but the above paper showed that in practice -many of the Mixmaster nodes that share a single AS have entirely different -IP prefixes. When the network has scaled to thousands of nodes, does IP -prefix comparison become a more useful approximation? % Alternatively, can -%relevant parts of the routing tables be summarized centrally and delivered to -%clients in a less verbose format? -%% i already said "or to summarize is sufficiently" above. is that not -%% enough? -RD -% -Second, we can take advantage of caching certain content at the -exit nodes, to limit the number of requests that need to leave the -network at all. What about taking advantage of caches like Akamai or -Google~\cite{shsm03}? (Note that they're also well-positioned as global -adversaries.) -% -Third, if we follow the recommendations in~\cite{feamster:wpes2004} - and tailor path selection -to avoid choosing endpoints in similar locations, how much are we hurting -anonymity against larger real-world adversaries who can take advantage -of knowing our algorithm? -% -Fourth, can we use this knowledge to figure out which gaps in our network -most affect our robustness to this class of attack, and go recruit -new nodes with those ASes in mind? - -%Tor's security relies in large part on the dispersal properties of its -%network. We need to be more aware of the anonymity properties of various -%approaches so we can make better design decisions in the future. - -\subsection{The Anti-censorship problem} -\label{subsec:china} - -Citizens in a variety of countries, such as most recently China and -Iran, are blocked from accessing various sites outside -their country. These users try to find any tools available to allow -them to get around these firewalls. Some anonymity networks, such as -Six-Four~\cite{six-four}, are designed specifically with this goal in -mind; others like the Anonymizer~\cite{anonymizer} are paid by sponsors -such as Voice of America to encourage Internet -freedom. Even though Tor wasn't -designed with ubiquitous access to the network in mind, thousands of -users across the world are now using it for exactly this purpose. -% Academic and NGO organizations, peacefire, \cite{berkman}, etc - -Anti-censorship networks hoping to bridge country-level blocks face -a variety of challenges. One of these is that they need to find enough -exit nodes---servers on the `free' side that are willing to relay -traffic from users to their final destinations. Anonymizing -networks like Tor are well-suited to this task since we have -already gathered a set of exit nodes that are willing to tolerate some -political heat. - -The other main challenge is to distribute a list of reachable relays -to the users inside the country, and give them software to use those relays, -without letting the censors also enumerate this list and block each -relay. Anonymizer solves this by buying lots of seemingly-unrelated IP -addresses (or having them donated), abandoning old addresses as they are -`used up,' and telling a few users about the new ones. Distributed -anonymizing networks again have an advantage here, in that we already -have tens of thousands of separate IP addresses whose users might -volunteer to provide this service since they've already installed and use -the software for their own privacy~\cite{koepsell:wpes2004}. Because -the Tor protocol separates routing from network discovery \cite{tor-design}, -volunteers could configure their Tor clients -to generate node descriptors and send them to a special directory -server that gives them out to dissidents who need to get around blocks. - -Of course, this still doesn't prevent the adversary -from enumerating and preemptively blocking the volunteer relays. -Perhaps a tiered-trust system could be built where a few individuals are -given relays' locations. They could then recommend other individuals -by telling them -those addresses, thus providing a built-in incentive to avoid letting the -adversary intercept them. Max-flow trust algorithms~\cite{advogato} -might help to bound the number of IP addresses leaked to the adversary. Groups -like the W3C are looking into using Tor as a component in an overall system to -help address censorship; we wish them success. - -%\cite{infranet} - -\section{Scaling} -\label{sec:scaling} - -Tor is running today with hundreds of nodes and tens of thousands of -users, but it will certainly not scale to millions. -Scaling Tor involves four main challenges. First, to get a -large set of nodes, we must address incentives for -users to carry traffic for others. Next is safe node discovery, both -while bootstrapping (Tor clients must robustly find an initial -node list) and later (Tor clients must learn about a fair sample -of honest nodes and not let the adversary control circuits). -We must also detect and handle node speed and reliability as the network -becomes increasingly heterogeneous: since the speed and reliability -of a circuit is limited by its worst link, we must learn to track and -predict performance. Finally, we must stop assuming that all points on -the network can connect to all other points. - -\subsection{Incentives by Design} -\label{subsec:incentives-by-design} - -There are three behaviors we need to encourage for each Tor node: relaying -traffic; providing good throughput and reliability while doing it; -and allowing traffic to exit the network from that node. - -We encourage these behaviors through \emph{indirect} incentives: that -is, by designing the system and educating users in such a way that users -with certain goals will choose to relay traffic. One -main incentive for running a Tor node is social: volunteers -altruistically donate their bandwidth and time. We encourage this with -public rankings of the throughput and reliability of nodes, much like -seti@home. We further explain to users that they can get -deniability for any traffic emerging from the same address as a Tor -exit node, and they can use their own Tor node -as an entry or exit point with confidence that it's not run by an adversary. -Further, users may run a node simply because they need such a network -to be persistently available and usable, and the value of supporting this -exceeds any countervening costs. -Finally, we can encourage operators by improving the usability and feature -set of the software: -rate limiting support and easy packaging decrease the hassle of -maintaining a node, and our configurable exit policies allow each -operator to advertise a policy describing the hosts and ports to which -he feels comfortable connecting. - -To date these incentives appear to have been adequate. As the system scales -or as new issues emerge, however, we may also need to provide - \emph{direct} incentives: -providing payment or other resources in return for high-quality service. -Paying actual money is problematic: decentralized e-cash systems are -not yet practical, and a centralized collection system not only reduces -robustness, but also has failed in the past (the history of commercial -anonymizing networks is littered with failed attempts). A more promising -option is to use a tit-for-tat incentive scheme, where nodes provide better -service to nodes that have provided good service for them. - -Unfortunately, such an approach introduces new anonymity problems. -There are many surprising ways for nodes to game the incentive and -reputation system to undermine anonymity---such systems are typically -designed to encourage fairness in storage or bandwidth usage, not -fairness of provided anonymity. An adversary can attract more traffic -by performing well or can target individual users by selectively -performing, to undermine their anonymity. Typically a user who -chooses evenly from all nodes is most resistant to an adversary -targeting him, but that approach hampers the efficient use -of heterogeneous nodes. - -%When a node (call him Steve) performs well for Alice, does Steve gain -%reputation with the entire system, or just with Alice? If the entire -%system, how does Alice tell everybody about her experience in a way that -%prevents her from lying about it yet still protects her identity? If -%Steve's behavior only affects Alice's behavior, does this allow Steve to -%selectively perform only for Alice, and then break her anonymity later -%when somebody (presumably Alice) routes through his node? - -A possible solution is a simplified approach to the tit-for-tat -incentive scheme based on two rules: (1) each node should measure the -service it receives from adjacent nodes, and provide service relative -to the received service, but (2) when a node is making decisions that -affect its own security (such as building a circuit for its own -application connections), it should choose evenly from a sufficiently -large set of nodes that meet some minimum service -threshold~\cite{casc-rep}. This approach allows us to discourage -bad service -without opening Alice up as much to attacks. All of this requires -further study. - -\subsection{Trust and discovery} -\label{subsec:trust-and-discovery} - -The published Tor design is deliberately simplistic in how -new nodes are authorized and how clients are informed about Tor -nodes and their status. -All nodes periodically upload a signed description -of their locations, keys, and capabilities to each of several well-known {\it - directory servers}. These directory servers construct a signed summary -of all known Tor nodes (a ``directory''), and a signed statement of which -nodes they -believe to be operational then (a ``network status''). Clients -periodically download a directory to learn the latest nodes and -keys, and more frequently download a network status to learn which nodes are -likely to be running. Tor nodes also operate as directory caches, to -lighten the bandwidth on the directory servers. - -To prevent Sybil attacks (wherein an adversary signs up many -purportedly independent nodes to increase her network view), -this design -requires the directory server operators to manually -approve new nodes. Unapproved nodes are included in the directory, -but clients -do not use them at the start or end of their circuits. In practice, -directory administrators perform little actual verification, and tend to -approve any Tor node whose operator can compose a coherent email. -This procedure -may prevent trivial automated Sybil attacks, but will do little -against a clever and determined attacker. - -There are a number of flaws in this system that need to be addressed as we -move forward. First, -each directory server represents an independent point of failure: any -compromised directory server could start recommending only compromised -nodes. -Second, as more nodes join the network, %the more unreasonable it -%becomes to expect clients to know about them all. -directories -become infeasibly large, and downloading the list of nodes becomes -burdensome. -Third, the validation scheme may do as much harm as it does good. It -does not prevent clever attackers from mounting Sybil attacks, -and it may deter node operators from joining the network---if -they expect the validation process to be difficult, or they do not share -any languages in common with the directory server operators. - -We could try to move the system in several directions, depending on our -choice of threat model and requirements. If we did not need to increase -network capacity to support more users, we could simply - adopt even stricter validation requirements, and reduce the number of -nodes in the network to a trusted minimum. -But, we can only do that if we can simultaneously make node capacity -scale much more than we anticipate to be feasible soon, and if we can find -entities willing to run such nodes, an equally daunting prospect. - -In order to address the first two issues, it seems wise to move to a system -including a number of semi-trusted directory servers, no one of which can -compromise a user on its own. Ultimately, of course, we cannot escape the -problem of a first introducer: since most users will run Tor in whatever -configuration the software ships with, the Tor distribution itself will -remain a single point of failure so long as it includes the seed -keys for directory servers, a list of directory servers, or any other means -to learn which nodes are on the network. But omitting this information -from the Tor distribution would only delegate the trust problem to each -individual user. %, most of whom are presumably less informed about how to make -%trust decisions than the Tor developers. -A well publicized, widely available, authoritatively and independently -endorsed and signed list of initial directory servers and their keys -is a possible solution. But, setting that up properly is itself a large -bootstrapping task. - -%Network discovery, sybil, node admission, scaling. It seems that the code -%will ship with something and that's our trust root. We could try to get -%people to build a web of trust, but no. Where we go from here depends -%on what threats we have in mind. Really decentralized if your threat is -%RIAA; less so if threat is to application data or individuals or... - -\subsection{Measuring performance and capacity} -\label{subsec:performance} - -One of the paradoxes with engineering an anonymity network is that we'd like -to learn as much as we can about how traffic flows so we can improve the -network, but we want to prevent others from learning how traffic flows in -order to trace users' connections through the network. Furthermore, many -mechanisms that help Tor run efficiently -require measurements about the network. - -Currently, nodes try to deduce their own available bandwidth (based on how -much traffic they have been able to transfer recently) and include this -information in the descriptors they upload to the directory. Clients -choose servers weighted by their bandwidth, neglecting really slow -servers and capping the influence of really fast ones. -% -This is, of course, eminently cheatable. A malicious node can get a -disproportionate amount of traffic simply by claiming to have more bandwidth -than it does. But better mechanisms have their problems. If bandwidth data -is to be measured rather than self-reported, it is usually possible for -nodes to selectively provide better service for the measuring party, or -sabotage the measured value of other nodes. Complex solutions for -mix networks have been proposed, but do not address the issues -completely~\cite{mix-acc,casc-rep}. - -Even with no cheating, network measurement is complex. It is common -for views of a node's latency and/or bandwidth to vary wildly between -observers. Further, it is unclear whether total bandwidth is really -the right measure; perhaps clients should instead be considering nodes -based on unused bandwidth or observed throughput. -%How to measure performance without letting people selectively deny service -%by distinguishing pings. Heck, just how to measure performance at all. In -%practice people have funny firewalls that don't match up to their exit -%policies and Tor doesn't deal. -% -%Network investigation: Is all this bandwidth publishing thing a good idea? -%How can we collect stats better? Note weasel's smokeping, at -%http://seppia.noreply.org/cgi-bin/smokeping.cgi?target=Tor -%which probably gives george and steven enough info to break tor? -% -And even if we can collect and use this network information effectively, -we must ensure -that it is not more useful to attackers than to us. While it -seems plausible that bandwidth data alone is not enough to reveal -sender-recipient connections under most circumstances, it could certainly -reveal the path taken by large traffic flows under low-usage circumstances. - -\subsection{Non-clique topologies} - -Tor's comparatively weak threat model may allow easier scaling than -other -designs. High-latency mix networks need to avoid partitioning attacks, where -network splits let an attacker distinguish users in different partitions. -Since Tor assumes the adversary cannot cheaply observe nodes at will, -a network split may not decrease protection much. -Thus, one option when the scale of a Tor network -exceeds some size is simply to split it. Nodes could be allocated into -partitions while hampering collaborating hostile nodes from taking over -a single partition~\cite{casc-rep}. -Clients could switch between -networks, even on a per-circuit basis. -%Future analysis may uncover -%other dangers beyond those affecting mix-nets. - -More conservatively, we can try to scale a single Tor network. Likely -problems with adding more servers to a single Tor network include an -explosion in the number of sockets needed on each server as more servers -join, and increased coordination overhead to keep each users' view of -the network consistent. As we grow, we will also have more instances of -servers that can't reach each other simply due to Internet topology or -routing problems. - -%include restricting the number of sockets and the amount of bandwidth -%used by each node. The number of sockets is determined by the network's -%connectivity and the number of users, while bandwidth capacity is determined -%by the total bandwidth of nodes on the network. The simplest solution to -%bandwidth capacity is to add more nodes, since adding a Tor node of any -%feasible bandwidth will increase the traffic capacity of the network. So as -%a first step to scaling, we should focus on making the network tolerate more -%nodes, by reducing the interconnectivity of the nodes; later we can reduce -%overhead associated with directories, discovery, and so on. - -We can address these points by reducing the network's connectivity. -Danezis~\cite{danezis:pet2003} considers -the anonymity implications of restricting routes on mix networks and -recommends an approach based on expander graphs (where any subgraph is likely -to have many neighbors). It is not immediately clear that this approach will -extend to Tor, which has a weaker threat model but higher performance -requirements: instead of analyzing the -probability of an attacker's viewing whole paths, we will need to examine the -attacker's likelihood of compromising the endpoints. -% -Tor may not need an expander graph per se: it -may be enough to have a single central subnet that is highly connected, like -an Internet backbone. % As an -%example, assume fifty nodes of relatively high traffic capacity. This -%\emph{center} forms a clique. Assume each center node can -%handle 200 connections to other nodes (including the other ones in the -%center). Assume every noncenter node connects to three nodes in the -%center and anyone out of the center that they want to. Then the -%network easily scales to c. 2500 nodes with commensurate increase in -%bandwidth. -There are many open questions: how to distribute connectivity information -(presumably nodes will learn about the central nodes -when they download Tor), whether central nodes -will need to function as a `backbone', and so on. As above, -this could reduce the amount of anonymity available from a mix-net, -but for a low-latency network where anonymity derives largely from -the edges, it may be feasible. - -%In a sense, Tor already has a non-clique topology. -%Individuals can set up and run Tor nodes without informing the -%directory servers. This allows groups to run a -%local Tor network of private nodes that connects to the public Tor -%network. This network is hidden behind the Tor network, and its -%only visible connection to Tor is at those points where it connects. -%As far as the public network, or anyone observing it, is concerned, -%they are running clients. - -\section{The Future} -\label{sec:conclusion} - -Tor is the largest and most diverse low-latency anonymity network -available, but we are still in the beginning stages of deployment. Several -major questions remain. - -First, will our volunteer-based approach to sustainability work in the -long term? As we add more features and destabilize the network, the -developers spend a lot of time keeping the server operators happy. Even -though Tor is free software, the network would likely stagnate and die at -this stage if the developers stopped actively working on it. We may get -an unexpected boon from the fact that we're a general-purpose overlay -network: as Tor grows more popular, other groups who need an overlay -network on the Internet are starting to adapt Tor to their needs. -% -Second, Tor is only one of many components that preserve privacy online. -For applications where it is desirable to -keep identifying information out of application traffic, someone must build -more and better protocol-aware proxies that are usable by ordinary people. -% -Third, we need to gain a reputation for social good, and learn how to -coexist with the variety of Internet services and their established -authentication mechanisms. We can't just keep escalating the blacklist -standoff forever. -% -Fourth, the current Tor -architecture does not scale even to handle current user demand. We must -find designs and incentives to let some clients relay traffic too, without -sacrificing too much anonymity. - -These are difficult and open questions. Yet choosing not to solve them -means leaving most users to a less secure network or no anonymizing -network at all. - -\bibliographystyle{plain} \bibliography{tor-design} - -\clearpage -\appendix - -\begin{figure}[t] -%\unitlength=1in -\centering -%\begin{picture}(6.0,2.0) -%\put(3,1){\makebox(0,0)[c]{\epsfig{figure=graphnodes,width=6in}}} -%\end{picture} -\mbox{\epsfig{figure=graphnodes,width=5in}} -\caption{Number of Tor nodes over time, through January 2005. Lowest -line is number of exit -nodes that allow connections to port 80. Middle line is total number of -verified (registered) Tor nodes. The line above that represents nodes -that are running but not yet registered.} -\label{fig:graphnodes} -\end{figure} - -\begin{figure}[t] -\centering -\mbox{\epsfig{figure=graphtraffic,width=5in}} -\caption{The sum of traffic reported by each node over time, through -January 2005. The bottom -pair show average throughput, and the top pair represent the largest 15 -minute burst in each 4 hour period.} -\label{fig:graphtraffic} -\end{figure} - -\end{document} - -%Making use of nodes with little bandwidth, or high latency/packet loss. - -%Running Tor nodes behind NATs, behind great-firewalls-of-China, etc. -%Restricted routes. How to propagate to everybody the topology? BGP -%style doesn't work because we don't want just *one* path. Point to -%Geoff's stuff. - diff --git a/doc/design-paper/challenges2.tex b/doc/design-paper/challenges2.tex deleted file mode 100644 index a39b66cf7d..0000000000 --- a/doc/design-paper/challenges2.tex +++ /dev/null @@ -1,1612 +0,0 @@ -\documentclass{llncs} - -\usepackage{url} -\usepackage{amsmath} -\usepackage{epsfig} - -\setlength{\textwidth}{5.9in} -\setlength{\textheight}{8.4in} -\setlength{\topmargin}{.5cm} -\setlength{\oddsidemargin}{1cm} -\setlength{\evensidemargin}{1cm} - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} - - -\newcommand{\workingnote}[1]{} % The version that hides the note. -%\newcommand{\workingnote}[1]{(**#1)} % The version that makes the note visible. - - -\begin{document} - -\title{Design challenges and social factors in deploying low-latency anonymity} - -\author{Roger Dingledine\inst{1} \and -Nick Mathewson\inst{1} \and -Paul Syverson\inst{2}} -\institute{The Free Haven Project \email{<\{arma,nickm\}@freehaven.net>} \and -Naval Research Laboratory \email{}} - -\maketitle -\pagestyle{plain} - -\begin{abstract} - There are many unexpected or unexpectedly difficult obstacles to - deploying anonymous communications. We describe the design - philosophy of Tor (the third-generation onion routing network), and, - drawing on our experiences deploying Tor, we describe social - challenges and related technical issues that must be faced in - building, deploying, and sustaining a scalable, distributed, - low-latency anonymity network. -\end{abstract} - -\section{Introduction} -% Your network is not practical unless it is sustainable and distributed. -Anonymous communication is full of surprises. This article describes -Tor, a low-latency general-purpose anonymous communication system, and -discusses some unexpected challenges arising from our experiences -deploying Tor. We will discuss -some of the difficulties we have experienced and how we have met them (or how -we plan to meet them, if we know). -% We also discuss some less -% troublesome open problems that we must nevertheless eventually address. -%We will describe both those future challenges that we intend to explore and -%those that we have decided not to explore and why. - -Tor is an overlay network for anonymizing TCP streams over the -Internet~\cite{tor-design}. It addresses limitations in earlier Onion -Routing designs~\cite{or-ih96,or-jsac98,or-discex00,or-pet00} by adding -perfect forward secrecy, congestion control, directory servers, data -integrity, -%configurable exit policies, Huh? That was part of the gen. 1 design -PFS -and a revised design for location-hidden services using -rendezvous points. Tor works on the real-world Internet, requires no special -privileges or kernel modifications, requires little synchronization or -coordination between nodes, and provides a reasonable trade-off between -anonymity, usability, and efficiency. - -We deployed the public Tor network in October 2003; since then it has -grown to over nine hundred volunteer-operated nodes worldwide -and over 100 megabytes average traffic per second from hundreds of -thousands of concurrent users. -Tor's research strategy has focused on deploying -a network to as many users as possible; thus, we have resisted designs that -would compromise deployability by imposing high resource demands on node -operators, and designs that would compromise usability by imposing -unacceptable restrictions on which applications we support. Although this -strategy has drawbacks (including a weakened threat model, as -discussed below), it has made it possible for Tor to serve many -hundreds of thousands of users and attract funding from diverse -sources whose goals range from security on a national scale down to -individual liberties. - -In~\cite{tor-design} we gave an overall view of Tor's design and -goals. Here we review that design at a higher level and describe -some policy and social issues that we face as -we continue deployment. Though we will discuss technical responses to -these, we do not in this article discuss purely technical challenges -facing Tor (e.g., transport protocol, resource scaling issues, moving -to non-clique topologies, performance, etc.), nor do we even cover -all of the social issues: we simply touch on some of the most salient of these. -Also, rather than providing complete solutions to every problem, we -instead lay out the challenges and constraints that we have observed while -deploying Tor. In doing so, we aim to provide a research agenda -of general interest to projects attempting to build -and deploy practical, usable anonymity networks in the wild. - -%While the Tor design paper~\cite{tor-design} gives an overall view its -%design and goals, -%this paper describes the policy and technical issues that Tor faces as -%we continue deployment. Rather than trying to provide complete solutions -%to every problem here, we lay out the assumptions and constraints -%that we have observed through deploying Tor in the wild. In doing so, we -%aim to create a research agenda for others to -%help in addressing these issues. -% Section~\ref{sec:what-is-tor} gives an -%overview of the Tor -%design and ours goals. Sections~\ref{sec:crossroads-policy} -%and~\ref{sec:crossroads-design} go on to describe the practical challenges, -%both policy and technical respectively, -%that stand in the way of moving -%from a practical useful network to a practical useful anonymous network. - -%\section{What Is Tor} -\section{Background} -Here we give a basic overview of the Tor design and its properties, and -compare Tor to other low-latency anonymity designs. - -\subsection{Tor, threat models, and distributed trust} -\label{sec:what-is-tor} - -%Here we give a basic overview of the Tor design and its properties. For -%details on the design, assumptions, and security arguments, we refer -%the reader to the Tor design paper~\cite{tor-design}. - -Tor provides \emph{forward privacy}, so that users can connect to -Internet sites without revealing their logical or physical locations -to those sites or to observers. It also provides \emph{location-hidden -services}, so that servers can support authorized users without -giving an effective vector for physical or online attackers. -Tor provides these protections even when a portion of its -infrastructure is compromised. - -To connect to a remote server via Tor, the client software learns a signed -list of Tor nodes from one of several central \emph{directory servers}, and -incrementally creates a private pathway or \emph{circuit} of encrypted -connections through authenticated Tor nodes on the network, negotiating a -separate set of encryption keys for each hop along the circuit. The circuit -is extended one node at a time, and each node along the way knows only the -immediately previous and following nodes in the circuit, so no individual Tor -node knows the complete path that each fixed-sized data packet (or -\emph{cell}) will take. -%Because each node sees no more than one hop in the -%circuit, -Thus, neither an eavesdropper nor a compromised node can -see both the connection's source and destination. Later requests use a new -circuit, to complicate long-term linkability between different actions by -a single user. - -%Tor also helps servers hide their locations while -%providing services such as web publishing or instant -%messaging. Using ``rendezvous points'', other Tor users can -%connect to these authenticated hidden services, neither one learning the -%other's network identity. - -Tor attempts to anonymize the transport layer, not the application layer. -This approach is useful for applications such as SSH -where authenticated communication is desired. However, when anonymity from -those with whom we communicate is desired, -application protocols that include personally identifying information need -additional application-level scrubbing proxies, such as -Privoxy~\cite{privoxy} for HTTP\@. Furthermore, Tor does not relay arbitrary -IP packets; it only anonymizes TCP streams and DNS requests. -%, and only supports -%connections via SOCKS -%(but see Section~\ref{subsec:tcp-vs-ip}). - -%Most node operators do not want to allow arbitrary TCP traffic. % to leave -%their server. -%To address this, Tor provides \emph{exit policies} so -%each exit node can block the IP addresses and ports it is unwilling to allow. -%Tor nodes advertise their exit policies to the directory servers, so that -%client can tell which nodes will support their connections. -% -%***Covered in 3.4*** Matt Edman via -PFS -% -%As of this writing, the Tor network has grown to around nine hundred nodes -%on four continents, with a total average load exceeding 100 MB/s and -%a total capacity exceeding %1Gbit/s. -%\\***What's the current capacity? -PFS***\\ -% -%***Covered in intro*** Matt Edman via -PFS -% -%Appendix A -%shows a graph of the number of working nodes over time, as well as a -%graph of the number of bytes being handled by the network over time. -%The network is now sufficiently diverse for further development -%and testing; but of course we always encourage new nodes -%to join. - -Building from earlier versions of onion routing developed at NRL, -Tor was researched and developed by NRL and FreeHaven under -funding by ONR and DARPA for use in securing government -communications. Continuing development and deployment has also been -funded by the Omidyar Network, the Electronic Frontier Foundation for use -in maintaining civil liberties for ordinary citizens online, and the -International Broadcasting Bureau and Reporters without Borders to combat -blocking and censorship on the Internet. As we will see below, -this wide variety of interests helps maintain both the stability and -the security of the network. - -% The Tor -%protocol was chosen -%for the anonymizing layer in the European Union's PRIME directive to -%help maintain privacy in Europe. -%The AN.ON project in Germany -%has integrated an independent implementation of the Tor protocol into -%their popular Java Anon Proxy anonymizing client. - -\medskip -\noindent -{\bf Threat models and design philosophy.} -The ideal Tor network would be practical, useful and anonymous. When -trade-offs arise between these properties, Tor's research strategy has been -to remain useful enough to attract many users, -and practical enough to support them. Only subject to these -constraints do we try to maximize -anonymity.\footnote{This is not the only possible -direction in anonymity research: designs exist that provide more anonymity -than Tor at the expense of significantly increased resource requirements, or -decreased flexibility in application support (typically because of increased -latency). Such research does not typically abandon aspirations toward -deployability or utility, but instead tries to maximize deployability and -utility subject to a certain degree of structural anonymity (structural because -usability and practicality affect usage which affects the actual anonymity -provided by the network \cite{econymics,back01}).} -%{We believe that these -%approaches can be promising and useful, but that by focusing on deploying a -%usable system in the wild, Tor helps us experiment with the actual parameters -%of what makes a system ``practical'' for volunteer operators and ``useful'' -%for home users, and helps illuminate undernoticed issues which any deployed -%volunteer anonymity network will need to address.} -Because of our strategy, Tor has a weaker threat model than many designs in -the literature. In particular, because we -support interactive communications without impractically expensive padding, -we fall prey to a variety -of intra-network~\cite{back01,attack-tor-oak05,flow-correlation04,hs-attack} -and -end-to-end~\cite{danezis:pet2004,SS03} anonymity-breaking attacks. - -Tor does not attempt to defend against a global observer. In general, an -attacker who can measure both ends of a connection through the Tor network -% I say 'measure' rather than 'observe', to encompass murdoch-danezis -% style attacks. -RD -can correlate the timing and volume of data on that connection as it enters -and leaves the network, and so link communication partners. -Known solutions to this attack would seem to require introducing a -prohibitive degree of traffic padding between the user and the network, or -introducing an unacceptable degree of latency. -Also, it is not clear that these methods would -work at all against a minimally active adversary who could introduce timing -patterns or additional traffic. Thus, Tor only attempts to defend against -external observers who cannot observe both sides of a user's connections. - -Against internal attackers who sign up Tor nodes, the situation is more -complicated. In the simplest case, if an adversary has compromised $c$ of -$n$ nodes on the Tor network, then the adversary will be able to compromise -a random circuit with probability $\frac{c^2}{n^2}$~\cite{or-pet00} -(since the circuit -initiator chooses hops randomly). But there are -complicating factors: -(1)~If the user continues to build random circuits over time, an adversary - is pretty certain to see a statistical sample of the user's traffic, and - thereby can build an increasingly accurate profile of her behavior. -(2)~An adversary who controls a popular service outside the Tor network - can be certain to observe all connections to that service; he - can therefore trace connections to that service with probability - $\frac{c}{n}$. -(3)~Users do not in fact choose nodes with uniform probability; they - favor nodes with high bandwidth or uptime, and exit nodes that - permit connections to their favorite services. -We demonstrated the severity of these problems in experiments on the -live Tor network in 2006~\cite{hsattack} and introduced \emph{entry - guards} as a means to curtail them. By choosing entry guards from -a small persistent subset, it becomes difficult for an adversary to -increase the number of circuits observed entering the network from any -given client simply by causing -numerous connections or by watching compromised nodes over time.% (See -%also Section~\ref{subsec:routing-zones} for discussion of larger -%adversaries and our dispersal goals.) - - -% I'm trying to make this paragraph work without reference to the -% analysis/confirmation distinction, which we haven't actually introduced -% yet, and which we realize isn't very stable anyway. Also, I don't want to -% deprecate these attacks if we can't demonstrate that they don't work, since -% in case they *do* turn out to work well against Tor, we'll look pretty -% foolish. -NM -% -% Matt suggests maybe cutting the following paragraph -PFS -% -More powerful attacks may exist. In \cite{hintz-pet02} it was -shown that an attacker who can catalog data volumes of popular -responder destinations (say, websites with consistent data volumes) may not -need to -observe both ends of a stream to learn source-destination links for those -responders. Entry guards should complicate such attacks as well. -Similarly, latencies of going through various routes can be -cataloged~\cite{back01} to connect endpoints. -% Also, \cite{kesdogan:pet2002} takes the -% attack another level further, to narrow down where you could be -% based on an intersection attack on subpages in a website. -RD -It has not yet been shown whether these attacks will succeed or fail -in the presence of the variability and volume quantization introduced by the -Tor network, but it seems likely that these factors will at best delay -the time and data needed for success -rather than prevent the attacks completely. - -\workingnote{ -Along similar lines, the same paper suggests a ``clogging -attack'' in which the throughput on a circuit is observed to slow -down when an adversary clogs the right nodes with his own traffic. -To determine the nodes in a circuit this attack requires the ability -to continuously monitor the traffic exiting the network on a circuit -that is up long enough to probe all network nodes in binary fashion. -% Though somewhat related, clogging and interference are really different -% attacks with different assumptions about adversary distribution and -% capabilities as well as different techniques. -pfs -Murdoch and Danezis~\cite{attack-tor-oak05} show a practical -interference attack against portions of -the fifty node Tor network as deployed in mid 2004. -An outside attacker can actively trace a circuit through the Tor network -by observing changes in the latency of his -own traffic sent through various Tor nodes. This can be done -simultaneously at multiple nodes; however, like clogging, -this attack only reveals -the Tor nodes in the circuit, not initiator and responder addresses, -so it is still necessary to discover the endpoints to complete an -effective attack. The the size and diversity of the Tor network have -increased many fold since then, and it is unknown if the attacks -can scale to the current Tor network. -} - - -%discuss $\frac{c^2}{n^2}$, except how in practice the chance of owning -%the last hop is not $c/n$ since that doesn't take the destination (website) -%into account. so in cases where the adversary does not also control the -%final destination we're in good shape, but if he *does* then we'd be better -%off with a system that lets each hop choose a path. -% -%Isn't it more accurate to say ``If the adversary _always_ controls the final -% dest, we would be just as well off with such as system.'' ? If not, why -% not? -nm -% Sure. In fact, better off, since they seem to scale more easily. -rd - -%Murdoch and Danezis describe an attack -%\cite{attack-tor-oak05} that lets an attacker determine the nodes used -%in a circuit; yet s/he cannot identify the initiator or responder, -%e.g., client or web server, through this attack. So the endpoints -%remain secure, which is the goal. It is conceivable that an -%adversary could attack or set up observation of all connections -%to an arbitrary Tor node in only a few minutes. If such an adversary -%were to exist, s/he could use this probing to remotely identify a node -%for further attack. Of more likely immediate practical concern -%an adversary with active access to the responder traffic -%wants to keep a circuit alive long enough to attack an identified -%node. Thus it is important to prevent the responding end of the circuit -%from keeping it open indefinitely. -%Also, someone could identify nodes in this way and if in their -%jurisdiction, immediately get a subpoena (if they even need one) -%telling the node operator(s) that she must retain all the active -%circuit data she now has. -%Further, the enclave model, which had previously looked to be the most -%generally secure, seems particularly threatened by this attack, since -%it identifies endpoints when they're also nodes in the Tor network: -%see Section~\ref{subsec:helper-nodes} for discussion of some ways to -%address this issue. - -\medskip -\noindent -{\bf Distributed trust.} -In practice Tor's threat model is based on -dispersal and diversity. -Our defense lies in having a diverse enough set of nodes -to prevent most real-world -adversaries from being in the right places to attack users, -by distributing each transaction -over several nodes in the network. This ``distributed trust'' approach -means the Tor network can be safely operated and used by a wide variety -of mutually distrustful users, providing sustainability and security. -%than some previous attempts at anonymizing networks. - -%No organization can achieve this security on its own. If a single -%corporation or government agency were to build a private network to -%protect its operations, any connections entering or leaving that network -%would be obviously linkable to the controlling organization. The members -%and operations of that agency would be easier, not harder, to distinguish. - -To protect our networks from traffic analysis, we must -collaboratively blend the traffic from many organizations and private -citizens, so that an eavesdropper can't tell which users are which, -and who is looking for what information. %By bringing more users onto -%the network, all users become more secure~\cite{econymics}. -%[XXX I feel uncomfortable saying this last sentence now. -RD] -%[So, I took it out. I think we can do without it. -PFS] -The Tor network has a broad range of users, including ordinary citizens -concerned about their privacy, corporations -who don't want to reveal information to their competitors, and law -enforcement and government intelligence agencies who need -to do operations on the Internet without being noticed. -Naturally, organizations will not want to depend on others for their -security. If most participating providers are reliable, Tor tolerates -some hostile infiltration of the network. For maximum protection, -the Tor design includes an enclave approach that lets data be encrypted -(and authenticated) end-to-end, so high-sensitivity users can be sure it -hasn't been read or modified. This even works for Internet services that -don't have built-in encryption and authentication, such as unencrypted -HTTP or chat, and it requires no modification of those services. - -%\subsection{Related work} -Tor differs from other deployed systems for traffic analysis resistance -in its security and flexibility. Mix networks such as -Mixmaster~\cite{mixmaster-spec} or its successor Mixminion~\cite{minion-design} -gain the highest degrees of anonymity at the expense of introducing highly -variable delays, making them unsuitable for applications such as web -browsing. Commercial single-hop -proxies~\cite{anonymizer} can provide good performance, but -a single compromise can expose all users' traffic, and a single-point -eavesdropper can perform traffic analysis on the entire network. -%Also, their proprietary implementations place any infrastructure that -%depends on these single-hop solutions at the mercy of their providers' -%financial health as well as network security. -The Java -Anon Proxy (JAP)~\cite{web-mix} provides similar functionality to Tor but -handles only web browsing rather than all TCP\@. Because all traffic -passes through fixed ``cascades'' for which the endpoints are predictable, -an adversary can know where to watch for traffic analysis from particular -clients or to particular web servers. The design calls for padding to -complicate this, although it does not appear to be implemented. -%Some peer-to-peer file-sharing overlay networks such as -%Freenet~\cite{freenet} and Mute~\cite{mute} -The Freedom -network from Zero-Knowledge Systems~\cite{freedom21-security} -was even more flexible than Tor in -transporting arbitrary IP packets, and also supported -pseudonymity in addition to anonymity; but it had -a different approach to sustainability (collecting money from users -and paying ISPs to run Tor nodes), and was eventually shut down due to financial -load. Finally, %potentially more scalable -% [I had added 'potentially' because the scalability of these designs -% is not established, and I am uncomfortable making the -% bolder unmodified assertion. Roger took 'potentially' out. -% Here's an attempt at more neutral wording -pfs] -peer-to-peer designs that are intended to be more scalable, -for example Tarzan~\cite{tarzan:ccs02} and -MorphMix~\cite{morphmix:fc04}, have been proposed in the literature but -have not been fielded. These systems differ somewhat -in threat model and presumably practical resistance to threats. -% -% Matt suggests cutting some or all of the rest of this paragraph. -PFS -% -Note that MorphMix differs from Tor only in -node discovery and circuit setup; so Tor's architecture is flexible -enough to contain a MorphMix experiment. Recently, -Tor has adopted from MorphMix the approach of making it harder to -own both ends of a circuit by requiring that nodes be chosen from -different /16 subnets. This requires -an adversary to own nodes in multiple address ranges to even have the -possibility of observing both ends of a circuit. We direct the -interested reader to~\cite{tor-design} for a more in-depth review of -related work. - -%XXXX six-four. crowds. i2p. - -%XXXX -%have a serious discussion of morphmix's assumptions, since they would -%seem to be the direct competition. in fact tor is a flexible architecture -%that would encompass morphmix, and they're nearly identical except for -%path selection and node discovery. and the trust system morphmix has -%seems overkill (and/or insecure) based on the threat model we've picked. -% this para should probably move to the scalability / directory system. -RD -% Nope. Cut for space, except for small comment added above -PFS - -\section{Social challenges} - -Many of the issues the Tor project needs to address extend beyond -system design and technology development. In particular, the -Tor project's \emph{image} with respect to its users and the rest of -the Internet impacts the security it can provide. -With this image issue in mind, this section discusses the Tor user base and -Tor's interaction with other services on the Internet. - -\subsection{Communicating security} - -Usability for anonymity systems -contributes to their security, because usability -affects the possible anonymity set~\cite{econymics,back01}. -Conversely, an unusable system attracts few users and thus can't provide -much anonymity. - -This phenomenon has a second-order effect: knowing this, users should -choose which anonymity system to use based in part on how usable -and secure -\emph{others} will find it, in order to get the protection of a larger -anonymity set. Thus we might supplement the adage ``usability is a security -parameter''~\cite{back01} with a new one: ``perceived usability is a -security parameter.''~\cite{usability-network-effect}. -% From here we can better understand the effects -%of publicity on security: the more convincing your -%advertising, the more likely people will believe you have users, and thus -%the more users you will attract. Perversely, over-hyped systems (if they -%are not too broken) may be a better choice than modestly promoted ones, -%if the hype attracts more users~\cite{usability-network-effect}. - -%So it follows that we should come up with ways to accurately communicate -%the available security levels to the user, so she can make informed -%decisions. -%JAP aims to do this by including a -%comforting `anonymity meter' dial in the software's graphical interface, -%giving the user an impression of the level of protection for her current -%traffic. - -However, there's a catch. For users to share the same anonymity set, -they need to act like each other. An attacker who can distinguish -a given user's traffic from the rest of the traffic will not be -distracted by anonymity set size. For high-latency systems like -Mixminion, where the threat model is based on mixing messages with each -other, there's an arms race between end-to-end statistical attacks and -counter-strategies~\cite{statistical-disclosure,minion-design,e2e-traffic,trickle02}. -But for low-latency systems like Tor, end-to-end \emph{traffic -correlation} attacks~\cite{danezis:pet2004,defensive-dropping,SS03,hs-attack} -allow an attacker who can observe both ends of a communication -to correlate packet timing and volume, quickly linking -the initiator to her destination. - -\workingnote{ -Like Tor, the current JAP implementation does not pad connections -apart from using small fixed-size cells for transport. In fact, -JAP's cascade-based network topology may be more vulnerable to these -attacks, because its network has fewer edges. JAP was born out of -the ISDN mix design~\cite{isdn-mixes}, where padding made sense because -every user had a fixed bandwidth allocation and altering the timing -pattern of packets could be immediately detected. But in its current context -as an Internet web anonymizer, adding sufficient padding to JAP -would probably be prohibitively expensive and ineffective against a -minimally active attacker.\footnote{Even if JAP could -fund higher-capacity nodes indefinitely, our experience -suggests that many users would not accept the increased per-user -bandwidth requirements, leading to an overall much smaller user base.} -Therefore, since under this threat -model the number of concurrent users does not seem to have much impact -on the anonymity provided, we suggest that JAP's anonymity meter is not -accurately communicating security levels to its users. - -On the other hand, while the number of active concurrent users may not -matter as much as we'd like, it still helps to have some other users -on the network, in particular different types of users. -We investigate this issue next. -} -\subsection{Reputability and perceived social value} -Another factor impacting the network's security is its reputability: -the perception of its social value based on its current user base. If Alice is -the only user who has ever downloaded the software, it might be socially -accepted, but she's not getting much anonymity. Add a thousand -activists, and she's anonymous, but everyone thinks she's an activist too. -Add a thousand -diverse citizens (cancer survivors, privacy enthusiasts, and so on) -and now she's harder to profile. - -Furthermore, the network's reputability affects its operator base: more people -are willing to run a service if they believe it will be used by human rights -workers than if they believe it will be used exclusively for disreputable -ends. This effect becomes stronger if node operators themselves think they -will be associated with their users' disreputable ends. - -So the more cancer survivors on Tor, the better for the human rights -activists. The more malicious hackers, the worse for the normal users. Thus, -reputability is an anonymity issue for two reasons. First, it impacts -the sustainability of the network: a network that's always about to be -shut down has difficulty attracting and keeping adequate nodes. -Second, a disreputable network is more vulnerable to legal and -political attacks, since it will attract fewer supporters. - -\workingnote{ -While people therefore have an incentive for the network to be used for -``more reputable'' activities than their own, there are still trade-offs -involved when it comes to anonymity. To follow the above example, a -network used entirely by cancer survivors might welcome file sharers -onto the network, though of course they'd prefer a wider -variety of users. -} -Reputability becomes even more tricky in the case of privacy networks, -since the good uses of the network (such as publishing by journalists in -dangerous countries) are typically kept private, whereas network abuses -or other problems tend to be more widely publicized. - -\workingnote{ -The impact of public perception on security is especially important -during the bootstrapping phase of the network, where the first few -widely publicized uses of the network can dictate the types of users it -attracts next. -As an example, some U.S.~Department of Energy -penetration testing engineers are tasked with compromising DoE computers -from the outside. They only have a limited number of ISPs from which to -launch their attacks, and they found that the defenders were recognizing -attacks because they came from the same IP space. These engineers wanted -to use Tor to hide their tracks. First, from a technical standpoint, -Tor does not support the variety of IP packets one would like to use in -such attacks.% (see Section~\ref{subsec:tcp-vs-ip}). -But aside from this, we also decided that it would probably be poor -precedent to encourage such use---even legal use that improves -national security---and managed to dissuade them. -} -%% "outside of academia, jap has just lost, permanently". (That is, -%% even though the crime detection issues are resolved and are unlikely -%% to go down the same way again, public perception has not been kind.) - -\subsection{Sustainability and incentives} -One of the unsolved problems in low-latency anonymity designs is -how to keep the nodes running. ZKS's Freedom network -depended on paying third parties to run its servers; the JAP project's -bandwidth depends on grants to pay for its bandwidth and -administrative expenses. In Tor, bandwidth and administrative costs are -distributed across the volunteers who run Tor nodes, so we at least have -reason to think that the Tor network could survive without continued research -funding.\footnote{It also helps that Tor is implemented with free and open - source software that can be maintained by anybody with the ability and - inclination.} But why are these volunteers running nodes, and what can we -do to encourage more volunteers to do so? - -We have not formally surveyed Tor node operators to learn why they are -running nodes, but -from the information they have provided, it seems that many of them run Tor -nodes for reasons of personal interest in privacy issues. It is possible -that others are running Tor nodes to protect their own -anonymity, but of course they are -hardly likely to tell us specifics if they are. -%Significantly, Tor's threat model changes the anonymity incentives for running -%a node. In a high-latency mix network, users can receive additional -%anonymity by running their own node, since doing so obscures when they are -%injecting messages into the network. But, anybody observing all I/O to a Tor -%node can tell when the node is generating traffic that corresponds to -%none of its incoming traffic. -% -%I didn't buy the above for reason's subtle enough that I just cut it -PFS -Tor exit node operators do attain a degree of -``deniability'' for traffic that originates at that exit node. For - example, it is likely in practice that HTTP requests from a Tor node's IP - will be assumed to be from the Tor network. - More significantly, people and organizations who use Tor for - anonymity depend on the - continued existence of the Tor network to do so; running a node helps to - keep the network operational. -%\item Local Tor entry and exit nodes allow users on a network to run in an -% `enclave' configuration. [XXXX need to resolve this. They would do this -% for E2E encryption + auth?] - - -%We must try to make the costs of running a Tor node easily minimized. -Since Tor is run by volunteers, the most crucial software usability issue is -usability by operators: when an operator leaves, the network becomes less -usable by everybody. To keep operators pleased, we must try to keep Tor's -resource and administrative demands as low as possible. - -Because of ISP billing structures, many Tor operators have underused capacity -that they are willing to donate to the network, at no additional monetary -cost to them. Features to limit bandwidth have been essential to adoption. -Also useful has been a ``hibernation'' feature that allows a Tor node that -wants to provide high bandwidth, but no more than a certain amount in a -given billing cycle, to become dormant once its bandwidth is exhausted, and -to reawaken at a random offset into the next billing cycle. -Exit policies help to limit administrative costs by limiting the frequency of -abuse complaints (see Section~\ref{subsec:tor-and-blacklists}). -% We discuss -%technical incentive mechanisms in Section~\ref{subsec:incentives-by-design}. - -%[XXXX say more. Why else would you run a node? What else can we do/do we -% already do to make running a node more attractive?] -%[We can enforce incentives; see Section 6.1. We can rate-limit clients. -% We can put "top bandwidth nodes lists" up a la seti@home.] - -\workingnote{ -\subsection{Bandwidth and file-sharing} -\label{subsec:bandwidth-and-file-sharing} -%One potentially problematical area with deploying Tor has been our response -%to file-sharing applications. -Once users have configured their applications to work with Tor, the largest -remaining usability issue is performance. Users begin to suffer -when websites ``feel slow.'' -Clients currently try to build their connections through nodes that they -guess will have enough bandwidth. But even if capacity is allocated -optimally, it seems unlikely that the current network architecture will have -enough capacity to provide every user with as much bandwidth as she would -receive if she weren't using Tor, unless far more nodes join the network. - -%Limited capacity does not destroy the network, however. Instead, usage tends -%towards an equilibrium: when performance suffers, users who value performance -%over anonymity tend to leave the system, thus freeing capacity until the -%remaining users on the network are exactly those willing to use that capacity -%there is. - -Much of Tor's recent bandwidth difficulties have come from file-sharing -applications. These applications provide two challenges to -any anonymizing network: their intensive bandwidth requirement, and the -degree to which they are associated (correctly or not) with copyright -infringement. - -High-bandwidth protocols can make the network unresponsive, -but tend to be somewhat self-correcting as lack of bandwidth drives away -users who need it. Issues of copyright violation, -however, are more interesting. Typical exit node operators want to help -people achieve private and anonymous speech, not to help people (say) host -Vin Diesel movies for download; and typical ISPs would rather not -deal with customers who draw menacing letters -from the MPAA\@. While it is quite likely that the operators are doing nothing -illegal, many ISPs have policies of dropping users who get repeated legal -threats regardless of the merits of those threats, and many operators would -prefer to avoid receiving even meritless legal threats. -So when letters arrive, operators are likely to face -pressure to block file-sharing applications entirely, in order to avoid the -hassle. - -But blocking file-sharing is not easy: popular -protocols have evolved to run on non-standard ports to -get around other port-based bans. Thus, exit node operators who want to -block file-sharing would have to find some way to integrate Tor with a -protocol-aware exit filter. This could be a technically expensive -undertaking, and one with poor prospects: it is unlikely that Tor exit nodes -would succeed where so many institutional firewalls have failed. Another -possibility for sensitive operators is to run a restrictive node that -only permits exit connections to a restricted range of ports that are -not frequently associated with file sharing. There are increasingly few such -ports. - -Other possible approaches might include rate-limiting connections, especially -long-lived connections or connections to file-sharing ports, so that -high-bandwidth connections do not flood the network. We might also want to -give priority to cells on low-bandwidth connections to keep them interactive, -but this could have negative anonymity implications. - -For the moment, it seems that Tor's bandwidth issues have rendered it -unattractive for bulk file-sharing traffic; this may continue to be so in the -future. Nevertheless, Tor will likely remain attractive for limited use in -file-sharing protocols that have separate control and data channels. - -%[We should say more -- but what? That we'll see a similar -% equilibriating effect as with bandwidth, where sensitive ops switch to -% middleman, and we become less useful for file-sharing, so the file-sharing -% people back off, so we get more ops since there's less file-sharing, so the -% file-sharers come back, etc.] - -%XXXX -%in practice, plausible deniability is hypothetical and doesn't seem very -%convincing. if ISPs find the activity antisocial, they don't care *why* -%your computer is doing that behavior. -} - -\subsection{Tor and blacklists} -\label{subsec:tor-and-blacklists} - -It was long expected that, alongside legitimate users, Tor would also -attract troublemakers who exploit Tor to abuse services on the -Internet with vandalism, rude mail, and so on. -Our initial answer to this situation was to use ``exit policies'' -to allow individual Tor nodes to block access to specific IP/port ranges. -This approach aims to make operators more willing to run Tor by allowing -them to prevent their nodes from being used for abusing particular -services. For example, by default Tor nodes block SMTP (port 25), -to avoid the issue of spam. -\workingnote{ -Note that for spammers, Tor would be -a step back, a much less effective means of distributing spam than -those currently available. This is thus primarily an unmistakable -answer to those confused about Internet communication who might raise -spam as an issue. -} - -Exit policies are useful, but they are insufficient: if not all nodes -block a given service, that service may try to block Tor instead. -While being blockable is important to being good netizens, we would like -to encourage services to allow anonymous access. Services should not -need to decide between blocking legitimate anonymous use and allowing -unlimited abuse. For the time being, blocking by IP address is -an expedient strategy, even if it undermines Internet stability and -functionality in the long run~\cite{netauth} - -This is potentially a bigger problem than it may appear. -On the one hand, services should be allowed to refuse connections from -sources of possible abuse. -But when a Tor node administrator decides whether he prefers to be able -to post to Wikipedia from his IP address, or to allow people to read -Wikipedia anonymously through his Tor node, he is making the decision -for others as well. (For a while, Wikipedia -blocked all posting from all Tor nodes based on IP addresses.) If -the Tor node shares an address with a campus or corporate NAT, -then the decision can prevent the entire population from posting. -Similarly, whether intended or not, such blocking supports -repression of free speech. In many locations where Internet access -of various kinds is censored or even punished by imprisonment, -Tor is a path both to the outside world and to others inside. -Blocking posts from Tor makes the job of censoring authorities easier. -This is a loss for both Tor -and Wikipedia: we don't want to compete for (or divvy up) the -NAT-protected entities of the world. -This is also unfortunate because there are relatively simple technical -solutions. -Various schemes for escrowing anonymous posts until they are reviewed -by editors would both prevent abuse and remove incentives for attempts -to abuse. Further, pseudonymous reputation tracking of posters through Tor -would allow those who establish adequate reputation to post without -escrow. -\workingnote{ -Software to support pseudonymous access via Tor designed precisely -to interact with Wikipedia's access mechanism has even been developed -and proposed to Wikimedia by Jason Holt~\cite{nym}, but has not been taken up. - - -Perhaps worse, many IP blacklists are coarse-grained: they ignore Tor's exit -policies, partly because it's easier to implement and partly -so they can punish -all Tor nodes. One IP blacklist even bans -every class C network that contains a Tor node, and recommends banning SMTP -from these networks even though Tor does not allow SMTP at all. This -strategic decision aims to discourage the -operation of anything resembling an open proxy by encouraging its neighbors -to shut it down to get unblocked themselves. This pressure even -affects Tor nodes running in middleman mode (disallowing all exits) when -those nodes are blacklisted too. -% Perception of Tor as an abuse vector -%is also partly driven by multiple base-rate fallacies~\cite{axelsson00}. -} - -Problems of abuse occur mainly with services such as IRC networks and -Wikipedia, which rely on IP blocking to ban abusive users. While at first -blush this practice might seem to depend on the anachronistic assumption that -each IP is an identifier for a single user, it is actually more reasonable in -practice: it assumes that non-proxy IPs are a costly resource, and that an -abuser can not change IPs at will. By blocking IPs which are used by Tor -nodes, open proxies, and service abusers, these systems hope to make -ongoing abuse difficult. Although the system is imperfect, it works -tolerably well for them in practice. - -Of course, we would prefer that legitimate anonymous users be able to -access abuse-prone services. -\workingnote{ - One conceivable approach would require -would-be IRC users, for instance, to register accounts if they want to -access the IRC network from Tor. In practice this would not -significantly impede abuse if creating new accounts were easily automatable; -this is why services use IP blocking. To deter abuse, pseudonymous -identities need to require a significant switching cost in resources or human -time. Some popular webmail applications -impose cost with Reverse Turing Tests, but this step may not deter all -abusers. Freedom used blind signatures to limit -the number of pseudonyms for each paying account, but Tor has neither the -ability nor the desire to collect payment. -} -We stress that as far as we can tell, most Tor uses are not -abusive. Most services have not complained, and others are actively -working to find ways besides banning to cope with the abuse. For example, -the Freenode IRC network had a problem with a coordinated group of -abusers joining channels and subtly taking over the conversation; but -when they labelled all users coming from Tor IPs as ``anonymous users,'' -removing the ability of the abusers to blend in, the abuse stopped. -This is an illustration of how simple technical mechanisms can remove -the ability to abuse anonymously without undermining the ability -to communicate anonymously and can thus remove the incentive to attempt -abusing in this way. - -%The use of squishy IP-based ``authentication'' and ``authorization'' -%has not broken down even to the level that SSNs used for these -%purposes have in commercial and public record contexts. Externalities -%and misplaced incentives cause a continued focus on fighting identity -%theft by protecting SSNs rather than developing better authentication -%and incentive schemes \cite{price-privacy}. Similarly we can expect a -%continued use of identification by IP number as long as there is no -%workable alternative. - -%[XXX Mention correct DNS-RBL implementation. -NM] - -\workingnote{ -\section{Design choices} - -In addition to social issues, Tor also faces some design trade-offs that must -be investigated as the network develops. - -\subsection{Transporting the stream vs transporting the packets} -\label{subsec:stream-vs-packet} -\label{subsec:tcp-vs-ip} - -Tor transports streams; it does not tunnel packets. -It has often been suggested that like the old Freedom -network~\cite{freedom21-security}, Tor should -``obviously'' anonymize IP traffic -at the IP layer. Before this could be done, many issues need to be resolved: - -\begin{enumerate} -\setlength{\itemsep}{0mm} -\setlength{\parsep}{0mm} -\item \emph{IP packets reveal OS characteristics.} We would still need to do -IP-level packet normalization, to stop things like TCP fingerprinting -attacks. %There likely exist libraries that can help with this. -This is unlikely to be a trivial task, given the diversity and complexity of -TCP stacks. -\item \emph{Application-level streams still need scrubbing.} We still need -Tor to be easy to integrate with user-level application-specific proxies -such as Privoxy. So it's not just a matter of capturing packets and -anonymizing them at the IP layer. -\item \emph{Certain protocols will still leak information.} For example, we -must rewrite DNS requests so they are delivered to an unlinkable DNS server -rather than the DNS server at a user's ISP; thus, we must understand the -protocols we are transporting. -\item \emph{The crypto is unspecified.} First we need a block-level encryption -approach that can provide security despite -packet loss and out-of-order delivery. Freedom allegedly had one, but it was -never publicly specified. -Also, TLS over UDP is not yet implemented or -specified, though some early work has begun~\cite{dtls}. -\item \emph{We'll still need to tune network parameters.} Since the above -encryption system will likely need sequence numbers (and maybe more) to do -replay detection, handle duplicate frames, and so on, we will be reimplementing -a subset of TCP anyway---a notoriously tricky path. -\item \emph{Exit policies for arbitrary IP packets mean building a secure -IDS\@.} Our node operators tell us that exit policies are one of -the main reasons they're willing to run Tor. -Adding an Intrusion Detection System to handle exit policies would -increase the security complexity of Tor, and would likely not work anyway, -as evidenced by the entire field of IDS and counter-IDS papers. Many -potential abuse issues are resolved by the fact that Tor only transports -valid TCP streams (as opposed to arbitrary IP including malformed packets -and IP floods), so exit policies become even \emph{more} important as -we become able to transport IP packets. We also need to compactly -describe exit policies so clients can predict -which nodes will allow which packets to exit. -\item \emph{The Tor-internal name spaces would need to be redesigned.} We -support hidden service {\tt{.onion}} addresses (and other special addresses, -like {\tt{.exit}} which lets the user request a particular exit node), -by intercepting the addresses when they are passed to the Tor client. -Doing so at the IP level would require a more complex interface between -Tor and the local DNS resolver. -\end{enumerate} - -This list is discouragingly long, but being able to transport more -protocols obviously has some advantages. It would be good to learn which -items are actual roadblocks and which are easier to resolve than we think. - -To be fair, Tor's stream-based approach has run into -stumbling blocks as well. While Tor supports the SOCKS protocol, -which provides a standardized interface for generic TCP proxies, many -applications do not support SOCKS\@. For them we already need to -replace the networking system calls with SOCKS-aware -versions, or run a SOCKS tunnel locally, neither of which is -easy for the average user. %---even with good instructions. -Even when applications can use SOCKS, they often make DNS requests -themselves before handing an IP address to Tor, which advertises -where the user is about to connect. -We are still working on more usable solutions. - -%So to actually provide good anonymity, we need to make sure that -%users have a practical way to use Tor anonymously. Possibilities include -%writing wrappers for applications to anonymize them automatically; improving -%the applications' support for SOCKS; writing libraries to help application -%writers use Tor properly; and implementing a local DNS proxy to reroute DNS -%requests to Tor so that applications can simply point their DNS resolvers at -%localhost and continue to use SOCKS for data only. - -\subsection{Mid-latency} -\label{subsec:mid-latency} - -Some users need to resist traffic correlation attacks. Higher-latency -mix-networks introduce variability into message -arrival times: as timing variance increases, timing correlation attacks -require increasingly more data~\cite{e2e-traffic}. Can we improve Tor's -resistance without losing too much usability? - -We need to learn whether we can trade a small increase in latency -for a large anonymity increase, or if we'd end up trading a lot of -latency for only a minimal security gain. A trade-off might be worthwhile -even if we -could only protect certain use cases, such as infrequent short-duration -transactions. % To answer this question -We might adapt the techniques of~\cite{e2e-traffic} to a lower-latency mix -network, where the messages are batches of cells in temporally clustered -connections. These large fixed-size batches can also help resist volume -signature attacks~\cite{hintz-pet02}. We could also experiment with traffic -shaping to get a good balance of throughput and security. -%Other padding regimens might supplement the -%mid-latency option; however, we should continue the caution with which -%we have always approached padding lest the overhead cost us too much -%performance or too many volunteers. - -We must keep usability in mind too. How much can latency increase -before we drive users away? We've already been forced to increase -latency slightly, as our growing network incorporates more DSL and -cable-modem nodes and more nodes in distant continents. Perhaps we can -harness this increased latency to improve anonymity rather than just -reduce usability. Further, if we let clients label certain circuits as -mid-latency as they are constructed, we could handle both types of traffic -on the same network, giving users a choice between speed and security---and -giving researchers a chance to experiment with parameters to improve the -quality of those choices. - -\subsection{Enclaves and helper nodes} -\label{subsec:helper-nodes} - -It has long been thought that users can improve their anonymity by -running their own node~\cite{tor-design,or-ih96,or-pet00}, and using -it in an \emph{enclave} configuration, where all their circuits begin -at the node under their control. Running Tor clients or servers at -the enclave perimeter is useful when policy or other requirements -prevent individual machines within the enclave from running Tor -clients~\cite{or-jsac98,or-discex00}. - -Of course, Tor's default path length of -three is insufficient for these enclaves, since the entry and/or exit -% [edit war: without the ``and/'' the natural reading here -% is aut rather than vel. And the use of the plural verb does not work -pfs] -themselves are sensitive. Tor thus increments path length by one -for each sensitive endpoint in the circuit. -Enclaves also help to protect against end-to-end attacks, since it's -possible that traffic coming from the node has simply been relayed from -elsewhere. However, if the node has recognizable behavior patterns, -an attacker who runs nodes in the network can triangulate over time to -gain confidence that it is in fact originating the traffic. Wright et -al.~\cite{wright03} introduce the notion of a \emph{helper node}---a -single fixed entry node for each user---to combat this \emph{predecessor -attack}. - -However, the attack in~\cite{attack-tor-oak05} shows that simply adding -to the path length, or using a helper node, may not protect an enclave -node. A hostile web server can send constant interference traffic to -all nodes in the network, and learn which nodes are involved in the -circuit (though at least in the current attack, he can't learn their -order). Using randomized path lengths may help some, since the attacker -will never be certain he has identified all nodes in the path unless -he probes the entire network, but as -long as the network remains small this attack will still be feasible. - -Helper nodes also aim to help Tor clients, because choosing entry and exit -points -randomly and changing them frequently allows an attacker who controls -even a few nodes to eventually link some of their destinations. The goal -is to take the risk once and for all about choosing a bad entry node, -rather than taking a new risk for each new circuit. (Choosing fixed -exit nodes is less useful, since even an honest exit node still doesn't -protect against a hostile website.) But obstacles remain before -we can implement helper nodes. -For one, the literature does not describe how to choose helpers from a list -of nodes that changes over time. If Alice is forced to choose a new entry -helper every $d$ days and $c$ of the $n$ nodes are bad, she can expect -to choose a compromised node around -every $dc/n$ days. Statistically over time this approach only helps -if she is better at choosing honest helper nodes than at choosing -honest nodes. Worse, an attacker with the ability to DoS nodes could -force users to switch helper nodes more frequently, or remove -other candidate helpers. - -%Do general DoS attacks have anonymity implications? See e.g. Adam -%Back's IH paper, but I think there's more to be pointed out here. -RD -% Not sure what you want to say here. -NM - -%Game theory for helper nodes: if Alice offers a hidden service on a -%server (enclave model), and nobody ever uses helper nodes, then against -%George+Steven's attack she's totally nailed. If only Alice uses a helper -%node, then she's still identified as the source of the data. If everybody -%uses a helper node (including Alice), then the attack identifies the -%helper node and also Alice, and knows which one is which. If everybody -%uses a helper node (but not Alice), then the attacker figures the real -%source was a client that is using Alice as a helper node. [How's my -%logic here?] -RD -% -% Not sure about the logic. For the attack to work with helper nodes, the -%attacker needs to guess that Alice is running the hidden service, right? -%Otherwise, how can he know to measure her traffic specifically? -NM -% -% In the Murdoch-Danezis attack, the adversary measures all servers. -RD - -%point to routing-zones section re: helper nodes to defend against -%big stuff. - -\subsection{Location-hidden services} -\label{subsec:hidden-services} - -% This section is first up against the wall when the revolution comes. - -Tor's \emph{rendezvous points} -let users provide TCP services to other Tor users without revealing -the service's location. Since this feature is relatively recent, we describe -here -a couple of our early observations from its deployment. - -First, our implementation of hidden services seems less hidden than we'd -like, since they build a different rendezvous circuit for each user, -and an external adversary can induce them to -produce traffic. This insecurity means that they may not be suitable as -a building block for Free Haven~\cite{freehaven-berk} or other anonymous -publishing systems that aim to provide long-term security, though helper -nodes, as discussed above, would seem to help. - -\emph{Hot-swap} hidden services, where more than one location can -provide the service and loss of any one location does not imply a -change in service, would help foil intersection and observation attacks -where an adversary monitors availability of a hidden service and also -monitors whether certain users or servers are online. The design -challenges in providing such services without otherwise compromising -the hidden service's anonymity remain an open problem; -however, see~\cite{move-ndss05}. - -In practice, hidden services are used for more than just providing private -access to a web server or IRC server. People are using hidden services -as a poor man's VPN and firewall-buster. Many people want to be able -to connect to the computers in their private network via secure shell, -and rather than playing with dyndns and trying to pierce holes in their -firewall, they run a hidden service on the inside and then rendezvous -with that hidden service externally. - -News sites like Bloggers Without Borders (www.b19s.org) are advertising -a hidden-service address on their front page. Doing this can provide -increased robustness if they use the dual-IP approach we describe -in~\cite{tor-design}, -but in practice they do it to increase visibility -of the Tor project and their support for privacy, and to offer -a way for their users, using unmodified software, to get end-to-end -encryption and authentication to their website. - -\subsection{Location diversity and ISP-class adversaries} -\label{subsec:routing-zones} - -Anonymity networks have long relied on diversity of node location for -protection against attacks---typically an adversary who can observe a -larger fraction of the network can launch a more effective attack. One -way to achieve dispersal involves growing the network so a given adversary -sees less. Alternately, we can arrange the topology so traffic can enter -or exit at many places (for example, by using a free-route network -like Tor rather than a cascade network like JAP). Lastly, we can use -distributed trust to spread each transaction over multiple jurisdictions. -But how do we decide whether two nodes are in related locations? - -Feamster and Dingledine defined a \emph{location diversity} metric -in~\cite{feamster:wpes2004}, and began investigating a variant of location -diversity based on the fact that the Internet is divided into thousands of -independently operated networks called {\em autonomous systems} (ASes). -The key insight from their paper is that while we typically think of a -connection as going directly from the Tor client to the first Tor node, -actually it traverses many different ASes on each hop. An adversary at -any of these ASes can monitor or influence traffic. Specifically, given -plausible initiators and recipients, and given random path selection, -some ASes in the simulation were able to observe 10\% to 30\% of the -transactions (that is, learn both the origin and the destination) on -the deployed Tor network (33 nodes as of June 2004). - -The paper concludes that for best protection against the AS-level -adversary, nodes should be in ASes that have the most links to other ASes: -Tier-1 ISPs such as AT\&T and Abovenet. Further, a given transaction -is safest when it starts or ends in a Tier-1 ISP\@. Therefore, assuming -initiator and responder are both in the U.S., it actually \emph{hurts} -our location diversity to use far-flung nodes in -continents like Asia or South America. -% it's not just entering or exiting from them. using them as the middle -% hop reduces your effective path length, which you presumably don't -% want because you chose that path length for a reason. -% -% Not sure I buy that argument. Two end nodes in the right ASs to -% discourage linking are still not known to each other. If some -% adversary in a single AS can bridge the middle node, it shouldn't -% therefore be able to identify initiator or responder; although it could -% contribute to further attacks given more assumptions. -% Nonetheless, no change to the actual text for now. - -Many open questions remain. First, it will be an immense engineering -challenge to get an entire BGP routing table to each Tor client, or to -summarize it sufficiently. Without a local copy, clients won't be -able to safely predict what ASes will be traversed on the various paths -through the Tor network to the final destination. Tarzan~\cite{tarzan:ccs02} -and MorphMix~\cite{morphmix:fc04} suggest that we compare IP prefixes to -determine location diversity; but the above paper showed that in practice -many of the Mixmaster nodes that share a single AS have entirely different -IP prefixes. When the network has scaled to thousands of nodes, does IP -prefix comparison become a more useful approximation? % Alternatively, can -%relevant parts of the routing tables be summarized centrally and delivered to -%clients in a less verbose format? -%% i already said "or to summarize is sufficiently" above. is that not -%% enough? -RD -% -Second, we can take advantage of caching certain content at the -exit nodes, to limit the number of requests that need to leave the -network at all. What about taking advantage of caches like Akamai or -Google~\cite{shsm03}? (Note that they're also well-positioned as global -adversaries.) -% -Third, if we follow the recommendations in~\cite{feamster:wpes2004} - and tailor path selection -to avoid choosing endpoints in similar locations, how much are we hurting -anonymity against larger real-world adversaries who can take advantage -of knowing our algorithm? -% -Fourth, can we use this knowledge to figure out which gaps in our network -most affect our robustness to this class of attack, and go recruit -new nodes with those ASes in mind? - -%Tor's security relies in large part on the dispersal properties of its -%network. We need to be more aware of the anonymity properties of various -%approaches so we can make better design decisions in the future. - -\subsection{The Anti-censorship problem} -\label{subsec:china} - -Citizens in a variety of countries, such as most recently China and -Iran, are blocked from accessing various sites outside -their country. These users try to find any tools available to allow -them to get-around these firewalls. Some anonymity networks, such as -Six-Four~\cite{six-four}, are designed specifically with this goal in -mind; others like the Anonymizer~\cite{anonymizer} are paid by sponsors -such as Voice of America to encourage Internet -freedom. Even though Tor wasn't -designed with ubiquitous access to the network in mind, thousands of -users across the world are now using it for exactly this purpose. -% Academic and NGO organizations, peacefire, \cite{berkman}, etc - -Anti-censorship networks hoping to bridge country-level blocks face -a variety of challenges. One of these is that they need to find enough -exit nodes---servers on the `free' side that are willing to relay -traffic from users to their final destinations. Anonymizing -networks like Tor are well-suited to this task since we have -already gathered a set of exit nodes that are willing to tolerate some -political heat. - -The other main challenge is to distribute a list of reachable relays -to the users inside the country, and give them software to use those relays, -without letting the censors also enumerate this list and block each -relay. Anonymizer solves this by buying lots of seemingly-unrelated IP -addresses (or having them donated), abandoning old addresses as they are -`used up,' and telling a few users about the new ones. Distributed -anonymizing networks again have an advantage here, in that we already -have tens of thousands of separate IP addresses whose users might -volunteer to provide this service since they've already installed and use -the software for their own privacy~\cite{koepsell:wpes2004}. Because -the Tor protocol separates routing from network discovery \cite{tor-design}, -volunteers could configure their Tor clients -to generate node descriptors and send them to a special directory -server that gives them out to dissidents who need to get around blocks. - -Of course, this still doesn't prevent the adversary -from enumerating and preemptively blocking the volunteer relays. -Perhaps a tiered-trust system could be built where a few individuals are -given relays' locations. They could then recommend other individuals -by telling them -those addresses, thus providing a built-in incentive to avoid letting the -adversary intercept them. Max-flow trust algorithms~\cite{advogato} -might help to bound the number of IP addresses leaked to the adversary. Groups -like the W3C are looking into using Tor as a component in an overall system to -help address censorship; we wish them success. - -%\cite{infranet} - - -\section{Scaling} -\label{sec:scaling} - -Tor is running today with hundreds of nodes and hundreds of thousands of -users, but it will certainly not scale to millions. -Scaling Tor involves four main challenges. First, to get a -large set of nodes, we must address incentives for -users to carry traffic for others. Next is safe node discovery, both -while bootstrapping (Tor clients must robustly find an initial -node list) and later (Tor clients must learn about a fair sample -of honest nodes and not let the adversary control circuits). -We must also detect and handle node speed and reliability as the network -becomes increasingly heterogeneous: since the speed and reliability -of a circuit is limited by its worst link, we must learn to track and -predict performance. Finally, we must stop assuming that all points on -the network can connect to all other points. - -\subsection{Incentives by Design} -\label{subsec:incentives-by-design} - -There are three behaviors we need to encourage for each Tor node: relaying -traffic; providing good throughput and reliability while doing it; -and allowing traffic to exit the network from that node. - -We encourage these behaviors through \emph{indirect} incentives: that -is, by designing the system and educating users in such a way that users -with certain goals will choose to relay traffic. One -main incentive for running a Tor node is social: volunteers -altruistically donate their bandwidth and time. We encourage this with -public rankings of the throughput and reliability of nodes, much like -seti@home. We further explain to users that they can get -deniability for any traffic emerging from the same address as a Tor -exit node, and they can use their own Tor node -as an entry or exit point with confidence that it's not run by an adversary. -Further, users may run a node simply because they need such a network -to be persistently available and usable, and the value of supporting this -exceeds any countervening costs. -Finally, we can encourage operators by improving the usability and feature -set of the software: -rate limiting support and easy packaging decrease the hassle of -maintaining a node, and our configurable exit policies allow each -operator to advertise a policy describing the hosts and ports to which -he feels comfortable connecting. - -To date these incentives appear to have been adequate. As the system scales -or as new issues emerge, however, we may also need to provide - \emph{direct} incentives: -providing payment or other resources in return for high-quality service. -Paying actual money is problematic: decentralized e-cash systems are -not yet practical, and a centralized collection system not only reduces -robustness, but also has failed in the past (the history of commercial -anonymizing networks is littered with failed attempts). A more promising -option is to use a tit-for-tat incentive scheme, where nodes provide better -service to nodes that have provided good service for them. - -Unfortunately, such an approach introduces new anonymity problems. -There are many surprising ways for nodes to game the incentive and -reputation system to undermine anonymity---such systems are typically -designed to encourage fairness in storage or bandwidth usage, not -fairness of provided anonymity. An adversary can attract more traffic -by performing well or can target individual users by selectively -performing, to undermine their anonymity. Typically a user who -chooses evenly from all nodes is most resistant to an adversary -targeting him, but that approach hampers the efficient use -of heterogeneous nodes. - -%When a node (call him Steve) performs well for Alice, does Steve gain -%reputation with the entire system, or just with Alice? If the entire -%system, how does Alice tell everybody about her experience in a way that -%prevents her from lying about it yet still protects her identity? If -%Steve's behavior only affects Alice's behavior, does this allow Steve to -%selectively perform only for Alice, and then break her anonymity later -%when somebody (presumably Alice) routes through his node? - -A possible solution is a simplified approach to the tit-for-tat -incentive scheme based on two rules: (1) each node should measure the -service it receives from adjacent nodes, and provide service relative -to the received service, but (2) when a node is making decisions that -affect its own security (such as building a circuit for its own -application connections), it should choose evenly from a sufficiently -large set of nodes that meet some minimum service -threshold~\cite{casc-rep}. This approach allows us to discourage -bad service -without opening Alice up as much to attacks. All of this requires -further study. - - -\subsection{Trust and discovery} -\label{subsec:trust-and-discovery} - -The published Tor design is deliberately simplistic in how -new nodes are authorized and how clients are informed about Tor -nodes and their status. -All nodes periodically upload a signed description -of their locations, keys, and capabilities to each of several well-known {\it - directory servers}. These directory servers construct a signed summary -of all known Tor nodes (a ``directory''), and a signed statement of which -nodes they -believe to be operational then (a ``network status''). Clients -periodically download a directory to learn the latest nodes and -keys, and more frequently download a network status to learn which nodes are -likely to be running. Tor nodes also operate as directory caches, to -lighten the bandwidth on the directory servers. - -To prevent Sybil attacks (wherein an adversary signs up many -purportedly independent nodes to increase her network view), -this design -requires the directory server operators to manually -approve new nodes. Unapproved nodes are included in the directory, -but clients -do not use them at the start or end of their circuits. In practice, -directory administrators perform little actual verification, and tend to -approve any Tor node whose operator can compose a coherent email. -This procedure -may prevent trivial automated Sybil attacks, but will do little -against a clever and determined attacker. - -There are a number of flaws in this system that need to be addressed as we -move forward. First, -each directory server represents an independent point of failure: any -compromised directory server could start recommending only compromised -nodes. -Second, as more nodes join the network, %the more unreasonable it -%becomes to expect clients to know about them all. -directories -become infeasibly large, and downloading the list of nodes becomes -burdensome. -Third, the validation scheme may do as much harm as it does good. It -does not prevent clever attackers from mounting Sybil attacks, -and it may deter node operators from joining the network---if -they expect the validation process to be difficult, or they do not share -any languages in common with the directory server operators. - -We could try to move the system in several directions, depending on our -choice of threat model and requirements. If we did not need to increase -network capacity to support more users, we could simply - adopt even stricter validation requirements, and reduce the number of -nodes in the network to a trusted minimum. -But, we can only do that if can simultaneously make node capacity -scale much more than we anticipate to be feasible soon, and if we can find -entities willing to run such nodes, an equally daunting prospect. - -In order to address the first two issues, it seems wise to move to a system -including a number of semi-trusted directory servers, no one of which can -compromise a user on its own. Ultimately, of course, we cannot escape the -problem of a first introducer: since most users will run Tor in whatever -configuration the software ships with, the Tor distribution itself will -remain a single point of failure so long as it includes the seed -keys for directory servers, a list of directory servers, or any other means -to learn which nodes are on the network. But omitting this information -from the Tor distribution would only delegate the trust problem to each -individual user. %, most of whom are presumably less informed about how to make -%trust decisions than the Tor developers. -A well publicized, widely available, authoritatively and independently -endorsed and signed list of initial directory servers and their keys -is a possible solution. But, setting that up properly is itself a large -bootstrapping task. - -%Network discovery, sybil, node admission, scaling. It seems that the code -%will ship with something and that's our trust root. We could try to get -%people to build a web of trust, but no. Where we go from here depends -%on what threats we have in mind. Really decentralized if your threat is -%RIAA; less so if threat is to application data or individuals or... - - -\subsection{Measuring performance and capacity} -\label{subsec:performance} - -One of the paradoxes with engineering an anonymity network is that we'd like -to learn as much as we can about how traffic flows so we can improve the -network, but we want to prevent others from learning how traffic flows in -order to trace users' connections through the network. Furthermore, many -mechanisms that help Tor run efficiently -require measurements about the network. - -Currently, nodes try to deduce their own available bandwidth (based on how -much traffic they have been able to transfer recently) and include this -information in the descriptors they upload to the directory. Clients -choose servers weighted by their bandwidth, neglecting really slow -servers and capping the influence of really fast ones. -% -This is, of course, eminently cheatable. A malicious node can get a -disproportionate amount of traffic simply by claiming to have more bandwidth -than it does. But better mechanisms have their problems. If bandwidth data -is to be measured rather than self-reported, it is usually possible for -nodes to selectively provide better service for the measuring party, or -sabotage the measured value of other nodes. Complex solutions for -mix networks have been proposed, but do not address the issues -completely~\cite{mix-acc,casc-rep}. - -Even with no cheating, network measurement is complex. It is common -for views of a node's latency and/or bandwidth to vary wildly between -observers. Further, it is unclear whether total bandwidth is really -the right measure; perhaps clients should instead be considering nodes -based on unused bandwidth or observed throughput. -%How to measure performance without letting people selectively deny service -%by distinguishing pings. Heck, just how to measure performance at all. In -%practice people have funny firewalls that don't match up to their exit -%policies and Tor doesn't deal. -% -%Network investigation: Is all this bandwidth publishing thing a good idea? -%How can we collect stats better? Note weasel's smokeping, at -%http://seppia.noreply.org/cgi-bin/smokeping.cgi?target=Tor -%which probably gives george and steven enough info to break tor? -% -And even if we can collect and use this network information effectively, -we must ensure -that it is not more useful to attackers than to us. While it -seems plausible that bandwidth data alone is not enough to reveal -sender-recipient connections under most circumstances, it could certainly -reveal the path taken by large traffic flows under low-usage circumstances. - -\subsection{Non-clique topologies} - -Tor's comparatively weak threat model may allow easier scaling than -other -designs. High-latency mix networks need to avoid partitioning attacks, where -network splits let an attacker distinguish users in different partitions. -Since Tor assumes the adversary cannot cheaply observe nodes at will, -a network split may not decrease protection much. -Thus, one option when the scale of a Tor network -exceeds some size is simply to split it. Nodes could be allocated into -partitions while hampering collaborating hostile nodes from taking over -a single partition~\cite{casc-rep}. -Clients could switch between -networks, even on a per-circuit basis. -%Future analysis may uncover -%other dangers beyond those affecting mix-nets. - -More conservatively, we can try to scale a single Tor network. Likely -problems with adding more servers to a single Tor network include an -explosion in the number of sockets needed on each server as more servers -join, and increased coordination overhead to keep each users' view of -the network consistent. As we grow, we will also have more instances of -servers that can't reach each other simply due to Internet topology or -routing problems. - -%include restricting the number of sockets and the amount of bandwidth -%used by each node. The number of sockets is determined by the network's -%connectivity and the number of users, while bandwidth capacity is determined -%by the total bandwidth of nodes on the network. The simplest solution to -%bandwidth capacity is to add more nodes, since adding a Tor node of any -%feasible bandwidth will increase the traffic capacity of the network. So as -%a first step to scaling, we should focus on making the network tolerate more -%nodes, by reducing the interconnectivity of the nodes; later we can reduce -%overhead associated with directories, discovery, and so on. - -We can address these points by reducing the network's connectivity. -Danezis~\cite{danezis:pet2003} considers -the anonymity implications of restricting routes on mix networks and -recommends an approach based on expander graphs (where any subgraph is likely -to have many neighbors). It is not immediately clear that this approach will -extend to Tor, which has a weaker threat model but higher performance -requirements: instead of analyzing the -probability of an attacker's viewing whole paths, we will need to examine the -attacker's likelihood of compromising the endpoints. -% -Tor may not need an expander graph per se: it -may be enough to have a single central subnet that is highly connected, like -an Internet backbone. % As an -%example, assume fifty nodes of relatively high traffic capacity. This -%\emph{center} forms a clique. Assume each center node can -%handle 200 connections to other nodes (including the other ones in the -%center). Assume every noncenter node connects to three nodes in the -%center and anyone out of the center that they want to. Then the -%network easily scales to c. 2500 nodes with commensurate increase in -%bandwidth. -There are many open questions: how to distribute connectivity information -(presumably nodes will learn about the central nodes -when they download Tor), whether central nodes -will need to function as a `backbone', and so on. As above, -this could reduce the amount of anonymity available from a mix-net, -but for a low-latency network where anonymity derives largely from -the edges, it may be feasible. - -%In a sense, Tor already has a non-clique topology. -%Individuals can set up and run Tor nodes without informing the -%directory servers. This allows groups to run a -%local Tor network of private nodes that connects to the public Tor -%network. This network is hidden behind the Tor network, and its -%only visible connection to Tor is at those points where it connects. -%As far as the public network, or anyone observing it, is concerned, -%they are running clients. -} - -\section{The Future} -\label{sec:conclusion} - -Tor is the largest and most diverse low-latency anonymity network -available, but we are still in the beginning stages of deployment. Several -major questions remain. - -First, will our volunteer-based approach to sustainability work in the -long term? As we add more features and destabilize the network, the -developers spend a lot of time keeping the server operators happy. Even -though Tor is free software, the network would likely stagnate and die at -this stage if the developers stopped actively working on it. We may get -an unexpected boon from the fact that we're a general-purpose overlay -network: as Tor grows more popular, other groups who need an overlay -network on the Internet are starting to adapt Tor to their needs. -% -Second, Tor is only one of many components that preserve privacy online. -For applications where it is desirable to -keep identifying information out of application traffic, someone must build -more and better protocol-aware proxies that are usable by ordinary people. -% -Third, we need to gain a reputation for social good, and learn how to -coexist with the variety of Internet services and their established -authentication mechanisms. We can't just keep escalating the blacklist -standoff forever. -% -Fourth, the current Tor -architecture does not scale even to handle current user demand. We must -find designs and incentives to let some clients relay traffic too, without -sacrificing too much anonymity. - -These are difficult and open questions. Yet choosing not to solve them -means leaving most users to a less secure network or no anonymizing -network at all. - -\bibliographystyle{plain} \bibliography{tor-design} - -\end{document} - -\clearpage -\appendix - -\begin{figure}[t] -%\unitlength=1in -\centering -%\begin{picture}(6.0,2.0) -%\put(3,1){\makebox(0,0)[c]{\epsfig{figure=graphnodes,width=6in}}} -%\end{picture} -\mbox{\epsfig{figure=graphnodes,width=5in}} -\caption{Number of Tor nodes over time, through January 2005. Lowest -line is number of exit -nodes that allow connections to port 80. Middle line is total number of -verified (registered) Tor nodes. The line above that represents nodes -that are running but not yet registered.} -\label{fig:graphnodes} -\end{figure} - -\begin{figure}[t] -\centering -\mbox{\epsfig{figure=graphtraffic,width=5in}} -\caption{The sum of traffic reported by each node over time, through -January 2005. The bottom -pair show average throughput, and the top pair represent the largest 15 -minute burst in each 4 hour period.} -\label{fig:graphtraffic} -\end{figure} - - - -%Making use of nodes with little bandwidth, or high latency/packet loss. - -%Running Tor nodes behind NATs, behind great-firewalls-of-China, etc. -%Restricted routes. How to propagate to everybody the topology? BGP -%style doesn't work because we don't want just *one* path. Point to -%Geoff's stuff. - diff --git a/doc/design-paper/graphnodes.eps b/doc/design-paper/graphnodes.eps deleted file mode 100644 index c1ccf44ffd..0000000000 --- a/doc/design-paper/graphnodes.eps +++ /dev/null @@ -1,168 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 0 0 594 282 -% -% created by bmeps 1.1.0 (SCCS=1.73) -% -/pstr - 1782 string -def -/inputf - currentfile - /ASCII85Decode filter - /FlateDecode filter - /RunLengthDecode filter -def -gsave -0 282 translate -594 282 scale -594 282 8 [594 0 0 -282 0 0] -{ inputf pstr readstring pop } -false -3 -colorimage -GhVOjDi>]n9_WC$R38uPNS -:\/!h(->g0&o'd+8jO"#,u#\]-qJ1e";8Kq`509MM1b+?CGo=.n_,W;mpme-e![aj -B("Hbs6'BNh5d)*o60!7giMmDpRL,(pWU;Y7i/+RPG?h0oNsh*1qc+:\e*?imYf?h -re5U2P]Er&[l@U7MGMBCD:!%,B]fqbFk0:H<3\DZWUJuk]n`SCZd8H)pE_P!2XOs^VlZn5=9gq -SE9TkJS0@]8s0%XFBHtSSdhZ7mZ"DR\ETm=>(Yd+lps3F+2>#X8RI>kQHh'^kE]G/ -a-5/?j@AaZ!H*6[I -W$g(]g^4*1cPI-WK.qdDQoH*_jR`3(kp3I@FTFUH.,QhO4Pd\`)8Xm2MW:P73+qe\ -l(RWFgm5I>8e&2oY10M02D"Bgl>$6gA8)eEL"!-DKD@0"#m>K/.3VuT5IN3;!3&q6 -9.PR*SN*mGlIajjqQ8^eneFI#aIh) -%BW3%i[Ym_R]4`UTdSXfJ3)6W4TfuNFO]o*I_.]iijHIdht#$U)$0f3eA.uk[0r'b -#Aj=';Rad""$Q7lM$q$i%F(T&OXpc=%`R%j9CL[no72iYSO_=(6@q]E -J.C(`=q/trfLN`&@=,6Ocg0I1TGQL%CC&iZ8+6Rqj*#<^Q;eI=.Y2TO+Q_EAcn?Wa -D`X6FY=JerlZAa_r)+9m)OZ)5&nU[lbp5nB+FEJ'*7hr1Vt+RqGW-&sK7DXdY\rA. -'@"E3Fso6;ktS/,81ZP$Ch'):.7*M!9j[YpCV#.'e9%,qS"bg%l3;Y@#Fe)[1)cT^ -`W@OtV$9,#QRWFc7:7PH<%8!uAtNHE*VKHXBJ>-B?pFj<+>3,,V&^Q/bcCQL_^]X4 -bg"PN1V4Fh%#hd1CBhK/YRs%7SBu)&b[oN_ERW$FaNtClNe,n\X+=I)**h430XhM!i&c6kAcE#+[h7e2>D>?0 -:uV.oZ`qRK\fpLsKWeTG4SfYLl+;^NC8O9Z^=5h>Q1P[)*+(FKTT)tKb&s^-s7``i -c%(Q68^3oO+_G6h/*VT(D&iLWh^,rI5G]u>F2HJY`_6:tF?Yp-q"-$shiEhNke'kW -?15Lfc3(-;jGpX*W7/'WjnVs:NM6oShm"ppNbghEDn2Oh6Mt+Xq&1!Np>/HE -a(AjV,f?ssgoh)WR@=u%!BsirW&BkYpp=-Q'udI76+k%AbLNn65G6ZLjjlWDnjA@R -#D_*9#PS'?X9(kKN)=MlV$]sthLR%c=V_H=H'1s\:"BorK7OP%g>'r;Zp?h\ecr6+ -KI(MQe&(6N]\Y(0cBC/q-G&`k-V#S!@2;3cFXT-:klfY]6;&!-[]gF(4Z-WZ0bt"M ->!pLt&ksVXea3>AW*0WX`WL?;DD5D9=<+rK)=5e#C8&qCf8Xbrk(;fL>lFk.*84PT -Pc?uRaumCeIj/2&fEH,Z^'mU".9EH[X_,,FaK$GM(mQMO'"lZF`OflCE5K;^M+3pJ -TMKOa+ST^jX;!s>c``QXaL\O'kFdTYfS=n-]:T+-4bN[0RgNB$\GoD"P^$WT*;%h] -a&ih_/Z/le''^/Krf>WE+ZMnnm"(k)7DVB.8L-uOfPEb)f,Rc0>KligeqWmJ'[Rq+ -#8kT>ZqA\8e5`d]+n6/\QP#Q!R:ZOcnV:ddH4A8R6Q4fN*Ms-2i%+Jj3sTq#crqmi -RD(mbp`cS0J^/m8H=+2Ola/7],0-c)E)XnZd3sd91#00]bu09lpk6t2r^[HGTL0:G -Ta=p`4_c^is3:9]ac?s6k<9-:dM302pL3'#"'TMb%LhL)-gGp`?V:/T\9RK$P4qW= -T.M2s_>mEl=M[TMaJm0(N1Unl\'lA!?J7@\#]Bsg?7;&b;cYhlT<:QtJc -Q:>a-,<\\*?hq%f[7(2\>1bW9>B2e!1g!_G[u,K;F75r4,c?gtaL7\L2Q`t>/!/`\ -qp4jE9$Slnh=1\33IF]rI(Mmmj30032FeK0R#7IuHDT -W31!/?O_U>:WUXK[S+\Y%5qe)%-%NQ?ubB`Kb'42F_(B]Tp5DfXO\iNLXRe/EP#1r -QOiu)T=%iK+H'dl*,]1-E!S)tFOQac@e^.YWJZsh_qWS<'VC-!DbG<^G/.33fu/lJ -5i\eM/]De)!Dpg@6#Dn%Hk1=WYJh[6T(:kXhY)9pf=[-)0!AWII(:PD)j9]sp=(DQ -GrF=X6aHC`2`?l)g@5e^"8t"=j>YVrfm[5H>Ab5iY?*qqmaXG)='VfSUX`)B\(;!9 -$)?lDAdn(AYuN5EdV\LW7G3oXM-P1c9g&;7qmh&i>Hh/Z>Li(%[8clI0dEpQ;3IQY -GPk*_Md2IK"&Fa;iMd]haBnt*]aqRbS,#8s^$AA(=DD#f$JBQ5?KPuGYmCij_Z&[o -$ebL%T/>93"`*K<;+%dJ_'hu[=/nc.UIohOEsXt_*8>_Fi./Vf#i1QmIFLnd5qiq[ -#YHVTJkBBa`Jn]"^PfU4`b*[dq_c&U -`+S0GR2Ye1=mWTAc>DC"Pg+[8;33KlZfH[9,Ui7=q@)WJMhZ2AAsVoS9eUsl+2B.Fc_&>ZT"`4+dH*X" -!\gu-rk(WQ59f,^Cpb,M\rh,Q1GtdaY_)0']Igei"NO@L^nSW54&'ND\_h&dP2YMDpa/nuQfHR[h`n4K1-%AeG`&:&*S"`IB[V:U8 -@Hcf(IoHWI5]8SaK0I`)'oI[hoZ^%,cmC!NZeJ)jHNfo^)uJ"#TrAM#fn?V2T?&52 -[!#:WS6f%44N+.-r38gZ)s!LPcqCQBZ8%(,9q.I\9N*)281j0&.(2a7gKqF@n101$ -O>Ud.5U6;eNnP-U)P[VCQ/Y+d7^/d2'N"Lr%)ut]e"akJ6[jKb+cOo_M+edEp%mDo ->EGpE4&?$'L*qBjc8L3u1UKGe2l>=Z]%nrY[GXRp;'.FTTD2`-N;YZYonrD_c[i1> -R6YfR#T>DODc/Argc&WeSF-c)g.W'^b&kEg)`;iOgX+Gr9fq(Y]RktkJTiLeo!2tN -hgIM7gN' -,Z4#UAEMInh;cT00<+g8aH>j6CRc\1E[M=OhBq$nl-hAZL9GrTfZrfCf3t-$Z'^b! -N$u.t(5$J5aBX-j"i:Mr^7/ASRst,m_L%?1G$,mukB#e8G(3?ZL5VbG*ZVl9Msb4] -`SnPXjHnliZ)0=TDX&IX$[Y5QnEY*hQbg<>RY&WC!!m#F0tc!(aa!,_?d%?1(N3NZe,OHo%oFfB\ -MMWYuQ\A8'mQGUCS"f2S[J7kI9$Ul7AYItiZVHaf[7-$rU-t:o^t+jfIf63"cJC7b -4LnS56phbs;DYb1gAu)ZN#f^=6./Ht8pT)]Y;PXLE%bW?6q!_DmS&hE#d/%P;J2J+ -s3d]t>_,i*35GqB"!JjZO^Dg7JjsWga>A]&k0.PXjk$BXo,TuFbt^?>*[pGJg*08$ -ppf_6a1/h4>2F[>I'jDE_1N$?i_!Bk4lOHnAe:fV/U3Aa%6/gXaKqTQ'oHen\:0W@ -_i^n/*V:]WlQ#pr$Par%"/!@R^[8&N`+ -o"t,GKG3H.\)gDTnG"GacVY06Ll7jC1o,4aS>O#PgFsNsO#^.0P[Sg:RV(skjjL\O -V?rj!3rlYR,GW'%Md->._2@hE3mH)r^:1OlT-d&bBnh:X*lS<=S=,5dN2c(T[/D;q -#tE-\b_r_O>=>::Fh/KE)jX! -!'>&Z^mqp!-+;o/R"Ocb3#1\'3EDQq#,Lsqb),T?rT.^-+n -NEGl(!ZUUGA^f7<%E!B4eL6f2XA!?r2+;8Og-/Gd5t: -9nJbA_l4TaKA[>BJODXt#\R;_B-!qZGA4$DXn\hQ9%tt7F[q&OIAJ*/+F$PTpN8ge -ehJr_Ns'=n#UcQJ9@`_K-[eP7K+p$R>$"uCqm>[Gb0'.ASQ%l]`R+?#1J^q^_]ki7 -H"W/LDqImO9'=au>Jmc8'hAe!(u\dnD?&*^Xc>V/8g9CqGE(/&V]j/J4)^u2)L(n= -B^DY[Qq2OlNbUbKSZU3NBi@Oe,n'r=pY?8Dmoc0sNf4T_jp12igW[OU%=MJ:P0ESq --.H6KOW+Dk%,grA#GnG%3osd^\*&H^Ir;DuqZ4)4!_/'M5gPfhEtJnE7[B3pUlCVL -kTPk2UX_VY3G"@LN(TPh_&IrfdQS*-bOEMY)1=P+](St7[s^P]cZE@9BiKIA8B[,0 -8HX:iE#U,*4@4M$G;*fI?sY7qrAKGomojQi]:2EI:ZoAl]A'gk_YnHFVt-9DOM/9n*XcPP9<*UZ -Q;_=ZjmSEg[RVggGBB3+A@35u7gE8tWjGJ?3,'WG&ro.eb*R:F5\MDe@+i$3,fh!i -:"6?O7_.]FCY'p4!8><?2V2RJf!n5HRusha^CDCAVU^6h0"rEYT0X -&VQ<94-0Bps,QQC@C7t;5BC#@?ekB%8s:c"&&uilDNk%>%2OJ2-_L]h*[9Ul"0<5n -pa?P@^62jXoboK0K9G>&KbkW4P^^Hkh?rl29aBVm*_"5"U8cd=0QPrQeq;%m?c6NR -&0po_:>/n[Q=#/S&iZ(?bP1aKqn-n-%5DNRGkRf>JKSa(*'_e*MBAR.,NGBmL=p6P -l/1=&GASg*(+(g)R*)I\nuUq317rQp6CEF>M]*t-kQ9#OHEO5N:YC\TNXiV:RZSPJ -@BB^<$&u<6E7>?\b]:X+]Cd.3Y'oWh-.e:4mLE97+9PV6o4o8hfuO[0=I)H*dt5aQ -*iV%!8K0]J1g+TZ+f"(hS%^e@7BLdCm(KWso*U#6q+f8uDb'I+25,,mpIZ6\8r^/Q -]/+E+q'&['C?#bm!(P!:7V*D8$XbfA;(ON;%mYEo[9;Wm4X%8NTWr&./*!%^P\bYT -5m&)E*VUK%2osk3p.:$NduA%2It0[INLn8GeBeR<-p9jl&i=IPTQAhBPi8*_Fb3L9 -2sA1l,@_;MV1H%O#Ea^8J9M4++kI5,.ln+bR)1Eo\G#'8ok.Q)+c#R&R>,a[:?iYh -;e+9$#0dJOWTYUj-kK/F42b!3mfEKE:K*Qh[-%h#7sm84)TWKElE-C]F"WFPNCOD: -\R8R&qZ)V"&N%L%DO01ZOLBgGl/Q0+]#[/j+5Pd@.3=>4!$[sOh@TS=8_iX:]g;A( -0(/Vq+Z?9KrObJ1mZR\^d(M8FM^(1!ERiDG#)Xrs9Rhi$NLM%"F8P=ZBr/I]5L*T$ -grD+i+.3U@+I@2n96l3(_<';d;h2-V`],*8^jY-ikAi4iN/%f_:T'O0I(W5=qV/?& -2`%"KJB.a8:W(DW!@%CIOoKZ^'cukK(%fue=g^!6LpG1LlkQrFD -29:2U(0[I_(-'1RlXj[iKRQGcW&KZBN/[9h4?I -_sTmuY6JCT1Y0.:$:!BlB!#n7VOjP5oG_.#TJG.3-J$uuFWB$73DN3%QifIP?H<\9oJ^G5h<@0js.KfEr -qq]t-TAn'R&3Z"Psrjs98P.s`R')SjoZ!G:C$=S^B[*A5DVa1ZX_,L\fB;-@_i -H8)\YbUcn5ZgUTX#8M[*!8:.j5X9nt^jY.Tfl$?3A-7q&qYlZ;#%c:F;R%^c*?U,Se[mJ@)dg:%q[qk -nR0AWJ\fh1C1,.bTdB_V@E"Gi'?B@u\q3n'b9g:^mN]NKTfq%1f0gsD(YI&e.5eAk -bZ1_YpSR[qEda(`JVl<6HVNSH*)q8XY)fltV[^,W<#9<*$U52(DIF"G"q0tmEG.l/]U\'8NSL0sn!B,Om8;2>(>[mI.dOpT91Y+'8?+ -X6rniI!ZNu9oAmFMu@D`s'*b@5E4\pa`fXG6CsJY[&9ImXYfd;>b*<-Mp4%aL#:J> -2/+3Pn8+>hV%0mNr1jKjBli*7eJ[iu\>#d.:Q1eJ(KRI!WtP2t6cF$I5-MWj#kD2' -n9G:;L6fB+>a&-poO`6CIEGWJFO-)TEOnFbL\O9ha-*Y0]7$[!+=_o#nDH%"]"B;Cg4#W'h/U4r@L,%M#WN^1!aHehs%nZ`2aOo*cQK0*o"G*_s=VM]?#EK8M/fboBE'[ -D8XD3:Yn[1$"7&LYckl4knBlLX] -BLYm2@F(WF!\al%Rs4(m6,N3LP/lTl/J5a?Gd2W>%PMD$3$o1eOVFHAW'86@Lq/ae -PoG]$O["7%9 -D6B5)D40SQUj"t>'sP,GBNHcO_@C;#b4Y/s#/"Q=JK#Z6aoL"/UN22;/ICc%Ue"uB -]?c8;r^8O2Gn1@s^['02cR?WTXYaq/ld"*4j3n6hI:ur.qDG(lF-1K[aj&iIf8Zb6 -Or[i -grestore -currentdict /inputf undef -currentdict /pstr undef diff --git a/doc/design-paper/graphnodes.pdf b/doc/design-paper/graphnodes.pdf deleted file mode 100644 index 68e98dc8dcb850beb8e41d38da221ff377b39ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62261 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
    9eu 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 diff --git a/doc/design-paper/graphtraffic.eps b/doc/design-paper/graphtraffic.eps deleted file mode 100644 index a84383cf2a..0000000000 --- a/doc/design-paper/graphtraffic.eps +++ /dev/null @@ -1,143 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 0 0 594 282 -% -% created by bmeps 1.1.0 (SCCS=1.73) -% -/pstr - 1782 string -def -/inputf - currentfile - /ASCII85Decode filter - /FlateDecode filter - /RunLengthDecode filter -def -gsave -0 282 translate -594 282 scale -594 282 8 [594 0 0 -282 0 0] -{ inputf pstr readstring pop } -false -3 -colorimage -GhVOJCMt3EF[JG%)$pqO7S(n%G(K^F;`(G8(XOELP.48L(.b+8Ob*4)ImDCW62R>Y -5HGO/u'-DC`Yb)[DB4)jR6jITs'/g5KaoH;L?XMWU?Y2nS3s=$,-(cJ7Tn -YBfKkRG!i0]/-cTO*_rBhK-t*kM//,dl$1+3UP^>^A=DLhS%e1RVVcTmH/coI^_2p --/A)fY!:s%S!R6CL[OJmLso/T9kVT@SOM-.P -"#a4/jnkLEcag/sj%jS#:OH52=nG\2FV0B#(d/l[r=F$/4Qhlj2FFL=Hhc&;&J`$g -e/#mQQ%%cA4[bE&c?USiST&@qHQeW6Q<1&A7>i*.RhB&kZqmpiuqT -;(;:1\^[8F`q*%ek]FmNu1&pA5S"U,JuZG85EA52-4j+Fa)>Q]WpUj --c\0AUZjm(rgK(!Q'CJUfn"L/+)^cpr0ER@>F\KtL:]+M%t+>D*CI0*(eUl!(XEHC -$I9(6CE)"1Ous8io0`ntb7#Cg$&"&X9J(K:5Un!<:QB?a8(2a0*")gtAsRsn%p7_Y -jHp%:/!9qS_<='I%A-l7LCc&1FrQqV[ZM!=1G^WceO%6YV*a`XLa9B7m^LNMqdY3' -Q4^+0us6$rO^61F>EZnab:b1so.b)bf>Uo!B#Y'gi7FN_'.$fHM3n_"O`l(oW -(Ph(J+H_ZdYbETV;*h>J]RD]U)MoC-)+9`C6jcNt=$"H,Yfb*#M/"S=ag+N;<)?)& -/9*T#H2)>tq!dT0(po?TZI>;oH"-D60R!510A=+28p4MPmT29j@+ZGDPQChf'`4_7 -=89;sc_'deoN#m[0q+I,atN[9.Q94$\_&3 -g,5;nh9*RoFNa_4=gkG/akK[bc9hf.L^N%j_+MVk($!c^@@GEhD5&>b2'm@d[B;nR -%]d"=L=Bg0GjGk))]]eG0VW]DA4A/7>a9V=6G]9H!`q6 -1*$1JTu:\fnZ8ssn>ri7:2H]'6LgW:%,TmWcA.k.S@0X)P)*g&E>k`Lc'B-oD;ASY -\eH:KVUM`Y=D7fEPr[<7W\Whlk=@qY%Z_W$65f7> ->bumq/d5R@&L^V)(kp'eRQC%t"`ZMg$nP/:[me8R6oURfnU^pdf*J<%JP-E.(n'\G -&T6V'%gFZ8,#.H4JlulYG"<7("BC^WH]j3$J(>cAdkn-JkXrB*N2'8P&Tc6U9!),j -.lrFf.T_4J\7QJEm0ZgoF>BOm/j;ipaTXksiF>E+>bPYX[9Q-!s"\QRfG?fmX?D@O -$U*EpT?\k`J#-&`7pJ2>9]dJEI8:*F+]#k+^("B5?%lIB$$MG(=I<++YF&4(1YTjR -IY1'5c,%T(]:3sl,,Ptq-Q2],6>cB_d(G(@ppOkK!Lb?Sl_&malpO"Ur>r0 -`I@cjN53uiGuEuEIF?[28aa$G3<"j_WhreS'6pH%:mVSSN\6D?VPEAAL*-kX"p9EB_gWuC -"9mEX22$/=k[#nS+-W!M_FduS+a6&ciEji'TPX%VI>F0$3:N%,KSVuOL,^1T8WeiS -Eq.?kX!_aE]YOp$pN7\l/!Op+0=+>"F7uQ"5_hT+WO.%D-h.d#R>AM:XF%Bf+hN8g -H^:'D-Ai+9b@(JuGR:>-,Xtj=FK;"KKsS-21jJhh#:2]rHL\m\3Na&hE`G+oga1QmU]E/%/S(_Yq;!=4%>MIF;'6-+R]2iFo(s8#V<^h/g[75cqOP -_-WdW[-#A\QLk&eQ)G&,lO6Y2];anIYbMt#i&a"U@OHYclJ\>1$@(,1/;ip=,lhea -rYX]#uraYLc@4LLXW)YUtb`6@l$"'pt9q'U_%_(n6^=\mO -^aMLr5t>ff79.tWd"ot@R>OP`OC97]Xk"G7em4.\YfVn#Xb%?gW4$HQei'Z!8b#mT -'->:W8(Bp&^nJNnX1E\Aeq!ae=_6G3RoB/=]&=>Z>_qW2`=O"X2m_f`!XhS'"ThQ: -mGNVkdDWb)#&q]OjM6@dpS*NB%*5:(#+0eS3O2upb1PR*B$)/X:j\1rc)*T/*#Sl> -PAg#j*b7lEi3?;TnTNlJ9aEF)DF!ggJ -R:F&'IIpSi1K(6Tg9,i[Vf:jOE?go3\ngpJ*lo9WnR!ZA/e]m4Gki4(N?hB/Ms?Le -l)kEO,RsL@$&'9S,d]?(A+>W]nA1;K&im@`E+JF1\AmWZUgTKnmU-=]`%68V`W`[V -i`7;mVI^:ke=D\U-nR5jn:'T+\?LoHne/(&j4d;fWH[pZanm"(s1?X3#`N1$aVUgZek:EO'Rc^e.8he$G4@a"QO_0ZW7.-\#DP\CY2?4[u_F4"I -KIIloF1bT8I)1C?a]:pP6peqn!V6r-Xt;Vf3^\o\$/#DtFEaK*MIWZhNP!;]g3;0c -cR`Y.-*G,YVPEW9^S+.+\DaVe6N$psR,S98OWCQtGH[M>&J`sHA?`Iog[gLb!qG_- -MfFZIVn"coLZU(T9(SuRhAL%O&CIa8dDfWaIpm?H'LSS,`cnkk4oo5Y31l\a%O2Y9 -3%J+2XFY7oiC^hCPR6o?r&?H(Mih*-J=e.PLcN -([EM%1X`_!GF:CRc.Rl7Xr$'DVhsFQ]>5n)Rs>@..p-XfB;J"36e^UmJ9AEN)>[+f -1pR'Y)$a9O_%o$69ANMFJL(]4Tr7#"^:D6X;dH"IP&YCj$g_MEM+fgQC`5JVlE%3u -SIj:Ui@Z>BZYsX5iWXUhf*jiRif9(#l6D6NW4g@^7nNr(p&:?@a+G%5q'<6GYdF19 -:Lom#ZBENTHrO_+-.T9jdA5_E(fbuGn+LDEO!$H;>A%gB`EUC56"r)IO&;3,Oc>22+HgbD ->/%M_hi*AbnX_Qc!4DrBZ27ZkV?U:09J.TEgnuL$+a8e`NmdEB.RT\8NRd%_At,pq -^H#Bi!kSp)?W(*&a&H_@\+)kIAHOm%EOuiWQI9.)pQe_30/en\?FIt-3BMrEMmi97 -7XXnOd(T&A^pg5&*3M)(pWN!@)Xl;K(U[%r^1/9pf+j%g\,.np")7LRE?T[3(:(Jj -G-LGeaqVeoW(VI%.M^;G(P6*f*?BT`Y8;Mr#o<@$*5:c2:Qj1VP@L -RK;"n;!ubUIGH=[$\>Db[0@H0lUK!Ur9L0s*#E>-l86`K?^KZodfuor^4E[D/G=&o -$0Wg`4U-sno8knk:U#AW7i$c3bJMh^8"d_Q_3Ni.')k9[::#iF9%?kI -C%UTM]49^WmlkccB4VHs'RAf&'B;DE#_[ceHF^[umAE8<5Rrg2*emIfXp<<4/_dZN -qq8FcG"A2;k5tB[ieJ02Cl<5&&o4KL\lgW[V)fARTVBsErZDT@BbcsrmeG@03'Bhd -_h%fir'JA>E.YYdBeB$d4SBD[90p`);^QV"%-Hu2Im;D;YQGqEX0n>/UQpuBZNOod -81QBU(W;HYE8cmaXJb:LG/'r1CoX5UpW)W:IdB22\!J"@pig/8F=h`E&.eqr.kf?J -`h`CSMWb(kabRo>58.d/e'W'@dQqoQ`Cq3;p-Ljp0*pmY:QCJD1]3`:5F>/\jI&gp ->bCD7Nqb"cpS1"d$Q^\c$utg#f7XXQ=4\#Kb>WH>Qia>mShr-B -C-b3AoaQnN<_l;0'7M;:$RG#O+/tcRUZW2p^AsS``%irLOI,UMf?0VAs@4"B2VZg#e(6A4m,'*cNPU+;j;gPhl24@(@q4N*,W>9 -iDO"j;PNZ8o!W"9.SEQ>RAp:iJeN/5mL5LPV(;sn[cB!).AoT*,IbhGGMboXX(d-Q -E\J_MK=a0P5?F-to@[5l>pq(PZPs=fY`l$oQNRo`1l]OeK3_OV^P.OFX"C(WF:T*C -b^5X'R?4kn"q?oq&KcqRmpR@?oQOPBp8oj!o!u4uXQ0o4+M/f?M0AC#`k0c'5'ptk -qBCHb,[:hE2"#aCL%Q43U55so`)f0q'iu^clK0sGqd"4u=J6m%6-S[og4T;aQ#3Mf -Bg([7(%`"^2lraoO4T;+H@^sD\pimLfhN-#\'>p_P'8FOBjfUidOC8rsuK -hBbt7SKc:g9L7om2s+r&^b'+=uQYLf"7gJ]@(\RaMdcVC:_J^n> -P,DFkJr2fUV$KZ,$)!imU(ZmHYD\rF5Up,lEcYRS00f9!9D_AADDCO^$BP\n.a9D/ -'/=8^%ms_kQi1]kg<=Vmq5Vd+Uus5s:k`"^I7`V>%=i5!s;J?"5PWnj)-o=UH#>Hs!7AF&*+`-_[!QAjl%\u)U^O2OaD?N(Aa#\18DhP%D=#[7(549JWT$EQ -_Y:*V`DS>JR7*Z<3tdr2]]-n[T<8l3V9l7?UguVM(]87eA'/CZl8m6#8L!-f9cc@O -AA_jAMUtpuFjXJl7!JD0;4aoKVY'i!j$jn4k=@7Ub4V=UR%D$J*.T<3>XBXM<,(cT -IN#V27&Pq/6,Tm3$Z635V92_PC\;gTr`Z",dd>Wb;%^HAUjNN%m@j7g^!9Sh_OH;p9 -,$LfBr"bj^kc)Y@1-F&q;A5]]U71s#W+%O`*pP#`DL;M[".mNRbD>?gn5.s!18i5m -Sci[q3j0]ZhG2f[7E4,]49dL-TM>o9\jked-_i$VP5k02]>-G\J)PIY3^WBu6AM'X -s.`*Q!&`q;DRenNLH_gAk,=k[icc;s6r>3gf\Hq68Gkbei>4TADbcJKeTLKVb$\SKJFf=a@%A&3oeW8g$6/'L -jAj`mid;ea-F@GF>=7F_hjG.L187EmeAG>_0IifNMHC>fcc;+jK:CCRO3(X!,SQM$ -S!hdF/7`cDOh'unOb/XJ>8f75ag:KICueG\TgNA5-IAeq<-%NX,,W;+/.6i6o2*OL -;G')Pl&"biOff@qN"9`q%O22D>;"YnAsfr'YW7`6[/o2tX!T=]>-^t+_ -e6G[MD7k1":h"T]M:JOLW_SG&L+*;<$HsODi9CmGge:_J-e/D2BrfiS`[.un2`4'a -MseCj-YdUAWI*PMUTKfejB.g$,:g+C6Tr -grestore -currentdict /inputf undef -currentdict /pstr undef diff --git a/doc/design-paper/graphtraffic.pdf b/doc/design-paper/graphtraffic.pdf deleted file mode 100644 index e37382f6e6d280ea4535afdcd45e96a3e69c550c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62459 zcmeEv2Ut_d-hL1TM5-vg2`EbMMS*}KMO09VNJl_Ap?3&HQF>88lqv|Q6s1e=MVd%2 z0g)2vod6->f7rF`UXT0j-s|1_{lDjekI6IPoSFIcGxN@ylPa=u-26O(geRNk!=Dlg zGxIUSZdnjYNbp`Zu`zWtV-^8guJg*7TREE8GxN$>89JKCni#>1O{Am<9USdV46O-W z;|1Rds_{W&PA9~-syC}=8d#Vgpj79}A5l_;H*ilMaUtoPa#O zPE>1RWBmDg;N50UryC3o#3b3Fs2?UWYjX183#~{>t9O#*tZY|6V||i37~Z-pIrOn6HXG z%t+P5QJWW#2s5vuHE_ENz?GWHw=7JI9GUmWa-9(9p7#RG#u2!O1M|MHerftVqWzox zDm-T1{UI^`GA0LRUL|v52WD-;{SjX$)MWE|mi7&;nS!A!s0 z;@9zh`}=)a{Mr?-s?#mUUpo6`$os>yg4wIu8X5up%bGZw8<|{}KTpVe!`v9qCLj?) zUIi0#Q!~eX$q@3MH+OVUF|oe@v$loV>`O+B@T;ga8i@AMX$WK0f~8!vusx$B2oJ93i4PN~?nT3m$p8mAx87@A4At50qc5z8D0SO*KA%VSW2sr@`?SbpK*I6L)^7kN#(5;m{2<>k!%Hphx{~h+Pn*9Gs+Wnj!4j=EVT&#?PJ^wUwsJEh_&H7Xvr;sIGeaclH$Sv7158TCd zWKi)E%c=ut!Ol~DkW}wm%?~n^cu^Fo{J!(i6C+x(-tQOoX^6ikY_5wUYl2I=U@uhFB4WL=|Scw$C$jG=s|uWHjIX&3O2rtqyUOq}T+L;}7tffc@rsvpuwa^CDe z+Cj_Z_P)uID^ezcbjd{h4CAqYbN6c_njrqNLw85?`0~3QaPr=~O7wIyZM(@5brL=N zN-facx|y>FiL>PJ?74y8==G>H0fNofp>ai_b;S~@qe!LeHHXTdom4O;UofH*w5Gdf z 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 o^M#qf:80}}) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3525 1500 m -gs 1 -1 sc (Relay c1{Extended, g^y2, H\(K2\)}) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3675 2100 m -gs 1 -1 sc (Relay c2{Begin :80}) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3525 2550 m -gs 1 -1 sc (Relay c1{{Connected}}) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -5925 2475 m -gs 1 -1 sc (Relay c2{Connected}) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -1275 2925 m -gs 1 -1 sc (Relay c1{{Data, "HTTP GET..."}}) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3675 3000 m -gs 1 -1 sc (Relay c2{Data, "HTTP GET..."}) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -4800 225 m -gs 1 -1 sc (\(link is TLS-encryped\)) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -7050 225 m -gs 1 -1 sc (\(unencrypted\)) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -7125 1650 m -gs 1 -1 sc (cN--a circID) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3525 3600 m -gs 1 -1 sc (Relay c1{{Data, \(response\)}}) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -8100 3375 m -gs 1 -1 sc (\(response\)) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -5925 3450 m -gs 1 -1 sc (Relay c2{Data, \(response\)}) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -5925 1425 m -gs 1 -1 sc (Created c2, g^y2, H\(K2\)) dup sw pop neg 0 rm col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3675 1125 m -gs 1 -1 sc (Create c2, E\(g^x2\)) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -1275 450 m -gs 1 -1 sc (Create c1, E\(g^x1\)) col0 sh gr -/Times-Roman-iso ff 150.00 scf sf -3525 750 m -gs 1 -1 sc (Created c1, g^y1, H\(K1\)) dup sw pop neg 0 rm col0 sh gr -$F2psEnd -rs diff --git a/doc/design-paper/interaction.fig b/doc/design-paper/interaction.fig deleted file mode 100644 index a7b49e0a52..0000000000 --- a/doc/design-paper/interaction.fig +++ /dev/null @@ -1,122 +0,0 @@ -#FIG 3.2 -Landscape -Center -Inches -Letter -100.00 -Single --2 -1200 2 -2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 2 - 6000 300 6000 3975 -2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 1200 525 3600 525 -2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 825 1200 825 -2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 2 - 1200 300 1200 3975 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 1200 1125 3600 1125 -2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 2 - 3600 300 3600 3975 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 1200 6000 1200 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 1500 3600 1500 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 1575 1200 1575 -2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2 - 1050 1800 8325 1800 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 1200 2100 3600 2100 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 2175 6000 2175 -2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 1 2 - 1 1 1.00 60.00 120.00 - 1 1 1.00 60.00 120.00 - 6000 2400 8175 2400 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 2550 3600 2550 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 2625 1200 2625 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 1200 3000 3600 3000 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 3075 6000 3075 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 3150 8175 3150 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 8175 3450 6000 3450 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 8175 3525 6000 3525 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 8175 3600 6000 3600 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 3525 3600 3525 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 3675 3600 3675 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 6000 3600 3600 3600 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 3675 1200 3675 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 3750 1200 3750 -2 1 0 1 0 7 50 0 -1 3.000 0 0 -1 1 0 2 - 1 1 1.00 60.00 120.00 - 3600 3825 1200 3825 -2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 2 - 8175 300 8175 3975 -2 2 0 1 0 7 50 0 20 3.000 0 0 -1 0 0 5 - 6300 825 7950 825 7950 1725 6300 1725 6300 825 -4 0 0 50 0 2 12 0.0000 4 135 450 3375 225 OR 1\001 -4 0 0 50 0 2 12 0.0000 4 135 420 1050 225 Alice\001 -4 0 0 50 0 2 12 0.0000 4 135 450 5775 225 OR 2\001 -4 0 0 50 0 0 10 0.0000 4 105 960 6075 3075 "HTTP GET..."\001 -4 1 0 50 0 0 10 0.0000 4 15 135 4800 3975 . . .\001 -4 1 0 50 0 0 10 0.0000 4 15 135 7125 3975 . . .\001 -4 1 0 50 0 0 10 0.0000 4 15 135 2400 3975 . . .\001 -4 1 0 50 0 0 10 0.0000 4 135 1050 7125 2325 (TCP handshake)\001 -4 0 0 50 0 2 12 0.0000 4 135 630 7875 225 website\001 -4 1 0 50 0 0 10 0.0000 4 135 1335 7125 1425 {X}--AES encryption\001 -4 1 0 50 0 0 10 0.0000 4 135 1410 7125 1200 E(x)--RSA encryption\001 -4 1 0 50 0 0 10 0.0000 4 135 480 7125 975 Legend:\001 -4 1 0 50 0 0 10 0.0000 4 135 1455 2400 225 (link is TLS-encrypted)\001 -4 0 0 50 0 0 10 0.0000 4 135 2085 1275 1050 Relay c1{Extend, OR2, E(g^x2)}\001 -4 0 0 50 0 0 10 0.0000 4 135 1965 1275 2025 Relay c1{{Begin :80}}\001 -4 2 0 50 0 0 10 0.0000 4 135 2190 3525 1500 Relay c1{Extended, g^y2, H(K2)}\001 -4 0 0 50 0 0 10 0.0000 4 135 1845 3675 2100 Relay c2{Begin :80}\001 -4 2 0 50 0 0 10 0.0000 4 135 1410 3525 2550 Relay c1{{Connected}}\001 -4 2 0 50 0 0 10 0.0000 4 135 1290 5925 2475 Relay c2{Connected}\001 -4 0 0 50 0 0 10 0.0000 4 135 2085 1275 2925 Relay c1{{Data, "HTTP GET..."}}\001 -4 0 0 50 0 0 10 0.0000 4 135 1965 3675 3000 Relay c2{Data, "HTTP GET..."}\001 -4 1 0 50 0 0 10 0.0000 4 135 1365 4800 225 (link is TLS-encryped)\001 -4 1 0 50 0 0 10 0.0000 4 135 870 7050 225 (unencrypted)\001 -4 1 0 50 0 0 10 0.0000 4 105 780 7125 1650 cN--a circID\001 -4 2 0 50 0 0 10 0.0000 4 135 1860 3525 3600 Relay c1{{Data, (response)}}\001 -4 2 0 50 0 0 10 0.0000 4 135 645 8100 3375 (response)\001 -4 2 0 50 0 0 10 0.0000 4 135 1650 5925 3450 Relay c2{Data, (response)}\001 -4 2 0 50 0 0 10 0.0000 4 135 1545 5925 1425 Created c2, g^y2, H(K2)\001 -4 0 0 50 0 0 10 0.0000 4 135 1170 3675 1125 Create c2, E(g^x2)\001 -4 0 0 50 0 0 10 0.0000 4 135 1170 1275 450 Create c1, E(g^x1)\001 -4 2 0 50 0 0 10 0.0000 4 135 1545 3525 750 Created c1, g^y1, H(K1)\001 diff --git a/doc/design-paper/interaction.pdf b/doc/design-paper/interaction.pdf deleted file mode 100644 index 8def0add59c1316e878827d5b48cce21bb5b9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35540 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 diff --git a/doc/design-paper/latex8.bst b/doc/design-paper/latex8.bst deleted file mode 100644 index bae8e209ee..0000000000 --- a/doc/design-paper/latex8.bst +++ /dev/null @@ -1,1122 +0,0 @@ - -% --------------------------------------------------------------- -% -% by Paolo.Ienne@di.epfl.ch -% - -% --------------------------------------------------------------- -% -% no guarantee is given that the format corresponds perfectly to -% IEEE 8.5" x 11" Proceedings, but most features should be ok. -% -% --------------------------------------------------------------- -% -% `latex8' from BibTeX standard bibliography style `abbrv' -% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. -% Copyright (C) 1985, all rights reserved. -% Copying of this file is authorized only if either -% (1) you make absolutely no changes to your copy, including name, or -% (2) if you do make changes, you name it something other than -% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. -% This restriction helps ensure that all standard styles are identical. -% The file btxbst.doc has the documentation for this style. - -ENTRY - { address - author - booktitle - chapter - edition - editor - howpublished - institution - journal - key - month - note - number - organization - pages - publisher - school - series - title - type - volume - year - } - {} - { label } - -INTEGERS { output.state before.all mid.sentence after.sentence after.block } - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "{\em " swap$ * "}" * } - if$ -} - -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names } - if$ -} - -FUNCTION {format.editors} -{ editor empty$ - { "" } - { editor format.names - editor num.names$ #1 > - { ", editors" * } - { ", editor" * } - if$ - } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -FUNCTION {n.dashify} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { month " " * year * } - if$ - } - if$ -} - -FUNCTION {format.btitle} -{ title emphasize -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { "volume" volume tie.or.space.connect - series empty$ - 'skip$ - { " of " * series emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { output.state mid.sentence = - { "number" } - { "Number" } - if$ - number tie.or.space.connect - series empty$ - { "there's a number but no series in " cite$ * warning$ } - { " in " * series * } - if$ - } - if$ - } - { "" } - if$ -} - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { edition "l" change.case$ " edition" * } - { edition "t" change.case$ " edition" * } - if$ - } - if$ -} - -INTEGERS { multiresult } - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { "pages" pages n.dashify tie.or.space.connect } - { "page" pages tie.or.space.connect } - if$ - } - if$ -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - number empty$ - 'skip$ - { "(" number * ")" * * - volume empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - } - if$ - pages empty$ - 'skip$ - { duplicate$ empty$ - { pop$ format.pages } - { ":" * pages n.dashify * } - if$ - } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { "chapter" } - { type "l" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { "In " booktitle emphasize * } - { "In " format.editors * ", " * booktitle emphasize * } - if$ - } - if$ -} - -FUNCTION {empty.misc.check} - -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {format.article.crossref} -{ key empty$ - { journal empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * - warning$ - "" - } - { "In {\em " journal * "\/}" * } - if$ - } - { "In " key * } - if$ - " \cite{" * crossref * "}" * -} - -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - editor num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * editor #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.book.crossref} -{ volume empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - "In " - } - { "Volume" volume tie.or.space.connect - " of " * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { "{\em " * series * "\/}" * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} - -FUNCTION {format.incoll.inproc.crossref} -{ editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { booktitle empty$ - { "need editor, key, or booktitle for " cite$ * " to crossref " * - crossref * warning$ - "" - } - { "In {\em " booktitle * "\/}" * } - if$ - } - { "In " key * } - if$ - } - { "In " format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - crossref missing$ - { journal emphasize "journal" output.check - format.vol.num.pages output - format.date "year" output.check - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - new.block - format.number.series output - new.sentence - publisher "publisher" output.check - address output - } - { new.block - format.book.crossref output.nonnull - } - if$ - format.edition output - format.date "year" output.check - new.block - note output - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - new.block - format.title "title" output.check - howpublished address new.block.checkb - howpublished output - address output - format.date output - new.block - note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check } - { format.authors output.nonnull - - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - format.chapter.pages "chapter and pages" output.check - new.block - format.number.series output - new.sentence - publisher "publisher" output.check - address output - } - { format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - } - if$ - format.edition output - format.date "year" output.check - new.block - note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.chapter.pages output - new.sentence - publisher "publisher" output.check - address output - format.edition output - format.date "year" output.check - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.pages output - address empty$ - { organization publisher new.sentence.checkb - organization output - publisher output - format.date "year" output.check - } - { address output.nonnull - format.date "year" output.check - new.sentence - organization output - publisher output - } - if$ - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull - address output - } - if$ - } - { format.authors output.nonnull } - if$ - new.block - format.btitle "title" output.check - author empty$ - { organization empty$ - { address new.block.checka - address output - } - 'skip$ - if$ - } - { organization address new.block.checkb - organization output - address output - } - if$ - format.edition output - format.date output - new.block - note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - "Master's thesis" format.thesis.type output.nonnull - school "school" output.check - address output - format.date "year" output.check - new.block - note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - howpublished new.block.checka - howpublished output - format.date output - new.block - note output - fin.entry - empty.misc.check -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "title" output.check - new.block - "PhD thesis" format.thesis.type output.nonnull - school "school" output.check - address output - format.date "year" output.check - new.block - note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output } - { format.editors output.nonnull } - - if$ - new.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - address empty$ - { editor empty$ - { publisher new.sentence.checka } - { organization publisher new.sentence.checkb - organization output - } - if$ - publisher output - format.date "year" output.check - } - { address output.nonnull - format.date "year" output.check - new.sentence - editor empty$ - 'skip$ - { organization output } - if$ - publisher output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - format.tr.number output.nonnull - institution "institution" output.check - address output - format.date "year" output.check - new.block - note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - note "note" output.check - format.date output - fin.entry -} - -FUNCTION {default.type} { misc } - -MACRO {jan} {"Jan."} - -MACRO {feb} {"Feb."} - -MACRO {mar} {"Mar."} - -MACRO {apr} {"Apr."} - -MACRO {may} {"May"} - -MACRO {jun} {"June"} - -MACRO {jul} {"July"} - -MACRO {aug} {"Aug."} - -MACRO {sep} {"Sept."} - -MACRO {oct} {"Oct."} - -MACRO {nov} {"Nov."} - -MACRO {dec} {"Dec."} - -MACRO {acmcs} {"ACM Comput. Surv."} - -MACRO {acta} {"Acta Inf."} - -MACRO {cacm} {"Commun. ACM"} - -MACRO {ibmjrd} {"IBM J. Res. Dev."} - -MACRO {ibmsj} {"IBM Syst.~J."} - -MACRO {ieeese} {"IEEE Trans. Softw. Eng."} - -MACRO {ieeetc} {"IEEE Trans. Comput."} - -MACRO {ieeetcad} - {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} - -MACRO {ipl} {"Inf. Process. Lett."} - -MACRO {jacm} {"J.~ACM"} - -MACRO {jcss} {"J.~Comput. Syst. Sci."} - -MACRO {scp} {"Sci. Comput. Programming"} - -MACRO {sicomp} {"SIAM J. Comput."} - -MACRO {tocs} {"ACM Trans. Comput. Syst."} - -MACRO {tods} {"ACM Trans. Database Syst."} - -MACRO {tog} {"ACM Trans. Gr."} - -MACRO {toms} {"ACM Trans. Math. Softw."} - -MACRO {toois} {"ACM Trans. Office Inf. Syst."} - -MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} - -MACRO {tcs} {"Theoretical Comput. Sci."} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = t "others" = and - { "et al" * } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT - -STRINGS { longest.label } - -INTEGERS { number.label longest.label.width } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} - -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} - -EXECUTE {initialize.longest.label} - -ITERATE {longest.label.pass} - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * - "}\setlength{\itemsep}{-1ex}\small" * write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - -% end of file latex8.bst -% --------------------------------------------------------------- - - - diff --git a/doc/design-paper/llncs.cls b/doc/design-paper/llncs.cls deleted file mode 100644 index 697dd774ec..0000000000 --- a/doc/design-paper/llncs.cls +++ /dev/null @@ -1,1016 +0,0 @@ -% LLNCS DOCUMENT CLASS -- version 2.8 -% for LaTeX2e -% -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{llncs}[2000/05/16 v2.8 -^^JLaTeX document class for Lecture Notes in Computer Science] -% Options -\let\if@envcntreset\iffalse -\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} -\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} -\DeclareOption{oribibl}{\let\oribibl=Y} -\let\if@custvec\iftrue -\DeclareOption{orivec}{\let\if@custvec\iffalse} -\let\if@envcntsame\iffalse -\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} -\let\if@envcntsect\iffalse -\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} -\let\if@runhead\iffalse -\DeclareOption{runningheads}{\let\if@runhead\iftrue} - -\let\if@openbib\iffalse -\DeclareOption{openbib}{\let\if@openbib\iftrue} - -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} - -\ProcessOptions - -\LoadClass[twoside]{article} -\RequirePackage{multicol} % needed for the list of participants, index - -\setlength{\textwidth}{12.2cm} -\setlength{\textheight}{19.3cm} - -% Ragged bottom for the actual page -\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil -\global\let\@textbottom\relax}} - -\renewcommand\small{% - \@setfontsize\small\@ixpt{11}% - \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \parsep 0\p@ \@plus1\p@ \@minus\p@ - \topsep 8\p@ \@plus2\p@ \@minus4\p@ - \itemsep0\p@}% - \belowdisplayskip \abovedisplayskip -} - -\frenchspacing -\widowpenalty=10000 -\clubpenalty=10000 - -\setlength\oddsidemargin {63\p@} -\setlength\evensidemargin {63\p@} -\setlength\marginparwidth {90\p@} - -\setlength\headsep {16\p@} - -\setlength\footnotesep{7.7\p@} -\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} - -\setcounter{secnumdepth}{2} - -\newcounter {chapter} -\renewcommand\thechapter {\@arabic\c@chapter} - -\newif\if@mainmatter \@mainmattertrue -\newcommand\frontmatter{\cleardoublepage - \@mainmatterfalse\pagenumbering{Roman}} -\newcommand\mainmatter{\cleardoublepage - \@mainmattertrue\pagenumbering{arabic}} -\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi - \@mainmatterfalse} - -\renewcommand\part{\cleardoublepage - \thispagestyle{empty}% - \if@twocolumn - \onecolumn - \@tempswatrue - \else - \@tempswafalse - \fi - \null\vfil - \secdef\@part\@spart} - -\def\@part[#1]#2{% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - \markboth{}{}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax - \huge\bfseries \partname~\thepart - \par - \vskip 20\p@ - \fi - \Huge \bfseries #2\par}% - \@endpart} -\def\@spart#1{% - {\centering - \interlinepenalty \@M - \normalfont - \Huge \bfseries #1\par}% - \@endpart} -\def\@endpart{\vfil\newpage - \if@twoside - \null - \thispagestyle{empty}% - \newpage - \fi - \if@tempswa - \twocolumn - \fi} - -\newcommand\chapter{\clearpage - \thispagestyle{empty}% - \global\@topnum\z@ - \@afterindentfalse - \secdef\@chapter\@schapter} -\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} -\def\@makechapterhead#1{% -% \vspace*{50\p@}% - {\centering - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \large\bfseries \@chapapp{} \thechapter - \par\nobreak - \vskip 20\p@ - \fi - \fi - \interlinepenalty\@M - \Large \bfseries #1\par\nobreak - \vskip 40\p@ - }} -\def\@schapter#1{\if@twocolumn - \@topnewpage[\@makeschapterhead{#1}]% - \else - \@makeschapterhead{#1}% - \@afterheading - \fi} -\def\@makeschapterhead#1{% -% \vspace*{50\p@}% - {\centering - \normalfont - \interlinepenalty\@M - \Large \bfseries #1\par\nobreak - \vskip 40\p@ - }} - -\renewcommand\section{\@startsection{section}{1}{\z@}% - {-18\p@ \@plus -4\p@ \@minus -4\p@}% - {12\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\large\bfseries\boldmath - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-18\p@ \@plus -4\p@ \@minus -4\p@}% - {8\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\normalsize\bfseries\boldmath - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-18\p@ \@plus -4\p@ \@minus -4\p@}% - {-0.5em \@plus -0.22em \@minus -0.1em}% - {\normalfont\normalsize\bfseries\boldmath}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-12\p@ \@plus -4\p@ \@minus -4\p@}% - {-0.5em \@plus -0.22em \@minus -0.1em}% - {\normalfont\normalsize\itshape}} -\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use - \string\subparagraph\space with this class}\vskip0.5cm -You should not use \verb|\subparagraph| with this class.\vskip0.5cm} - -\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} -\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} -\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} -\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} -\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} -\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} -\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} -\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} -\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} -\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} -\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} - -\let\footnotesize\small - -\if@custvec -\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} -{\mbox{\boldmath$\textstyle#1$}} -{\mbox{\boldmath$\scriptstyle#1$}} -{\mbox{\boldmath$\scriptscriptstyle#1$}}} -\fi - -\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} -\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil -\penalty50\hskip1em\null\nobreak\hfil\squareforqed -\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} - -\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip -\halign{\hfil -$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets -\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets -\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr -\gets\cr\to\cr}}}}} -\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil -$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr -\noalign{\vskip1.2pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr -\noalign{\vskip1pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr -<\cr -\noalign{\vskip0.9pt}=\cr}}}}} -\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil -$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr -\noalign{\vskip1.2pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr -\noalign{\vskip1pt}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr ->\cr -\noalign{\vskip0.9pt}=\cr}}}}} -\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip -\halign{\hfil -$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr ->\cr\noalign{\vskip-1pt}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr ->\cr\noalign{\vskip-0.8pt}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr ->\cr\noalign{\vskip-0.3pt}<\cr}}}}} -\def\bbbr{{\rm I\!R}} %reelle Zahlen -\def\bbbm{{\rm I\!M}} -\def\bbbn{{\rm I\!N}} %natuerliche Zahlen -\def\bbbf{{\rm I\!F}} -\def\bbbh{{\rm I\!H}} -\def\bbbk{{\rm I\!K}} -\def\bbbp{{\rm I\!P}} -\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} -{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} -\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox -to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox -to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox -to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox -to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} -\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm -Q$}\hbox{\raise -0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} -\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm -T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox -to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox -to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox -to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} -\def\bbbs{{\mathchoice -{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox -to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox -to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox -to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox -to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox -to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox -to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox -to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox -to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} -\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} -{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} -{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} -{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} - -\let\ts\, - -\setlength\leftmargini {17\p@} -\setlength\leftmargin {\leftmargini} -\setlength\leftmarginii {\leftmargini} -\setlength\leftmarginiii {\leftmargini} -\setlength\leftmarginiv {\leftmargini} -\setlength \labelsep {.5em} -\setlength \labelwidth{\leftmargini} -\addtolength\labelwidth{-\labelsep} - -\def\@listI{\leftmargin\leftmargini - \parsep 0\p@ \@plus1\p@ \@minus\p@ - \topsep 8\p@ \@plus2\p@ \@minus4\p@ - \itemsep0\p@} -\let\@listi\@listI -\@listi -\def\@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - \topsep 0\p@ \@plus2\p@ \@minus\p@} -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - \topsep 0\p@ \@plus\p@\@minus\p@ - \parsep \z@ - \partopsep \p@ \@plus\z@ \@minus\p@} - -\renewcommand\labelitemi{\normalfont\bfseries --} -\renewcommand\labelitemii{$\m@th\bullet$} - -\setlength\arraycolsep{1.4\p@} -\setlength\tabcolsep{1.4\p@} - -\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% - {{\contentsname}}} - \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} - \def\lastand{\ifnum\value{auco}=2\relax - \unskip{} \andname\ - \else - \unskip \lastandname\ - \fi}% - \def\and{\stepcounter{@auth}\relax - \ifnum\value{@auth}=\value{auco}% - \lastand - \else - \unskip, - \fi}% - \@starttoc{toc}\if@restonecol\twocolumn\fi} - -\def\l@part#1#2{\addpenalty{\@secpenalty}% - \addvspace{2em plus\p@}% % space above part line - \begingroup - \parindent \z@ - \rightskip \z@ plus 5em - \hrule\vskip5pt - \large % same size as for a contribution heading - \bfseries\boldmath % set line in boldface - \leavevmode % TeX command to enter horizontal mode. - #1\par - \vskip5pt - \hrule - \vskip1pt - \nobreak % Never break after part entry - \endgroup} - -\def\@dotsep{2} - -\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else -{chapter.\thechapter}\fi} - -\def\addnumcontentsmark#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline - {\thechapter}#3}{\thepage}\hyperhrefextend}} -\def\addcontentsmark#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}} -\def\addcontentsmarkwop#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}} - -\def\@adcmk[#1]{\ifcase #1 \or -\def\@gtempa{\addnumcontentsmark}% - \or \def\@gtempa{\addcontentsmark}% - \or \def\@gtempa{\addcontentsmarkwop}% - \fi\@gtempa{toc}{chapter}} -\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} - -\def\l@chapter#1#2{\addpenalty{-\@highpenalty} - \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip - {\large\bfseries\boldmath#1}\ifx0#2\hfil\null - \else - \nobreak - \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern - \@dotsep mu$}\hfill - \nobreak\hbox to\@pnumwidth{\hss #2}% - \fi\par - \penalty\@highpenalty \endgroup} - -\def\l@title#1#2{\addpenalty{-\@highpenalty} - \addvspace{8pt plus 1pt} - \@tempdima \z@ - \begingroup - \parindent \z@ \rightskip \@tocrmarg - \parfillskip -\@tocrmarg - \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip - #1\nobreak - \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern - \@dotsep mu$}\hfill - \nobreak\hbox to\@pnumwidth{\hss #2}\par - \penalty\@highpenalty \endgroup} - -\setcounter{tocdepth}{0} -\newdimen\tocchpnum -\newdimen\tocsecnum -\newdimen\tocsectotal -\newdimen\tocsubsecnum -\newdimen\tocsubsectotal -\newdimen\tocsubsubsecnum -\newdimen\tocsubsubsectotal -\newdimen\tocparanum -\newdimen\tocparatotal -\newdimen\tocsubparanum -\tocchpnum=\z@ % no chapter numbers -\tocsecnum=15\p@ % section 88. plus 2.222pt -\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt -\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt -\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt -\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt -\def\calctocindent{% -\tocsectotal=\tocchpnum -\advance\tocsectotal by\tocsecnum -\tocsubsectotal=\tocsectotal -\advance\tocsubsectotal by\tocsubsecnum -\tocsubsubsectotal=\tocsubsectotal -\advance\tocsubsubsectotal by\tocsubsubsecnum -\tocparatotal=\tocsubsubsectotal -\advance\tocparatotal by\tocparanum} -\calctocindent - -\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} -\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} -\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} -\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} -\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} - -\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn - \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} - \@starttoc{lof}\if@restonecol\twocolumn\fi} -\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} - -\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn - \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} - \@starttoc{lot}\if@restonecol\twocolumn\fi} -\let\l@table\l@figure - -\renewcommand\listoffigures{% - \section*{\listfigurename - \@mkboth{\listfigurename}{\listfigurename}}% - \@starttoc{lof}% - } - -\renewcommand\listoftables{% - \section*{\listtablename - \@mkboth{\listtablename}{\listtablename}}% - \@starttoc{lot}% - } - -\ifx\oribibl\undefined -\ifx\citeauthoryear\undefined -\renewenvironment{thebibliography}[1] - {\section*{\refname} - \def\@biblabel##1{##1.} - \small - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \if@openbib - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ - \fi - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \if@openbib - \renewcommand\newblock{\par}% - \else - \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% - \fi - \sloppy\clubpenalty4000\widowpenalty4000% - \sfcode`\.=\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} -\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw - {\let\protect\noexpand\immediate - \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} -\newcount\@tempcntc -\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi - \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do - {\@ifundefined - {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries - ?}\@warning - {Citation `\@citeb' on page \thepage \space undefined}}% - {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% - \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne - \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% - \else - \advance\@tempcntb\@ne - \ifnum\@tempcntb=\@tempcntc - \else\advance\@tempcntb\m@ne\@citeo - \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} -\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else - \@citea\def\@citea{,\,\hskip\z@skip}% - \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else - {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else - \def\@citea{--}\fi - \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} -\else -\renewenvironment{thebibliography}[1] - {\section*{\refname} - \small - \list{}% - {\settowidth\labelwidth{}% - \leftmargin\parindent - \itemindent=-\parindent - \labelsep=\z@ - \if@openbib - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ - \fi - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{}}% - \if@openbib - \renewcommand\newblock{\par}% - \else - \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% - \fi - \sloppy\clubpenalty4000\widowpenalty4000% - \sfcode`\.=\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} - \def\@cite#1{#1}% - \def\@lbibitem[#1]#2{\item[]\if@filesw - {\def\protect##1{\string ##1\space}\immediate - \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} - \fi -\else -\@cons\@openbib@code{\noexpand\small} -\fi - -\def\idxquad{\hskip 10\p@}% space that divides entry from number - -\def\@idxitem{\par\hangindent 10\p@} - -\def\subitem{\par\setbox0=\hbox{--\enspace}% second order - \noindent\hangindent\wd0\box0}% index entry - -\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third - \noindent\hangindent\wd0\box0}% order index entry - -\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} - -\renewenvironment{theindex} - {\@mkboth{\indexname}{\indexname}% - \thispagestyle{empty}\parindent\z@ - \parskip\z@ \@plus .3\p@\relax - \let\item\par - \def\,{\relax\ifmmode\mskip\thinmuskip - \else\hskip0.2em\ignorespaces\fi}% - \normalfont\small - \begin{multicols}{2}[\@makeschapterhead{\indexname}]% - } - {\end{multicols}} - -\renewcommand\footnoterule{% - \kern-3\p@ - \hrule\@width 2truecm - \kern2.6\p@} - \newdimen\fnindent - \fnindent1em -\long\def\@makefntext#1{% - \parindent \fnindent% - \leftskip \fnindent% - \noindent - \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} - -\long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{{\bfseries #1.} #2}% - \ifdim \wd\@tempboxa >\hsize - {\bfseries #1.} #2\par - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip} - -\def\fps@figure{htbp} -\def\fnum@figure{\figurename\thinspace\thefigure} -\def \@floatboxreset {% - \reset@font - \small - \@setnobreak - \@setminipage -} -\def\fps@table{htbp} -\def\fnum@table{\tablename~\thetable} -\renewenvironment{table} - {\setlength\abovecaptionskip{0\p@}% - \setlength\belowcaptionskip{10\p@}% - \@float{table}} - {\end@float} -\renewenvironment{table*} - {\setlength\abovecaptionskip{0\p@}% - \setlength\belowcaptionskip{10\p@}% - \@dblfloat{table}} - {\end@dblfloat} - -\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname - ext@#1\endcsname}{#1}{\protect\numberline{\csname - the#1\endcsname}{\ignorespaces #2}}\begingroup - \@parboxrestore - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par - \endgroup} - -% LaTeX does not provide a command to enter the authors institute -% addresses. The \institute command is defined here. - -\newcounter{@inst} -\newcounter{@auth} -\newcounter{auco} -\def\andname{and} -\def\lastandname{\unskip, and} -\newdimen\instindent -\newbox\authrun -\newtoks\authorrunning -\newtoks\tocauthor -\newbox\titrun -\newtoks\titlerunning -\newtoks\toctitle - -\def\clearheadinfo{\gdef\@author{No Author Given}% - \gdef\@title{No Title Given}% - \gdef\@subtitle{}% - \gdef\@institute{No Institute Given}% - \gdef\@thanks{}% - \global\titlerunning={}\global\authorrunning={}% - \global\toctitle={}\global\tocauthor={}} - -\def\institute#1{\gdef\@institute{#1}} - -\def\institutename{\par - \begingroup - \parskip=\z@ - \parindent=\z@ - \setcounter{@inst}{1}% - \def\and{\par\stepcounter{@inst}% - \noindent$^{\the@inst}$\enspace\ignorespaces}% - \setbox0=\vbox{\def\thanks##1{}\@institute}% - \ifnum\c@@inst=1\relax - \else - \setcounter{footnote}{\c@@inst}% - \setcounter{@inst}{1}% - \noindent$^{\the@inst}$\enspace - \fi - \ignorespaces - \@institute\par - \endgroup} - -\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or - {\star\star\star}\or \dagger\or \ddagger\or - \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger - \or \ddagger\ddagger \else\@ctrerr\fi}} - -\def\inst#1{\unskip$^{#1}$} -\def\fnmsep{\unskip$^,$} -\def\email#1{{\tt#1}} -\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}} -\def\homedir{\~{ }} - -\def\subtitle#1{\gdef\@subtitle{#1}} -\clearheadinfo - -\renewcommand\maketitle{\newpage - \refstepcounter{chapter}% - \stepcounter{section}% - \setcounter{section}{0}% - \setcounter{subsection}{0}% - \setcounter{figure}{0} - \setcounter{table}{0} - \setcounter{equation}{0} - \setcounter{footnote}{0}% - \begingroup - \parindent=\z@ - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \if@twocolumn - \ifnum \col@number=\@ne - \@maketitle - \else - \twocolumn[\@maketitle]% - \fi - \else - \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \@maketitle - \fi - \thispagestyle{empty}\@thanks -% - \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% - \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% - \instindent=\hsize - \advance\instindent by-\headlineindent - \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else - \addcontentsline{toc}{title}{\the\toctitle}\fi - \if@runhead - \if!\the\titlerunning!\else - \edef\@title{\the\titlerunning}% - \fi - \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% - \ifdim\wd\titrun>\instindent - \typeout{Title too long for running head. Please supply}% - \typeout{a shorter form with \string\titlerunning\space prior to - \string\maketitle}% - \global\setbox\titrun=\hbox{\small\rm - Title Suppressed Due to Excessive Length}% - \fi - \xdef\@title{\copy\titrun}% - \fi -% - \if!\the\tocauthor!\relax - {\def\and{\noexpand\protect\noexpand\and}% - \protected@xdef\toc@uthor{\@author}}% - \else - \def\\{\noexpand\protect\noexpand\newline}% - \protected@xdef\scratch{\the\tocauthor}% - \protected@xdef\toc@uthor{\scratch}% - \fi - \addtocontents{toc}{{\protect\raggedright\protect\leftskip15\p@ - \protect\rightskip\@tocrmarg - \protect\itshape\toc@uthor\protect\endgraf}}% - \if@runhead - \if!\the\authorrunning! - \value{@inst}=\value{@auth}% - \setcounter{@auth}{1}% - \else - \edef\@author{\the\authorrunning}% - \fi - \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}% - \ifdim\wd\authrun>\instindent - \typeout{Names of authors too long for running head. Please supply}% - \typeout{a shorter form with \string\authorrunning\space prior to - \string\maketitle}% - \global\setbox\authrun=\hbox{\small\rm - Authors Suppressed Due to Excessive Length}% - \fi - \xdef\@author{\copy\authrun}% - \markboth{\@author}{\@title}% - \fi - \endgroup - \setcounter{footnote}{0}% - \clearheadinfo} -% -\def\@maketitle{\newpage - \markboth{}{}% - \def\lastand{\ifnum\value{@inst}=2\relax - \unskip{} \andname\ - \else - \unskip \lastandname\ - \fi}% - \def\and{\stepcounter{@auth}\relax - \ifnum\value{@auth}=\value{@inst}% - \lastand - \else - \unskip, - \fi}% - \begin{center}% - {\Large \bfseries\boldmath - \pretolerance=10000 - \@title \par}\vskip .8cm -\if!\@subtitle!\else {\large \bfseries\boldmath - \vskip -.65cm - \pretolerance=10000 - \@subtitle \par}\vskip .8cm\fi - \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% - \def\thanks##1{}\@author}% - \global\value{@inst}=\value{@auth}% - \global\value{auco}=\value{@auth}% - \setcounter{@auth}{1}% -{\lineskip .5em -\noindent\ignorespaces -\@author\vskip.35cm} - {\small\institutename} - \end{center}% - } - -% definition of the "\spnewtheorem" command. -% -% Usage: -% -% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} -% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} -% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} -% -% New is "cap_font" and "body_font". It stands for -% fontdefinition of the caption and the text itself. -% -% "\spnewtheorem*" gives a theorem without number. -% -% A defined spnewthoerem environment is used as described -% by Lamport. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\@thmcountersep{} -\def\@thmcounterend{.} - -\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} - -% definition of \spnewtheorem with number - -\def\@spnthm#1#2{% - \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} -\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} - -\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname - {\@definecounter{#1}\@addtoreset{#1}{#3}% - \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand - \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname - {\@definecounter{#1}% - \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@spothm#1[#2]#3#4#5{% - \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% - {\expandafter\@ifdefinable\csname #1\endcsname - {\global\@namedef{the#1}{\@nameuse{the#2}}% - \expandafter\xdef\csname #1name\endcsname{#3}% - \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% - \global\@namedef{end#1}{\@endtheorem}}}} - -\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ -\refstepcounter{#1}% -\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} - -\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% - \ignorespaces} - -\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname - the#1\endcsname}{#5}{#3}{#4}\ignorespaces} - -\def\@spbegintheorem#1#2#3#4{\trivlist - \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} - -\def\@spopargbegintheorem#1#2#3#4#5{\trivlist - \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} - -% definition of \spnewtheorem* without number - -\def\@sthm#1#2{\@Ynthm{#1}{#2}} - -\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname - {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ -\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} - -\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} - -\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} - {#4}{#2}{#3}\ignorespaces} - -\def\@Begintheorem#1#2#3{#3\trivlist - \item[\hskip\labelsep{#2#1\@thmcounterend}]} - -\def\@Opargbegintheorem#1#2#3#4{#4\trivlist - \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} - -\if@envcntsect - \def\@thmcountersep{.} - \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} -\else - \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} - \if@envcntreset - \@addtoreset{theorem}{section} - \else - \@addtoreset{theorem}{chapter} - \fi -\fi - -%definition of divers theorem environments -\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} -\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} -\if@envcntsame % alle Umgebungen wie Theorem. - \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} -\else % alle Umgebungen mit eigenem Zaehler - \if@envcntsect % mit section numeriert - \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} - \else % nicht mit section numeriert - \if@envcntreset - \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} - \@addtoreset{#1}{section}} - \else - \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} - \@addtoreset{#1}{chapter}}% - \fi - \fi -\fi -\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} -\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} -\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} -\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} -\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} -\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} -\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} -\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} -\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} -\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} -\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} -\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} -\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} -\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} - -\def\@takefromreset#1#2{% - \def\@tempa{#1}% - \let\@tempd\@elt - \def\@elt##1{% - \def\@tempb{##1}% - \ifx\@tempa\@tempb\else - \@addtoreset{##1}{#2}% - \fi}% - \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname - \expandafter\def\csname cl@#2\endcsname{}% - \@tempc - \let\@elt\@tempd} - -\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist - \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} - \def\@Opargbegintheorem##1##2##3##4{##4\trivlist - \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} - } - -\renewenvironment{abstract}{% - \list{}{\advance\topsep by0.35cm\relax\small - \leftmargin=1cm - \labelwidth=\z@ - \listparindent=\z@ - \itemindent\listparindent - \rightmargin\leftmargin}\item[\hskip\labelsep - \bfseries\abstractname]} - {\endlist} -\renewcommand{\abstractname}{Abstract.} -\renewcommand{\contentsname}{Table of Contents} -\renewcommand{\figurename}{Fig.} -\renewcommand{\tablename}{Table} - -\newdimen\headlineindent % dimension for space between -\headlineindent=1.166cm % number and text of headings. - -\def\ps@headings{\let\@mkboth\@gobbletwo - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% - \leftmark\hfil} - \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% - \llap{\thepage}} - \def\chaptermark##1{}% - \def\sectionmark##1{}% - \def\subsectionmark##1{}} - -\def\ps@titlepage{\let\@mkboth\@gobbletwo - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% - \hfil} - \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}% - \llap{\thepage}} - \def\chaptermark##1{}% - \def\sectionmark##1{}% - \def\subsectionmark##1{}} - -\if@runhead\ps@headings\else -\ps@empty\fi - -\setlength\arraycolsep{1.4\p@} -\setlength\tabcolsep{1.4\p@} - -\endinput - diff --git a/doc/design-paper/sptor.tex b/doc/design-paper/sptor.tex deleted file mode 100644 index 4b659eeda1..0000000000 --- a/doc/design-paper/sptor.tex +++ /dev/null @@ -1,353 +0,0 @@ -\documentclass{llncs} - -\usepackage{url} -\usepackage{amsmath} -\usepackage{epsfig} - -\setlength{\textwidth}{5.9in} -\setlength{\textheight}{8.4in} -\setlength{\topmargin}{.5cm} -\setlength{\oddsidemargin}{1cm} -\setlength{\evensidemargin}{1cm} - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} - - -\newcommand{\workingnote}[1]{} % The version that hides the note. -%\newcommand{\workingnote}[1]{(**#1)} % The version that makes the note visible. - - -\begin{document} - -\title{Design challenges and social factors in deploying low-latency anonymity} -% Could still use a better title -PFS - -\author{Roger Dingledine\inst{1} \and -Nick Mathewson\inst{1} \and -Paul Syverson\inst{2}} -\institute{The Tor Project \email{<\{arma,nickm\}@torproject.org>} \and -Naval Research Laboratory \email{}} - -\maketitle -\pagestyle{plain} - -\begin{abstract} - There are many unexpected or unexpectedly difficult obstacles to - deploying anonymous communications. We describe Tor (\emph{the} - onion routing), how to use it, our design philosophy, and some of - the challenges that we have faced and continue to face in building, - deploying, and sustaining a scalable, distributed, low-latency - anonymity network. -\end{abstract} - -\section{Introduction} -This article describes Tor, a widely-used low-latency general-purpose -anonymous communication system, and discusses some unexpected -challenges arising from our experiences deploying Tor. We will tell -you how to use it, who uses it, how it works, why we designed it the -way we did, and why this makes it usable and stable. - -Tor is an overlay network for anonymizing TCP streams over the -Internet~\cite{tor-design}. Tor works on the real-world Internet, -requires no special privileges or kernel modifications, requires -little synchronization or coordination between nodes, and provides a -reasonable trade-off between anonymity, usability, and efficiency. - -Since deployment in October 2003 the public Tor network has grown to -about a thousand volunteer-operated nodes worldwide and over 110 -megabytes average traffic per second from hundreds of thousands of -concurrent users. - -\section{Tor Design and Design Philosophy: Distributed Trust and Usability} - -Tor enables users to connect to Internet sites without revealing their -logical or physical locations to those sites or to observers. It -enables hosts to be publicly accessible yet have similar protection -against location through its \emph{location-hidden services}. - -To connect to a remote server via Tor the client software first learns -a %signed -list of Tor nodes from several central \emph{directory servers} via a -voting protocol (to avoid dependence on or complete trust in any one -of these servers). It then incrementally creates a private pathway or -\emph{circuit} across the network. This circuit consists of -encrypted connections through authenticated Tor nodes -whose public keys were obtained from the directory servers. The client -software negotiates a separate set of encryption keys for each hop along the -circuit. The nodes in the circuit are chosen at random by the client -subject to a preference for higher performing nodes to allocate -resources effectively and with a client-chosen preferred set of first -nodes called \emph{entry guards} to complicate profiling attacks by -internal adversaries~\cite{hs-attack}. -The circuit is extended one node at a time, tunneling extensions -through already established portions of the circuit, and each node -along the way knows only the immediately previous and following nodes -in the circuit, so no individual Tor node knows the complete path that -each fixed-sized data packet (or \emph{cell}) will take. Thus, -neither an eavesdropper nor a compromised node can see both the -connection's source and destination. Later requests use a new -circuit to complicate long-term linkability between different actions -by a single user. - -Tor attempts to anonymize the transport layer, not the application -layer. Thus, applications such as SSH can provide -authenticated communication that is hidden by Tor from outside observers. -When anonymity from communication partners is desired, -application-level protocols that transmit identifying -information need additional scrubbing proxies, such as -Privoxy~\cite{privoxy} for HTTP\@. Furthermore, Tor does not relay -arbitrary IP packets; it only anonymizes TCP streams and DNS requests. - -Tor, the third generation of deployed onion-routing -designs~\cite{or-ih96,or-jsac98,tor-design}, was researched, developed, -and deployed by the Naval Research Laboratory and the Free Haven -Project under ONR and DARPA funding for secure government -communications. In 2005, continuing work by Free Haven was funded by -the Electronic Frontier Foundation for maintaining civil liberties of -ordinary citizens online. In 2006, The Tor Project incorporated as a -non-profit and has received continued funding from the Omidyar Network, -the U.S. International Broadcasting Bureau, and other groups to combat -blocking and censorship on the Internet. This diversity of funding fits -Tor's overall philosophy: a wide variety of interests helps maintain -both the stability and the security of the network. - -Usability is also a central goal. Downloading and installing Tor is -easy. Simply go to\\ -http://www.torproject.org/ and download. Tor comes with install -wizards and a GUI for major operating systems: GNU/Linux, OS X, and -Windows. It also runs on various flavors of BSD and UNIX\@. Basic -instructions, documentation, FAQs, etc.\ are available in many -languages. The Tor GUI Vidalia makes server configuration easy, e.g., -choosing how much bandwidth to allocate to Tor, exit policy choices, -etc. And, the GUI Torbutton allows Firefox users a one-click toggle of -whether browsing goes through Tor or not. Tor is easily configured by -a site administrator to run at either individual desktops or just at a -site firewall or combinations of these. - -The ideal Tor network would be practical, useful and anonymous. When -trade-offs arise between these properties, Tor's research strategy has -been to remain useful enough to attract many users, and practical -enough to support them. Only subject to these constraints do we try -to maximize anonymity. Tor thus differs from other deployed systems -for traffic analysis resistance in its security and flexibility. Mix -networks such as -% Mixmaster~\cite{mixmaster-spec} or its successor -Mixminion~\cite{minion-design} gain the highest degrees of practical -anonymity at the expense of introducing highly variable delays, making -them unsuitable for applications such as web browsing. Commercial -single-hop proxies~\cite{anonymizer} can provide good performance, but -a single-point compromise can expose all users' traffic, and a -single-point eavesdropper can perform traffic analysis on the entire -network. Also, their proprietary implementations place any -infrastructure that depends on these single-hop solutions at the mercy -of their providers' financial health as well as network security. -There are numerous other designs for distributed anonymous low-latency -communication~\cite{crowds-tissec,web-mix,freedom21-security,i2p,tarzan:ccs02,morphmix:fc04}. -Some have been deployed or even commercialized; some exist only on -paper. Though each has something unique to offer, we feel Tor has -advantages over each of them that make it a superior choice for most -users and applications. For example, unlike purely P2P designs we -neither limit ordinary users to content and services available only -within our network nor require them to take on responsibility for -connections outside the network, unless they separately choose to run -server nodes. Nonetheless because we support low-latency interactive -communications, end-to-end \emph{traffic correlation} -attacks~\cite{danezis:pet2004,defensive-dropping,SS03,hs-attack,bauer:tr2007} -allow an attacker who can observe both ends of a communication to -correlate packet timing and volume, quickly linking the initiator to -her destination. - - -Our defense lies in having a diverse enough set of nodes to prevent -most real-world adversaries from being in the right places to attack -users, by distributing each transaction over several nodes in the -network. This ``distributed trust'' approach means the Tor network -can be safely operated and used by a wide variety of mutually -distrustful users, providing sustainability and security. - -The Tor network has a broad range of users, making it difficult for -eavesdroppers to track them or profile interests. These include -ordinary citizens concerned about their privacy, corporations who -don't want to reveal information to their competitors, and law -enforcement and government intelligence agencies who need to do -operations on the Internet without being noticed. Naturally, -organizations will not want to depend on others for their security. -If most participating providers are reliable, Tor tolerates some -hostile infiltration of the network. - -This distribution of trust is central to the Tor philosophy and -pervades Tor at all levels: Onion routing has been open source since -the mid-nineties (mistrusting users can inspect the code themselves); -Tor is free software (anyone could take up the development of Tor from -the current team); anyone can use Tor without license or charge (which -encourages a broad user base with diverse interests); Tor is designed to be -usable (also promotes a large, diverse user base) and configurable (so -users can easily set up and run server nodes); the Tor -infrastructure is run by volunteers (it is not dependent on the -economic viability or business strategy of any company) who are -scattered around the globe (not completely under the jurisdiction of -any single country); ongoing development and deployment has been -funded by diverse sources (development does not fully depend on -funding from any one source or even funding for any one primary -purpose or sources in any one jurisdiction). All of these contribute -to Tor's resilience and sustainability. - - -\section{Social challenges} - -Many of the issues the Tor project needs to address extend beyond -system design and technology development. In particular, the Tor -project's \emph{image} with respect to its users and the rest of the -Internet impacts the security it can provide. With this image issue -in mind, this section discusses the Tor user base and Tor's -interaction with other services on the Internet. - -\subsection{Communicating security} - -Usability for anonymity systems contributes to their security, because -usability affects the possible anonymity set~\cite{econymics,back01}. -Conversely, an unusable system attracts few users and thus can't -provide much anonymity. - -This phenomenon has a second-order effect: knowing this, users should -choose which anonymity system to use based in part on how usable and -secure \emph{others} will find it, in order to get the protection of a -larger anonymity set. Thus we might supplement the adage ``usability -is a security parameter''~\cite{back01} with a new one: ``perceived -usability is a security parameter.''~\cite{usability-network-effect}. - - - -\subsection{Reputability and perceived social value} -Another factor impacting the network's security is its reputability, -the perception of its social value based on its current user base. If -Alice is the only user who has ever downloaded the software, it might -be socially accepted, but she's not getting much anonymity. Add a -thousand activists, and she's anonymous, but everyone thinks she's an -activist too. Add a thousand diverse citizens (cancer survivors, -people concerned about identity theft, law enforcement agents, and so -on) and now she's harder to profile. - -Furthermore, the network's reputability affects its operator base: -more people are willing to run a service if they believe it will be -used by human rights workers than if they believe it will be used -exclusively for disreputable ends. This effect becomes stronger if -node operators themselves think they will be associated with their -users' ends. - -So the more cancer survivors on Tor, the better for the human rights -activists. The more malicious hackers, the worse for the normal -users. Thus, reputability is an anonymity issue for two -reasons. First, it impacts the sustainability of the network: a -network that's always about to be shut down has difficulty attracting -and keeping adequate nodes. Second, a disreputable network is more -vulnerable to legal and political attacks, since it will attract fewer -supporters. - -Reputability becomes even more tricky in the case of privacy networks, -since the good uses of the network (such as publishing by journalists -in dangerous countries, protecting road warriors from profiling and -potential physical harm, tracking of criminals by law enforcement, -protecting corporate research interests, etc.) are typically kept private, -whereas network abuses or other problems tend to be more widely -publicized. - - -\subsection{Abuse} -\label{subsec:tor-and-blacklists} - -For someone willing to be antisocial or even break the law, Tor is -usually a poor choice to hide bad behavior. For example, Tor nodes are -publicly identified, unlike the million-node botnets that are now -common on the Internet. Nonetheless, we always expected that, -alongside legitimate users, Tor would also attract troublemakers who -exploit Tor to abuse services on the Internet with vandalism, rude -mail, and so on. \emph{Exit policies} have allowed individual nodes -to block access to specific IP/port ranges. This approach aims to -make operators more willing to run Tor by allowing them to prevent -their nodes from being used for abusing particular services. For -example, by default Tor nodes block SMTP (port 25), to avoid the issue -of spam. - -Exit policies are useful but insufficient: if not all nodes block a -given service, that service may try to block Tor instead. While being -blockable is important to being good netizens, we would like to -encourage services to allow anonymous access. Services should not need -to decide between blocking legitimate anonymous use and allowing -unlimited abuse. Nonetheless, blocking IP addresses is a -course-grained solution~\cite{netauth}: entire apartment buildings, -campuses, and even countries sometimes share a single IP address. -Also, whether intended or not, such blocking supports repression of -free speech. In many locations where Internet access of various kinds -is censored or even punished by imprisonment, Tor is a path both to -the outside world and to others inside. Blocking posts from Tor makes -the job of censoring authorities easier. This is a loss for both Tor -and services that block, such as Wikipedia: we don't want to compete -for (or divvy up) the NAT-protected entities of the world. This is -also unfortunate because there are relatively simple technical -solutions~\cite{nym}. Various schemes for escrowing anonymous posts -until they are reviewed by editors would both prevent abuse and remove -incentives for attempts to abuse. Further, pseudonymous reputation -tracking of posters through Tor would allow those who establish -adequate reputation to post without escrow~\cite{nym,nymble}. - -We stress that as far as we can tell, most Tor uses are not -abusive. Most services have not complained, and others are actively -working to find ways besides banning to cope with the abuse. For -example, the Freenode IRC network had a problem with a coordinated -group of abusers joining channels and subtly taking over the -conversation; but when they labelled all users coming from Tor IP -addresses as ``anonymous users,'' removing the ability of the abusers -to blend in, the abusers stopped using Tor. This is an illustration of -how simple -technical mechanisms can remove the ability to abuse anonymously -without undermining the ability to communicate anonymously and can -thus remove the incentive to attempt abusing in this way. - - - -\section{The Future} -\label{sec:conclusion} - -Tor is the largest and most diverse low-latency anonymity network -available, but we are still in the early stages. Several major -questions remain. - -First, will our volunteer-based approach to sustainability continue to -work as well in the long term as it has the first several years? -Besides node operation, Tor research, deployment, maintainance, and -development is increasingly done by volunteers: package maintenance -for various OSes, document translation, GUI design and implementation, -live CDs, specification of new design changes, etc.\ -% -Second, Tor is only one of many components that preserve privacy -online. For applications where it is desirable to keep identifying -information out of application traffic, someone must build more and -better protocol-aware proxies that are usable by ordinary people. -% -Third, we need to maintain a reputation for social good, and learn how to -coexist with the variety of Internet services and their established -authentication mechanisms. We can't just keep escalating the blacklist -standoff forever. -% -Fourth, the current Tor architecture hardly scales even to handle -current user demand. We must deploy designs and incentives to further -encourage clients to relay traffic too, without thereby trading away -too much anonymity or other properties. - -These are difficult and open questions. Yet choosing not to solve them -means leaving most users to a less secure network or no anonymizing -network at all.\\ - -\noindent{\bf Acknowledgment:} Thanks to Matt Edman for many - helpful comments on a draft of this article. -\bibliographystyle{plain} \bibliography{tor-design} - -\end{document} - diff --git a/doc/design-paper/tor-design.bib b/doc/design-paper/tor-design.bib deleted file mode 100644 index 981761e94b..0000000000 --- a/doc/design-paper/tor-design.bib +++ /dev/null @@ -1,1493 +0,0 @@ -% hs-attack -@inproceedings{hs-attack, - title = {Locating Hidden Servers}, - author = {Lasse {\O}verlier and Paul Syverson}, - booktitle = {Proceedings of the 2006 IEEE Symposium on Security and Privacy}, - year = {2006}, - month = {May}, - publisher = {IEEE CS}, -} - - -@TechReport{bauer:tr2007, - author = {Kevin Bauer and Damon McCoy and Dirk Grunwald and Tadayoshi Kohno and Douglas Sicker}, - title = {Low-Resource Routing Attacks Against Anonymous Systems}, - institution = {University of Colorado at Boulder}, - year = 2007, - number = {CU-CS-1025-07} -} - -@inproceedings{bauer:wpes2007, - title = {Low-Resource Routing Attacks Against Tor}, - author = {Kevin Bauer and Damon McCoy and Dirk Grunwald and Tadayoshi Kohno and Douglas Sicker}, - booktitle = {{Proceedings of the Workshop on Privacy in the Electronic Society (WPES 2007)}}, - year = {2007}, - month = {October}, - address = {Washington, DC, USA}, -} - -% fix me -@misc{tannenbaum96, - author = "Andrew Tannenbaum", - title = "Computer Networks", - year = "1996", - publisher = "Prentice Hall, 3rd edition", -} - -@article{ meadows96, - author = "Catherine Meadows", - title = "The {NRL} Protocol Analyzer: An Overview", - journal = "Journal of Logic Programming", - volume = "26", - number = "2", - pages = "113--131", - year = "1996", -} -@inproceedings{kesdogan:pet2002, - title = {Unobservable Surfing on the World Wide Web: Is Private Information Retrieval an - alternative to the MIX based Approach?}, - author = {Dogan Kesdogan and Mark Borning and Michael Schmeink}, - booktitle = {Privacy Enhancing Technologies (PET 2002)}, - year = {2002}, - month = {April}, - editor = {Roger Dingledine and Paul Syverson}, - publisher = {Springer-Verlag, LNCS 2482}, -} - -@inproceedings{statistical-disclosure, - title = {Statistical Disclosure Attacks}, - author = {George Danezis}, - booktitle = {Security and Privacy in the Age of Uncertainty ({SEC2003})}, - organization = {{IFIP TC11}}, - year = {2003}, - month = {May}, - address = {Athens}, - pages = {421--426}, - publisher = {Kluwer}, -} - -@inproceedings{limits-open, - title = {Limits of Anonymity in Open Environments}, - author = {Dogan Kesdogan and Dakshi Agrawal and Stefan Penz}, - booktitle = {Information Hiding Workshop (IH 2002)}, - year = {2002}, - month = {October}, - editor = {Fabien Petitcolas}, - publisher = {Springer-Verlag, LNCS 2578}, -} - -@inproceedings{isdn-mixes, - title = {{ISDN-mixes: Untraceable communication with very small bandwidth overhead}}, - author = {Andreas Pfitzmann and Birgit Pfitzmann and Michael Waidner}, - booktitle = {GI/ITG Conference on Communication in Distributed Systems}, - year = {1991}, - month = {February}, - pages = {451-463}, -} - - -@Article{jerichow-jsac98, - author = {Anja Jerichow and Jan M\"{u}ller and Andreas - Pfitzmann and Birgit Pfitzmann and Michael Waidner}, - title = {Real-Time Mixes: A Bandwidth-Efficient Anonymity Protocol}, - journal = {IEEE Journal on Selected Areas in Communications}, - year = 1998, - volume = 16, - number = 4, - pages = {495--509}, - month = {May} -} - -@inproceedings{tarzan:ccs02, - title = {Tarzan: A Peer-to-Peer Anonymizing Network Layer}, - author = {Michael J. Freedman and Robert Morris}, - booktitle = {9th {ACM} {C}onference on {C}omputer and {C}ommunications - {S}ecurity ({CCS 2002})}, - year = {2002}, - month = {November}, - address = {Washington, DC}, -} - -@inproceedings{cebolla, - title = {{Cebolla: Pragmatic IP Anonymity}}, - author = {Zach Brown}, - booktitle = {Ottawa Linux Symposium}, - year = {2002}, - month = {June}, -} - -@inproceedings{eax, - author = "M. Bellare and P. Rogaway and D. Wagner", - title = {The {EAX} Mode of Operation: A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and Efficiency}, - booktitle = {Fast Software Encryption 2004}, - month = {February}, - year = {2004}, -} - -@misc{darkside, - title = {{The Dark Side of the Web: An Open Proxy's View}}, - author = {Vivek S. Pai and Limin Wang and KyoungSoo Park and Ruoming Pang and Larry Peterson}, - note = {\newline \url{http://codeen.cs.princeton.edu/}}, -} -% note = {Submitted to HotNets-II. \url{http://codeen.cs.princeton.edu/}}, - -@Misc{anonymizer, - key = {anonymizer}, - title = {The {Anonymizer}}, - note = {\url{http://anonymizer.com/}} -} - -@Misc{privoxy, - key = {privoxy}, - title = {{Privoxy}}, - note = {\url{http://www.privoxy.org/}} -} - -@Misc{i2p, - key = {i2p}, - title = {{I2P}}, - note = {\url{http://www.i2p.net/}} -} - -@Misc{nym, - author = {Jason Holt}, - title = {nym: practical pseudonymity for anonymous networks}, - note = {Paper and source code at \url{http://www.lunkwill.org/src/nym/}} -} - -@InProceedings{nymble, - author = {Peter C. Johnson and Apu Kapadia and Patrick P. Tsang and Sean W. Smith}, - title = {Nymble: Anonymous {IP}-address Blocking}, - booktitle = {Privacy Enhancing Technologies (PET 2007)}, - year = 2007, - publisher = {Springer-Verlag, LNCS 4776} -} - -@inproceedings{anonnet, - title = {{Analysis of an Anonymity Network for Web Browsing}}, - author = {Marc Rennhard and Sandro Rafaeli and Laurent Mathy and Bernhard Plattner and - David Hutchison}, - booktitle = {{IEEE 7th Intl. Workshop on Enterprise Security (WET ICE - 2002)}}, - year = {2002}, - month = {June}, - address = {Pittsburgh, USA}, -} -% pages = {49--54}, - -@inproceedings{econymics, - title = {On the Economics of Anonymity}, - author = {Alessandro Acquisti and Roger Dingledine and Paul Syverson}, - booktitle = {Financial Cryptography}, - year = {2003}, - editor = {Rebecca N. Wright}, - publisher = {Springer-Verlag, LNCS 2742}, -} - -@inproceedings{defensive-dropping, - title = {Timing Analysis in Low-Latency Mix-Based Systems}, - author = {Brian N. Levine and Michael K. Reiter and Chenxi Wang and Matthew Wright}, - booktitle = {Financial Cryptography}, - year = {2004}, - editor = {Ari Juels}, - publisher = {Springer-Verlag, LNCS (forthcoming)}, -} - -@inproceedings{morphmix:fc04, - title = {Practical Anonymity for the Masses with MorphMix}, - author = {Marc Rennhard and Bernhard Plattner}, - booktitle = {Financial Cryptography}, - year = {2004}, - editor = {Ari Juels}, - publisher = {Springer-Verlag, LNCS (forthcoming)}, -} - -@inproceedings{eternity, - title = {The Eternity Service}, - author = {Ross Anderson}, - booktitle = {Pragocrypt '96}, - year = {1996}, -} - %note = {\url{http://www.cl.cam.ac.uk/users/rja14/eternity/eternity.html}}, - - -@inproceedings{minion-design, - title = {Mixminion: Design of a Type {III} Anonymous Remailer Protocol}, - author = {George Danezis and Roger Dingledine and Nick Mathewson}, - booktitle = {2003 IEEE Symposium on Security and Privacy}, - year = {2003}, - month = {May}, - publisher = {IEEE CS}, - pages = {2--15}, -} - %note = {\url{http://mixminion.net/minion-design.pdf}}, - -@inproceedings{ rao-pseudonymity, - author = "Josyula R. Rao and Pankaj Rohatgi", - title = "Can Pseudonymity Really Guarantee Privacy?", - booktitle = "Proceedings of the Ninth USENIX Security Symposium", - year = {2000}, - month = Aug, - publisher = {USENIX}, - pages = "85--96", -} - %note = {\url{http://www.usenix.org/publications/library/proceedings/sec2000/ -%full_papers/rao/rao.pdf}}, - -@InProceedings{pfitzmann90how, - author = "Birgit Pfitzmann and Andreas Pfitzmann", - title = "How to Break the Direct {RSA}-Implementation of {MIXes}", - booktitle = {Eurocrypt 89}, - publisher = {Springer-Verlag, LNCS 434}, - year = {1990}, - note = {\url{http://citeseer.nj.nec.com/pfitzmann90how.html}}, -} - -@Misc{tor-spec, - author = {Roger Dingledine and Nick Mathewson}, - title = {Tor Protocol Specifications}, - note = {\url{https://www.torproject.org/svn/trunk/doc/tor-spec.txt}}, -} - -@Misc{incentives-txt, - author = {Roger Dingledine and Nick Mathewson}, - title = {Tor Incentives Design Brainstorms}, - note = {\url{https://www.torproject.org/svn/trunk/doc/incentives.txt}}, -} - -@InProceedings{BM:mixencrypt, - author = {M{\"o}ller, Bodo}, - title = {Provably Secure Public-Key Encryption for Length-Preserving Chaumian Mixes}, - booktitle = {{CT-RSA} 2003}, - publisher = {Springer-Verlag, LNCS 2612}, - year = 2003, -} - -@InProceedings{back01, - author = {Adam Back and Ulf M\"oller and Anton Stiglic}, - title = {Traffic Analysis Attacks and Trade-Offs in Anonymity Providing Systems}, - booktitle = {Information Hiding (IH 2001)}, - pages = {245--257}, - year = 2001, - editor = {Ira S. Moskowitz}, - publisher = {Springer-Verlag, LNCS 2137}, -} - %note = {\newline \url{http://www.cypherspace.org/adam/pubs/traffic.pdf}}, - -@InProceedings{rackoff93cryptographic, - author = {Charles Rackoff and Daniel R. Simon}, - title = {Cryptographic Defense Against Traffic Analysis}, - booktitle = {{ACM} Symposium on Theory of Computing}, - pages = {672--681}, - year = {1993}, -} - %note = {\url{http://research.microsoft.com/crypto/dansimon/me.htm}}, - -@InProceedings{freehaven-berk, - author = {Roger Dingledine and Michael J. Freedman and David Molnar}, - title = {The Free Haven Project: Distributed Anonymous Storage Service}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - year = 2000, - month = {July}, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, -} - - @InProceedings{move-ndss05, - author = {Angelos Stavrou and Angelos D. Keromytis and Jason Nieh and Vishal Misra and Dan Rubenstein}, - title = {MOVE: An End-to-End Solution To Network Denial of Service}, - booktitle = {{ISOC Network and Distributed System Security Symposium (NDSS05)}}, - year = 2005, - month = {February}, - publisher = {Internet Society} -} - -%note = {\url{http://freehaven.net/papers.html}}, - - - - -@InProceedings{raymond00, - author = {J. F. Raymond}, - title = {{Traffic Analysis: Protocols, Attacks, Design Issues, - and Open Problems}}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - year = 2000, - month = {July}, - pages = {10-29}, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, -} - -@InProceedings{sybil, - author = "John Douceur", - title = {{The Sybil Attack}}, - booktitle = "Proceedings of the 1st International Peer To Peer Systems Workshop (IPTPS)", - month = Mar, - year = 2002, -} - - -@InCollection{price-privacy, - author = {Paul Syverson and Adam Shostack}, - editor = {L. Jean Camp and Stephen Lewis}, - title = {What Price Privacy? (and why identity theft is about neither identity nor theft)}, - booktitle = {Economics of Information Security}, - chapter = 10, - publisher = {Kluwer}, - year = 2004, - pages = {129--142} -} - - -@InProceedings{trickle02, - author = {Andrei Serjantov and Roger Dingledine and Paul Syverson}, - title = {From a Trickle to a Flood: Active Attacks on Several - Mix Types}, - booktitle = {Information Hiding (IH 2002)}, - year = {2002}, - editor = {Fabien Petitcolas}, - publisher = {Springer-Verlag, LNCS 2578}, -} - -@InProceedings{langos02, - author = {Oliver Berthold and Heinrich Langos}, - title = {Dummy Traffic Against Long Term Intersection Attacks}, - booktitle = {Privacy Enhancing Technologies (PET 2002)}, - year = {2002}, - editor = {Roger Dingledine and Paul Syverson}, - publisher = {Springer-Verlag, LNCS 2482} -} - - -@InProceedings{hintz-pet02, - author = {Andrew Hintz}, - title = {Fingerprinting Websites Using Traffic Analysis}, - booktitle = {Privacy Enhancing Technologies (PET 2002)}, - pages = {171--178}, - year = 2002, - editor = {Roger Dingledine and Paul Syverson}, - publisher = {Springer-Verlag, LNCS 2482} -} - -@InProceedings{or-discex00, - author = {Paul Syverson and Michael Reed and David Goldschlag}, - title = {{O}nion {R}outing Access Configurations}, - booktitle = {DARPA Information Survivability Conference and - Exposition (DISCEX 2000)}, - year = {2000}, - publisher = {IEEE CS Press}, - pages = {34--40}, - volume = {1}, -} - %note = {\newline \url{http://www.onion-router.net/Publications.html}}, - -@Inproceedings{or-pet00, - title = {{Towards an Analysis of Onion Routing Security}}, - author = {Paul Syverson and Gene Tsudik and Michael Reed and - Carl Landwehr}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - year = 2000, - month = {July}, - pages = {96--114}, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, -} - %note = {\url{http://www.onion-router.net/Publications/WDIAU-2000.ps.gz}}, - -@Inproceedings{freenet-pets00, - title = {Freenet: A Distributed Anonymous Information Storage - and Retrieval System}, - author = {Ian Clarke and Oskar Sandberg and Brandon Wiley and - Theodore W. Hong}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - year = 2000, - month = {July}, - pages = {46--66}, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, -} - %note = {\url{http://citeseer.nj.nec.com/clarke00freenet.html}}, - -@InProceedings{or-ih96, - author = {David M. Goldschlag and Michael G. Reed and Paul - F. Syverson}, - title = {Hiding Routing Information}, - booktitle = {Information Hiding, First International Workshop}, - pages = {137--150}, - year = 1996, - editor = {R. Anderson}, - month = {May}, - publisher = {Springer-Verlag, LNCS 1174}, -} - -@InProceedings{federrath-ih96, - author = {Hannes Federrath and Anja Jerichow and Andreas Pfitzmann}, - title = {{MIXes} in Mobile Communication Systems: Location - Management with Privacy}, - booktitle = {Information Hiding, First International Workshop}, - pages = {121--135}, - year = 1996, - editor = {R. Anderson}, - month = {May}, - publisher = {Springer-Verlag, LNCS 1174}, -} - - -@InProceedings{reed-protocols97, - author = {Michael G. Reed and Paul F. Syverson and David - M. Goldschlag}, - title = {Protocols Using Anonymous Connections: Mobile Applications}, - booktitle = {Security Protocols: 5th International Workshop}, - pages = {13--23}, - year = 1997, - editor = {Bruce Christianson and Bruno Crispo and Mark Lomas - and Michael Roe}, - month = {April}, - publisher = {Springer-Verlag, LNCS 1361} -} - - - -@Article{or-jsac98, - author = {Michael G. Reed and Paul F. Syverson and David - M. Goldschlag}, - title = {Anonymous Connections and Onion Routing}, - journal = {IEEE Journal on Selected Areas in Communications}, - year = 1998, - volume = 16, - number = 4, - pages = {482--494}, - month = {May}, -} - %note = {\url{http://www.onion-router.net/Publications/JSAC-1998.ps.gz}} - -@Misc{TLS, - author = {T. Dierks and C. Allen}, - title = {The {TLS} {P}rotocol --- {V}ersion 1.0}, - howpublished = {IETF RFC 2246}, - month = {January}, - year = {1999}, -} -%note = {\url{http://www.rfc-editor.org/rfc/rfc2246.txt}}, - -@Misc{SMTP, - author = {J. Postel}, - title = {Simple {M}ail {T}ransfer {P}rotocol}, - howpublished = {IETF RFC 2821 (also STD0010)}, - month = {April}, - year = {2001}, - note = {\url{http://www.rfc-editor.org/rfc/rfc2821.txt}}, -} - -@Misc{IMAP, - author = {M. Crispin}, - title = {Internet {M}essage {A}ccess {P}rotocol --- {V}ersion 4rev1}, - howpublished = {IETF RFC 2060}, - month = {December}, - year = {1996}, - note = {\url{http://www.rfc-editor.org/rfc/rfc2060.txt}}, -} - -@misc{pipenet, - title = {PipeNet 1.1}, - author = {Wei Dai}, - year = 1996, - month = {August}, - howpublished = {Usenet post}, - note = {\url{http://www.eskimo.com/~weidai/pipenet.txt} First mentioned - in a post to the cypherpunks list, Feb.\ 1995.}, -} - - -@Misc{POP3, - author = {J. Myers and M. Rose}, - title = {Post {O}ffice {P}rotocol --- {V}ersion 3}, - howpublished = {IETF RFC 1939 (also STD0053)}, - month = {May}, - year = {1996}, - note = {\url{http://www.rfc-editor.org/rfc/rfc1939.txt}}, -} - - -@InProceedings{shuffle, - author = {C. Andrew Neff}, - title = {A Verifiable Secret Shuffle and its Application to E-Voting}, - booktitle = {8th ACM Conference on Computer and Communications - Security (CCS-8)}, - pages = {116--125}, - year = 2001, - editor = {P. Samarati}, - month = {November}, - publisher = {ACM Press}, -} - %note = {\url{http://www.votehere.net/ada_compliant/ourtechnology/ - % technicaldocs/shuffle.pdf}}, - -@InProceedings{dolev91, - author = {Danny Dolev and Cynthia Dwork and Moni Naor}, - title = {Non-Malleable Cryptography}, - booktitle = {23rd ACM Symposium on the Theory of Computing (STOC)}, - pages = {542--552}, - year = 1991, - note = {Updated version at - \url{http://citeseer.nj.nec.com/dolev00nonmalleable.html}}, -} - -@TechReport{rsw96, - author = {Ronald L. Rivest and Adi Shamir and David A. Wagner}, - title = {Time-lock puzzles and timed-release Crypto}, - year = 1996, - type = {MIT LCS technical memo}, - number = {MIT/LCS/TR-684}, - month = {February}, - note = {\newline \url{http://citeseer.nj.nec.com/rivest96timelock.html}}, -} - -@InProceedings{web-mix, - author = {Oliver Berthold and Hannes Federrath and Stefan K\"opsell}, - title = {Web {MIX}es: A system for anonymous and unobservable - {I}nternet access}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, - year = {2000}, -} -% pages = {115--129}, - -@InProceedings{disad-free-routes, - author = {Oliver Berthold and Andreas Pfitzmann and Ronny Standtke}, - title = {The disadvantages of free {MIX} routes and how to overcome - them}, - booktitle = {Designing Privacy Enhancing Technologies: Workshop - on Design Issue in Anonymity and Unobservability}, - pages = {30--45}, - year = 2000, - editor = {H. Federrath}, - publisher = {Springer-Verlag, LNCS 2009}, -} - %note = {\url{http://www.tik.ee.ethz.ch/~weiler/lehre/netsec/Unterlagen/anon/ - % disadvantages_berthold.pdf}}, - -@InProceedings{boneh00, - author = {Dan Boneh and Moni Naor}, - title = {Timed Commitments}, - booktitle = {Advances in Cryptology -- {CRYPTO} 2000}, - pages = {236--254}, - year = 2000, - publisher = {Springer-Verlag, LNCS 1880}, - note = {\newline \url{http://crypto.stanford.edu/~dabo/abstracts/timedcommit.html}}, -} - -@InProceedings{goldschlag98, - author = {David M. Goldschlag and Stuart G. Stubblebine}, - title = {Publicly Verifiable Lotteries: Applications of - Delaying Functions}, - booktitle = {Financial Cryptography}, - pages = {214--226}, - year = 1998, - publisher = {Springer-Verlag, LNCS 1465}, - note = {\newline \url{http://citeseer.nj.nec.com/goldschlag98publicly.html}}, -} - -@InProceedings{syverson98, - author = {Paul Syverson}, - title = {Weakly Secret Bit Commitment: Applications to - Lotteries and Fair Exchange}, - booktitle = {Computer Security Foundations Workshop (CSFW11)}, - pages = {2--13}, - year = 1998, - address = {Rockport Massachusetts}, - month = {June}, - publisher = {IEEE CS Press}, - note = {\newline \url{http://chacs.nrl.navy.mil/publications/CHACS/1998/}}, -} - -@Misc{shoup-iso, - author = {Victor Shoup}, - title = {A Proposal for an {ISO} {S}tandard for Public Key Encryption (version 2.1)}, - note = {Revised December 20, 2001. \url{http://www.shoup.net/papers/}}, -} - -@Misc{shoup-oaep, - author = {Victor Shoup}, - title = {{OAEP} Reconsidered}, - howpublished = {{IACR} e-print 2000/060}, - note = {\newline \url{http://eprint.iacr.org/2000/060/}}, -} - -@Misc{oaep-still-alive, - author = {E. Fujisaki and D. Pointcheval and T. Okamoto and J. Stern}, - title = {{RSA}-{OAEP} is Still Alive!}, - howpublished = {{IACR} e-print 2000/061}, - note = {\newline \url{http://eprint.iacr.org/2000/061/}}, -} - -@misc{echolot, - author = {Peter Palfrader}, - title = {Echolot: a pinger for anonymous remailers}, - note = {\url{http://www.palfrader.org/echolot/}}, -} - -@Misc{mixmaster-attacks, - author = {Lance Cottrell}, - title = {Mixmaster and Remailer Attacks}, - note = {\url{http://www.obscura.com/~loki/remailer/remailer-essay.html}}, -} - -@Misc{mixmaster-spec, - author = {Ulf M{\"o}ller and Lance Cottrell and Peter - Palfrader and Len Sassaman}, - title = {Mixmaster {P}rotocol --- {V}ersion 2}, - year = {2003}, - month = {July}, - howpublished = {Draft}, - note = {\url{http://www.abditum.com/mixmaster-spec.txt}}, -} - -@InProceedings{puzzles-tls, - author = "Drew Dean and Adam Stubblefield", - title = {{Using Client Puzzles to Protect TLS}}, - booktitle = "Proceedings of the 10th USENIX Security Symposium", - year = {2001}, - month = Aug, - publisher = {USENIX}, -} - -@InProceedings{breadpudding, - author = {Markus Jakobsson and Ari Juels}, - title = {Proofs of Work and Bread Pudding Protocols}, - booktitle = {Proceedings of the IFIP TC6 and TC11 Joint Working - Conference on Communications and Multimedia Security - (CMS '99)}, - year = 1999, - month = {September}, - publisher = {Kluwer} -} - -@Misc{hashcash, - author = {Adam Back}, - title = {Hash cash}, - note = {\newline \url{http://www.cypherspace.org/~adam/hashcash/}}, -} - -@InProceedings{oreilly-acc, - author = {Roger Dingledine and Michael J. Freedman and David Molnar}, - title = {Accountability}, - booktitle = {Peer-to-peer: Harnessing the Benefits of a Disruptive - Technology}, - year = {2001}, - publisher = {O'Reilly and Associates}, -} - - -@InProceedings{han, - author = {Yongfei Han}, - title = {Investigation of non-repudiation protocols}, - booktitle = {ACISP '96}, - year = 1996, - publisher = {Springer-Verlag}, -} - - -@Misc{socks5, - key = {socks5}, - title = {{SOCKS} {P}rotocol {V}ersion 5}, - howpublished= {IETF RFC 1928}, - month = {March}, - year = 1996, - note = {\url{http://www.ietf.org/rfc/rfc1928.txt}} -} - -@InProceedings{abe, - author = {Masayuki Abe}, - title = {Universally Verifiable {MIX} With Verification Work Independent of - The Number of {MIX} Servers}, - booktitle = {{EUROCRYPT} 1998}, - year = {1998}, - publisher = {Springer-Verlag, LNCS 1403}, -} - -@InProceedings{desmedt, - author = {Yvo Desmedt and Kaoru Kurosawa}, - title = {How To Break a Practical {MIX} and Design a New One}, - booktitle = {{EUROCRYPT} 2000}, - year = {2000}, - publisher = {Springer-Verlag, LNCS 1803}, - note = {\url{http://citeseer.nj.nec.com/447709.html}}, -} - -@InProceedings{mitkuro, - author = {M. Mitomo and K. Kurosawa}, - title = {{Attack for Flash MIX}}, - booktitle = {{ASIACRYPT} 2000}, - year = {2000}, - publisher = {Springer-Verlag, LNCS 1976}, - note = {\newline \url{http://citeseer.nj.nec.com/450148.html}}, -} - -@InProceedings{hybrid-mix, - author = {M. Ohkubo and M. Abe}, - title = {A {L}ength-{I}nvariant {H}ybrid {MIX}}, - booktitle = {Advances in Cryptology - {ASIACRYPT} 2000}, - year = {2000}, - publisher = {Springer-Verlag, LNCS 1976}, -} - -@InProceedings{PShuffle, - author = {Jun Furukawa and Kazue Sako}, - title = {An Efficient Scheme for Proving a Shuffle}, - editor = {Joe Kilian}, - booktitle = {CRYPTO 2001}, - year = {2001}, - publisher = {Springer-Verlag, LNCS 2139}, -} - - -@InProceedings{jakobsson-optimally, - author = "Markus Jakobsson and Ari Juels", - title = "An Optimally Robust Hybrid Mix Network (Extended Abstract)", - booktitle = {Principles of Distributed Computing - {PODC} '01}, - year = "2001", - publisher = {ACM Press}, - note = {\url{http://citeseer.nj.nec.com/492015.html}}, -} - -@InProceedings{kesdogan, - author = {D. Kesdogan and M. Egner and T. B\"uschkes}, - title = {Stop-and-Go {MIX}es Providing Probabilistic Anonymity in an Open - System}, - booktitle = {Information Hiding (IH 1998)}, - year = {1998}, - publisher = {Springer-Verlag, LNCS 1525}, -} - %note = {\url{http://www.cl.cam.ac.uk/~fapp2/ihw98/ihw98-sgmix.pdf}}, - -@InProceedings{socks4, - author = {David Koblas and Michelle R. Koblas}, - title = {{SOCKS}}, - booktitle = {UNIX Security III Symposium (1992 USENIX Security - Symposium)}, - pages = {77--83}, - year = 1992, - publisher = {USENIX}, -} - -@InProceedings{flash-mix, - author = {Markus Jakobsson}, - title = {Flash {M}ixing}, - booktitle = {Principles of Distributed Computing - {PODC} '99}, - year = {1999}, - publisher = {ACM Press}, - note = {\newline \url{http://citeseer.nj.nec.com/jakobsson99flash.html}}, -} - -@InProceedings{SK, - author = {Joe Kilian and Kazue Sako}, - title = {Receipt-Free {MIX}-Type Voting Scheme - A Practical Solution to - the Implementation of a Voting Booth}, - booktitle = {EUROCRYPT '95}, - year = {1995}, - publisher = {Springer-Verlag}, -} - -@InProceedings{OAEP, - author = {M. Bellare and P. Rogaway}, - year = {1994}, - booktitle = {EUROCRYPT '94}, - title = {Optimal {A}symmetric {E}ncryption {P}adding : How To Encrypt With - {RSA}}, - publisher = {Springer-Verlag}, - note = {\newline \url{http://www-cse.ucsd.edu/users/mihir/papers/oaep.html}}, -} -@inproceedings{babel, - title = {Mixing {E}-mail With {B}abel}, - author = {Ceki G\"ulc\"u and Gene Tsudik}, - booktitle = {{Network and Distributed Security Symposium (NDSS 96)}}, - year = 1996, - month = {February}, - pages = {2--16}, - publisher = {IEEE}, -} - %note = {\url{http://citeseer.nj.nec.com/2254.html}}, - -@Misc{rprocess, - author = {RProcess}, - title = {Selective Denial of Service Attacks}, - note = {\newline \url{http://www.eff.org/pub/Privacy/Anonymity/1999\_09\_DoS\_remail\_vuln.html}}, -} - -@Article{remailer-history, - author = {Sameer Parekh}, - title = {Prospects for Remailers}, - journal = {First Monday}, - volume = {1}, - number = {2}, - month = {August}, - year = {1996}, - note = {\url{http://www.firstmonday.dk/issues/issue2/remailers/}}, -} - -@Article{chaum-mix, - author = {David Chaum}, - title = {Untraceable electronic mail, return addresses, and digital pseudo-nyms}, - journal = {Communications of the ACM}, - year = {1981}, - volume = {4}, - number = {2}, - month = {February}, -} - %note = {\url{http://www.eskimo.com/~weidai/mix-net.txt}}, - -@InProceedings{nym-alias-net, - author = {David Mazi\`{e}res and M. Frans Kaashoek}, - title = {{The Design, Implementation and Operation of an Email - Pseudonym Server}}, - booktitle = {$5^{th}$ ACM Conference on Computer and - Communications Security (CCS'98)}, - year = 1998, - publisher = {ACM Press}, -} - %note = {\newline \url{http://www.scs.cs.nyu.edu/~dm/}}, - -@InProceedings{tangler, - author = {Marc Waldman and David Mazi\`{e}res}, - title = {Tangler: A Censorship-Resistant Publishing System - Based on Document Entanglements}, - booktitle = {$8^{th}$ ACM Conference on Computer and - Communications Security (CCS-8)}, - pages = {86--135}, - year = 2001, - publisher = {ACM Press}, -} - %note = {\url{http://www.scs.cs.nyu.edu/~dm/}} - -@misc{neochaum, - author = {Tim May}, - title = {Payment mixes for anonymity}, - howpublished = {E-mail archived at - \url{http://\newline www.inet-one.com/cypherpunks/dir.2000.02.28-2000.03.05/msg00334.html}}, -} - -@misc{helsingius, - author = {J. Helsingius}, - title = {{\tt anon.penet.fi} press release}, - note = {\newline \url{http://www.penet.fi/press-english.html}}, -} - -@InProceedings{garay97secure, - author = {J. Garay and R. Gennaro and C. Jutla and T. Rabin}, - title = {Secure distributed storage and retrieval}, - booktitle = {11th International Workshop, WDAG '97}, - pages = {275--289}, - year = {1997}, - publisher = {Springer-Verlag, LNCS 1320}, - note = {\newline \url{http://citeseer.nj.nec.com/garay97secure.html}}, -} - -@InProceedings{PIK, - author = {C. Park and K. Itoh and K. Kurosawa}, - title = {Efficient anonymous channel and all/nothing election scheme}, - booktitle = {Advances in Cryptology -- {EUROCRYPT} '93}, - pages = {248--259}, - publisher = {Springer-Verlag, LNCS 765}, -} - -@Misc{pgpfaq, - key = {PGP}, - title = {{PGP} {FAQ}}, - note = {\newline \url{http://www.faqs.org/faqs/pgp-faq/}}, -} - -@Article{riordan-schneier, - author = {James Riordan and Bruce Schneier}, - title = {A Certified E-mail Protocol with No Trusted Third Party}, - journal = {13th Annual Computer Security Applications Conference}, - month = {December}, - year = {1998}, - note = {\newline \url{http://www.counterpane.com/certified-email.html}}, -} - - -@Article{crowds-tissec, - author = {Michael K. Reiter and Aviel D. Rubin}, - title = {Crowds: Anonymity for Web Transactions}, - journal = {ACM TISSEC}, - year = 1998, - volume = 1, - number = 1, - pages = {66--92}, - month = {June}, -} - %note = {\url{http://citeseer.nj.nec.com/284739.html}} - -@Article{crowds-dimacs, - author = {Michael K. Reiter and Aviel D. Rubin}, - title = {Crowds: Anonymity for Web Transactions}, - journal = {{DIMACS} Technical Report (Revised)}, - volume = {97}, - number = {15}, - month = {August}, - year = {1997}, -} - -@Misc{advogato, - author = {Raph Levien}, - title = {Advogato's Trust Metric}, - note = {\newline \url{http://www.advogato.org/trust-metric.html}}, -} - -@InProceedings{publius, - author = {Marc Waldman and Aviel Rubin and Lorrie Cranor}, - title = {Publius: {A} robust, tamper-evident, censorship-resistant and - source-anonymous web publishing system}, - booktitle = {Proc. 9th USENIX Security Symposium}, - pages = {59--72}, - year = {2000}, - month = {August}, -} - %note = {\newline \url{http://citeseer.nj.nec.com/waldman00publius.html}}, - -@Misc{freedom-nyms, - author = {Russell Samuels}, - title = {Untraceable Nym Creation on the {F}reedom {N}etwork}, - year = {1999}, - month = {November}, - day = {21}, - note = {\newline \url{http://www.freedom.net/products/whitepapers/white11.html}}, -} - -@techreport{freedom2-arch, - title = {Freedom Systems 2.0 Architecture}, - author = {Philippe Boucher and Adam Shostack and Ian Goldberg}, - institution = {Zero Knowledge Systems, {Inc.}}, - year = {2000}, - month = {December}, - type = {White Paper}, - day = {18}, -} - -@techreport{freedom21-security, - title = {Freedom Systems 2.1 Security Issues and Analysis}, - author = {Adam Back and Ian Goldberg and Adam Shostack}, - institution = {Zero Knowledge Systems, {Inc.}}, - year = {2001}, - month = {May}, - type = {White Paper}, -} - -@inproceedings{cfs:sosp01, - title = {Wide-area cooperative storage with {CFS}}, - author = {Frank Dabek and M. Frans Kaashoek and David Karger and Robert Morris and Ion Stoica}, - booktitle = {18th {ACM} {S}ymposium on {O}perating {S}ystems {P}rinciples ({SOSP} '01)}, - year = {2001}, - month = {October}, - address = {Chateau Lake Louise, Banff, Canada}, -} - -@inproceedings{SS03, - title = {Passive Attack Analysis for Connection-Based Anonymity Systems}, - author = {Andrei Serjantov and Peter Sewell}, - booktitle = {Computer Security -- ESORICS 2003}, - publisher = {Springer-Verlag, LNCS 2808}, - year = {2003}, - month = {October}, -} - %note = {\url{http://www.cl.cam.ac.uk/users/aas23/papers_aas/conn_sys.ps}}, - -@Misc{pk-relations, - author = {M. Bellare and A. Desai and D. Pointcheval and P. Rogaway}, - title = {Relations Among Notions of Security for Public-Key Encryption - Schemes}, - howpublished = { - Extended abstract in {\em Advances in Cryptology - CRYPTO '98}, LNCS Vol. 1462. - Springer-Verlag, 1998. - Full version available from \newline \url{http://www-cse.ucsd.edu/users/mihir/}}, -} - - -@InProceedings{mix-acc, - author = {Roger Dingledine and Michael J. Freedman and David - Hopwood and David Molnar}, - title = {{A Reputation System to Increase MIX-net - Reliability}}, - booktitle = {Information Hiding (IH 2001)}, - pages = {126--141}, - year = 2001, - editor = {Ira S. Moskowitz}, - publisher = {Springer-Verlag, LNCS 2137}, -} - %note = {\url{http://www.freehaven.net/papers.html}}, - -@InProceedings{casc-rep, - author = {Roger Dingledine and Paul Syverson}, - title = {{Reliable MIX Cascade Networks through Reputation}}, - booktitle = {Financial Cryptography}, - year = 2002, - editor = {Matt Blaze}, - publisher = {Springer-Verlag, LNCS 2357}, -} - %note = {\newline \url{http://www.freehaven.net/papers.html}}, - -@InProceedings{zhou96certified, - author = {Zhou and Gollmann}, - title = {Certified Electronic Mail}, - booktitle = {{ESORICS: European Symposium on Research in Computer - Security}}, - publisher = {Springer-Verlag, LNCS 1146}, - year = {1996}, - note = {\newline \url{http://citeseer.nj.nec.com/zhou96certified.html}}, -} - -@Misc{realtime-mix, - author = {Anja Jerichow and Jan M\"uller and Andreas Pfitzmann and - Birgit Pfitzmann and Michael Waidner}, - title = {{Real-Time MIXes: A Bandwidth-Efficient Anonymity Protocol}}, - howpublished = {IEEE Journal on Selected Areas in Communications, 1998.}, - note = {\url{http://www.zurich.ibm.com/security/publications/1998.html}}, -} - -@InProceedings{danezis:pet2003, - author = {George Danezis}, - title = {Mix-networks with Restricted Routes}, - booktitle = {Privacy Enhancing Technologies (PET 2003)}, - year = 2003, - editor = {Roger Dingledine}, - publisher = {Springer-Verlag LNCS 2760} -} - -@InProceedings{gap-pets03, - author = {Krista Bennett and Christian Grothoff}, - title = {{GAP} -- practical anonymous networking}, - booktitle = {Privacy Enhancing Technologies (PET 2003)}, - year = 2003, - editor = {Roger Dingledine}, - publisher = {Springer-Verlag LNCS 2760} -} - -@Article{hordes-jcs, - author = {Brian Neal Levine and Clay Shields}, - title = {Hordes: A Multicast-Based Protocol for Anonymity}, - journal = {Journal of Computer Security}, - year = 2002, - volume = 10, - number = 3, - pages = {213--240} -} - -@TechReport{herbivore, - author = {Sharad Goel and Mark Robson and Milo Polte and Emin G\"{u}n Sirer}, - title = {Herbivore: A Scalable and Efficient Protocol for Anonymous Communication}, - institution = {Cornell University Computing and Information Science}, - year = 2003, - type = {Technical Report}, - number = {TR2003-1890}, - month = {February} -} - -@InProceedings{p5, - author = {Rob Sherwood and Bobby Bhattacharjee and Aravind Srinivasan}, - title = {$P^5$: A Protocol for Scalable Anonymous Communication}, - booktitle = {IEEE Symposium on Security and Privacy}, - pages = {58--70}, - year = 2002, - publisher = {IEEE CS} -} - -@phdthesis{ian-thesis, - title = {A Pseudonymous Communications Infrastructure for the Internet}, - author = {Ian Goldberg}, - school = {UC Berkeley}, - year = {2000}, - month = {Dec}, -} - -@Article{taz, - author = {Ian Goldberg and David Wagner}, - title = {TAZ Servers and the Rewebber Network: Enabling - Anonymous Publishing on the World Wide Web}, - journal = {First Monday}, - year = 1998, - volume = 3, - number = 4, - month = {August}, - note = {\url{http://www.firstmonday.dk/issues/issue3_4/goldberg/}} -} - -@Misc{tcp-over-tcp-is-bad, - key = {tcp-over-tcp-is-bad}, - title = {Why {TCP} Over {TCP} Is A Bad Idea}, - author = {Olaf Titz}, - note = {\url{http://sites.inka.de/sites/bigred/devel/tcp-tcp.html}} -} - -@inproceedings{wright02, - title = {An Analysis of the Degradation of Anonymous Protocols}, - author = {Matthew Wright and Micah Adler and Brian Neil Levine and Clay Shields}, - booktitle = {{Network and Distributed Security Symposium (NDSS 02)}}, - year = {2002}, - month = {February}, - publisher = {IEEE}, -} - -@inproceedings{wright03, - title = {Defending Anonymous Communication Against Passive Logging Attacks}, - author = {Matthew Wright and Micah Adler and Brian Neil Levine and Clay Shields}, - booktitle = {IEEE Symposium on Security and Privacy}, - pages= {28--41}, - year = {2003}, - month = {May}, - publisher = {IEEE CS}, -} - - -@InProceedings{attack-tor-oak05, - author = {Steven J. Murdoch and George Danezis}, - title = {Low-cost Traffic Analysis of {T}or}, - booktitle = {IEEE Symposium on Security and Privacy}, - year = 2005, - month = {May}, - publisher = {IEEE CS} -} - -@Misc{jap-backdoor, - author={{The AN.ON Project}}, - howpublished={Press release}, - year={2003}, - month={September}, - title={German Police proceeds against anonymity service}, - note={\url{http://www.datenschutzzentrum.de/material/themen/presse/anon-bka_e.htm}} -} - -@article{shsm03, - title = {Using Caching for Browsing Anonymity}, - author = {Anna Shubina and Sean Smith}, - journal = {ACM SIGEcom Exchanges}, - volume = {4}, - number = {2}, - year = {2003}, - month = {Sept}, - note = {\url{http://www.acm.org/sigs/sigecom/exchanges/volume_4_(03)/4.2-Shubina.pdf}}, -} - -@inproceedings{tor-design, - title = {Tor: The Second-Generation Onion Router}, - author = {Roger Dingledine and Nick Mathewson and Paul Syverson}, - booktitle = {Proceedings of the 13th USENIX Security Symposium}, - year = {2004}, - month = {August}, - note = {\url{https://www.torproject.org/tor-design.pdf}} -} - -@inproceedings{flow-correlation04, - title = {On Flow Correlation Attacks and Countermeasures in Mix Networks}, - author = {Ye Zhu and Xinwen Fu and Bryan Graham and Riccardo Bettati and Wei Zhao}, - booktitle = {Proceedings of Privacy Enhancing Technologies workshop (PET 2004)}, - year = {2004}, - month = {May}, - series = {LNCS}, - note = {\url{http://students.cs.tamu.edu/xinwenfu/paper/PET04.pdf}}, -} - -@InProceedings{danezis:pet2004, - author = "George Danezis", - title = "The Traffic Analysis of Continuous-Time Mixes", - booktitle= {Privacy Enhancing Technologies (PET 2004)}, - editor = {David Martin and Andrei Serjantov}, - month = {May}, - year = {2004}, - series = {LNCS}, - note = {\url{http://www.cl.cam.ac.uk/users/gd216/cmm2.pdf}}, -} - -@inproceedings{feamster:wpes2004, - title = {Location Diversity in Anonymity Networks}, - author = {Nick Feamster and Roger Dingledine}, - booktitle = {{Proceedings of the Workshop on Privacy in the Electronic Society (WPES 2004)}}, - year = {2004}, - month = {October}, - address = {Washington, DC, USA}, - note = {\url{http://freehaven.net/doc/routing-zones/routing-zones.ps}}, -} - -@inproceedings{koepsell:wpes2004, - title = {How to Achieve Blocking Resistance for Existing Systems Enabling Anonymous Web Surfing}, - author = {Stefan K\"opsell and Ulf Hilling}, - booktitle = {{Proceedings of the Workshop on Privacy in the Electronic Society (WPES 2004)}}, - year = {2004}, - month = {October}, - address = {Washington, DC, USA}, - note = {\url{http://freehaven.net/anonbib/papers/p103-koepsell.pdf}}, -} - -@inproceedings{sync-batching, - title = {Synchronous Batching: From Cascades to Free Routes}, - author = {Roger Dingledine and Vitaly Shmatikov and Paul Syverson}, - booktitle = {Proceedings of Privacy Enhancing Technologies workshop (PET 2004)}, - editor = {David Martin and Andrei Serjantov}, - year = {2004}, - month = {May}, - series = {LNCS}, - note = {\url{http://freehaven.net/doc/sync-batching/sync-batching.pdf}}, -} - -@InProceedings{e2e-traffic, - author = "Nick Mathewson and Roger Dingledine", - title = "Practical Traffic Analysis: Extending and Resisting Statistical Disclosure", - booktitle= {Privacy Enhancing Technologies (PET 2004)}, - editor = {David Martin and Andrei Serjantov}, - month = {May}, - year = {2004}, - series = {LNCS}, - note = {\url{http://freehaven.net/doc/e2e-traffic/e2e-traffic.pdf}}, -} - -@Misc{dtls, - author = {E. Rescorla and N. Modadugu}, - title = {{Datagram Transport Layer Security}}, - howpublished = {IETF Draft}, - month = {December}, - year = {2003}, - note = {\url{http://www.ietf.org/internet-drafts/draft-rescorla-dtls-02.txt}}, -} - -@InProceedings{usability-network-effect, - author={Roger Dingledine and Nick Mathewson}, - title={Anonymity Loves Company: Usability and the Network Effect}, - booktitle = {Designing Security Systems That People Can Use}, - year = {2005}, - publisher = {O'Reilly Media}, -} - -@inproceedings{usability:weis2006, - title = {Anonymity Loves Company: Usability and the Network Effect}, - author = {Roger Dingledine and Nick Mathewson}, - booktitle = {Proceedings of the Fifth Workshop on the Economics of Information Security - (WEIS 2006)}, - year = {2006}, - month = {June}, - address = {Cambridge, UK}, - bookurl = {http://weis2006.econinfosec.org/}, - note = {\url{http://freehaven.net/doc/wupss04/usability.pdf}}, -} - -@Misc{six-four, - key = {six-four}, - title = {{The Six/Four System}}, - note = {\url{http://sourceforge.net/projects/sixfour/}} -} - -@inproceedings{clayton:pet2006, - title = {Ignoring the Great Firewall of China}, - author = {Richard Clayton and Steven J. Murdoch and Robert N. M. Watson}, - booktitle = {Proceedings of the Sixth Workshop on Privacy Enhancing Technologies (PET 2006)}, - year = {2006}, - month = {June}, - address = {Cambridge, UK}, - publisher = {Springer}, - bookurl = {http://petworkshop.org/2006/}, - note = {\url{http://www.cl.cam.ac.uk/~rnc1/ignoring.pdf}}, -} - -@Misc{zuckerman-threatmodels, - key = {zuckerman-threatmodels}, - title = {We've got to adjust some of our threat models}, - author = {Ethan Zuckerman}, - note = {\url{http://www.ethanzuckerman.com/blog/?p=1019}} -} - -@Misc{cgiproxy, - key = {cgiproxy}, - title = {{CGIProxy: HTTP/FTP Proxy in a CGI Script}}, - author = {James Marshall}, - note = {\url{http://www.jmarshall.com/tools/cgiproxy/}} -} - -@Misc{circumventor, - key = {circumventor}, - title = {{How to install the Circumventor program}}, - author = {Bennett Haselton}, - note = {\url{http://www.peacefire.org/circumventor/simple-circumventor-instructions.html}} -} - -@Misc{psiphon, - key = {psiphon}, - title = {Psiphon}, - author = {Ronald Deibert et al}, - note = {\url{http://psiphon.civisec.org/}} -} - -@InProceedings{tcpstego, author = {Steven J. Murdoch and Stephen Lewis}, - title = {Embedding Covert Channels into {TCP/IP}}, - booktitle = {Information Hiding: 7th International Workshop}, - pages = {247--261}, - year = {2005}, - editor = {Mauro Barni and Jordi Herrera-Joancomart\'{\i} and -Stefan Katzenbeisser and Fernando P\'{e}rez-Gonz\'{a}lez}, - volume = {3727}, - series = {LNCS}, - address = {Barcelona, Catalonia (Spain)}, - month = {June}, - publisher = {Springer-Verlag}, - url = {http://www.cl.cam.ac.uk/~sjm217/papers/ih05coverttcp.pdf} -} - -@phdthesis{blossom-thesis, - title = {Perspective Access Networks}, - author = {Geoffrey Goodell}, - school = {Harvard University}, - year = {2006}, - month = {July}, - note = {\url{http://afs.eecs.harvard.edu/~goodell/thesis.pdf}}, -} - -@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}, - bookurl = {http://petworkshop.org/2006/}, - note = {\url{http://www.cypherpunks.ca/~iang/pubs/torsec.pdf}}, -} - -@inproceedings{rep-anon, - title = {{Reputation in P2P Anonymity Systems}}, - author = {Roger Dingledine and Nick Mathewson and Paul Syverson}, - booktitle = {Proceedings of Workshop on Economics of Peer-to-Peer Systems}, - year = {2003}, - month = {June}, - note = {\url{http://freehaven.net/doc/econp2p03/econp2p03.pdf}}, -} - -@misc{tor-challenges, - author = {Roger Dingledine and Nick Mathewson and Paul Syverson}, - title = {Challenges in deploying low-latency anonymity}, - year = {2005}, - note = {Manuscript} -} - -@InProceedings{chaum-blind, - author = {David Chaum}, - title = {Blind Signatures for Untraceable Payments}, - booktitle = {Advances in Cryptology: Proceedings of Crypto 82}, - pages = {199--203}, - year = 1983, - editor = {D. Chaum and R.L. Rivest and A.T. Sherman}, - publisher = {Plenum Press} -} - -@Article{netauth, - author = {Geoffrey Goodell and Paul Syverson}, - title = {The Right Place at the Right Time: Examining the use of network location in authentication and abuse prevention}, - journal = {Communications of the ACM}, - year = 2007, - volume = 50, - number = 5, - pages = {113--117}, - month = {May} -} - -@misc{ip-to-country, - key = {ip-to-country}, - title = {IP-to-country database}, - note = {\url{http://ip-to-country.webhosting.info/}}, -} - -@misc{mackinnon-personal, - author = {Rebecca MacKinnon}, - title = {Private communication}, - year = {2006}, -} - -@inproceedings{pet05-bissias, - title = {Privacy Vulnerabilities in Encrypted HTTP Streams}, - author = {George Dean Bissias and Marc Liberatore and Brian Neil Levine}, - booktitle = {Proceedings of Privacy Enhancing Technologies workshop (PET 2005)}, - year = {2005}, - month = {May}, - note = {\url{http://prisms.cs.umass.edu/brian/pubs/bissias.liberatore.pet.2005.pdf}}, -} - -@InProceedings{infranet, - author = {Nick Feamster and Magdalena Balazinska and Greg Harfst and Hari Balakrishnan and David Karger}, - title = {Infranet: Circumventing Web Censorship and Surveillance}, - booktitle = {Proceedings of the 11th USENIX Security Symposium}, - year = {2002}, - month = {August}, - note = {\url{http://nms.lcs.mit.edu/~feamster/papers/usenixsec2002.pdf}}, -} - -@techreport{ ptacek98insertion, - author = "Thomas H. Ptacek and Timothy N. Newsham", - title = "Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection", - institution = "Secure Networks, Inc.", - address = "Suite 330, 1201 5th Street S.W, Calgary, Alberta, Canada, T2R-0Y6", - year = "1998", - url = "citeseer.ist.psu.edu/ptacek98insertion.html", -} - -@inproceedings{active-wardens, - author = "Gina Fisk and Mike Fisk and Christos Papadopoulos and Joshua Neil", - title = "Eliminating Steganography in Internet Traffic with Active Wardens", - booktitle = {Information Hiding Workshop (IH 2002)}, - year = {2002}, - month = {October}, - editor = {Fabien Petitcolas}, - publisher = {Springer-Verlag, LNCS 2578}, -} - -@inproceedings{clog-the-queue, - title = {Don't Clog the Queue: Circuit Clogging and Mitigation in {P2P} anonymity schemes}, - author = {Jon McLachlan and Nicholas Hopper}, - booktitle = {Proceedings of Financial Cryptography (FC '08)}, - year = {2008}, - month = {January}, -} - -@inproceedings{snader08, - title = {A Tune-up for {Tor}: Improving Security and Performance in the {Tor} Network}, - author = {Robin Snader and Nikita Borisov}, - booktitle = {Proceedings of the Network and Distributed Security Symposium - {NDSS} '08}, - year = {2008}, - month = {February}, - publisher = {Internet Society}, -} - -@inproceedings{murdoch-pet2008, - title = {Metrics for Security and Performance in Low-Latency Anonymity Networks}, - author = {Steven J. Murdoch and Robert N. M. Watson}, - booktitle = {Proceedings of the Eighth International Symposium on Privacy Enhancing Technologies (PETS 2008)}, - year = {2008}, - month = {July}, - address = {Leuven, Belgium}, - pages = {115--132}, - editor = {Nikita Borisov and Ian Goldberg}, - publisher = {Springer}, - bookurl = {http://petsymposium.org/2008/}, -} - -@inproceedings{danezis-pet2008, - title = {Bridging and Fingerprinting: Epistemic Attacks on Route Selection}, - author = {George Danezis and Paul Syverson}, - booktitle = {Proceedings of the Eighth International Symposium on Privacy Enhancing Technologies (PETS 2008)}, - year = {2008}, - month = {July}, - address = {Leuven, Belgium}, - pages = {133--150}, - editor = {Nikita Borisov and Ian Goldberg}, - publisher = {Springer}, - bookurl = {http://petsymposium.org/2008/}, -} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "tor-design" -%%% End: diff --git a/doc/design-paper/tor-design.html b/doc/design-paper/tor-design.html deleted file mode 100644 index 5fac644e62..0000000000 --- a/doc/design-paper/tor-design.html +++ /dev/null @@ -1,2488 +0,0 @@ - - - - - - - - - Tor: The Second-Generation Onion Router - - - -

    Tor: The Second-Generation Onion Router

    -
    - -

    -Roger Dingledine, The Free Haven Project, arma@freehaven.net
    -Nick Mathewson, The Free Haven Project, nickm@freehaven.net
    -Paul Syverson, Naval Research Lab, syverson@itd.nrl.navy.mil

    - -
    - -
    - -

    Abstract

    -We present Tor, a circuit-based low-latency anonymous communication -service. This second-generation Onion Routing system addresses limitations -in the original design by adding perfect forward secrecy, congestion -control, directory servers, integrity checking, configurable exit policies, -and a practical design for location-hidden services via rendezvous -points. Tor works on the real-world -Internet, requires no special privileges or kernel modifications, requires -little synchronization or coordination between nodes, and provides a -reasonable tradeoff between anonymity, usability, and efficiency. -We briefly describe our experiences with an international network of -more than 30 nodes. We close with a list of open problems in anonymous communication. - -
    - -
    - -
    -
    - - -
    -Onion Routing is a distributed overlay network designed to anonymize -TCP-based applications like web browsing, secure shell, -and instant messaging. Clients choose a path through the network and -build a circuit, in which each node (or "onion router" or "OR") -in the path knows its predecessor and successor, but no other nodes in -the circuit. Traffic flows down the circuit in fixed-size -cells, which are unwrapped by a symmetric key at each node -(like the layers of an onion) and relayed downstream. The -Onion Routing project published several design and analysis -papers [27,41,48,49]. While a wide area Onion -Routing network was deployed briefly, the only long-running -public implementation was a fragile -proof-of-concept that ran on a single machine. Even this simple deployment -processed connections from over sixty thousand distinct IP addresses from -all over the world at a rate of about fifty thousand per day. -But many critical design and deployment issues were never -resolved, and the design has not been updated in years. Here -we describe Tor, a protocol for asynchronous, loosely federated onion -routers that provides the following improvements over the old Onion -Routing design: - -
    -Perfect forward secrecy: In the original Onion Routing design, -a single hostile node could record traffic and -later compromise successive nodes in the circuit and force them -to decrypt it. Rather than using a single multiply encrypted data -structure (an onion) to lay each circuit, -Tor now uses an incremental or telescoping path-building design, -where the initiator negotiates session keys with each successive hop in -the circuit. Once these keys are deleted, subsequently compromised nodes -cannot decrypt old traffic. As a side benefit, onion replay detection -is no longer necessary, and the process of building circuits is more -reliable, since the initiator knows when a hop fails and can then try -extending to a new node. - -
    -Separation of "protocol cleaning" from anonymity: -Onion Routing originally required a separate "application -proxy" for each supported application protocol — most of which were -never written, so many applications were never supported. Tor uses the -standard and near-ubiquitous SOCKS [32] proxy interface, allowing -us to support most TCP-based programs without modification. Tor now -relies on the filtering features of privacy-enhancing -application-level proxies such as Privoxy [39], without trying -to duplicate those features itself. - -
    -No mixing, padding, or traffic shaping (yet): Onion -Routing originally called for batching and reordering cells as they arrived, -assumed padding between ORs, and in -later designs added padding between onion proxies (users) and -ORs [27,41]. Tradeoffs between padding protection -and cost were discussed, and traffic shaping algorithms were -theorized [49] to provide good security without expensive -padding, but no concrete padding scheme was suggested. -Recent research [1] -and deployment experience [4] suggest that this -level of resource use is not practical or economical; and even full -link padding is still vulnerable [33]. Thus, -until we have a proven and convenient design for traffic shaping or -low-latency mixing that improves anonymity against a realistic -adversary, we leave these strategies out. - -
    -Many TCP streams can share one circuit: Onion Routing originally -built a separate circuit for each -application-level request, but this required -multiple public key operations for every request, and also presented -a threat to anonymity from building so many circuits; see -Section 9. Tor multiplexes multiple TCP -streams along each circuit to improve efficiency and anonymity. - -
    -Leaky-pipe circuit topology: Through in-band signaling -within the circuit, Tor initiators can direct traffic to nodes partway -down the circuit. This novel approach -allows traffic to exit the circuit from the middle — possibly -frustrating traffic shape and volume attacks based on observing the end -of the circuit. (It also allows for long-range padding if -future research shows this to be worthwhile.) - -
    -Congestion control: Earlier anonymity designs do not -address traffic bottlenecks. Unfortunately, typical approaches to -load balancing and flow control in overlay networks involve inter-node -control communication and global views of traffic. Tor's decentralized -congestion control uses end-to-end acks to maintain anonymity -while allowing nodes at the edges of the network to detect congestion -or flooding and send less data until the congestion subsides. - -
    -Directory servers: The earlier Onion Routing design -planned to flood state information through the network — an approach -that can be unreliable and complex. Tor takes a simplified view toward distributing this -information. Certain more trusted nodes act as directory -servers: they provide signed directories describing known -routers and their current state. Users periodically download them -via HTTP. - -
    -Variable exit policies: Tor provides a consistent mechanism -for each node to advertise a policy describing the hosts -and ports to which it will connect. These exit policies are critical -in a volunteer-based distributed infrastructure, because each operator -is comfortable with allowing different types of traffic to exit -from his node. - -
    -End-to-end integrity checking: The original Onion Routing -design did no integrity checking on data. Any node on the -circuit could change the contents of data cells as they passed by — for -example, to alter a connection request so it would connect -to a different webserver, or to `tag' encrypted traffic and look for -corresponding corrupted traffic at the network edges [15]. -Tor hampers these attacks by verifying data integrity before it leaves -the network. - -
    - -
    -Rendezvous points and hidden services: -Tor provides an integrated mechanism for responder anonymity via -location-protected servers. Previous Onion Routing designs included -long-lived "reply onions" that could be used to build circuits -to a hidden server, but these reply onions did not provide forward -security, and became useless if any node in the path went down -or rotated its keys. In Tor, clients negotiate rendezvous points -to connect with hidden servers; reply onions are no longer required. - -
    -Unlike Freedom [8], Tor does not require OS kernel -patches or network stack support. This prevents us from anonymizing -non-TCP protocols, but has greatly helped our portability and -deployability. - -
    - -
    -We have implemented all of the above features, including rendezvous -points. Our source code is -available under a free license, and Tor -is not covered by the patent that affected distribution and use of -earlier versions of Onion Routing. -We have deployed a wide-area alpha network -to test the design, to get more experience with usability -and users, and to provide a research platform for experimentation. -As of this writing, the network stands at 32 nodes spread over two continents. - -
    -We review previous work in Section 2, describe -our goals and assumptions in Section 3, -and then address the above list of improvements in -Sections 4, 5, and 6. -We summarize -in Section 7 how our design stands up to -known attacks, and talk about our early deployment experiences in -Section 8. We conclude with a list of open problems in -Section 9 and future work for the Onion -Routing project in Section 10. - -
    - -
    -

    - -2  Related work

    - - -
    -Modern anonymity systems date to Chaum's Mix-Net -design [10]. Chaum -proposed hiding the correspondence between sender and recipient by -wrapping messages in layers of public-key cryptography, and relaying them -through a path composed of "mixes." Each mix in turn -decrypts, delays, and re-orders messages before relaying them -onward. - -
    -Subsequent relay-based anonymity designs have diverged in two -main directions. Systems like Babel [28], -Mixmaster [36], -and Mixminion [15] have tried -to maximize anonymity at the cost of introducing comparatively large and -variable latencies. Because of this decision, these high-latency -networks resist strong global adversaries, -but introduce too much lag for interactive tasks like web browsing, -Internet chat, or SSH connections. - -
    -Tor belongs to the second category: low-latency designs that -try to anonymize interactive network traffic. These systems handle -a variety of bidirectional protocols. They also provide more convenient -mail delivery than the high-latency anonymous email -networks, because the remote mail server provides explicit and timely -delivery confirmation. But because these designs typically -involve many packets that must be delivered quickly, it is -difficult for them to prevent an attacker who can eavesdrop both ends of the -communication from correlating the timing and volume -of traffic entering the anonymity network with traffic leaving it [45]. -These -protocols are similarly vulnerable to an active adversary who introduces -timing patterns into traffic entering the network and looks -for correlated patterns among exiting traffic. -Although some work has been done to frustrate these attacks, most designs -protect primarily against traffic analysis rather than traffic -confirmation (see Section 3.1). - -
    -The simplest low-latency designs are single-hop proxies such as the -Anonymizer [3]: a single trusted server strips the -data's origin before relaying it. These designs are easy to -analyze, but users must trust the anonymizing proxy. -Concentrating the traffic to this single point increases the anonymity set -(the people a given user is hiding among), but it is vulnerable if the -adversary can observe all traffic entering and leaving the proxy. - -
    -More complex are distributed-trust, circuit-based anonymizing systems. -In these designs, a user establishes one or more medium-term bidirectional -end-to-end circuits, and tunnels data in fixed-size cells. -Establishing circuits is computationally expensive and typically -requires public-key -cryptography, whereas relaying cells is comparatively inexpensive and -typically requires only symmetric encryption. -Because a circuit crosses several servers, and each server only knows -the adjacent servers in the circuit, no single server can link a -user to her communication partners. - -
    -The Java Anon Proxy (also known as JAP or Web MIXes) uses fixed shared -routes known as cascades. As with a single-hop proxy, this -approach aggregates users into larger anonymity sets, but again an -attacker only needs to observe both ends of the cascade to bridge all -the system's traffic. The Java Anon Proxy's design -calls for padding between end users and the head of the -cascade [7]. However, it is not demonstrated whether the current -implementation's padding policy improves anonymity. - -
    -PipeNet [5,12], another low-latency design proposed -around the same time as Onion Routing, gave -stronger anonymity but allowed a single user to shut -down the network by not sending. Systems like ISDN -mixes [38] were designed for other environments with -different assumptions. - -
    -In P2P designs like Tarzan [24] and -MorphMix [43], all participants both generate -traffic and relay traffic for others. These systems aim to conceal -whether a given peer originated a request -or just relayed it from another peer. While Tarzan and MorphMix use -layered encryption as above, Crowds [42] simply assumes -an adversary who cannot observe the initiator: it uses no public-key -encryption, so any node on a circuit can read users' traffic. - -
    -Hordes [34] is based on Crowds but also uses multicast -responses to hide the initiator. Herbivore [25] and -P5 [46] go even further, requiring broadcast. -These systems are designed primarily for communication among peers, -although Herbivore users can make external connections by -requesting a peer to serve as a proxy. - -
    -Systems like Freedom and the original Onion Routing build circuits -all at once, using a layered "onion" of public-key encrypted messages, -each layer of which provides session keys and the address of the -next server in the circuit. Tor as described herein, Tarzan, MorphMix, -Cebolla [9], and Rennhard's Anonymity Network [44] -build circuits -in stages, extending them one hop at a time. -Section 4.2 describes how this -approach enables perfect forward secrecy. - -
    -Circuit-based designs must choose which protocol layer -to anonymize. They may intercept IP packets directly, and -relay them whole (stripping the source address) along the -circuit [8,24]. Like -Tor, they may accept TCP streams and relay the data in those streams, -ignoring the breakdown of that data into TCP -segments [43,44]. Finally, like Crowds, they may accept -application-level protocols such as HTTP and relay the application -requests themselves. -Making this protocol-layer decision requires a compromise between flexibility -and anonymity. For example, a system that understands HTTP -can strip -identifying information from requests, can take advantage of caching -to limit the number of requests that leave the network, and can batch -or encode requests to minimize the number of connections. -On the other hand, an IP-level anonymizer can handle nearly any protocol, -even ones unforeseen by its designers (though these systems require -kernel-level modifications to some operating systems, and so are more -complex and less portable). TCP-level anonymity networks like Tor present -a middle approach: they are application neutral (so long as the -application supports, or can be tunneled across, TCP), but by treating -application connections as data streams rather than raw TCP packets, -they avoid the inefficiencies of tunneling TCP over -TCP. - -
    -Distributed-trust anonymizing systems need to prevent attackers from -adding too many servers and thus compromising user paths. -Tor relies on a small set of well-known directory servers, run by -independent parties, to decide which nodes can -join. Tarzan and MorphMix allow unknown users to run servers, and use -a limited resource (like IP addresses) to prevent an attacker from -controlling too much of the network. Crowds suggests requiring -written, notarized requests from potential crowd members. - -
    -Anonymous communication is essential for censorship-resistant -systems like Eternity [2], Free Haven [19], -Publius [53], and Tangler [52]. Tor's rendezvous -points enable connections between mutually anonymous entities; they -are a building block for location-hidden servers, which are needed by -Eternity and Free Haven. - -
    - -
    -

    - -3  Design goals and assumptions

    - - -
    -Goals
    -Like other low-latency anonymity designs, Tor seeks to frustrate -attackers from linking communication partners, or from linking -multiple communications to or from a single user. Within this -main goal, however, several considerations have directed -Tor's evolution. - -
    -Deployability: The design must be deployed and used in the -real world. Thus it -must not be expensive to run (for example, by requiring more bandwidth -than volunteers are willing to provide); must not place a heavy -liability burden on operators (for example, by allowing attackers to -implicate onion routers in illegal activities); and must not be -difficult or expensive to implement (for example, by requiring kernel -patches, or separate proxies for every protocol). We also cannot -require non-anonymous parties (such as websites) -to run our software. (Our rendezvous point design does not meet -this goal for non-anonymous users talking to hidden servers, -however; see Section 5.) - -
    -Usability: A hard-to-use system has fewer users — and because -anonymity systems hide users among users, a system with fewer users -provides less anonymity. Usability is thus not only a convenience: -it is a security requirement [1,5]. Tor should -therefore not -require modifying familiar applications; should not introduce prohibitive -delays; -and should require as few configuration decisions -as possible. Finally, Tor should be easily implementable on all common -platforms; we cannot require users to change their operating system -to be anonymous. (Tor currently runs on Win32, Linux, -Solaris, BSD-style Unix, MacOS X, and probably others.) - -
    -Flexibility: The protocol must be flexible and well-specified, -so Tor can serve as a test-bed for future research. -Many of the open problems in low-latency anonymity -networks, such as generating dummy traffic or preventing Sybil -attacks [22], may be solvable independently from the issues -solved by -Tor. Hopefully future systems will not need to reinvent Tor's design. - -
    -Simple design: The protocol's design and security -parameters must be well-understood. Additional features impose implementation -and complexity costs; adding unproven techniques to the design threatens -deployability, readability, and ease of security analysis. Tor aims to -deploy a simple and stable system that integrates the best accepted -approaches to protecting anonymity.
    - -
    -Non-goals -
    -In favoring simple, deployable designs, we have explicitly deferred -several possible goals, either because they are solved elsewhere, or because -they are not yet solved. - -
    -Not peer-to-peer: Tarzan and MorphMix aim to scale to completely -decentralized peer-to-peer environments with thousands of short-lived -servers, many of which may be controlled by an adversary. This approach -is appealing, but still has many open -problems [24,43]. - -
    -Not secure against end-to-end attacks: Tor does not claim -to completely solve end-to-end timing or intersection -attacks. Some approaches, such as having users run their own onion routers, -may help; -see Section 9 for more discussion. - -
    -No protocol normalization: Tor does not provide protocol -normalization like Privoxy or the Anonymizer. If senders want anonymity from -responders while using complex and variable -protocols like HTTP, Tor must be layered with a filtering proxy such -as Privoxy to hide differences between clients, and expunge protocol -features that leak identity. -Note that by this separation Tor can also provide services that -are anonymous to the network yet authenticated to the responder, like -SSH. Similarly, Tor does not integrate -tunneling for non-stream-based protocols like UDP; this must be -provided by an external service if appropriate. - -
    -Not steganographic: Tor does not try to conceal who is connected -to the network. - -
    -

    - -3.1  Threat Model

    - - -
    -A global passive adversary is the most commonly assumed threat when -analyzing theoretical anonymity designs. But like all practical -low-latency systems, Tor does not protect against such a strong -adversary. Instead, we assume an adversary who can observe some fraction -of network traffic; who can generate, modify, delete, or delay -traffic; who can operate onion routers of his own; and who can -compromise some fraction of the onion routers. - -
    -In low-latency anonymity systems that use layered encryption, the -adversary's typical goal is to observe both the initiator and the -responder. By observing both ends, passive attackers can confirm a -suspicion that Alice is -talking to Bob if the timing and volume patterns of the traffic on the -connection are distinct enough; active attackers can induce timing -signatures on the traffic to force distinct patterns. Rather -than focusing on these traffic confirmation attacks, -we aim to prevent traffic -analysis attacks, where the adversary uses traffic patterns to learn -which points in the network he should attack. - -
    -Our adversary might try to link an initiator Alice with her -communication partners, or try to build a profile of Alice's -behavior. He might mount passive attacks by observing the network edges -and correlating traffic entering and leaving the network — by -relationships in packet timing, volume, or externally visible -user-selected -options. The adversary can also mount active attacks by compromising -routers or keys; by replaying traffic; by selectively denying service -to trustworthy routers to move users to -compromised routers, or denying service to users to see if traffic -elsewhere in the -network stops; or by introducing patterns into traffic that can later be -detected. The adversary might subvert the directory servers to give users -differing views of network state. Additionally, he can try to decrease -the network's reliability by attacking nodes or by performing antisocial -activities from reliable nodes and trying to get them taken down — making -the network unreliable flushes users to other less anonymous -systems, where they may be easier to attack. We summarize -in Section 7 how well the Tor design defends against -each of these attacks. - -
    - -
    -

    - -4  The Tor Design

    - - -
    -The Tor network is an overlay network; each onion router (OR) -runs as a normal -user-level process without any special privileges. -Each onion router maintains a TLS [17] -connection to every other onion router. -Each user -runs local software called an onion proxy (OP) to fetch directories, -establish circuits across the network, -and handle connections from user applications. These onion proxies accept -TCP streams and multiplex them across the circuits. The onion -router on the other side -of the circuit connects to the requested destinations -and relays data. - -
    -Each onion router maintains a long-term identity key and a short-term -onion key. The identity -key is used to sign TLS certificates, to sign the OR's router -descriptor (a summary of its keys, address, bandwidth, exit policy, -and so on), and (by directory servers) to sign directories. The onion key is used to decrypt requests -from users to set up a circuit and negotiate ephemeral keys. -The TLS protocol also establishes a short-term link key when communicating -between ORs. Short-term keys are rotated periodically and -independently, to limit the impact of key compromise. - -
    -Section 4.1 presents the fixed-size -cells that are the unit of communication in Tor. We describe -in Section 4.2 how circuits are -built, extended, truncated, and destroyed. Section 4.3 -describes how TCP streams are routed through the network. We address -integrity checking in Section 4.4, -and resource limiting in Section 4.5. -Finally, -Section 4.6 talks about congestion control and -fairness issues. - -
    -

    - -4.1  Cells

    - - -
    -Onion routers communicate with one another, and with users' OPs, via -TLS connections with ephemeral keys. Using TLS conceals the data on -the connection with perfect forward secrecy, and prevents an attacker -from modifying data on the wire or impersonating an OR. - -
    -Traffic passes along these connections in fixed-size cells. Each cell -is 512 bytes, and consists of a header and a payload. The header includes a circuit -identifier (circID) that specifies which circuit the cell refers to -(many circuits can be multiplexed over the single TLS connection), and -a command to describe what to do with the cell's payload. (Circuit -identifiers are connection-specific: each circuit has a different -circID on each OP/OR or OR/OR connection it traverses.) -Based on their command, cells are either control cells, which are -always interpreted by the node that receives them, or relay cells, -which carry end-to-end stream data. The control cell commands are: -padding (currently used for keepalive, but also usable for link -padding); create or created (used to set up a new circuit); -and destroy (to tear down a circuit). - -
    -Relay cells have an additional header (the relay header) at the front -of the payload, containing a streamID (stream identifier: many streams can -be multiplexed over a circuit); an end-to-end checksum for integrity -checking; the length of the relay payload; and a relay command. -The entire contents of the relay header and the relay cell payload -are encrypted or decrypted together as the relay cell moves along the -circuit, using the 128-bit AES cipher in counter mode to generate a -cipher stream. The relay commands are: relay -data (for data flowing down the stream), relay begin (to open a -stream), relay end (to close a stream cleanly), relay -teardown (to close a broken stream), relay connected -(to notify the OP that a relay begin has succeeded), relay -extend and relay extended (to extend the circuit by a hop, -and to acknowledge), relay truncate and relay truncated -(to tear down only part of the circuit, and to acknowledge), relay -sendme (used for congestion control), and relay drop (used to -implement long-range dummies). -We give a visual overview of cell structure plus the details of relay -cell structure, and then describe each of these cell types and commands -in more detail below. - -
    - -
    - -
    - -
    cell-struct.png -
    -
    -

    - -4.2  Circuits and streams

    - - -
    -Onion Routing originally built one circuit for each -TCP stream. Because building a circuit can take several tenths of a -second (due to public-key cryptography and network latency), -this design imposed high costs on applications like web browsing that -open many TCP streams. - -
    -In Tor, each circuit can be shared by many TCP streams. To avoid -delays, users construct circuits preemptively. To limit linkability -among their streams, users' OPs build a new circuit -periodically if the previous ones have been used, -and expire old used circuits that no longer have any open streams. -OPs consider rotating to a new circuit once a minute: thus -even heavy users spend negligible time -building circuits, but a limited number of requests can be linked -to each other through a given exit node. Also, because circuits are built -in the background, OPs can recover from failed circuit creation -without harming user experience.
    - -
    - -
    - -
    interaction.png - -
    Figure 1: Alice builds a two-hop circuit and begins fetching a web page.
    - - -
    -
    - -Constructing a circuit -
    -A user's OP constructs circuits incrementally, negotiating a -symmetric key with each OR on the circuit, one hop at a time. To begin -creating a new circuit, the OP (call her Alice) sends a -create cell to the first node in her chosen path (call him Bob). -(She chooses a new -circID CAB not currently used on the connection from her to Bob.) -The create cell's -payload contains the first half of the Diffie-Hellman handshake -(gx), encrypted to the onion key of Bob. Bob -responds with a created cell containing gy -along with a hash of the negotiated key K=gxy. - -
    -Once the circuit has been established, Alice and Bob can send one -another relay cells encrypted with the negotiated -key.1 More detail is given in -the next section. - -
    -To extend the circuit further, Alice sends a relay extend cell -to Bob, specifying the address of the next OR (call her Carol), and -an encrypted gx2 for her. Bob copies the half-handshake into a -create cell, and passes it to Carol to extend the circuit. -(Bob chooses a new circID CBC not currently used on the connection -between him and Carol. Alice never needs to know this circID; only Bob -associates CAB on his connection with Alice to CBC on -his connection with Carol.) -When Carol responds with a created cell, Bob wraps the payload -into a relay extended cell and passes it back to Alice. Now -the circuit is extended to Carol, and Alice and Carol share a common key -K2 = gx2 y2. - -
    -To extend the circuit to a third node or beyond, Alice -proceeds as above, always telling the last node in the circuit to -extend one hop further. - -
    -This circuit-level handshake protocol achieves unilateral entity -authentication (Alice knows she's handshaking with the OR, but -the OR doesn't care who is opening the circuit — Alice uses no public key -and remains anonymous) and unilateral key authentication -(Alice and the OR agree on a key, and Alice knows only the OR learns -it). It also achieves forward -secrecy and key freshness. More formally, the protocol is as follows -(where EPKBob(·) is encryption with Bob's public key, -H is a secure hash function, and | is concatenation): - -
    - - - - -
    Alice -> Bob : EPKBob(gx)
    Bob -> Alice : gy, H(K | "handshake") -
    - - -
    - In the second step, Bob proves that it was he who received gx, -and who chose y. We use PK encryption in the first step -(rather than, say, using the first two steps of STS, which has a -signature in the second step) because a single cell is too small to -hold both a public key and a signature. Preliminary analysis with the -NRL protocol analyzer [35] shows this protocol to be -secure (including perfect forward secrecy) under the -traditional Dolev-Yao model.
    - -
    -Relay cells
    -Once Alice has established the circuit (so she shares keys with each -OR on the circuit), she can send relay cells. -Upon receiving a relay -cell, an OR looks up the corresponding circuit, and decrypts the relay -header and payload with the session key for that circuit. -If the cell is headed away from Alice the OR then checks whether the -decrypted cell has a valid digest (as an optimization, the first -two bytes of the integrity check are zero, so in most cases we can avoid -computing the hash). -If valid, it accepts the relay cell and processes it as described -below. Otherwise, -the OR looks up the circID and OR for the -next step in the circuit, replaces the circID as appropriate, and -sends the decrypted relay cell to the next OR. (If the OR at the end -of the circuit receives an unrecognized relay cell, an error has -occurred, and the circuit is torn down.) - -
    -OPs treat incoming relay cells similarly: they iteratively unwrap the -relay header and payload with the session keys shared with each -OR on the circuit, from the closest to farthest. -If at any stage the digest is valid, the cell must have -originated at the OR whose encryption has just been removed. - -
    -To construct a relay cell addressed to a given OR, Alice assigns the -digest, and then iteratively -encrypts the cell payload (that is, the relay header and payload) with -the symmetric key of each hop up to that OR. Because the digest is -encrypted to a different value at each step, only at the targeted OR -will it have a meaningful value.2 -This leaky pipe circuit topology -allows Alice's streams to exit at different ORs on a single circuit. -Alice may choose different exit points because of their exit policies, -or to keep the ORs from knowing that two streams -originate from the same person. - -
    -When an OR later replies to Alice with a relay cell, it -encrypts the cell's relay header and payload with the single key it -shares with Alice, and sends the cell back toward Alice along the -circuit. Subsequent ORs add further layers of encryption as they -relay the cell back to Alice. - -
    -To tear down a circuit, Alice sends a destroy control -cell. Each OR in the circuit receives the destroy cell, closes -all streams on that circuit, and passes a new destroy cell -forward. But just as circuits are built incrementally, they can also -be torn down incrementally: Alice can send a relay -truncate cell to a single OR on a circuit. That OR then sends a -destroy cell forward, and acknowledges with a -relay truncated cell. Alice can then extend the circuit to -different nodes, without signaling to the intermediate nodes (or -a limited observer) that she has changed her circuit. -Similarly, if a node on the circuit goes down, the adjacent -node can send a relay truncated cell back to Alice. Thus the -"break a node and see which circuits go down" -attack [4] is weakened. - -
    -

    - -4.3  Opening and closing streams

    - - -
    -When Alice's application wants a TCP connection to a given -address and port, it asks the OP (via SOCKS) to make the -connection. The OP chooses the newest open circuit (or creates one if -needed), and chooses a suitable OR on that circuit to be the -exit node (usually the last node, but maybe others due to exit policy -conflicts; see Section 6.2.) The OP then opens -the stream by sending a relay begin cell to the exit node, -using a new random streamID. Once the -exit node connects to the remote host, it responds -with a relay connected cell. Upon receipt, the OP sends a -SOCKS reply to notify the application of its success. The OP -now accepts data from the application's TCP stream, packaging it into -relay data cells and sending those cells along the circuit to -the chosen OR. - -
    -There's a catch to using SOCKS, however — some applications pass the -alphanumeric hostname to the Tor client, while others resolve it into -an IP address first and then pass the IP address to the Tor client. If -the application does DNS resolution first, Alice thereby reveals her -destination to the remote DNS server, rather than sending the hostname -through the Tor network to be resolved at the far end. Common applications -like Mozilla and SSH have this flaw. - -
    -With Mozilla, the flaw is easy to address: the filtering HTTP -proxy called Privoxy gives a hostname to the Tor client, so Alice's -computer never does DNS resolution. -But a portable general solution, such as is needed for -SSH, is -an open problem. Modifying or replacing the local nameserver -can be invasive, brittle, and unportable. Forcing the resolver -library to prefer TCP rather than UDP is hard, and also has -portability problems. Dynamically intercepting system calls to the -resolver library seems a promising direction. We could also provide -a tool similar to dig to perform a private lookup through the -Tor network. Currently, we encourage the use of privacy-aware proxies -like Privoxy wherever possible. - -
    -Closing a Tor stream is analogous to closing a TCP stream: it uses a -two-step handshake for normal operation, or a one-step handshake for -errors. If the stream closes abnormally, the adjacent node simply sends a -relay teardown cell. If the stream closes normally, the node sends -a relay end cell down the circuit, and the other side responds with -its own relay end cell. Because -all relay cells use layered encryption, only the destination OR knows -that a given relay cell is a request to close a stream. This two-step -handshake allows Tor to support TCP-based applications that use half-closed -connections. - -
    -

    - -4.4  Integrity checking on streams

    - - -
    -Because the old Onion Routing design used a stream cipher without integrity -checking, traffic was -vulnerable to a malleability attack: though the attacker could not -decrypt cells, any changes to encrypted data -would create corresponding changes to the data leaving the network. -This weakness allowed an adversary who could guess the encrypted content -to change a padding cell to a destroy -cell; change the destination address in a relay begin cell to the -adversary's webserver; or change an FTP command from -dir to rm *. (Even an external -adversary could do this, because the link encryption similarly used a -stream cipher.) - -
    -Because Tor uses TLS on its links, external adversaries cannot modify -data. Addressing the insider malleability attack, however, is -more complex. - -
    -We could do integrity checking of the relay cells at each hop, either -by including hashes or by using an authenticating cipher mode like -EAX [6], but there are some problems. First, these approaches -impose a message-expansion overhead at each hop, and so we would have to -either leak the path length or waste bytes by padding to a maximum -path length. Second, these solutions can only verify traffic coming -from Alice: ORs would not be able to produce suitable hashes for -the intermediate hops, since the ORs on a circuit do not know the -other ORs' session keys. Third, we have already accepted that our design -is vulnerable to end-to-end timing attacks; so tagging attacks performed -within the circuit provide no additional information to the attacker. - -
    -Thus, we check integrity only at the edges of each stream. (Remember that -in our leaky-pipe circuit topology, a stream's edge could be any hop -in the circuit.) When Alice -negotiates a key with a new hop, they each initialize a SHA-1 -digest with a derivative of that key, -thus beginning with randomness that only the two of them know. -Then they each incrementally add to the SHA-1 digest the contents of -all relay cells they create, and include with each relay cell the -first four bytes of the current digest. Each also keeps a SHA-1 -digest of data received, to verify that the received hashes are correct. - -
    -To be sure of removing or modifying a cell, the attacker must be able -to deduce the current digest state (which depends on all -traffic between Alice and Bob, starting with their negotiated key). -Attacks on SHA-1 where the adversary can incrementally add to a hash -to produce a new valid hash don't work, because all hashes are -end-to-end encrypted across the circuit. The computational overhead -of computing the digests is minimal compared to doing the AES -encryption performed at each hop of the circuit. We use only four -bytes per cell to minimize overhead; the chance that an adversary will -correctly guess a valid hash -is -acceptably low, given that the OP or OR tear down the circuit if they -receive a bad hash. - -
    -

    - -4.5  Rate limiting and fairness

    - - -
    -Volunteers are more willing to run services that can limit -their bandwidth usage. To accommodate them, Tor servers use a -token bucket approach [50] to -enforce a long-term average rate of incoming bytes, while still -permitting short-term bursts above the allowed bandwidth. - -
    - -
    -Because the Tor protocol outputs about the same number of bytes as it -takes in, it is sufficient in practice to limit only incoming bytes. -With TCP streams, however, the correspondence is not one-to-one: -relaying a single incoming byte can require an entire 512-byte cell. -(We can't just wait for more bytes, because the local application may -be awaiting a reply.) Therefore, we treat this case as if the entire -cell size had been read, regardless of the cell's fullness. - -
    -Further, inspired by Rennhard et al's design in [44], a -circuit's edges can heuristically distinguish interactive streams from bulk -streams by comparing the frequency with which they supply cells. We can -provide good latency for interactive streams by giving them preferential -service, while still giving good overall throughput to the bulk -streams. Such preferential treatment presents a possible end-to-end -attack, but an adversary observing both -ends of the stream can already learn this information through timing -attacks. - -
    -

    - -4.6  Congestion control

    - - -
    -Even with bandwidth rate limiting, we still need to worry about -congestion, either accidental or intentional. If enough users choose the -same OR-to-OR connection for their circuits, that connection can become -saturated. For example, an attacker could send a large file -through the Tor network to a webserver he runs, and then -refuse to read any of the bytes at the webserver end of the -circuit. Without some congestion control mechanism, these bottlenecks -can propagate back through the entire network. We don't need to -reimplement full TCP windows (with sequence numbers, -the ability to drop cells when we're full and retransmit later, and so -on), -because TCP already guarantees in-order delivery of each -cell. -We describe our response below. - -
    -Circuit-level throttling: -To control a circuit's bandwidth usage, each OR keeps track of two -windows. The packaging window tracks how many relay data cells the OR is -allowed to package (from incoming TCP streams) for transmission back to the OP, -and the delivery window tracks how many relay data cells it is willing -to deliver to TCP streams outside the network. Each window is initialized -(say, to 1000 data cells). When a data cell is packaged or delivered, -the appropriate window is decremented. When an OR has received enough -data cells (currently 100), it sends a relay sendme cell towards the OP, -with streamID zero. When an OR receives a relay sendme cell with -streamID zero, it increments its packaging window. Either of these cells -increments the corresponding window by 100. If the packaging window -reaches 0, the OR stops reading from TCP connections for all streams -on the corresponding circuit, and sends no more relay data cells until -receiving a relay sendme cell. - -
    -The OP behaves identically, except that it must track a packaging window -and a delivery window for every OR in the circuit. If a packaging window -reaches 0, it stops reading from streams destined for that OR. - -
    -Stream-level throttling: -The stream-level congestion control mechanism is similar to the -circuit-level mechanism. ORs and OPs use relay sendme cells -to implement end-to-end flow control for individual streams across -circuits. Each stream begins with a packaging window (currently 500 cells), -and increments the window by a fixed value (50) upon receiving a relay -sendme cell. Rather than always returning a relay sendme cell as soon -as enough cells have arrived, the stream-level congestion control also -has to check whether data has been successfully flushed onto the TCP -stream; it sends the relay sendme cell only when the number of bytes pending -to be flushed is under some threshold (currently 10 cells' worth). - -
    - -
    -These arbitrarily chosen parameters seem to give tolerable throughput -and delay; see Section 8. - -
    -

    - -5  Rendezvous Points and hidden services

    - - -
    -Rendezvous points are a building block for location-hidden -services (also known as responder anonymity) in the Tor -network. Location-hidden services allow Bob to offer a TCP -service, such as a webserver, without revealing his IP address. -This type of anonymity protects against distributed DoS attacks: -attackers are forced to attack the onion routing network -because they do not know Bob's IP address. - -
    -Our design for location-hidden servers has the following goals. -Access-control: Bob needs a way to filter incoming requests, -so an attacker cannot flood Bob simply by making many connections to him. -Robustness: Bob should be able to maintain a long-term pseudonymous -identity even in the presence of router failure. Bob's service must -not be tied to a single OR, and Bob must be able to migrate his service -across ORs. Smear-resistance: -A social attacker -should not be able to "frame" a rendezvous router by -offering an illegal or disreputable location-hidden service and -making observers believe the router created that service. -Application-transparency: Although we require users -to run special software to access location-hidden servers, we must not -require them to modify their applications. - -
    -We provide location-hiding for Bob by allowing him to advertise -several onion routers (his introduction points) as contact -points. He may do this on any robust efficient -key-value lookup system with authenticated updates, such as a -distributed hash table (DHT) like CFS [11].3 Alice, the client, chooses an OR as her -rendezvous point. She connects to one of Bob's introduction -points, informs him of her rendezvous point, and then waits for him -to connect to the rendezvous point. This extra level of indirection -helps Bob's introduction points avoid problems associated with serving -unpopular files directly (for example, if Bob serves -material that the introduction point's community finds objectionable, -or if Bob's service tends to get attacked by network vandals). -The extra level of indirection also allows Bob to respond to some requests -and ignore others. - -
    -

    -5.1  Rendezvous points in Tor

    - -
    -The following steps are -performed on behalf of Alice and Bob by their local OPs; -application integration is described more fully below. - -
    - -
    - -
    -
  • Bob generates a long-term public key pair to identify his service.
  • -
    -
  • Bob chooses some introduction points, and advertises them on - the lookup service, signing the advertisement with his public key. He - can add more later.
  • -
    -
  • Bob builds a circuit to each of his introduction points, and tells - them to wait for requests.
  • -
    -
  • Alice learns about Bob's service out of band (perhaps Bob told her, - or she found it on a website). She retrieves the details of Bob's - service from the lookup service. If Alice wants to access Bob's - service anonymously, she must connect to the lookup service via Tor.
  • -
    -
  • Alice chooses an OR as the rendezvous point (RP) for her connection to - Bob's service. She builds a circuit to the RP, and gives it a - randomly chosen "rendezvous cookie" to recognize Bob.
  • -
    -
  • Alice opens an anonymous stream to one of Bob's introduction - points, and gives it a message (encrypted with Bob's public key) - telling it about herself, - her RP and rendezvous cookie, and the - start of a DH - handshake. The introduction point sends the message to Bob.
  • -
    -
  • If Bob wants to talk to Alice, he builds a circuit to Alice's - RP and sends the rendezvous cookie, the second half of the DH - handshake, and a hash of the session - key they now share. By the same argument as in - Section 4.2, Alice knows she - shares the key only with Bob.
  • -
    -
  • The RP connects Alice's circuit to Bob's. Note that RP can't - recognize Alice, Bob, or the data they transmit.
  • -
    -
  • Alice sends a relay begin cell along the circuit. It - arrives at Bob's OP, which connects to Bob's - webserver.
  • -
    -
  • An anonymous stream has been established, and Alice and Bob - communicate as normal. -
  • -
    - -
    -When establishing an introduction point, Bob provides the onion router -with the public key identifying his service. Bob signs his -messages, so others cannot usurp his introduction point -in the future. He uses the same public key to establish the other -introduction points for his service, and periodically refreshes his -entry in the lookup service. - -
    -The message that Alice gives -the introduction point includes a hash of Bob's public key and an optional initial authorization token (the -introduction point can do prescreening, for example to block replays). Her -message to Bob may include an end-to-end authorization token so Bob -can choose whether to respond. -The authorization tokens can be used to provide selective access: -important users can get uninterrupted access. -During normal situations, Bob's service might simply be offered -directly from mirrors, while Bob gives out tokens to high-priority users. If -the mirrors are knocked down, -those users can switch to accessing Bob's service via -the Tor rendezvous system. - -
    -Bob's introduction points are themselves subject to DoS — he must -open many introduction points or risk such an attack. -He can provide selected users with a current list or future schedule of -unadvertised introduction points; -this is most practical -if there is a stable and large group of introduction points -available. Bob could also give secret public keys -for consulting the lookup service. All of these approaches -limit exposure even when -some selected users collude in the DoS. - -
    -

    -5.2  Integration with user applications

    - -
    -Bob configures his onion proxy to know the local IP address and port of his -service, a strategy for authorizing clients, and his public key. The onion -proxy anonymously publishes a signed statement of Bob's -public key, an expiration time, and -the current introduction points for his service onto the lookup service, -indexed -by the hash of his public key. Bob's webserver is unmodified, -and doesn't even know that it's hidden behind the Tor network. - -
    -Alice's applications also work unchanged — her client interface -remains a SOCKS proxy. We encode all of the necessary information -into the fully qualified domain name (FQDN) Alice uses when establishing her -connection. Location-hidden services use a virtual top level domain -called .onion: thus hostnames take the form x.y.onion where -x is the authorization cookie and y encodes the hash of -the public key. Alice's onion proxy -examines addresses; if they're destined for a hidden server, it decodes -the key and starts the rendezvous as described above. - -
    -

    -5.3  Previous rendezvous work

    - -
    -Rendezvous points in low-latency anonymity systems were first -described for use in ISDN telephony [30,38]. -Later low-latency designs used rendezvous points for hiding location -of mobile phones and low-power location -trackers [23,40]. Rendezvous for -anonymizing low-latency -Internet connections was suggested in early Onion Routing -work [27], but the first published design was by Ian -Goldberg [26]. His design differs from -ours in three ways. First, Goldberg suggests that Alice should manually -hunt down a current location of the service via Gnutella; our approach -makes lookup transparent to the user, as well as faster and more robust. -Second, in Tor the client and server negotiate session keys -with Diffie-Hellman, so plaintext is not exposed even at the rendezvous -point. Third, -our design minimizes the exposure from running the -service, to encourage volunteers to offer introduction and rendezvous -services. Tor's introduction points do not output any bytes to the -clients; the rendezvous points don't know the client or the server, -and can't read the data being transmitted. The indirection scheme is -also designed to include authentication/authorization — if Alice doesn't -include the right cookie with her request for service, Bob need not even -acknowledge his existence. - -
    -

    - -6  Other design decisions

    - - -
    -

    - -6.1  Denial of service

    - - -
    -Providing Tor as a public service creates many opportunities for -denial-of-service attacks against the network. While -flow control and rate limiting (discussed in -Section 4.6) prevent users from consuming more -bandwidth than routers are willing to provide, opportunities remain for -users to -consume more network resources than their fair share, or to render the -network unusable for others. - -
    -First of all, there are several CPU-consuming denial-of-service -attacks wherein an attacker can force an OR to perform expensive -cryptographic operations. For example, an attacker can -fake the start of a TLS handshake, forcing the OR to carry out its -(comparatively expensive) half of the handshake at no real computational -cost to the attacker. - -
    -We have not yet implemented any defenses for these attacks, but several -approaches are possible. First, ORs can -require clients to solve a puzzle [16] while beginning new -TLS handshakes or accepting create cells. So long as these -tokens are easy to verify and computationally expensive to produce, this -approach limits the attack multiplier. Additionally, ORs can limit -the rate at which they accept create cells and TLS connections, -so that -the computational work of processing them does not drown out the -symmetric cryptography operations that keep cells -flowing. This rate limiting could, however, allow an attacker -to slow down other users when they build new circuits. - -
    - -
    -Adversaries can also attack the Tor network's hosts and network -links. Disrupting a single circuit or link breaks all streams passing -along that part of the circuit. Users similarly lose service -when a router crashes or its operator restarts it. The current -Tor design treats such attacks as intermittent network failures, and -depends on users and applications to respond or recover as appropriate. A -future design could use an end-to-end TCP-like acknowledgment protocol, -so no streams are lost unless the entry or exit point is -disrupted. This solution would require more buffering at the network -edges, however, and the performance and anonymity implications from this -extra complexity still require investigation. - -
    -

    - -6.2  Exit policies and abuse

    - - -
    - -
    -Exit abuse is a serious barrier to wide-scale Tor deployment. Anonymity -presents would-be vandals and abusers with an opportunity to hide -the origins of their activities. Attackers can harm the Tor network by -implicating exit servers for their abuse. Also, applications that commonly -use IP-based authentication (such as institutional mail or webservers) -can be fooled by the fact that anonymous connections appear to originate -at the exit OR. - -
    -We stress that Tor does not enable any new class of abuse. Spammers -and other attackers already have access to thousands of misconfigured -systems worldwide, and the Tor network is far from the easiest way -to launch attacks. -But because the -onion routers can be mistaken for the originators of the abuse, -and the volunteers who run them may not want to deal with the hassle of -explaining anonymity networks to irate administrators, we must block or limit -abuse through the Tor network. - -
    -To mitigate abuse issues, each onion router's exit policy -describes to which external addresses and ports the router will -connect. On one end of the spectrum are open exit -nodes that will connect anywhere. On the other end are middleman -nodes that only relay traffic to other Tor nodes, and private exit -nodes that only connect to a local host or network. A private -exit can allow a client to connect to a given host or -network more securely — an external adversary cannot eavesdrop traffic -between the private exit and the final destination, and so is less sure of -Alice's destination and activities. Most onion routers in the current -network function as -restricted exits that permit connections to the world at large, -but prevent access to certain abuse-prone addresses and services such -as SMTP. -The OR might also be able to authenticate clients to -prevent exit abuse without harming anonymity [48]. - -
    - -
    -Many administrators use port restrictions to support only a -limited set of services, such as HTTP, SSH, or AIM. -This is not a complete solution, of course, since abuse opportunities for these -protocols are still well known. - -
    -We have not yet encountered any abuse in the deployed network, but if -we do we should consider using proxies to clean traffic for certain -protocols as it leaves the network. For example, much abusive HTTP -behavior (such as exploiting buffer overflows or well-known script -vulnerabilities) can be detected in a straightforward manner. -Similarly, one could run automatic spam filtering software (such as -SpamAssassin) on email exiting the OR network. - -
    -ORs may also rewrite exiting traffic to append -headers or other information indicating that the traffic has passed -through an anonymity service. This approach is commonly used -by email-only anonymity systems. ORs can also -run on servers with hostnames like anonymous to further -alert abuse targets to the nature of the anonymous traffic. - -
    -A mixture of open and restricted exit nodes allows the most -flexibility for volunteers running servers. But while having many -middleman nodes provides a large and robust network, -having only a few exit nodes reduces the number of points -an adversary needs to monitor for traffic analysis, and places a -greater burden on the exit nodes. This tension can be seen in the -Java Anon Proxy -cascade model, wherein only one node in each cascade needs to handle -abuse complaints — but an adversary only needs to observe the entry -and exit of a cascade to perform traffic analysis on all that -cascade's users. The hydra model (many entries, few exits) presents a -different compromise: only a few exit nodes are needed, but an -adversary needs to work harder to watch all the clients; see -Section 10. - -
    -Finally, we note that exit abuse must not be dismissed as a peripheral -issue: when a system's public image suffers, it can reduce the number -and diversity of that system's users, and thereby reduce the anonymity -of the system itself. Like usability, public perception is a -security parameter. Sadly, preventing abuse of open exit nodes is an -unsolved problem, and will probably remain an arms race for the -foreseeable future. The abuse problems faced by Princeton's CoDeeN -project [37] give us a glimpse of likely issues. - -
    -

    - -6.3  Directory Servers

    - - -
    -First-generation Onion Routing designs [8,41] used -in-band network status updates: each router flooded a signed statement -to its neighbors, which propagated it onward. But anonymizing networks -have different security goals than typical link-state routing protocols. -For example, delays (accidental or intentional) -that can cause different parts of the network to have different views -of link-state and topology are not only inconvenient: they give -attackers an opportunity to exploit differences in client knowledge. -We also worry about attacks to deceive a -client about the router membership list, topology, or current network -state. Such partitioning attacks on client knowledge help an -adversary to efficiently deploy resources -against a target [15]. - -
    -Tor uses a small group of redundant, well-known onion routers to -track changes in network topology and node state, including keys and -exit policies. Each such directory server acts as an HTTP -server, so clients can fetch current network state -and router lists, and so other ORs can upload -state information. Onion routers periodically publish signed -statements of their state to each directory server. The directory servers -combine this information with their own views of network liveness, -and generate a signed description (a directory) of the entire -network state. Client software is -pre-loaded with a list of the directory servers and their keys, -to bootstrap each client's view of the network. - -
    -When a directory server receives a signed statement for an OR, it -checks whether the OR's identity key is recognized. Directory -servers do not advertise unrecognized ORs — if they did, -an adversary could take over the network by creating many -servers [22]. Instead, new nodes must be approved by the -directory -server administrator before they are included. Mechanisms for automated -node approval are an area of active research, and are discussed more -in Section 9. - -
    -Of course, a variety of attacks remain. An adversary who controls -a directory server can track clients by providing them different -information — perhaps by listing only nodes under its control, or by -informing only certain clients about a given node. Even an external -adversary can exploit differences in client knowledge: clients who use -a node listed on one directory server but not the others are vulnerable. - -
    -Thus these directory servers must be synchronized and redundant, so -that they can agree on a common directory. Clients should only trust -this directory if it is signed by a threshold of the directory -servers. - -
    -The directory servers in Tor are modeled after those in -Mixminion [15], but our situation is easier. First, -we make the -simplifying assumption that all participants agree on the set of -directory servers. Second, while Mixminion needs to predict node -behavior, Tor only needs a threshold consensus of the current -state of the network. Third, we assume that we can fall back to the -human administrators to discover and resolve problems when a consensus -directory cannot be reached. Since there are relatively few directory -servers (currently 3, but we expect as many as 9 as the network scales), -we can afford operations like broadcast to simplify the consensus-building -protocol. - -
    -To avoid attacks where a router connects to all the directory servers -but refuses to relay traffic from other routers, the directory servers -must also build circuits and use them to anonymously test router -reliability [18]. Unfortunately, this defense is not yet -designed or -implemented. - -
    -Using directory servers is simpler and more flexible than flooding. -Flooding is expensive, and complicates the analysis when we -start experimenting with non-clique network topologies. Signed -directories can be cached by other -onion routers, -so directory servers are not a performance -bottleneck when we have many users, and do not aid traffic analysis by -forcing clients to announce their existence to any -central point. - -
    -

    - -7  Attacks and Defenses

    - - -
    -Below we summarize a variety of attacks, and discuss how well our -design withstands them.
    - -
    -Passive attacks
    -Observing user traffic patterns. Observing a user's connection -will not reveal her destination or data, but it will -reveal traffic patterns (both sent and received). Profiling via user -connection patterns requires further processing, because multiple -application streams may be operating simultaneously or in series over -a single circuit. - -
    -Observing user content. While content at the user end is encrypted, -connections to responders may not be (indeed, the responding website -itself may be hostile). While filtering content is not a primary goal -of Onion Routing, Tor can directly use Privoxy and related -filtering services to anonymize application data streams. - -
    -Option distinguishability. We allow clients to choose -configuration options. For example, clients concerned about request -linkability should rotate circuits more often than those concerned -about traceability. Allowing choice may attract users with different -needs; but clients who are -in the minority may lose more anonymity by appearing distinct than they -gain by optimizing their behavior [1]. - -
    -End-to-end timing correlation. Tor only minimally hides -such correlations. An attacker watching patterns of -traffic at the initiator and the responder will be -able to confirm the correspondence with high probability. The -greatest protection currently available against such confirmation is to hide -the connection between the onion proxy and the first Tor node, -by running the OP on the Tor node or behind a firewall. This approach -requires an observer to separate traffic originating at the onion -router from traffic passing through it: a global observer can do this, -but it might be beyond a limited observer's capabilities. - -
    -End-to-end size correlation. Simple packet counting -will also be effective in confirming -endpoints of a stream. However, even without padding, we may have some -limited protection: the leaky pipe topology means different numbers -of packets may enter one end of a circuit than exit at the other. - -
    -Website fingerprinting. All the effective passive -attacks above are traffic confirmation attacks, -which puts them outside our design goals. There is also -a passive traffic analysis attack that is potentially effective. -Rather than searching exit connections for timing and volume -correlations, the adversary may build up a database of -"fingerprints" containing file sizes and access patterns for -targeted websites. He can later confirm a user's connection to a given -site simply by consulting the database. This attack has -been shown to be effective against SafeWeb [29]. -It may be less effective against Tor, since -streams are multiplexed within the same circuit, and -fingerprinting will be limited to -the granularity of cells (currently 512 bytes). Additional -defenses could include -larger cell sizes, padding schemes to group websites -into large sets, and link -padding or long-range dummies.4
    - -
    -Active attacks
    -Compromise keys. An attacker who learns the TLS session key can -see control cells and encrypted relay cells on every circuit on that -connection; learning a circuit -session key lets him unwrap one layer of the encryption. An attacker -who learns an OR's TLS private key can impersonate that OR for the TLS -key's lifetime, but he must -also learn the onion key to decrypt create cells (and because of -perfect forward secrecy, he cannot hijack already established circuits -without also compromising their session keys). Periodic key rotation -limits the window of opportunity for these attacks. On the other hand, -an attacker who learns a node's identity key can replace that node -indefinitely by sending new forged descriptors to the directory servers. - -
    -Iterated compromise. A roving adversary who can -compromise ORs (by system intrusion, legal coercion, or extralegal -coercion) could march down the circuit compromising the -nodes until he reaches the end. Unless the adversary can complete -this attack within the lifetime of the circuit, however, the ORs -will have discarded the necessary information before the attack can -be completed. (Thanks to the perfect forward secrecy of session -keys, the attacker cannot force nodes to decrypt recorded -traffic once the circuits have been closed.) Additionally, building -circuits that cross jurisdictions can make legal coercion -harder — this phenomenon is commonly called "jurisdictional -arbitrage." The Java Anon Proxy project recently experienced the -need for this approach, when -a German court forced them to add a backdoor to -their nodes [51]. - -
    -Run a recipient. An adversary running a webserver -trivially learns the timing patterns of users connecting to it, and -can introduce arbitrary patterns in its responses. -End-to-end attacks become easier: if the adversary can induce -users to connect to his webserver (perhaps by advertising -content targeted to those users), he now holds one end of their -connection. There is also a danger that application -protocols and associated programs can be induced to reveal information -about the initiator. Tor depends on Privoxy and similar protocol cleaners -to solve this latter problem. - -
    -Run an onion proxy. It is expected that end users will -nearly always run their own local onion proxy. However, in some -settings, it may be necessary for the proxy to run -remotely — typically, in institutions that want -to monitor the activity of those connecting to the proxy. -Compromising an onion proxy compromises all future connections -through it. - -
    -DoS non-observed nodes. An observer who can only watch some -of the Tor network can increase the value of this traffic -by attacking non-observed nodes to shut them down, reduce -their reliability, or persuade users that they are not trustworthy. -The best defense here is robustness. - -
    -Run a hostile OR. In addition to being a local observer, -an isolated hostile node can create circuits through itself, or alter -traffic patterns to affect traffic at other nodes. Nonetheless, a hostile -node must be immediately adjacent to both endpoints to compromise the -anonymity of a circuit. If an adversary can -run multiple ORs, and can persuade the directory servers -that those ORs are trustworthy and independent, then occasionally -some user will choose one of those ORs for the start and another -as the end of a circuit. If an adversary -controls m > 1 of N nodes, he can correlate at most -([m/N])2 of the traffic — although an -adversary -could still attract a disproportionately large amount of traffic -by running an OR with a permissive exit policy, or by -degrading the reliability of other routers. - -
    -Introduce timing into messages. This is simply a stronger -version of passive timing attacks already discussed earlier. - -
    -Tagging attacks. A hostile node could "tag" a -cell by altering it. If the -stream were, for example, an unencrypted request to a Web site, -the garbled content coming out at the appropriate time would confirm -the association. However, integrity checks on cells prevent -this attack. - -
    -Replace contents of unauthenticated protocols. When -relaying an unauthenticated protocol like HTTP, a hostile exit node -can impersonate the target server. Clients -should prefer protocols with end-to-end authentication. - -
    -Replay attacks. Some anonymity protocols are vulnerable -to replay attacks. Tor is not; replaying one side of a handshake -will result in a different negotiated session key, and so the rest -of the recorded session can't be used. - -
    -Smear attacks. An attacker could use the Tor network for -socially disapproved acts, to bring the -network into disrepute and get its operators to shut it down. -Exit policies reduce the possibilities for abuse, but -ultimately the network requires volunteers who can tolerate -some political heat. - -
    -Distribute hostile code. An attacker could trick users -into running subverted Tor software that did not, in fact, anonymize -their connections — or worse, could trick ORs into running weakened -software that provided users with less anonymity. We address this -problem (but do not solve it completely) by signing all Tor releases -with an official public key, and including an entry in the directory -that lists which versions are currently believed to be secure. To -prevent an attacker from subverting the official release itself -(through threats, bribery, or insider attacks), we provide all -releases in source code form, encourage source audits, and -frequently warn our users never to trust any software (even from -us) that comes without source.
    - -
    -Directory attacks
    -Destroy directory servers. If a few directory -servers disappear, the others still decide on a valid -directory. So long as any directory servers remain in operation, -they will still broadcast their views of the network and generate a -consensus directory. (If more than half are destroyed, this -directory will not, however, have enough signatures for clients to -use it automatically; human intervention will be necessary for -clients to decide whether to trust the resulting directory.) - -
    -Subvert a directory server. By taking over a directory server, -an attacker can partially influence the final directory. Since ORs -are included or excluded by majority vote, the corrupt directory can -at worst cast a tie-breaking vote to decide whether to include -marginal ORs. It remains to be seen how often such marginal cases -occur in practice. - -
    -Subvert a majority of directory servers. An adversary who controls -more than half the directory servers can include as many compromised -ORs in the final directory as he wishes. We must ensure that directory -server operators are independent and attack-resistant. - -
    -Encourage directory server dissent. The directory -agreement protocol assumes that directory server operators agree on -the set of directory servers. An adversary who can persuade some -of the directory server operators to distrust one another could -split the quorum into mutually hostile camps, thus partitioning -users based on which directory they use. Tor does not address -this attack. - -
    -Trick the directory servers into listing a hostile OR. -Our threat model explicitly assumes directory server operators will -be able to filter out most hostile ORs. - -
    -Convince the directories that a malfunctioning OR is -working. In the current Tor implementation, directory servers -assume that an OR is running correctly if they can start a TLS -connection to it. A hostile OR could easily subvert this test by -accepting TLS connections from ORs but ignoring all cells. Directory -servers must actively test ORs by building circuits and streams as -appropriate. The tradeoffs of a similar approach are discussed -in [18].
    - -
    -Attacks against rendezvous points
    -Make many introduction requests. An attacker could -try to deny Bob service by flooding his introduction points with -requests. Because the introduction points can block requests that -lack authorization tokens, however, Bob can restrict the volume of -requests he receives, or require a certain amount of computation for -every request he receives. - -
    -Attack an introduction point. An attacker could -disrupt a location-hidden service by disabling its introduction -points. But because a service's identity is attached to its public -key, the service can simply re-advertise -itself at a different introduction point. Advertisements can also be -done secretly so that only high-priority clients know the address of -Bob's introduction points or so that different clients know of different -introduction points. This forces the attacker to disable all possible -introduction points. - -
    -Compromise an introduction point. An attacker who controls -Bob's introduction point can flood Bob with -introduction requests, or prevent valid introduction requests from -reaching him. Bob can notice a flood, and close the circuit. To notice -blocking of valid requests, however, he should periodically test the -introduction point by sending rendezvous requests and making -sure he receives them. - -
    -Compromise a rendezvous point. A rendezvous -point is no more sensitive than any other OR on -a circuit, since all data passing through the rendezvous is encrypted -with a session key shared by Alice and Bob. - -
    -

    - -8  Early experiences: Tor in the Wild

    - - -
    -As of mid-May 2004, the Tor network consists of 32 nodes -(24 in the US, 8 in Europe), and more are joining each week as the code -matures. (For comparison, the current remailer network -has about 40 nodes.) Each node has at least a 768Kb/768Kb connection, and -many have 10Mb. The number of users varies (and of course, it's hard to -tell for sure), but we sometimes have several hundred users — administrators at -several companies have begun sending their entire departments' web -traffic through Tor, to block other divisions of -their company from reading their traffic. Tor users have reported using -the network for web browsing, FTP, IRC, AIM, Kazaa, SSH, and -recipient-anonymous email via rendezvous points. One user has anonymously -set up a Wiki as a hidden service, where other users anonymously publish -the addresses of their hidden services. - -
    -Each Tor node currently processes roughly 800,000 relay -cells (a bit under half a gigabyte) per week. On average, about 80% -of each 498-byte payload is full for cells going back to the client, -whereas about 40% is full for cells coming from the client. (The difference -arises because most of the network's traffic is web browsing.) Interactive -traffic like SSH brings down the average a lot — once we have more -experience, and assuming we can resolve the anonymity issues, we may -partition traffic into two relay cell sizes: one to handle -bulk traffic and one for interactive traffic. - -
    -Based in part on our restrictive default exit policy (we -reject SMTP requests) and our low profile, we have had no abuse -issues since the network was deployed in October -2003. Our slow growth rate gives us time to add features, -resolve bugs, and get a feel for what users actually want from an -anonymity system. Even though having more users would bolster our -anonymity sets, we are not eager to attract the Kazaa or warez -communities — we feel that we must build a reputation for privacy, human -rights, research, and other socially laudable activities. - -
    -As for performance, profiling shows that Tor spends almost -all its CPU time in AES, which is fast. Current latency is attributable -to two factors. First, network latency is critical: we are -intentionally bouncing traffic around the world several times. Second, -our end-to-end congestion control algorithm focuses on protecting -volunteer servers from accidental DoS rather than on optimizing -performance. To quantify these effects, we did some informal tests using a network of 4 -nodes on the same machine (a heavily loaded 1GHz Athlon). We downloaded a 60 -megabyte file from debian.org every 30 minutes for 54 hours (108 sample -points). It arrived in about 300 seconds on average, compared to 210s for a -direct download. We ran a similar test on the production Tor network, -fetching the front page of cnn.com (55 kilobytes): -while a direct -download consistently took about 0.3s, the performance through Tor varied. -Some downloads were as fast as 0.4s, with a median at 2.8s, and -90% finishing within 5.3s. It seems that as the network expands, the chance -of building a slow circuit (one that includes a slow or heavily loaded node -or link) is increasing. On the other hand, as our users remain satisfied -with this increased latency, we can address our performance incrementally as we -proceed with development. -
    - -
    - -
    -Although Tor's clique topology and full-visibility directories present -scaling problems, we still expect the network to support a few hundred -nodes and maybe 10,000 users before we're forced to become -more distributed. With luck, the experience we gain running the current -topology will help us choose among alternatives when the time comes. - -
    -

    - -9  Open Questions in Low-latency Anonymity

    - - -
    -In addition to the non-goals in -Section 3, many questions must be solved -before we can be confident of Tor's security. - -
    -Many of these open issues are questions of balance. For example, -how often should users rotate to fresh circuits? Frequent rotation -is inefficient, expensive, and may lead to intersection attacks and -predecessor attacks [54], but infrequent rotation makes the -user's traffic linkable. Besides opening fresh circuits, clients can -also exit from the middle of the circuit, -or truncate and re-extend the circuit. More analysis is -needed to determine the proper tradeoff. - -
    - -
    -How should we choose path lengths? If Alice always uses two hops, -then both ORs can be certain that by colluding they will learn about -Alice and Bob. In our current approach, Alice always chooses at least -three nodes unrelated to herself and her destination. -Should Alice choose a random path length (e.g. from a geometric -distribution) to foil an attacker who -uses timing to learn that he is the fifth hop and thus concludes that -both Alice and the responder are running ORs? - -
    -Throughout this paper, we have assumed that end-to-end traffic -confirmation will immediately and automatically defeat a low-latency -anonymity system. Even high-latency anonymity systems can be -vulnerable to end-to-end traffic confirmation, if the traffic volumes -are high enough, and if users' habits are sufficiently -distinct [14,31]. Can anything be -done to -make low-latency systems resist these attacks as well as high-latency -systems? Tor already makes some effort to conceal the starts and ends of -streams by wrapping long-range control commands in identical-looking -relay cells. Link padding could frustrate passive observers who count -packets; long-range padding could work against observers who own the -first hop in a circuit. But more research remains to find an efficient -and practical approach. Volunteers prefer not to run constant-bandwidth -padding; but no convincing traffic shaping approach has been -specified. Recent work on long-range padding [33] -shows promise. One could also try to reduce correlation in packet timing -by batching and re-ordering packets, but it is unclear whether this could -improve anonymity without introducing so much latency as to render the -network unusable. - -
    -A cascade topology may better defend against traffic confirmation by -aggregating users, and making padding and -mixing more affordable. Does the hydra topology (many input nodes, -few output nodes) work better against some adversaries? Are we going -to get a hydra anyway because most nodes will be middleman nodes? - -
    -Common wisdom suggests that Alice should run her own OR for best -anonymity, because traffic coming from her node could plausibly have -come from elsewhere. How much mixing does this approach need? Is it -immediately beneficial because of real-world adversaries that can't -observe Alice's router, but can run routers of their own? - -
    -To scale to many users, and to prevent an attacker from observing the -whole network, it may be necessary -to support far more servers than Tor currently anticipates. -This introduces several issues. First, if approval by a central set -of directory servers is no longer feasible, what mechanism should be used -to prevent adversaries from signing up many colluding servers? Second, -if clients can no longer have a complete picture of the network, -how can they perform discovery while preventing attackers from -manipulating or exploiting gaps in their knowledge? Third, if there -are too many servers for every server to constantly communicate with -every other, which non-clique topology should the network use? -(Restricted-route topologies promise comparable anonymity with better -scalability [13], but whatever topology we choose, we -need some way to keep attackers from manipulating their position within -it [21].) Fourth, if no central authority is tracking -server reliability, how do we stop unreliable servers from making -the network unusable? Fifth, do clients receive so much anonymity -from running their own ORs that we should expect them all to do -so [1], or do we need another incentive structure to -motivate them? Tarzan and MorphMix present possible solutions. - -
    - -
    -When a Tor node goes down, all its circuits (and thus streams) must break. -Will users abandon the system because of this brittleness? How well -does the method in Section 6.1 allow streams to survive -node failure? If affected users rebuild circuits immediately, how much -anonymity is lost? It seems the problem is even worse in a peer-to-peer -environment — such systems don't yet provide an incentive for peers to -stay connected when they're done retrieving content, so we would expect -a higher churn rate. - -
    - -
    -

    - -10  Future Directions

    - - -
    -Tor brings together many innovations into a unified deployable system. The -next immediate steps include: - -
    -Scalability: Tor's emphasis on deployability and design simplicity -has led us to adopt a clique topology, semi-centralized -directories, and a full-network-visibility model for client -knowledge. These properties will not scale past a few hundred servers. -Section 9 describes some promising -approaches, but more deployment experience will be helpful in learning -the relative importance of these bottlenecks. - -
    -Bandwidth classes: This paper assumes that all ORs have -good bandwidth and latency. We should instead adopt the MorphMix model, -where nodes advertise their bandwidth level (DSL, T1, T3), and -Alice avoids bottlenecks by choosing nodes that match or -exceed her bandwidth. In this way DSL users can usefully join the Tor -network. - -
    -Incentives: Volunteers who run nodes are rewarded with publicity -and possibly better anonymity [1]. More nodes means increased -scalability, and more users can mean more anonymity. We need to continue -examining the incentive structures for participating in Tor. Further, -we need to explore more approaches to limiting abuse, and understand -why most people don't bother using privacy systems. - -
    -Cover traffic: Currently Tor omits cover traffic — its costs -in performance and bandwidth are clear but its security benefits are -not well understood. We must pursue more research on link-level cover -traffic and long-range cover traffic to determine whether some simple padding -method offers provable protection against our chosen adversary. - -
    - -
    -Caching at exit nodes: Perhaps each exit node should run a -caching web proxy [47], to improve anonymity for cached pages -(Alice's request never -leaves the Tor network), to improve speed, and to reduce bandwidth cost. -On the other hand, forward security is weakened because caches -constitute a record of retrieved files. We must find the right -balance between usability and security. - -
    -Better directory distribution: -Clients currently download a description of -the entire network every 15 minutes. As the state grows larger -and clients more numerous, we may need a solution in which -clients receive incremental updates to directory state. -More generally, we must find more -scalable yet practical ways to distribute up-to-date snapshots of -network status without introducing new attacks. - -
    -Further specification review: Our public -byte-level specification [20] needs -external review. We hope that as Tor -is deployed, more people will examine its -specification. - -
    -Multisystem interoperability: We are currently working with the -designer of MorphMix to unify the specification and implementation of -the common elements of our two systems. So far, this seems -to be relatively straightforward. Interoperability will allow testing -and direct comparison of the two designs for trust and scalability. - -
    -Wider-scale deployment: The original goal of Tor was to -gain experience in deploying an anonymizing overlay network, and -learn from having actual users. We are now at a point in design -and development where we can start deploying a wider network. Once -we have many actual users, we will doubtlessly be better -able to evaluate some of our design decisions, including our -robustness/latency tradeoffs, our performance tradeoffs (including -cell size), our abuse-prevention mechanisms, and -our overall usability. - -
    - -
    - -

    Acknowledgments

    - We thank Peter Palfrader, Geoff Goodell, Adam Shostack, Joseph Sokol-Margolis, - John Bashinski, and Zack Brown - for editing and comments; - Matej Pfajfar, Andrei Serjantov, Marc Rennhard for design discussions; - Bram Cohen for congestion control discussions; - Adam Back for suggesting telescoping circuits; and - Cathy Meadows for formal analysis of the extend protocol. - This work has been supported by ONR and DARPA. - -
    - -
    - -
    -

    References

    - -
    -
    [1]
    -A. Acquisti, R. Dingledine, and P. Syverson. - On the economics of anonymity. - In R. N. Wright, editor, Financial Cryptography. - Springer-Verlag, LNCS 2742, 2003. - -
    -
    -
    [2]
    -R. Anderson. - The eternity service. - In Pragocrypt '96, 1996. - -
    -
    -
    [3]
    -The Anonymizer. - <http://anonymizer.com/>. - -
    -
    -
    [4]
    -A. Back, I. Goldberg, and A. Shostack. - Freedom systems 2.1 security issues and analysis. - White paper, Zero Knowledge Systems, Inc., May 2001. - -
    -
    -
    [5]
    -A. Back, U. Möller, and A. Stiglic. - Traffic analysis attacks and trade-offs in anonymity providing - systems. - In I. S. Moskowitz, editor, Information Hiding (IH 2001), pages - 245-257. Springer-Verlag, LNCS 2137, 2001. - -
    -
    -
    [6]
    -M. Bellare, P. Rogaway, and D. Wagner. - The EAX mode of operation: A two-pass authenticated-encryption - scheme optimized for simplicity and efficiency. - In Fast Software Encryption 2004, February 2004. - -
    -
    -
    [7]
    -O. Berthold, H. Federrath, and S. Köpsell. - Web MIXes: A system for anonymous and unobservable Internet - access. - In H. Federrath, editor, Designing Privacy Enhancing - Technologies: Workshop on Design Issue in Anonymity and Unobservability. - Springer-Verlag, LNCS 2009, 2000. - -
    -
    -
    [8]
    -P. Boucher, A. Shostack, and I. Goldberg. - Freedom systems 2.0 architecture. - White paper, Zero Knowledge Systems, Inc., December 2000. - -
    -
    -
    [9]
    -Z. Brown. - Cebolla: Pragmatic IP Anonymity. - In Ottawa Linux Symposium, June 2002. - -
    -
    -
    [10]
    -D. Chaum. - Untraceable electronic mail, return addresses, and digital - pseudo-nyms. - Communications of the ACM, 4(2), February 1981. - -
    -
    -
    [11]
    -F. Dabek, M. F. Kaashoek, D. Karger, R. Morris, and I. Stoica. - Wide-area cooperative storage with CFS. - In 18th ACM Symposium on Operating Systems Principles - (SOSP '01), Chateau Lake Louise, Banff, Canada, October 2001. - -
    -
    -
    [12]
    -W. Dai. - Pipenet 1.1. - Usenet post, August 1996. - <http://www.eskimo.com/ weidai/pipenet.txt> First mentioned in a - post to the cypherpunks list, Feb. 1995. - -
    -
    -
    [13]
    -G. Danezis. - Mix-networks with restricted routes. - In R. Dingledine, editor, Privacy Enhancing Technologies (PET - 2003). Springer-Verlag LNCS 2760, 2003. - -
    -
    -
    [14]
    -G. Danezis. - Statistical disclosure attacks. - In Security and Privacy in the Age of Uncertainty (SEC2003), - pages 421-426, Athens, May 2003. IFIP TC11, Kluwer. - -
    -
    -
    [15]
    -G. Danezis, R. Dingledine, and N. Mathewson. - Mixminion: Design of a type III anonymous remailer protocol. - In 2003 IEEE Symposium on Security and Privacy, pages 2-15. - IEEE CS, May 2003. - -
    -
    -
    [16]
    -D. Dean and A. Stubblefield. - Using Client Puzzles to Protect TLS. - In Proceedings of the 10th USENIX Security Symposium. USENIX, - Aug. 2001. - -
    -
    -
    [17]
    -T. Dierks and C. Allen. - The TLS Protocol - Version 1.0. - IETF RFC 2246, January 1999. - -
    -
    -
    [18]
    -R. Dingledine, M. J. Freedman, D. Hopwood, and D. Molnar. - A Reputation System to Increase MIX-net Reliability. - In I. S. Moskowitz, editor, Information Hiding (IH 2001), pages - 126-141. Springer-Verlag, LNCS 2137, 2001. - -
    -
    -
    [19]
    -R. Dingledine, M. J. Freedman, and D. Molnar. - The free haven project: Distributed anonymous storage service. - In H. Federrath, editor, Designing Privacy Enhancing - Technologies: Workshop on Design Issue in Anonymity and Unobservability. - Springer-Verlag, LNCS 2009, July 2000. - -
    -
    -
    [20]
    -R. Dingledine and N. Mathewson. - Tor protocol specifications. - <http://freehaven.net/tor/tor-spec.txt>. - -
    -
    -
    [21]
    -R. Dingledine and P. Syverson. - Reliable MIX Cascade Networks through Reputation. - In M. Blaze, editor, Financial Cryptography. Springer-Verlag, - LNCS 2357, 2002. - -
    -
    -
    [22]
    -J. Douceur. - The Sybil Attack. - In Proceedings of the 1st International Peer To Peer Systems - Workshop (IPTPS), Mar. 2002. - -
    -
    -
    [23]
    -H. Federrath, A. Jerichow, and A. Pfitzmann. - MIXes in mobile communication systems: Location management with - privacy. - In R. Anderson, editor, Information Hiding, First International - Workshop, pages 121-135. Springer-Verlag, LNCS 1174, May 1996. - -
    -
    -
    [24]
    -M. J. Freedman and R. Morris. - Tarzan: A peer-to-peer anonymizing network layer. - In 9th ACM Conference on Computer and Communications - Security (CCS 2002), Washington, DC, November 2002. - -
    -
    -
    [25]
    -S. Goel, M. Robson, M. Polte, and E. G. Sirer. - Herbivore: A scalable and efficient protocol for anonymous - communication. - Technical Report TR2003-1890, Cornell University Computing and - Information Science, February 2003. - -
    -
    -
    [26]
    -I. Goldberg. - A Pseudonymous Communications Infrastructure for the Internet. - PhD thesis, UC Berkeley, Dec 2000. - -
    -
    -
    [27]
    -D. M. Goldschlag, M. G. Reed, and P. F. Syverson. - Hiding routing information. - In R. Anderson, editor, Information Hiding, First International - Workshop, pages 137-150. Springer-Verlag, LNCS 1174, May 1996. - -
    -
    -
    [28]
    -C. Gülcü and G. Tsudik. - Mixing E-mail with Babel. - In Network and Distributed Security Symposium (NDSS 96), - pages 2-16. IEEE, February 1996. - -
    -
    -
    [29]
    -A. Hintz. - Fingerprinting websites using traffic analysis. - In R. Dingledine and P. Syverson, editors, Privacy Enhancing - Technologies (PET 2002), pages 171-178. Springer-Verlag, LNCS 2482, 2002. - -
    -
    -
    [30]
    -A. Jerichow, J. Müller, A. Pfitzmann, B. Pfitzmann, and M. Waidner. - Real-time mixes: A bandwidth-efficient anonymity protocol. - IEEE Journal on Selected Areas in Communications, - 16(4):495-509, May 1998. - -
    -
    -
    [31]
    -D. Kesdogan, D. Agrawal, and S. Penz. - Limits of anonymity in open environments. - In F. Petitcolas, editor, Information Hiding Workshop (IH - 2002). Springer-Verlag, LNCS 2578, October 2002. - -
    -
    -
    [32]
    -D. Koblas and M. R. Koblas. - SOCKS. - In UNIX Security III Symposium (1992 USENIX Security - Symposium), pages 77-83. USENIX, 1992. - -
    -
    -
    [33]
    -B. N. Levine, M. K. Reiter, C. Wang, and M. Wright. - Timing analysis in low-latency mix-based systems. - In A. Juels, editor, Financial Cryptography. Springer-Verlag, - LNCS (forthcoming), 2004. - -
    -
    -
    [34]
    -B. N. Levine and C. Shields. - Hordes: A multicast-based protocol for anonymity. - Journal of Computer Security, 10(3):213-240, 2002. - -
    -
    -
    [35]
    -C. Meadows. - The NRL protocol analyzer: An overview. - Journal of Logic Programming, 26(2):113-131, 1996. - -
    -
    -
    [36]
    -U. Möller, L. Cottrell, P. Palfrader, and L. Sassaman. - Mixmaster Protocol - Version 2. - Draft, July 2003. - <http://www.abditum.com/mixmaster-spec.txt>. - -
    -
    -
    [37]
    -V. S. Pai, L. Wang, K. Park, R. Pang, and L. Peterson. - The Dark Side of the Web: An Open Proxy's View. - <http://codeen.cs.princeton.edu/>. - -
    -
    -
    [38]
    -A. Pfitzmann, B. Pfitzmann, and M. Waidner. - ISDN-mixes: Untraceable communication with very small bandwidth - overhead. - In GI/ITG Conference on Communication in Distributed Systems, - pages 451-463, February 1991. - -
    -
    -
    [39]
    -Privoxy. - <http://www.privoxy.org/>. - -
    -
    -
    [40]
    -M. G. Reed, P. F. Syverson, and D. M. Goldschlag. - Protocols using anonymous connections: Mobile applications. - In B. Christianson, B. Crispo, M. Lomas, and M. Roe, editors, - Security Protocols: 5th International Workshop, pages 13-23. - Springer-Verlag, LNCS 1361, April 1997. - -
    -
    -
    [41]
    -M. G. Reed, P. F. Syverson, and D. M. Goldschlag. - Anonymous connections and onion routing. - IEEE Journal on Selected Areas in Communications, - 16(4):482-494, May 1998. - -
    -
    -
    [42]
    -M. K. Reiter and A. D. Rubin. - Crowds: Anonymity for web transactions. - ACM TISSEC, 1(1):66-92, June 1998. - -
    -
    -
    [43]
    -M. Rennhard and B. Plattner. - Practical anonymity for the masses with morphmix. - In A. Juels, editor, Financial Cryptography. Springer-Verlag, - LNCS (forthcoming), 2004. - -
    -
    -
    [44]
    -M. Rennhard, S. Rafaeli, L. Mathy, B. Plattner, and D. Hutchison. - Analysis of an Anonymity Network for Web Browsing. - In IEEE 7th Intl. Workshop on Enterprise Security (WET ICE - 2002), Pittsburgh, USA, June 2002. - -
    -
    -
    [45]
    -A. Serjantov and P. Sewell. - Passive attack analysis for connection-based anonymity systems. - In Computer Security - ESORICS 2003. Springer-Verlag, LNCS - 2808, October 2003. - -
    -
    -
    [46]
    -R. Sherwood, B. Bhattacharjee, and A. Srinivasan. - p5: A protocol for scalable anonymous communication. - In IEEE Symposium on Security and Privacy, pages 58-70. IEEE - CS, 2002. - -
    -
    -
    [47]
    -A. Shubina and S. Smith. - Using caching for browsing anonymity. - ACM SIGEcom Exchanges, 4(2), Sept 2003. - -
    -
    -
    [48]
    -P. Syverson, M. Reed, and D. Goldschlag. - Onion Routing access configurations. - In DARPA Information Survivability Conference and Exposition - (DISCEX 2000), volume 1, pages 34-40. IEEE CS Press, 2000. - -
    -
    -
    [49]
    -P. Syverson, G. Tsudik, M. Reed, and C. Landwehr. - Towards an Analysis of Onion Routing Security. - In H. Federrath, editor, Designing Privacy Enhancing - Technologies: Workshop on Design Issue in Anonymity and Unobservability, - pages 96-114. Springer-Verlag, LNCS 2009, July 2000. - -
    -
    -
    [50]
    -A. Tannenbaum. - Computer networks, 1996. - -
    -
    -
    [51]
    -The AN.ON Project. - German police proceeds against anonymity service. - Press release, September 2003. - - <http://www.datenschutzzentrum.de/material/themen/presse/anon-bka_e.htm>. - -
    -
    -
    [52]
    -M. Waldman and D. Mazières. - Tangler: A censorship-resistant publishing system based on document - entanglements. - In 8th ACM Conference on Computer and Communications - Security (CCS-8), pages 86-135. ACM Press, 2001. - -
    -
    -
    [53]
    -M. Waldman, A. Rubin, and L. Cranor. - Publius: A robust, tamper-evident, censorship-resistant and - source-anonymous web publishing system. - In Proc. 9th USENIX Security Symposium, pages 59-72, August - 2000. - -
    -
    -
    [54]
    -M. Wright, M. Adler, B. N. Levine, and C. Shields. - Defending anonymous communication against passive logging attacks. - In IEEE Symposium on Security and Privacy, pages 28-41. IEEE - CS, May 2003.
    -
    - - -
    -

    Footnotes:

    - -
    -1Actually, the negotiated key is used to derive two - symmetric keys: one for each direction. -
    -2 - With 48 bits of digest per cell, the probability of an accidental -collision is far lower than the chance of hardware failure. -
    -3 -Rather than rely on an external infrastructure, the Onion Routing network -can run the lookup service itself. Our current implementation provides a -simple lookup system on the -directory servers. -
    -4Note that this fingerprinting -attack should not be confused with the much more complicated latency -attacks of [5], which require a fingerprint of the latencies -of all circuits through the network, combined with those from the -network edges to the target user and the responder website. -


    File translated from -TEX -by -TTH, -version 3.59.
    On 18 May 2004, 10:45.
    - - diff --git a/doc/design-paper/tor-design.pdf b/doc/design-paper/tor-design.pdf deleted file mode 100644 index 76a226515397791ced23deeff72df459b0a4578e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175246 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

    o4by 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�gl80d^#%TiKO~5h#~UJD~?u;Q2D%5Rgk7>33~gNWQGj7Vg*#e02P^aRnjYz)qdo0cZDR(5_+ zxA)&(13AbeO1%ME{gtwNm3%@{VGbXjvm7RJ&NtH)GP1Sg(Rb~#rxBxNMD+ix_q_+T zT>-H1D>@|?G?*3>FDAKq&o_bFi!r6IjE?)2!3lExH2Q{uVyFJ^4s#88;*svNReoh6 zEgzY}Vv?3PeU5op-c?qh?QHRlY(kY4q|i;iWoPi^o0XP?^sTJ@A9$UTL{w3gwJh1# z{a}&VGs-_Mz@RSN1^OsNJ1YVbjKV<|>32$mUqDV8)C^13cYvAgH!gw`E;~m{+Td*! zW2GNouQp+rOFmI=>a6)4Jm~%rV$z?eQvD;1JrbX!M**9otC2xx!P+Ro+|B@-^-kgd zH!ZKRr8CUD?FLPzc^G(?qv5(&$`>%Vp%?D2DU!3x=J>LarKN`SAwSGc%a=mozb>+w zkx;mEu&x#%Dkk#bk(BH(O!*W>YqgZPDpQt0(|UV`!Hr&%f5Jz?lytSy!p(lLRtLv~ zcMlZSGC+Ux+m)IFhP9{Y5&uEmPKT%xhR_KJ?a*L6swWHo^0V%JeO*O;Lyqpka*J7g zq@3Baq6S*lNuKiiLpgDEQRrcTTCL(|vC}o#;(9fYUbieH*r!l+OnV^zhiSg4zJo0< z4l~zbmi)Zr*KNScN0*9GBcV?^74{oo!A31u*IXt;S z!pnkO(%jeySu9nDNaqXuqJ8>}5o6s8H7wI`I|&h<_#kpCr4qJoX|5Ohv}})aBz<>w zak(G9`Z-=`{))1UZZG0F5lZH(Bo@~xo7Up1d3{Lv9>W5lIT&>y&%P7+6@Sp!*!1nF z4W|&H!vmQ0NWL6lX|a6b_1fQ@{W=7`q@{aR-!4$Y+%kXuOHFax(+`3ULdh}mDqVmd zEjaR5z+^^4cGz*XQ~UX7W)A)!FFbKKW#iA~>1tNx1|`Mg%giC;rVhsy+|&7UjpE2K z&ex2HDRWVumZ}0H3!MnKEKKv&)4CFg$Jz^?t?L6D^Vtii$)T>mxq z@4fy@(Dnb@R+%L^H~_5w2ccKC|H{Sx{+XDUi|v2vtSP#>_Ir{I|KY5~f%Rxt$y|!* zNvMeuRQLl1=a5u))8x81tXSpdNjH{$AB&pm3JEyiOlYC9&eze)4j=V}*v;U3T<}N| zw?x-Qu*^*fzwh1UP3GShvX$-?klXyV$2Kr-VL0z1wDXN}>SqmzNrmm1HmJeoYL?}B zk7*QYZLx*%!tm;{kps<|ScUJzs_4{~_wgaG@&3`!bYm?E)ciDjT#ePBnAxcq=USkSfJY;2i=RhJ{*ytxBW0_f#gD-Ir&t~_ zGPuF~qRt!;N~*ppau(_oaDg!6@mM zV3S}rVTZx01RtJ`XjvEOsmz#k{yC6Zk)QiVo(=y^`+(=QE$-Q2mz|Z4@hC^`hMf*f zVI%nK>oj6{(L!8_?<~mxwJWngN8`l=z(<(zau@E@Msc-1$-ukwcBiEHW42TexN&^E zeQS&RPV!?XMa&W1bnB~)clyb&MhN5<(x?y_ziZ~e_NzY0yI$)aE|W#C*wU|VH+xMS z|EKE@Fd>sqmNwpdVKpnl;8V%_gGl7xQp&o3It>Ki`W&ZT(V~didT0x=@t4GpbGkQ` zwzypd%+U%Vjz{ErN3q#A%?qJ9Z0+s{w|cthVG0oA+K?6o(Q=ADMev-o#dxuRd&Kd4 z-@q}-M<}MlJ0EXKInBe4N+I!rH zVZTrH%!2Cd+P2nY!{PB2LLBkDiDz^z6bwn0T;{wfP(%b;t)_{uGXvL>9a^fB9S|w8 zfZyk3LEmw9Rlgx>N#$$SSRrr&}<6PP{|D1XAUbuMu0s6>J$rZLAjIq-F$I#L(nn4l9z6)&C)KqLNM^@2G@1~ zvAm(i&zjp`5{^_Wf0kudjw6~&l0vhHb&6|54`(L#ITqGY=lg_6ZkKkES|jRgzWFUN6Bq z

    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\urlstyle{tt}\Url} -\newcommand\emailaddr{\begingroup \def\UrlLeft{<}\def\UrlRight{>}\urlstyle{tt}\Url} - -\newcommand{\workingnote}[1]{} % The version that hides the note. -%\newcommand{\workingnote}[1]{(**#1)} % The version that makes the note visible. - -% If an URL ends up with '%'s in it, that's because the line *in the .bib/.tex -% file* is too long, so break it there (it doesn't matter if the next line is -% indented with spaces). -DH - -%\newif\ifpdf -%\ifx\pdfoutput\undefined -% \pdffalse -%\else -% \pdfoutput=1 -% \pdftrue -%\fi - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} - -% Cut down on whitespace above and below figures displayed at head/foot of -% page. -\setlength{\textfloatsep}{3mm} -% Cut down on whitespace above and below figures displayed in middle of page -\setlength{\intextsep}{3mm} - -\begin{document} - -%% Use dvipdfm instead. --DH -%\ifpdf -% \pdfcompresslevel=9 -% \pdfpagewidth=\the\paperwidth -% \pdfpageheight=\the\paperheight -%\fi - -\title{Tor: The Second-Generation Onion Router} %\\DRAFT VERSION} -% Putting the 'Private' back in 'Virtual Private Network' - -\author{Roger Dingledine \\ The Free Haven Project \\ arma@freehaven.net \and -Nick Mathewson \\ The Free Haven Project \\ nickm@freehaven.net \and -Paul Syverson \\ Naval Research Lab \\ syverson@itd.nrl.navy.mil} - -\maketitle -\thispagestyle{empty} - -\begin{abstract} -We present Tor, a circuit-based low-latency anonymous communication -service. This second-generation Onion Routing system addresses limitations -in the original design by adding perfect forward secrecy, congestion -control, directory servers, integrity checking, configurable exit policies, -and a practical design for location-hidden services via rendezvous -points. Tor works on the real-world -Internet, requires no special privileges or kernel modifications, requires -little synchronization or coordination between nodes, and provides a -reasonable tradeoff between anonymity, usability, and efficiency. -We briefly describe our experiences with an international network of -more than 30 nodes. % that has been running for several months. -We close with a list of open problems in anonymous communication. -\end{abstract} - -%\begin{center} -%\textbf{Keywords:} anonymity, peer-to-peer, remailer, nymserver, reply block -%\end{center} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Overview} -\label{sec:intro} - -Onion Routing is a distributed overlay network designed to anonymize -TCP-based applications like web browsing, secure shell, -and instant messaging. Clients choose a path through the network and -build a \emph{circuit}, in which each node (or ``onion router'' or ``OR'') -in the path knows its predecessor and successor, but no other nodes in -the circuit. Traffic flows down the circuit in fixed-size -\emph{cells}, which are unwrapped by a symmetric key at each node -(like the layers of an onion) and relayed downstream. The -Onion Routing project published several design and analysis -papers \cite{or-ih96,or-jsac98,or-discex00,or-pet00}. While a wide area Onion -Routing network was deployed briefly, the only long-running -public implementation was a fragile -proof-of-concept that ran on a single machine. Even this simple deployment -processed connections from over sixty thousand distinct IP addresses from -all over the world at a rate of about fifty thousand per day. -But many critical design and deployment issues were never -resolved, and the design has not been updated in years. Here -we describe Tor, a protocol for asynchronous, loosely federated onion -routers that provides the following improvements over the old Onion -Routing design: - -\textbf{Perfect forward secrecy:} In the original Onion Routing design, -a single hostile node could record traffic and -later compromise successive nodes in the circuit and force them -to decrypt it. Rather than using a single multiply encrypted data -structure (an \emph{onion}) to lay each circuit, -Tor now uses an incremental or \emph{telescoping} path-building design, -where the initiator negotiates session keys with each successive hop in -the circuit. Once these keys are deleted, subsequently compromised nodes -cannot decrypt old traffic. As a side benefit, onion replay detection -is no longer necessary, and the process of building circuits is more -reliable, since the initiator knows when a hop fails and can then try -extending to a new node. - -\textbf{Separation of ``protocol cleaning'' from anonymity:} -Onion Routing originally required a separate ``application -proxy'' for each supported application protocol---most of which were -never written, so many applications were never supported. Tor uses the -standard and near-ubiquitous SOCKS~\cite{socks4} proxy interface, allowing -us to support most TCP-based programs without modification. Tor now -relies on the filtering features of privacy-enhancing -application-level proxies such as Privoxy~\cite{privoxy}, without trying -to duplicate those features itself. - -\textbf{No mixing, padding, or traffic shaping (yet):} Onion -Routing originally called for batching and reordering cells as they arrived, -assumed padding between ORs, and in -later designs added padding between onion proxies (users) and -ORs~\cite{or-ih96,or-jsac98}. Tradeoffs between padding protection -and cost were discussed, and \emph{traffic shaping} algorithms were -theorized~\cite{or-pet00} to provide good security without expensive -padding, but no concrete padding scheme was suggested. -Recent research~\cite{econymics} -and deployment experience~\cite{freedom21-security} suggest that this -level of resource use is not practical or economical; and even full -link padding is still vulnerable~\cite{defensive-dropping}. Thus, -until we have a proven and convenient design for traffic shaping or -low-latency mixing that improves anonymity against a realistic -adversary, we leave these strategies out. - -\textbf{Many TCP streams can share one circuit:} Onion Routing originally -built a separate circuit for each -application-level request, but this required -multiple public key operations for every request, and also presented -a threat to anonymity from building so many circuits; see -Section~\ref{sec:maintaining-anonymity}. Tor multiplexes multiple TCP -streams along each circuit to improve efficiency and anonymity. - -\textbf{Leaky-pipe circuit topology:} Through in-band signaling -within the circuit, Tor initiators can direct traffic to nodes partway -down the circuit. This novel approach -allows traffic to exit the circuit from the middle---possibly -frustrating traffic shape and volume attacks based on observing the end -of the circuit. (It also allows for long-range padding if -future research shows this to be worthwhile.) - -\textbf{Congestion control:} Earlier anonymity designs do not -address traffic bottlenecks. Unfortunately, typical approaches to -load balancing and flow control in overlay networks involve inter-node -control communication and global views of traffic. Tor's decentralized -congestion control uses end-to-end acks to maintain anonymity -while allowing nodes at the edges of the network to detect congestion -or flooding and send less data until the congestion subsides. - -\textbf{Directory servers:} The earlier Onion Routing design -planned to flood state information through the network---an approach -that can be unreliable and complex. % open to partitioning attacks. -Tor takes a simplified view toward distributing this -information. Certain more trusted nodes act as \emph{directory -servers}: they provide signed directories describing known -routers and their current state. Users periodically download them -via HTTP. - -\textbf{Variable exit policies:} Tor provides a consistent mechanism -for each node to advertise a policy describing the hosts -and ports to which it will connect. These exit policies are critical -in a volunteer-based distributed infrastructure, because each operator -is comfortable with allowing different types of traffic to exit -from his node. - -\textbf{End-to-end integrity checking:} The original Onion Routing -design did no integrity checking on data. Any node on the -circuit could change the contents of data cells as they passed by---for -example, to alter a connection request so it would connect -to a different webserver, or to `tag' encrypted traffic and look for -corresponding corrupted traffic at the network edges~\cite{minion-design}. -Tor hampers these attacks by verifying data integrity before it leaves -the network. - -%\textbf{Improved robustness to failed nodes:} A failed node -%in the old design meant that circuit building failed, but thanks to -%Tor's step-by-step circuit building, users notice failed nodes -%while building circuits and route around them. Additionally, liveness -%information from directories allows users to avoid unreliable nodes in -%the first place. -%% Can't really claim this, now that we've found so many variants of -%% attack on partial-circuit-building. -RD - -\textbf{Rendezvous points and hidden services:} -Tor provides an integrated mechanism for responder anonymity via -location-protected servers. Previous Onion Routing designs included -long-lived ``reply onions'' that could be used to build circuits -to a hidden server, but these reply onions did not provide forward -security, and became useless if any node in the path went down -or rotated its keys. In Tor, clients negotiate {\it rendezvous points} -to connect with hidden servers; reply onions are no longer required. - -Unlike Freedom~\cite{freedom2-arch}, Tor does not require OS kernel -patches or network stack support. This prevents us from anonymizing -non-TCP protocols, but has greatly helped our portability and -deployability. - -%Unlike Freedom~\cite{freedom2-arch}, Tor only anonymizes -%TCP-based protocols---not requiring patches (or built-in support) in an -%operating system's network stack has been valuable to Tor's -%portability and deployability. - -We have implemented all of the above features, including rendezvous -points. Our source code is -available under a free license, and Tor -%, as far as we know, is unencumbered by patents. -is not covered by the patent that affected distribution and use of -earlier versions of Onion Routing. -We have deployed a wide-area alpha network -to test the design, to get more experience with usability -and users, and to provide a research platform for experimentation. -As of this writing, the network stands at 32 nodes %in thirteen -%distinct administrative domains -spread over two continents. - -We review previous work in Section~\ref{sec:related-work}, describe -our goals and assumptions in Section~\ref{sec:assumptions}, -and then address the above list of improvements in -Sections~\ref{sec:design},~\ref{sec:rendezvous}, and~\ref{sec:other-design}. -We summarize -in Section~\ref{sec:attacks} how our design stands up to -known attacks, and talk about our early deployment experiences in -Section~\ref{sec:in-the-wild}. We conclude with a list of open problems in -Section~\ref{sec:maintaining-anonymity} and future work for the Onion -Routing project in Section~\ref{sec:conclusion}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Related work} -\label{sec:related-work} - -Modern anonymity systems date to Chaum's {\bf Mix-Net} -design~\cite{chaum-mix}. Chaum -proposed hiding the correspondence between sender and recipient by -wrapping messages in layers of public-key cryptography, and relaying them -through a path composed of ``mixes.'' Each mix in turn -decrypts, delays, and re-orders messages before relaying them -onward. -%toward their destinations. - -Subsequent relay-based anonymity designs have diverged in two -main directions. Systems like {\bf Babel}~\cite{babel}, -{\bf Mixmaster}~\cite{mixmaster-spec}, -and {\bf Mixminion}~\cite{minion-design} have tried -to maximize anonymity at the cost of introducing comparatively large and -variable latencies. Because of this decision, these \emph{high-latency} -networks resist strong global adversaries, -but introduce too much lag for interactive tasks like web browsing, -Internet chat, or SSH connections. - -Tor belongs to the second category: \emph{low-latency} designs that -try to anonymize interactive network traffic. These systems handle -a variety of bidirectional protocols. They also provide more convenient -mail delivery than the high-latency anonymous email -networks, because the remote mail server provides explicit and timely -delivery confirmation. But because these designs typically -involve many packets that must be delivered quickly, it is -difficult for them to prevent an attacker who can eavesdrop both ends of the -communication from correlating the timing and volume -of traffic entering the anonymity network with traffic leaving it~\cite{SS03}. -These -protocols are similarly vulnerable to an active adversary who introduces -timing patterns into traffic entering the network and looks -for correlated patterns among exiting traffic. -Although some work has been done to frustrate these attacks, most designs -protect primarily against traffic analysis rather than traffic -confirmation (see Section~\ref{subsec:threat-model}). - -The simplest low-latency designs are single-hop proxies such as the -{\bf Anonymizer}~\cite{anonymizer}: a single trusted server strips the -data's origin before relaying it. These designs are easy to -analyze, but users must trust the anonymizing proxy. -Concentrating the traffic to this single point increases the anonymity set -(the people a given user is hiding among), but it is vulnerable if the -adversary can observe all traffic entering and leaving the proxy. - -More complex are distributed-trust, circuit-based anonymizing systems. -In these designs, a user establishes one or more medium-term bidirectional -end-to-end circuits, and tunnels data in fixed-size cells. -Establishing circuits is computationally expensive and typically -requires public-key -cryptography, whereas relaying cells is comparatively inexpensive and -typically requires only symmetric encryption. -Because a circuit crosses several servers, and each server only knows -the adjacent servers in the circuit, no single server can link a -user to her communication partners. - -The {\bf Java Anon Proxy} (also known as JAP or Web MIXes) uses fixed shared -routes known as \emph{cascades}. As with a single-hop proxy, this -approach aggregates users into larger anonymity sets, but again an -attacker only needs to observe both ends of the cascade to bridge all -the system's traffic. The Java Anon Proxy's design -calls for padding between end users and the head of the -cascade~\cite{web-mix}. However, it is not demonstrated whether the current -implementation's padding policy improves anonymity. - -{\bf PipeNet}~\cite{back01, pipenet}, another low-latency design proposed -around the same time as Onion Routing, gave -stronger anonymity but allowed a single user to shut -down the network by not sending. Systems like {\bf ISDN -mixes}~\cite{isdn-mixes} were designed for other environments with -different assumptions. -%XXX please can we fix this sentence to something less demeaning - -In P2P designs like {\bf Tarzan}~\cite{tarzan:ccs02} and -{\bf MorphMix}~\cite{morphmix:fc04}, all participants both generate -traffic and relay traffic for others. These systems aim to conceal -whether a given peer originated a request -or just relayed it from another peer. While Tarzan and MorphMix use -layered encryption as above, {\bf Crowds}~\cite{crowds-tissec} simply assumes -an adversary who cannot observe the initiator: it uses no public-key -encryption, so any node on a circuit can read users' traffic. - -{\bf Hordes}~\cite{hordes-jcs} is based on Crowds but also uses multicast -responses to hide the initiator. {\bf Herbivore}~\cite{herbivore} and -$\mbox{\bf P}^{\mathbf 5}$~\cite{p5} go even further, requiring broadcast. -These systems are designed primarily for communication among peers, -although Herbivore users can make external connections by -requesting a peer to serve as a proxy. - -Systems like {\bf Freedom} and the original Onion Routing build circuits -all at once, using a layered ``onion'' of public-key encrypted messages, -each layer of which provides session keys and the address of the -next server in the circuit. Tor as described herein, Tarzan, MorphMix, -{\bf Cebolla}~\cite{cebolla}, and Rennhard's {\bf Anonymity Network}~\cite{anonnet} -build circuits -in stages, extending them one hop at a time. -Section~\ref{subsubsec:constructing-a-circuit} describes how this -approach enables perfect forward secrecy. - -Circuit-based designs must choose which protocol layer -to anonymize. They may intercept IP packets directly, and -relay them whole (stripping the source address) along the -circuit~\cite{freedom2-arch,tarzan:ccs02}. Like -Tor, they may accept TCP streams and relay the data in those streams, -ignoring the breakdown of that data into TCP -segments~\cite{morphmix:fc04,anonnet}. Finally, like Crowds, they may accept -application-level protocols such as HTTP and relay the application -requests themselves. -Making this protocol-layer decision requires a compromise between flexibility -and anonymity. For example, a system that understands HTTP -can strip -identifying information from requests, can take advantage of caching -to limit the number of requests that leave the network, and can batch -or encode requests to minimize the number of connections. -On the other hand, an IP-level anonymizer can handle nearly any protocol, -even ones unforeseen by its designers (though these systems require -kernel-level modifications to some operating systems, and so are more -complex and less portable). TCP-level anonymity networks like Tor present -a middle approach: they are application neutral (so long as the -application supports, or can be tunneled across, TCP), but by treating -application connections as data streams rather than raw TCP packets, -they avoid the inefficiencies of tunneling TCP over -TCP. - -Distributed-trust anonymizing systems need to prevent attackers from -adding too many servers and thus compromising user paths. -Tor relies on a small set of well-known directory servers, run by -independent parties, to decide which nodes can -join. Tarzan and MorphMix allow unknown users to run servers, and use -a limited resource (like IP addresses) to prevent an attacker from -controlling too much of the network. Crowds suggests requiring -written, notarized requests from potential crowd members. - -Anonymous communication is essential for censorship-resistant -systems like Eternity~\cite{eternity}, Free~Haven~\cite{freehaven-berk}, -Publius~\cite{publius}, and Tangler~\cite{tangler}. Tor's rendezvous -points enable connections between mutually anonymous entities; they -are a building block for location-hidden servers, which are needed by -Eternity and Free~Haven. - -% didn't include rewebbers. No clear place to put them, so I'll leave -% them out for now. -RD - -\section{Design goals and assumptions} -\label{sec:assumptions} - -\noindent{\large\bf Goals}\\ -Like other low-latency anonymity designs, Tor seeks to frustrate -attackers from linking communication partners, or from linking -multiple communications to or from a single user. Within this -main goal, however, several considerations have directed -Tor's evolution. - -\textbf{Deployability:} The design must be deployed and used in the -real world. Thus it -must not be expensive to run (for example, by requiring more bandwidth -than volunteers are willing to provide); must not place a heavy -liability burden on operators (for example, by allowing attackers to -implicate onion routers in illegal activities); and must not be -difficult or expensive to implement (for example, by requiring kernel -patches, or separate proxies for every protocol). We also cannot -require non-anonymous parties (such as websites) -to run our software. (Our rendezvous point design does not meet -this goal for non-anonymous users talking to hidden servers, -however; see Section~\ref{sec:rendezvous}.) - -\textbf{Usability:} A hard-to-use system has fewer users---and because -anonymity systems hide users among users, a system with fewer users -provides less anonymity. Usability is thus not only a convenience: -it is a security requirement~\cite{econymics,back01}. Tor should -therefore not -require modifying familiar applications; should not introduce prohibitive -delays; -and should require as few configuration decisions -as possible. Finally, Tor should be easily implementable on all common -platforms; we cannot require users to change their operating system -to be anonymous. (Tor currently runs on Win32, Linux, -Solaris, BSD-style Unix, MacOS X, and probably others.) - -\textbf{Flexibility:} The protocol must be flexible and well-specified, -so Tor can serve as a test-bed for future research. -Many of the open problems in low-latency anonymity -networks, such as generating dummy traffic or preventing Sybil -attacks~\cite{sybil}, may be solvable independently from the issues -solved by -Tor. Hopefully future systems will not need to reinvent Tor's design. -%(But note that while a flexible design benefits researchers, -%there is a danger that differing choices of extensions will make users -%distinguishable. Experiments should be run on a separate network.) - -\textbf{Simple design:} The protocol's design and security -parameters must be well-understood. Additional features impose implementation -and complexity costs; adding unproven techniques to the design threatens -deployability, readability, and ease of security analysis. Tor aims to -deploy a simple and stable system that integrates the best accepted -approaches to protecting anonymity.\\ - -\noindent{\large\bf Non-goals}\label{subsec:non-goals}\\ -In favoring simple, deployable designs, we have explicitly deferred -several possible goals, either because they are solved elsewhere, or because -they are not yet solved. - -\textbf{Not peer-to-peer:} Tarzan and MorphMix aim to scale to completely -decentralized peer-to-peer environments with thousands of short-lived -servers, many of which may be controlled by an adversary. This approach -is appealing, but still has many open -problems~\cite{tarzan:ccs02,morphmix:fc04}. - -\textbf{Not secure against end-to-end attacks:} Tor does not claim -to completely solve end-to-end timing or intersection -attacks. Some approaches, such as having users run their own onion routers, -may help; -see Section~\ref{sec:maintaining-anonymity} for more discussion. - -\textbf{No protocol normalization:} Tor does not provide \emph{protocol -normalization} like Privoxy or the Anonymizer. If senders want anonymity from -responders while using complex and variable -protocols like HTTP, Tor must be layered with a filtering proxy such -as Privoxy to hide differences between clients, and expunge protocol -features that leak identity. -Note that by this separation Tor can also provide services that -are anonymous to the network yet authenticated to the responder, like -SSH. Similarly, Tor does not integrate -tunneling for non-stream-based protocols like UDP; this must be -provided by an external service if appropriate. - -\textbf{Not steganographic:} Tor does not try to conceal who is connected -to the network. - -\subsection{Threat Model} -\label{subsec:threat-model} - -A global passive adversary is the most commonly assumed threat when -analyzing theoretical anonymity designs. But like all practical -low-latency systems, Tor does not protect against such a strong -adversary. Instead, we assume an adversary who can observe some fraction -of network traffic; who can generate, modify, delete, or delay -traffic; who can operate onion routers of his own; and who can -compromise some fraction of the onion routers. - -In low-latency anonymity systems that use layered encryption, the -adversary's typical goal is to observe both the initiator and the -responder. By observing both ends, passive attackers can confirm a -suspicion that Alice is -talking to Bob if the timing and volume patterns of the traffic on the -connection are distinct enough; active attackers can induce timing -signatures on the traffic to force distinct patterns. Rather -than focusing on these \emph{traffic confirmation} attacks, -we aim to prevent \emph{traffic -analysis} attacks, where the adversary uses traffic patterns to learn -which points in the network he should attack. - -Our adversary might try to link an initiator Alice with her -communication partners, or try to build a profile of Alice's -behavior. He might mount passive attacks by observing the network edges -and correlating traffic entering and leaving the network---by -relationships in packet timing, volume, or externally visible -user-selected -options. The adversary can also mount active attacks by compromising -routers or keys; by replaying traffic; by selectively denying service -to trustworthy routers to move users to -compromised routers, or denying service to users to see if traffic -elsewhere in the -network stops; or by introducing patterns into traffic that can later be -detected. The adversary might subvert the directory servers to give users -differing views of network state. Additionally, he can try to decrease -the network's reliability by attacking nodes or by performing antisocial -activities from reliable nodes and trying to get them taken down---making -the network unreliable flushes users to other less anonymous -systems, where they may be easier to attack. We summarize -in Section~\ref{sec:attacks} how well the Tor design defends against -each of these attacks. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{The Tor Design} -\label{sec:design} - -The Tor network is an overlay network; each onion router (OR) -runs as a normal -user-level process without any special privileges. -Each onion router maintains a TLS~\cite{TLS} -connection to every other onion router. -%(We discuss alternatives to this clique-topology assumption in -%Section~\ref{sec:maintaining-anonymity}.) -% A subset of the ORs also act as -%directory servers, tracking which routers are in the network; -%see Section~\ref{subsec:dirservers} for directory server details. -Each user -runs local software called an onion proxy (OP) to fetch directories, -establish circuits across the network, -and handle connections from user applications. These onion proxies accept -TCP streams and multiplex them across the circuits. The onion -router on the other side -of the circuit connects to the requested destinations -and relays data. - -Each onion router maintains a long-term identity key and a short-term -onion key. The identity -key is used to sign TLS certificates, to sign the OR's \emph{router -descriptor} (a summary of its keys, address, bandwidth, exit policy, -and so on), and (by directory servers) to sign directories. %Changing -%the identity key of a router is considered equivalent to creating a -%new router. -The onion key is used to decrypt requests -from users to set up a circuit and negotiate ephemeral keys. -The TLS protocol also establishes a short-term link key when communicating -between ORs. Short-term keys are rotated periodically and -independently, to limit the impact of key compromise. - -Section~\ref{subsec:cells} presents the fixed-size -\emph{cells} that are the unit of communication in Tor. We describe -in Section~\ref{subsec:circuits} how circuits are -built, extended, truncated, and destroyed. Section~\ref{subsec:tcp} -describes how TCP streams are routed through the network. We address -integrity checking in Section~\ref{subsec:integrity-checking}, -and resource limiting in Section~\ref{subsec:rate-limit}. -Finally, -Section~\ref{subsec:congestion} talks about congestion control and -fairness issues. - -\subsection{Cells} -\label{subsec:cells} - -Onion routers communicate with one another, and with users' OPs, via -TLS connections with ephemeral keys. Using TLS conceals the data on -the connection with perfect forward secrecy, and prevents an attacker -from modifying data on the wire or impersonating an OR. - -Traffic passes along these connections in fixed-size cells. Each cell -is 512 bytes, %(but see Section~\ref{sec:conclusion} for a discussion of -%allowing large cells and small cells on the same network), -and consists of a header and a payload. The header includes a circuit -identifier (circID) that specifies which circuit the cell refers to -(many circuits can be multiplexed over the single TLS connection), and -a command to describe what to do with the cell's payload. (Circuit -identifiers are connection-specific: each circuit has a different -circID on each OP/OR or OR/OR connection it traverses.) -Based on their command, cells are either \emph{control} cells, which are -always interpreted by the node that receives them, or \emph{relay} cells, -which carry end-to-end stream data. The control cell commands are: -\emph{padding} (currently used for keepalive, but also usable for link -padding); \emph{create} or \emph{created} (used to set up a new circuit); -and \emph{destroy} (to tear down a circuit). - -Relay cells have an additional header (the relay header) at the front -of the payload, containing a streamID (stream identifier: many streams can -be multiplexed over a circuit); an end-to-end checksum for integrity -checking; the length of the relay payload; and a relay command. -The entire contents of the relay header and the relay cell payload -are encrypted or decrypted together as the relay cell moves along the -circuit, using the 128-bit AES cipher in counter mode to generate a -cipher stream. The relay commands are: \emph{relay -data} (for data flowing down the stream), \emph{relay begin} (to open a -stream), \emph{relay end} (to close a stream cleanly), \emph{relay -teardown} (to close a broken stream), \emph{relay connected} -(to notify the OP that a relay begin has succeeded), \emph{relay -extend} and \emph{relay extended} (to extend the circuit by a hop, -and to acknowledge), \emph{relay truncate} and \emph{relay truncated} -(to tear down only part of the circuit, and to acknowledge), \emph{relay -sendme} (used for congestion control), and \emph{relay drop} (used to -implement long-range dummies). -We give a visual overview of cell structure plus the details of relay -cell structure, and then describe each of these cell types and commands -in more detail below. - -%\begin{figure}[h] -%\unitlength=1cm -%\centering -%\begin{picture}(8.0,1.5) -%\put(4,.5){\makebox(0,0)[c]{\epsfig{file=cell-struct,width=7cm}}} -%\end{picture} -%\end{figure} - -\begin{figure}[h] -\centering -\mbox{\epsfig{figure=cell-struct,width=7cm}} -\end{figure} - -\subsection{Circuits and streams} -\label{subsec:circuits} - -Onion Routing originally built one circuit for each -TCP stream. Because building a circuit can take several tenths of a -second (due to public-key cryptography and network latency), -this design imposed high costs on applications like web browsing that -open many TCP streams. - -In Tor, each circuit can be shared by many TCP streams. To avoid -delays, users construct circuits preemptively. To limit linkability -among their streams, users' OPs build a new circuit -periodically if the previous ones have been used, -and expire old used circuits that no longer have any open streams. -OPs consider rotating to a new circuit once a minute: thus -even heavy users spend negligible time -building circuits, but a limited number of requests can be linked -to each other through a given exit node. Also, because circuits are built -in the background, OPs can recover from failed circuit creation -without harming user experience.\\ - -\begin{figure}[h] -\centering -\mbox{\epsfig{figure=interaction,width=8.75cm}} -\caption{Alice builds a two-hop circuit and begins fetching a web page.} -\label{fig:interaction} -\end{figure} - -\noindent{\large\bf Constructing a circuit}\label{subsubsec:constructing-a-circuit}\\ -%\subsubsection{Constructing a circuit} -A user's OP constructs circuits incrementally, negotiating a -symmetric key with each OR on the circuit, one hop at a time. To begin -creating a new circuit, the OP (call her Alice) sends a -\emph{create} cell to the first node in her chosen path (call him Bob). -(She chooses a new -circID $C_{AB}$ not currently used on the connection from her to Bob.) -The \emph{create} cell's -payload contains the first half of the Diffie-Hellman handshake -($g^x$), encrypted to the onion key of Bob. Bob -responds with a \emph{created} cell containing $g^y$ -along with a hash of the negotiated key $K=g^{xy}$. - -Once the circuit has been established, Alice and Bob can send one -another relay cells encrypted with the negotiated -key.\footnote{Actually, the negotiated key is used to derive two - symmetric keys: one for each direction.} More detail is given in -the next section. - -To extend the circuit further, Alice sends a \emph{relay extend} cell -to Bob, specifying the address of the next OR (call her Carol), and -an encrypted $g^{x_2}$ for her. Bob copies the half-handshake into a -\emph{create} cell, and passes it to Carol to extend the circuit. -(Bob chooses a new circID $C_{BC}$ not currently used on the connection -between him and Carol. Alice never needs to know this circID; only Bob -associates $C_{AB}$ on his connection with Alice to $C_{BC}$ on -his connection with Carol.) -When Carol responds with a \emph{created} cell, Bob wraps the payload -into a \emph{relay extended} cell and passes it back to Alice. Now -the circuit is extended to Carol, and Alice and Carol share a common key -$K_2 = g^{x_2 y_2}$. - -To extend the circuit to a third node or beyond, Alice -proceeds as above, always telling the last node in the circuit to -extend one hop further. - -This circuit-level handshake protocol achieves unilateral entity -authentication (Alice knows she's handshaking with the OR, but -the OR doesn't care who is opening the circuit---Alice uses no public key -and remains anonymous) and unilateral key authentication -(Alice and the OR agree on a key, and Alice knows only the OR learns -it). It also achieves forward -secrecy and key freshness. More formally, the protocol is as follows -(where $E_{PK_{Bob}}(\cdot)$ is encryption with Bob's public key, -$H$ is a secure hash function, and $|$ is concatenation): -\begin{equation*} -\begin{aligned} -\mathrm{Alice} \rightarrow \mathrm{Bob}&: E_{PK_{Bob}}(g^x) \\ -\mathrm{Bob} \rightarrow \mathrm{Alice}&: g^y, H(K | \mathrm{``handshake"}) \\ -\end{aligned} -\end{equation*} - -\noindent In the second step, Bob proves that it was he who received $g^x$, -and who chose $y$. We use PK encryption in the first step -(rather than, say, using the first two steps of STS, which has a -signature in the second step) because a single cell is too small to -hold both a public key and a signature. Preliminary analysis with the -NRL protocol analyzer~\cite{meadows96} shows this protocol to be -secure (including perfect forward secrecy) under the -traditional Dolev-Yao model.\\ - -\noindent{\large\bf Relay cells}\\ -%\subsubsection{Relay cells} -% -Once Alice has established the circuit (so she shares keys with each -OR on the circuit), she can send relay cells. -%Recall that every relay cell has a streamID that indicates to which -%stream the cell belongs. %This streamID allows a relay cell to be -%addressed to any OR on the circuit. -Upon receiving a relay -cell, an OR looks up the corresponding circuit, and decrypts the relay -header and payload with the session key for that circuit. -If the cell is headed away from Alice the OR then checks whether the -decrypted cell has a valid digest (as an optimization, the first -two bytes of the integrity check are zero, so in most cases we can avoid -computing the hash). -%is recognized---either because it -%corresponds to an open stream at this OR for the given circuit, or because -%it is the control streamID (zero). -If valid, it accepts the relay cell and processes it as described -below. Otherwise, -the OR looks up the circID and OR for the -next step in the circuit, replaces the circID as appropriate, and -sends the decrypted relay cell to the next OR. (If the OR at the end -of the circuit receives an unrecognized relay cell, an error has -occurred, and the circuit is torn down.) - -OPs treat incoming relay cells similarly: they iteratively unwrap the -relay header and payload with the session keys shared with each -OR on the circuit, from the closest to farthest. -If at any stage the digest is valid, the cell must have -originated at the OR whose encryption has just been removed. - -To construct a relay cell addressed to a given OR, Alice assigns the -digest, and then iteratively -encrypts the cell payload (that is, the relay header and payload) with -the symmetric key of each hop up to that OR. Because the digest is -encrypted to a different value at each step, only at the targeted OR -will it have a meaningful value.\footnote{ - % Should we just say that 2^56 is itself negligible? - % Assuming 4-hop circuits with 10 streams per hop, there are 33 - % possible bad streamIDs before the last circuit. This still - % gives an error only once every 2 million terabytes (approx). -With 48 bits of digest per cell, the probability of an accidental -collision is far lower than the chance of hardware failure.} -This \emph{leaky pipe} circuit topology -allows Alice's streams to exit at different ORs on a single circuit. -Alice may choose different exit points because of their exit policies, -or to keep the ORs from knowing that two streams -originate from the same person. - -When an OR later replies to Alice with a relay cell, it -encrypts the cell's relay header and payload with the single key it -shares with Alice, and sends the cell back toward Alice along the -circuit. Subsequent ORs add further layers of encryption as they -relay the cell back to Alice. - -To tear down a circuit, Alice sends a \emph{destroy} control -cell. Each OR in the circuit receives the \emph{destroy} cell, closes -all streams on that circuit, and passes a new \emph{destroy} cell -forward. But just as circuits are built incrementally, they can also -be torn down incrementally: Alice can send a \emph{relay -truncate} cell to a single OR on a circuit. That OR then sends a -\emph{destroy} cell forward, and acknowledges with a -\emph{relay truncated} cell. Alice can then extend the circuit to -different nodes, without signaling to the intermediate nodes (or -a limited observer) that she has changed her circuit. -Similarly, if a node on the circuit goes down, the adjacent -node can send a \emph{relay truncated} cell back to Alice. Thus the -``break a node and see which circuits go down'' -attack~\cite{freedom21-security} is weakened. - -\subsection{Opening and closing streams} -\label{subsec:tcp} - -When Alice's application wants a TCP connection to a given -address and port, it asks the OP (via SOCKS) to make the -connection. The OP chooses the newest open circuit (or creates one if -needed), and chooses a suitable OR on that circuit to be the -exit node (usually the last node, but maybe others due to exit policy -conflicts; see Section~\ref{subsec:exitpolicies}.) The OP then opens -the stream by sending a \emph{relay begin} cell to the exit node, -using a new random streamID. Once the -exit node connects to the remote host, it responds -with a \emph{relay connected} cell. Upon receipt, the OP sends a -SOCKS reply to notify the application of its success. The OP -now accepts data from the application's TCP stream, packaging it into -\emph{relay data} cells and sending those cells along the circuit to -the chosen OR. - -There's a catch to using SOCKS, however---some applications pass the -alphanumeric hostname to the Tor client, while others resolve it into -an IP address first and then pass the IP address to the Tor client. If -the application does DNS resolution first, Alice thereby reveals her -destination to the remote DNS server, rather than sending the hostname -through the Tor network to be resolved at the far end. Common applications -like Mozilla and SSH have this flaw. - -With Mozilla, the flaw is easy to address: the filtering HTTP -proxy called Privoxy gives a hostname to the Tor client, so Alice's -computer never does DNS resolution. -But a portable general solution, such as is needed for -SSH, is -an open problem. Modifying or replacing the local nameserver -can be invasive, brittle, and unportable. Forcing the resolver -library to prefer TCP rather than UDP is hard, and also has -portability problems. Dynamically intercepting system calls to the -resolver library seems a promising direction. We could also provide -a tool similar to \emph{dig} to perform a private lookup through the -Tor network. Currently, we encourage the use of privacy-aware proxies -like Privoxy wherever possible. - -Closing a Tor stream is analogous to closing a TCP stream: it uses a -two-step handshake for normal operation, or a one-step handshake for -errors. If the stream closes abnormally, the adjacent node simply sends a -\emph{relay teardown} cell. If the stream closes normally, the node sends -a \emph{relay end} cell down the circuit, and the other side responds with -its own \emph{relay end} cell. Because -all relay cells use layered encryption, only the destination OR knows -that a given relay cell is a request to close a stream. This two-step -handshake allows Tor to support TCP-based applications that use half-closed -connections. -% such as broken HTTP clients that close their side of the -%stream after writing but are still willing to read. - -\subsection{Integrity checking on streams} -\label{subsec:integrity-checking} - -Because the old Onion Routing design used a stream cipher without integrity -checking, traffic was -vulnerable to a malleability attack: though the attacker could not -decrypt cells, any changes to encrypted data -would create corresponding changes to the data leaving the network. -This weakness allowed an adversary who could guess the encrypted content -to change a padding cell to a destroy -cell; change the destination address in a \emph{relay begin} cell to the -adversary's webserver; or change an FTP command from -{\tt dir} to {\tt rm~*}. (Even an external -adversary could do this, because the link encryption similarly used a -stream cipher.) - -Because Tor uses TLS on its links, external adversaries cannot modify -data. Addressing the insider malleability attack, however, is -more complex. - -We could do integrity checking of the relay cells at each hop, either -by including hashes or by using an authenticating cipher mode like -EAX~\cite{eax}, but there are some problems. First, these approaches -impose a message-expansion overhead at each hop, and so we would have to -either leak the path length or waste bytes by padding to a maximum -path length. Second, these solutions can only verify traffic coming -from Alice: ORs would not be able to produce suitable hashes for -the intermediate hops, since the ORs on a circuit do not know the -other ORs' session keys. Third, we have already accepted that our design -is vulnerable to end-to-end timing attacks; so tagging attacks performed -within the circuit provide no additional information to the attacker. - -Thus, we check integrity only at the edges of each stream. (Remember that -in our leaky-pipe circuit topology, a stream's edge could be any hop -in the circuit.) When Alice -negotiates a key with a new hop, they each initialize a SHA-1 -digest with a derivative of that key, -thus beginning with randomness that only the two of them know. -Then they each incrementally add to the SHA-1 digest the contents of -all relay cells they create, and include with each relay cell the -first four bytes of the current digest. Each also keeps a SHA-1 -digest of data received, to verify that the received hashes are correct. - -To be sure of removing or modifying a cell, the attacker must be able -to deduce the current digest state (which depends on all -traffic between Alice and Bob, starting with their negotiated key). -Attacks on SHA-1 where the adversary can incrementally add to a hash -to produce a new valid hash don't work, because all hashes are -end-to-end encrypted across the circuit. The computational overhead -of computing the digests is minimal compared to doing the AES -encryption performed at each hop of the circuit. We use only four -bytes per cell to minimize overhead; the chance that an adversary will -correctly guess a valid hash -%, plus the payload the current cell, -is -acceptably low, given that the OP or OR tear down the circuit if they -receive a bad hash. - -\subsection{Rate limiting and fairness} -\label{subsec:rate-limit} - -Volunteers are more willing to run services that can limit -their bandwidth usage. To accommodate them, Tor servers use a -token bucket approach~\cite{tannenbaum96} to -enforce a long-term average rate of incoming bytes, while still -permitting short-term bursts above the allowed bandwidth. -% Current bucket sizes are set to ten seconds' worth of traffic. - -%Further, we want to avoid starving any Tor streams. Entire circuits -%could starve if we read greedily from connections and one connection -%uses all the remaining bandwidth. We solve this by dividing the number -%of tokens in the bucket by the number of connections that want to read, -%and reading at most that number of bytes from each connection. We iterate -%this procedure until the number of tokens in the bucket is under some -%threshold (currently 10KB), at which point we greedily read from connections. - -Because the Tor protocol outputs about the same number of bytes as it -takes in, it is sufficient in practice to limit only incoming bytes. -With TCP streams, however, the correspondence is not one-to-one: -relaying a single incoming byte can require an entire 512-byte cell. -(We can't just wait for more bytes, because the local application may -be awaiting a reply.) Therefore, we treat this case as if the entire -cell size had been read, regardless of the cell's fullness. - -Further, inspired by Rennhard et al's design in~\cite{anonnet}, a -circuit's edges can heuristically distinguish interactive streams from bulk -streams by comparing the frequency with which they supply cells. We can -provide good latency for interactive streams by giving them preferential -service, while still giving good overall throughput to the bulk -streams. Such preferential treatment presents a possible end-to-end -attack, but an adversary observing both -ends of the stream can already learn this information through timing -attacks. - -\subsection{Congestion control} -\label{subsec:congestion} - -Even with bandwidth rate limiting, we still need to worry about -congestion, either accidental or intentional. If enough users choose the -same OR-to-OR connection for their circuits, that connection can become -saturated. For example, an attacker could send a large file -through the Tor network to a webserver he runs, and then -refuse to read any of the bytes at the webserver end of the -circuit. Without some congestion control mechanism, these bottlenecks -can propagate back through the entire network. We don't need to -reimplement full TCP windows (with sequence numbers, -the ability to drop cells when we're full and retransmit later, and so -on), -because TCP already guarantees in-order delivery of each -cell. -%But we need to investigate further the effects of the current -%parameters on throughput and latency, while also keeping privacy in mind; -%see Section~\ref{sec:maintaining-anonymity} for more discussion. -We describe our response below. - -\textbf{Circuit-level throttling:} -To control a circuit's bandwidth usage, each OR keeps track of two -windows. The \emph{packaging window} tracks how many relay data cells the OR is -allowed to package (from incoming TCP streams) for transmission back to the OP, -and the \emph{delivery window} tracks how many relay data cells it is willing -to deliver to TCP streams outside the network. Each window is initialized -(say, to 1000 data cells). When a data cell is packaged or delivered, -the appropriate window is decremented. When an OR has received enough -data cells (currently 100), it sends a \emph{relay sendme} cell towards the OP, -with streamID zero. When an OR receives a \emph{relay sendme} cell with -streamID zero, it increments its packaging window. Either of these cells -increments the corresponding window by 100. If the packaging window -reaches 0, the OR stops reading from TCP connections for all streams -on the corresponding circuit, and sends no more relay data cells until -receiving a \emph{relay sendme} cell. - -The OP behaves identically, except that it must track a packaging window -and a delivery window for every OR in the circuit. If a packaging window -reaches 0, it stops reading from streams destined for that OR. - -\textbf{Stream-level throttling}: -The stream-level congestion control mechanism is similar to the -circuit-level mechanism. ORs and OPs use \emph{relay sendme} cells -to implement end-to-end flow control for individual streams across -circuits. Each stream begins with a packaging window (currently 500 cells), -and increments the window by a fixed value (50) upon receiving a \emph{relay -sendme} cell. Rather than always returning a \emph{relay sendme} cell as soon -as enough cells have arrived, the stream-level congestion control also -has to check whether data has been successfully flushed onto the TCP -stream; it sends the \emph{relay sendme} cell only when the number of bytes pending -to be flushed is under some threshold (currently 10 cells' worth). - -%% Maybe omit this next paragraph. -NM -%Currently, non-data relay cells do not affect the windows. Thus we -%avoid potential deadlock issues, for example, arising because a stream -%can't send a \emph{relay sendme} cell when its packaging window is empty. - -These arbitrarily chosen parameters seem to give tolerable throughput -and delay; see Section~\ref{sec:in-the-wild}. - -\section{Rendezvous Points and hidden services} -\label{sec:rendezvous} - -Rendezvous points are a building block for \emph{location-hidden -services} (also known as \emph{responder anonymity}) in the Tor -network. Location-hidden services allow Bob to offer a TCP -service, such as a webserver, without revealing his IP address. -This type of anonymity protects against distributed DoS attacks: -attackers are forced to attack the onion routing network -because they do not know Bob's IP address. - -Our design for location-hidden servers has the following goals. -\textbf{Access-control:} Bob needs a way to filter incoming requests, -so an attacker cannot flood Bob simply by making many connections to him. -\textbf{Robustness:} Bob should be able to maintain a long-term pseudonymous -identity even in the presence of router failure. Bob's service must -not be tied to a single OR, and Bob must be able to migrate his service -across ORs. \textbf{Smear-resistance:} -A social attacker -should not be able to ``frame'' a rendezvous router by -offering an illegal or disreputable location-hidden service and -making observers believe the router created that service. -\textbf{Application-transparency:} Although we require users -to run special software to access location-hidden servers, we must not -require them to modify their applications. - -We provide location-hiding for Bob by allowing him to advertise -several onion routers (his \emph{introduction points}) as contact -points. He may do this on any robust efficient -key-value lookup system with authenticated updates, such as a -distributed hash table (DHT) like CFS~\cite{cfs:sosp01}.\footnote{ -Rather than rely on an external infrastructure, the Onion Routing network -can run the lookup service itself. Our current implementation provides a -simple lookup system on the -directory servers.} Alice, the client, chooses an OR as her -\emph{rendezvous point}. She connects to one of Bob's introduction -points, informs him of her rendezvous point, and then waits for him -to connect to the rendezvous point. This extra level of indirection -helps Bob's introduction points avoid problems associated with serving -unpopular files directly (for example, if Bob serves -material that the introduction point's community finds objectionable, -or if Bob's service tends to get attacked by network vandals). -The extra level of indirection also allows Bob to respond to some requests -and ignore others. - -\subsection{Rendezvous points in Tor} - -The following steps are -%We give an overview of the steps of a rendezvous. These are -performed on behalf of Alice and Bob by their local OPs; -application integration is described more fully below. - -\begin{tightlist} -\item Bob generates a long-term public key pair to identify his service. -\item Bob chooses some introduction points, and advertises them on - the lookup service, signing the advertisement with his public key. He - can add more later. -\item Bob builds a circuit to each of his introduction points, and tells - them to wait for requests. -\item Alice learns about Bob's service out of band (perhaps Bob told her, - or she found it on a website). She retrieves the details of Bob's - service from the lookup service. If Alice wants to access Bob's - service anonymously, she must connect to the lookup service via Tor. -\item Alice chooses an OR as the rendezvous point (RP) for her connection to - Bob's service. She builds a circuit to the RP, and gives it a - randomly chosen ``rendezvous cookie'' to recognize Bob. -\item Alice opens an anonymous stream to one of Bob's introduction - points, and gives it a message (encrypted with Bob's public key) - telling it about herself, - her RP and rendezvous cookie, and the - start of a DH - handshake. The introduction point sends the message to Bob. -\item If Bob wants to talk to Alice, he builds a circuit to Alice's - RP and sends the rendezvous cookie, the second half of the DH - handshake, and a hash of the session - key they now share. By the same argument as in - Section~\ref{subsubsec:constructing-a-circuit}, Alice knows she - shares the key only with Bob. -\item The RP connects Alice's circuit to Bob's. Note that RP can't - recognize Alice, Bob, or the data they transmit. -\item Alice sends a \emph{relay begin} cell along the circuit. It - arrives at Bob's OP, which connects to Bob's - webserver. -\item An anonymous stream has been established, and Alice and Bob - communicate as normal. -\end{tightlist} - -When establishing an introduction point, Bob provides the onion router -with the public key identifying his service. Bob signs his -messages, so others cannot usurp his introduction point -in the future. He uses the same public key to establish the other -introduction points for his service, and periodically refreshes his -entry in the lookup service. - -The message that Alice gives -the introduction point includes a hash of Bob's public key % to identify -%the service, along with -and an optional initial authorization token (the -introduction point can do prescreening, for example to block replays). Her -message to Bob may include an end-to-end authorization token so Bob -can choose whether to respond. -The authorization tokens can be used to provide selective access: -important users can get uninterrupted access. -%important users get tokens to ensure uninterrupted access. %to the -%service. -During normal situations, Bob's service might simply be offered -directly from mirrors, while Bob gives out tokens to high-priority users. If -the mirrors are knocked down, -%by distributed DoS attacks or even -%physical attack, -those users can switch to accessing Bob's service via -the Tor rendezvous system. - -Bob's introduction points are themselves subject to DoS---he must -open many introduction points or risk such an attack. -He can provide selected users with a current list or future schedule of -unadvertised introduction points; -this is most practical -if there is a stable and large group of introduction points -available. Bob could also give secret public keys -for consulting the lookup service. All of these approaches -limit exposure even when -some selected users collude in the DoS\@. - -\subsection{Integration with user applications} - -Bob configures his onion proxy to know the local IP address and port of his -service, a strategy for authorizing clients, and his public key. The onion -proxy anonymously publishes a signed statement of Bob's -public key, an expiration time, and -the current introduction points for his service onto the lookup service, -indexed -by the hash of his public key. Bob's webserver is unmodified, -and doesn't even know that it's hidden behind the Tor network. - -Alice's applications also work unchanged---her client interface -remains a SOCKS proxy. We encode all of the necessary information -into the fully qualified domain name (FQDN) Alice uses when establishing her -connection. Location-hidden services use a virtual top level domain -called {\tt .onion}: thus hostnames take the form {\tt x.y.onion} where -{\tt x} is the authorization cookie and {\tt y} encodes the hash of -the public key. Alice's onion proxy -examines addresses; if they're destined for a hidden server, it decodes -the key and starts the rendezvous as described above. - -\subsection{Previous rendezvous work} -%XXXX Should this get integrated into the earlier related work section? -NM - -Rendezvous points in low-latency anonymity systems were first -described for use in ISDN telephony~\cite{jerichow-jsac98,isdn-mixes}. -Later low-latency designs used rendezvous points for hiding location -of mobile phones and low-power location -trackers~\cite{federrath-ih96,reed-protocols97}. Rendezvous for -anonymizing low-latency -Internet connections was suggested in early Onion Routing -work~\cite{or-ih96}, but the first published design was by Ian -Goldberg~\cite{ian-thesis}. His design differs from -ours in three ways. First, Goldberg suggests that Alice should manually -hunt down a current location of the service via Gnutella; our approach -makes lookup transparent to the user, as well as faster and more robust. -Second, in Tor the client and server negotiate session keys -with Diffie-Hellman, so plaintext is not exposed even at the rendezvous -point. Third, -our design minimizes the exposure from running the -service, to encourage volunteers to offer introduction and rendezvous -services. Tor's introduction points do not output any bytes to the -clients; the rendezvous points don't know the client or the server, -and can't read the data being transmitted. The indirection scheme is -also designed to include authentication/authorization---if Alice doesn't -include the right cookie with her request for service, Bob need not even -acknowledge his existence. - -\section{Other design decisions} -\label{sec:other-design} - -\subsection{Denial of service} -\label{subsec:dos} - -Providing Tor as a public service creates many opportunities for -denial-of-service attacks against the network. While -flow control and rate limiting (discussed in -Section~\ref{subsec:congestion}) prevent users from consuming more -bandwidth than routers are willing to provide, opportunities remain for -users to -consume more network resources than their fair share, or to render the -network unusable for others. - -First of all, there are several CPU-consuming denial-of-service -attacks wherein an attacker can force an OR to perform expensive -cryptographic operations. For example, an attacker can -%\emph{create} cell full of junk bytes can force an OR to perform an RSA -%decrypt. -%Similarly, an attacker can -fake the start of a TLS handshake, forcing the OR to carry out its -(comparatively expensive) half of the handshake at no real computational -cost to the attacker. - -We have not yet implemented any defenses for these attacks, but several -approaches are possible. First, ORs can -require clients to solve a puzzle~\cite{puzzles-tls} while beginning new -TLS handshakes or accepting \emph{create} cells. So long as these -tokens are easy to verify and computationally expensive to produce, this -approach limits the attack multiplier. Additionally, ORs can limit -the rate at which they accept \emph{create} cells and TLS connections, -so that -the computational work of processing them does not drown out the -symmetric cryptography operations that keep cells -flowing. This rate limiting could, however, allow an attacker -to slow down other users when they build new circuits. - -% What about link-to-link rate limiting? - -Adversaries can also attack the Tor network's hosts and network -links. Disrupting a single circuit or link breaks all streams passing -along that part of the circuit. Users similarly lose service -when a router crashes or its operator restarts it. The current -Tor design treats such attacks as intermittent network failures, and -depends on users and applications to respond or recover as appropriate. A -future design could use an end-to-end TCP-like acknowledgment protocol, -so no streams are lost unless the entry or exit point is -disrupted. This solution would require more buffering at the network -edges, however, and the performance and anonymity implications from this -extra complexity still require investigation. - -\subsection{Exit policies and abuse} -\label{subsec:exitpolicies} - -% originally, we planned to put the "users only know the hostname, -% not the IP, but exit policies are by IP" problem here too. Not -% worth putting in the submission, but worth thinking about putting -% in sometime somehow. -RD - -Exit abuse is a serious barrier to wide-scale Tor deployment. Anonymity -presents would-be vandals and abusers with an opportunity to hide -the origins of their activities. Attackers can harm the Tor network by -implicating exit servers for their abuse. Also, applications that commonly -use IP-based authentication (such as institutional mail or webservers) -can be fooled by the fact that anonymous connections appear to originate -at the exit OR. - -We stress that Tor does not enable any new class of abuse. Spammers -and other attackers already have access to thousands of misconfigured -systems worldwide, and the Tor network is far from the easiest way -to launch attacks. -%Indeed, because of its limited -%anonymity, Tor is probably not a good way to commit crimes. -But because the -onion routers can be mistaken for the originators of the abuse, -and the volunteers who run them may not want to deal with the hassle of -explaining anonymity networks to irate administrators, we must block or limit -abuse through the Tor network. - -To mitigate abuse issues, each onion router's \emph{exit policy} -describes to which external addresses and ports the router will -connect. On one end of the spectrum are \emph{open exit} -nodes that will connect anywhere. On the other end are \emph{middleman} -nodes that only relay traffic to other Tor nodes, and \emph{private exit} -nodes that only connect to a local host or network. A private -exit can allow a client to connect to a given host or -network more securely---an external adversary cannot eavesdrop traffic -between the private exit and the final destination, and so is less sure of -Alice's destination and activities. Most onion routers in the current -network function as -\emph{restricted exits} that permit connections to the world at large, -but prevent access to certain abuse-prone addresses and services such -as SMTP. -The OR might also be able to authenticate clients to -prevent exit abuse without harming anonymity~\cite{or-discex00}. - -%The abuse issues on closed (e.g. military) networks are different -%from the abuse on open networks like the Internet. While these IP-based -%access controls are still commonplace on the Internet, on closed networks, -%nearly all participants will be honest, and end-to-end authentication -%can be assumed for important traffic. - -Many administrators use port restrictions to support only a -limited set of services, such as HTTP, SSH, or AIM. -This is not a complete solution, of course, since abuse opportunities for these -protocols are still well known. - -We have not yet encountered any abuse in the deployed network, but if -we do we should consider using proxies to clean traffic for certain -protocols as it leaves the network. For example, much abusive HTTP -behavior (such as exploiting buffer overflows or well-known script -vulnerabilities) can be detected in a straightforward manner. -Similarly, one could run automatic spam filtering software (such as -SpamAssassin) on email exiting the OR network. - -ORs may also rewrite exiting traffic to append -headers or other information indicating that the traffic has passed -through an anonymity service. This approach is commonly used -by email-only anonymity systems. ORs can also -run on servers with hostnames like {\tt anonymous} to further -alert abuse targets to the nature of the anonymous traffic. - -A mixture of open and restricted exit nodes allows the most -flexibility for volunteers running servers. But while having many -middleman nodes provides a large and robust network, -having only a few exit nodes reduces the number of points -an adversary needs to monitor for traffic analysis, and places a -greater burden on the exit nodes. This tension can be seen in the -Java Anon Proxy -cascade model, wherein only one node in each cascade needs to handle -abuse complaints---but an adversary only needs to observe the entry -and exit of a cascade to perform traffic analysis on all that -cascade's users. The hydra model (many entries, few exits) presents a -different compromise: only a few exit nodes are needed, but an -adversary needs to work harder to watch all the clients; see -Section~\ref{sec:conclusion}. - -Finally, we note that exit abuse must not be dismissed as a peripheral -issue: when a system's public image suffers, it can reduce the number -and diversity of that system's users, and thereby reduce the anonymity -of the system itself. Like usability, public perception is a -security parameter. Sadly, preventing abuse of open exit nodes is an -unsolved problem, and will probably remain an arms race for the -foreseeable future. The abuse problems faced by Princeton's CoDeeN -project~\cite{darkside} give us a glimpse of likely issues. - -\subsection{Directory Servers} -\label{subsec:dirservers} - -First-generation Onion Routing designs~\cite{freedom2-arch,or-jsac98} used -in-band network status updates: each router flooded a signed statement -to its neighbors, which propagated it onward. But anonymizing networks -have different security goals than typical link-state routing protocols. -For example, delays (accidental or intentional) -that can cause different parts of the network to have different views -of link-state and topology are not only inconvenient: they give -attackers an opportunity to exploit differences in client knowledge. -We also worry about attacks to deceive a -client about the router membership list, topology, or current network -state. Such \emph{partitioning attacks} on client knowledge help an -adversary to efficiently deploy resources -against a target~\cite{minion-design}. - -Tor uses a small group of redundant, well-known onion routers to -track changes in network topology and node state, including keys and -exit policies. Each such \emph{directory server} acts as an HTTP -server, so clients can fetch current network state -and router lists, and so other ORs can upload -state information. Onion routers periodically publish signed -statements of their state to each directory server. The directory servers -combine this information with their own views of network liveness, -and generate a signed description (a \emph{directory}) of the entire -network state. Client software is -pre-loaded with a list of the directory servers and their keys, -to bootstrap each client's view of the network. -% XXX this means that clients will be forced to upgrade as the -% XXX dirservers change or get compromised. argue that this is ok. - -When a directory server receives a signed statement for an OR, it -checks whether the OR's identity key is recognized. Directory -servers do not advertise unrecognized ORs---if they did, -an adversary could take over the network by creating many -servers~\cite{sybil}. Instead, new nodes must be approved by the -directory -server administrator before they are included. Mechanisms for automated -node approval are an area of active research, and are discussed more -in Section~\ref{sec:maintaining-anonymity}. - -Of course, a variety of attacks remain. An adversary who controls -a directory server can track clients by providing them different -information---perhaps by listing only nodes under its control, or by -informing only certain clients about a given node. Even an external -adversary can exploit differences in client knowledge: clients who use -a node listed on one directory server but not the others are vulnerable. - -Thus these directory servers must be synchronized and redundant, so -that they can agree on a common directory. Clients should only trust -this directory if it is signed by a threshold of the directory -servers. - -The directory servers in Tor are modeled after those in -Mixminion~\cite{minion-design}, but our situation is easier. First, -we make the -simplifying assumption that all participants agree on the set of -directory servers. Second, while Mixminion needs to predict node -behavior, Tor only needs a threshold consensus of the current -state of the network. Third, we assume that we can fall back to the -human administrators to discover and resolve problems when a consensus -directory cannot be reached. Since there are relatively few directory -servers (currently 3, but we expect as many as 9 as the network scales), -we can afford operations like broadcast to simplify the consensus-building -protocol. - -To avoid attacks where a router connects to all the directory servers -but refuses to relay traffic from other routers, the directory servers -must also build circuits and use them to anonymously test router -reliability~\cite{mix-acc}. Unfortunately, this defense is not yet -designed or -implemented. - -Using directory servers is simpler and more flexible than flooding. -Flooding is expensive, and complicates the analysis when we -start experimenting with non-clique network topologies. Signed -directories can be cached by other -onion routers, -so directory servers are not a performance -bottleneck when we have many users, and do not aid traffic analysis by -forcing clients to announce their existence to any -central point. - -\section{Attacks and Defenses} -\label{sec:attacks} - -Below we summarize a variety of attacks, and discuss how well our -design withstands them.\\ - -\noindent{\large\bf Passive attacks}\\ -\emph{Observing user traffic patterns.} Observing a user's connection -will not reveal her destination or data, but it will -reveal traffic patterns (both sent and received). Profiling via user -connection patterns requires further processing, because multiple -application streams may be operating simultaneously or in series over -a single circuit. - -\emph{Observing user content.} While content at the user end is encrypted, -connections to responders may not be (indeed, the responding website -itself may be hostile). While filtering content is not a primary goal -of Onion Routing, Tor can directly use Privoxy and related -filtering services to anonymize application data streams. - -\emph{Option distinguishability.} We allow clients to choose -configuration options. For example, clients concerned about request -linkability should rotate circuits more often than those concerned -about traceability. Allowing choice may attract users with different -%There is economic incentive to attract users by -%allowing this choice; -needs; but clients who are -in the minority may lose more anonymity by appearing distinct than they -gain by optimizing their behavior~\cite{econymics}. - -\emph{End-to-end timing correlation.} Tor only minimally hides -such correlations. An attacker watching patterns of -traffic at the initiator and the responder will be -able to confirm the correspondence with high probability. The -greatest protection currently available against such confirmation is to hide -the connection between the onion proxy and the first Tor node, -by running the OP on the Tor node or behind a firewall. This approach -requires an observer to separate traffic originating at the onion -router from traffic passing through it: a global observer can do this, -but it might be beyond a limited observer's capabilities. - -\emph{End-to-end size correlation.} Simple packet counting -will also be effective in confirming -endpoints of a stream. However, even without padding, we may have some -limited protection: the leaky pipe topology means different numbers -of packets may enter one end of a circuit than exit at the other. - -\emph{Website fingerprinting.} All the effective passive -attacks above are traffic confirmation attacks, -which puts them outside our design goals. There is also -a passive traffic analysis attack that is potentially effective. -Rather than searching exit connections for timing and volume -correlations, the adversary may build up a database of -``fingerprints'' containing file sizes and access patterns for -targeted websites. He can later confirm a user's connection to a given -site simply by consulting the database. This attack has -been shown to be effective against SafeWeb~\cite{hintz-pet02}. -It may be less effective against Tor, since -streams are multiplexed within the same circuit, and -fingerprinting will be limited to -the granularity of cells (currently 512 bytes). Additional -defenses could include -larger cell sizes, padding schemes to group websites -into large sets, and link -padding or long-range dummies.\footnote{Note that this fingerprinting -attack should not be confused with the much more complicated latency -attacks of~\cite{back01}, which require a fingerprint of the latencies -of all circuits through the network, combined with those from the -network edges to the target user and the responder website.}\\ - -\noindent{\large\bf Active attacks}\\ -\emph{Compromise keys.} An attacker who learns the TLS session key can -see control cells and encrypted relay cells on every circuit on that -connection; learning a circuit -session key lets him unwrap one layer of the encryption. An attacker -who learns an OR's TLS private key can impersonate that OR for the TLS -key's lifetime, but he must -also learn the onion key to decrypt \emph{create} cells (and because of -perfect forward secrecy, he cannot hijack already established circuits -without also compromising their session keys). Periodic key rotation -limits the window of opportunity for these attacks. On the other hand, -an attacker who learns a node's identity key can replace that node -indefinitely by sending new forged descriptors to the directory servers. - -\emph{Iterated compromise.} A roving adversary who can -compromise ORs (by system intrusion, legal coercion, or extralegal -coercion) could march down the circuit compromising the -nodes until he reaches the end. Unless the adversary can complete -this attack within the lifetime of the circuit, however, the ORs -will have discarded the necessary information before the attack can -be completed. (Thanks to the perfect forward secrecy of session -keys, the attacker cannot force nodes to decrypt recorded -traffic once the circuits have been closed.) Additionally, building -circuits that cross jurisdictions can make legal coercion -harder---this phenomenon is commonly called ``jurisdictional -arbitrage.'' The Java Anon Proxy project recently experienced the -need for this approach, when -a German court forced them to add a backdoor to -their nodes~\cite{jap-backdoor}. - -\emph{Run a recipient.} An adversary running a webserver -trivially learns the timing patterns of users connecting to it, and -can introduce arbitrary patterns in its responses. -End-to-end attacks become easier: if the adversary can induce -users to connect to his webserver (perhaps by advertising -content targeted to those users), he now holds one end of their -connection. There is also a danger that application -protocols and associated programs can be induced to reveal information -about the initiator. Tor depends on Privoxy and similar protocol cleaners -to solve this latter problem. - -\emph{Run an onion proxy.} It is expected that end users will -nearly always run their own local onion proxy. However, in some -settings, it may be necessary for the proxy to run -remotely---typically, in institutions that want -to monitor the activity of those connecting to the proxy. -Compromising an onion proxy compromises all future connections -through it. - -\emph{DoS non-observed nodes.} An observer who can only watch some -of the Tor network can increase the value of this traffic -by attacking non-observed nodes to shut them down, reduce -their reliability, or persuade users that they are not trustworthy. -The best defense here is robustness. - -\emph{Run a hostile OR.} In addition to being a local observer, -an isolated hostile node can create circuits through itself, or alter -traffic patterns to affect traffic at other nodes. Nonetheless, a hostile -node must be immediately adjacent to both endpoints to compromise the -anonymity of a circuit. If an adversary can -run multiple ORs, and can persuade the directory servers -that those ORs are trustworthy and independent, then occasionally -some user will choose one of those ORs for the start and another -as the end of a circuit. If an adversary -controls $m>1$ of $N$ nodes, he can correlate at most -$\left(\frac{m}{N}\right)^2$ of the traffic---although an -adversary -could still attract a disproportionately large amount of traffic -by running an OR with a permissive exit policy, or by -degrading the reliability of other routers. - -\emph{Introduce timing into messages.} This is simply a stronger -version of passive timing attacks already discussed earlier. - -\emph{Tagging attacks.} A hostile node could ``tag'' a -cell by altering it. If the -stream were, for example, an unencrypted request to a Web site, -the garbled content coming out at the appropriate time would confirm -the association. However, integrity checks on cells prevent -this attack. - -\emph{Replace contents of unauthenticated protocols.} When -relaying an unauthenticated protocol like HTTP, a hostile exit node -can impersonate the target server. Clients -should prefer protocols with end-to-end authentication. - -\emph{Replay attacks.} Some anonymity protocols are vulnerable -to replay attacks. Tor is not; replaying one side of a handshake -will result in a different negotiated session key, and so the rest -of the recorded session can't be used. - -\emph{Smear attacks.} An attacker could use the Tor network for -socially disapproved acts, to bring the -network into disrepute and get its operators to shut it down. -Exit policies reduce the possibilities for abuse, but -ultimately the network requires volunteers who can tolerate -some political heat. - -\emph{Distribute hostile code.} An attacker could trick users -into running subverted Tor software that did not, in fact, anonymize -their connections---or worse, could trick ORs into running weakened -software that provided users with less anonymity. We address this -problem (but do not solve it completely) by signing all Tor releases -with an official public key, and including an entry in the directory -that lists which versions are currently believed to be secure. To -prevent an attacker from subverting the official release itself -(through threats, bribery, or insider attacks), we provide all -releases in source code form, encourage source audits, and -frequently warn our users never to trust any software (even from -us) that comes without source.\\ - -\noindent{\large\bf Directory attacks}\\ -\emph{Destroy directory servers.} If a few directory -servers disappear, the others still decide on a valid -directory. So long as any directory servers remain in operation, -they will still broadcast their views of the network and generate a -consensus directory. (If more than half are destroyed, this -directory will not, however, have enough signatures for clients to -use it automatically; human intervention will be necessary for -clients to decide whether to trust the resulting directory.) - -\emph{Subvert a directory server.} By taking over a directory server, -an attacker can partially influence the final directory. Since ORs -are included or excluded by majority vote, the corrupt directory can -at worst cast a tie-breaking vote to decide whether to include -marginal ORs. It remains to be seen how often such marginal cases -occur in practice. - -\emph{Subvert a majority of directory servers.} An adversary who controls -more than half the directory servers can include as many compromised -ORs in the final directory as he wishes. We must ensure that directory -server operators are independent and attack-resistant. - -\emph{Encourage directory server dissent.} The directory -agreement protocol assumes that directory server operators agree on -the set of directory servers. An adversary who can persuade some -of the directory server operators to distrust one another could -split the quorum into mutually hostile camps, thus partitioning -users based on which directory they use. Tor does not address -this attack. - -\emph{Trick the directory servers into listing a hostile OR.} -Our threat model explicitly assumes directory server operators will -be able to filter out most hostile ORs. -% If this is not true, an -% attacker can flood the directory with compromised servers. - -\emph{Convince the directories that a malfunctioning OR is -working.} In the current Tor implementation, directory servers -assume that an OR is running correctly if they can start a TLS -connection to it. A hostile OR could easily subvert this test by -accepting TLS connections from ORs but ignoring all cells. Directory -servers must actively test ORs by building circuits and streams as -appropriate. The tradeoffs of a similar approach are discussed -in~\cite{mix-acc}.\\ - -\noindent{\large\bf Attacks against rendezvous points}\\ -\emph{Make many introduction requests.} An attacker could -try to deny Bob service by flooding his introduction points with -requests. Because the introduction points can block requests that -lack authorization tokens, however, Bob can restrict the volume of -requests he receives, or require a certain amount of computation for -every request he receives. - -\emph{Attack an introduction point.} An attacker could -disrupt a location-hidden service by disabling its introduction -points. But because a service's identity is attached to its public -key, the service can simply re-advertise -itself at a different introduction point. Advertisements can also be -done secretly so that only high-priority clients know the address of -Bob's introduction points or so that different clients know of different -introduction points. This forces the attacker to disable all possible -introduction points. - -\emph{Compromise an introduction point.} An attacker who controls -Bob's introduction point can flood Bob with -introduction requests, or prevent valid introduction requests from -reaching him. Bob can notice a flood, and close the circuit. To notice -blocking of valid requests, however, he should periodically test the -introduction point by sending rendezvous requests and making -sure he receives them. - -\emph{Compromise a rendezvous point.} A rendezvous -point is no more sensitive than any other OR on -a circuit, since all data passing through the rendezvous is encrypted -with a session key shared by Alice and Bob. - -\section{Early experiences: Tor in the Wild} -\label{sec:in-the-wild} - -As of mid-May 2004, the Tor network consists of 32 nodes -(24 in the US, 8 in Europe), and more are joining each week as the code -matures. (For comparison, the current remailer network -has about 40 nodes.) % We haven't asked PlanetLab to provide -%Tor nodes, since their AUP wouldn't allow exit nodes (see -%also~\cite{darkside}) and because we aim to build a long-term community of -%node operators and developers.} -Each node has at least a 768Kb/768Kb connection, and -many have 10Mb. The number of users varies (and of course, it's hard to -tell for sure), but we sometimes have several hundred users---administrators at -several companies have begun sending their entire departments' web -traffic through Tor, to block other divisions of -their company from reading their traffic. Tor users have reported using -the network for web browsing, FTP, IRC, AIM, Kazaa, SSH, and -recipient-anonymous email via rendezvous points. One user has anonymously -set up a Wiki as a hidden service, where other users anonymously publish -the addresses of their hidden services. - -Each Tor node currently processes roughly 800,000 relay -cells (a bit under half a gigabyte) per week. On average, about 80\% -of each 498-byte payload is full for cells going back to the client, -whereas about 40\% is full for cells coming from the client. (The difference -arises because most of the network's traffic is web browsing.) Interactive -traffic like SSH brings down the average a lot---once we have more -experience, and assuming we can resolve the anonymity issues, we may -partition traffic into two relay cell sizes: one to handle -bulk traffic and one for interactive traffic. - -Based in part on our restrictive default exit policy (we -reject SMTP requests) and our low profile, we have had no abuse -issues since the network was deployed in October -2003. Our slow growth rate gives us time to add features, -resolve bugs, and get a feel for what users actually want from an -anonymity system. Even though having more users would bolster our -anonymity sets, we are not eager to attract the Kazaa or warez -communities---we feel that we must build a reputation for privacy, human -rights, research, and other socially laudable activities. - -As for performance, profiling shows that Tor spends almost -all its CPU time in AES, which is fast. Current latency is attributable -to two factors. First, network latency is critical: we are -intentionally bouncing traffic around the world several times. Second, -our end-to-end congestion control algorithm focuses on protecting -volunteer servers from accidental DoS rather than on optimizing -performance. % Right now the first $500 \times 500\mbox{B}=250\mbox{KB}$ -%of the stream arrives -%quickly, and after that throughput depends on the rate that \emph{relay -%sendme} acknowledgments arrive. -To quantify these effects, we did some informal tests using a network of 4 -nodes on the same machine (a heavily loaded 1GHz Athlon). We downloaded a 60 -megabyte file from {\tt debian.org} every 30 minutes for 54 hours (108 sample -points). It arrived in about 300 seconds on average, compared to 210s for a -direct download. We ran a similar test on the production Tor network, -fetching the front page of {\tt cnn.com} (55 kilobytes): -% every 20 seconds for 8952 data points -while a direct -download consistently took about 0.3s, the performance through Tor varied. -Some downloads were as fast as 0.4s, with a median at 2.8s, and -90\% finishing within 5.3s. It seems that as the network expands, the chance -of building a slow circuit (one that includes a slow or heavily loaded node -or link) is increasing. On the other hand, as our users remain satisfied -with this increased latency, we can address our performance incrementally as we -proceed with development. %\footnote{For example, we have just begun pushing -%a pipelining patch to the production network that seems to decrease -%latency for medium-to-large files; we will present revised benchmarks -%as they become available.} - -%With the current network's topology and load, users can typically get 1-2 -%megabits sustained transfer rate, which is good enough for now. -%Indeed, the Tor -%design aims foremost to provide a security research platform; performance -%only needs to be sufficient to retain users~\cite{econymics,back01}. -%We can tweak the congestion control -%parameters to provide faster throughput at the cost of -%larger buffers at each node; adding the heuristics mentioned in -%Section~\ref{subsec:rate-limit} to favor low-volume -%streams may also help. More research remains to find the -%right balance. -% We should say _HOW MUCH_ latency there is in these cases. -NM - -%performs badly on lossy networks. may need airhook or something else as -%transport alternative? - -Although Tor's clique topology and full-visibility directories present -scaling problems, we still expect the network to support a few hundred -nodes and maybe 10,000 users before we're forced to become -more distributed. With luck, the experience we gain running the current -topology will help us choose among alternatives when the time comes. - -\section{Open Questions in Low-latency Anonymity} -\label{sec:maintaining-anonymity} - -In addition to the non-goals in -Section~\ref{subsec:non-goals}, many questions must be solved -before we can be confident of Tor's security. - -Many of these open issues are questions of balance. For example, -how often should users rotate to fresh circuits? Frequent rotation -is inefficient, expensive, and may lead to intersection attacks and -predecessor attacks~\cite{wright03}, but infrequent rotation makes the -user's traffic linkable. Besides opening fresh circuits, clients can -also exit from the middle of the circuit, -or truncate and re-extend the circuit. More analysis is -needed to determine the proper tradeoff. - -%% Duplicated by 'Better directory distribution' in section 9. -% -%A similar question surrounds timing of directory operations: how often -%should directories be updated? Clients that update infrequently receive -%an inaccurate picture of the network, but frequent updates can overload -%the directory servers. More generally, we must find more -%decentralized yet practical ways to distribute up-to-date snapshots of -%network status without introducing new attacks. - -How should we choose path lengths? If Alice always uses two hops, -then both ORs can be certain that by colluding they will learn about -Alice and Bob. In our current approach, Alice always chooses at least -three nodes unrelated to herself and her destination. -%% This point is subtle, but not IMO necessary. Anybody who thinks -%% about it will see that it's implied by the above sentence; anybody -%% who doesn't think about it is safe in his ignorance. -% -%Thus normally she chooses -%three nodes, but if she is running an OR and her destination is on an OR, -%she uses five. -Should Alice choose a random path length (e.g.~from a geometric -distribution) to foil an attacker who -uses timing to learn that he is the fifth hop and thus concludes that -both Alice and the responder are running ORs? - -Throughout this paper, we have assumed that end-to-end traffic -confirmation will immediately and automatically defeat a low-latency -anonymity system. Even high-latency anonymity systems can be -vulnerable to end-to-end traffic confirmation, if the traffic volumes -are high enough, and if users' habits are sufficiently -distinct~\cite{statistical-disclosure,limits-open}. Can anything be -done to -make low-latency systems resist these attacks as well as high-latency -systems? Tor already makes some effort to conceal the starts and ends of -streams by wrapping long-range control commands in identical-looking -relay cells. Link padding could frustrate passive observers who count -packets; long-range padding could work against observers who own the -first hop in a circuit. But more research remains to find an efficient -and practical approach. Volunteers prefer not to run constant-bandwidth -padding; but no convincing traffic shaping approach has been -specified. Recent work on long-range padding~\cite{defensive-dropping} -shows promise. One could also try to reduce correlation in packet timing -by batching and re-ordering packets, but it is unclear whether this could -improve anonymity without introducing so much latency as to render the -network unusable. - -A cascade topology may better defend against traffic confirmation by -aggregating users, and making padding and -mixing more affordable. Does the hydra topology (many input nodes, -few output nodes) work better against some adversaries? Are we going -to get a hydra anyway because most nodes will be middleman nodes? - -Common wisdom suggests that Alice should run her own OR for best -anonymity, because traffic coming from her node could plausibly have -come from elsewhere. How much mixing does this approach need? Is it -immediately beneficial because of real-world adversaries that can't -observe Alice's router, but can run routers of their own? - -To scale to many users, and to prevent an attacker from observing the -whole network, it may be necessary -to support far more servers than Tor currently anticipates. -This introduces several issues. First, if approval by a central set -of directory servers is no longer feasible, what mechanism should be used -to prevent adversaries from signing up many colluding servers? Second, -if clients can no longer have a complete picture of the network, -how can they perform discovery while preventing attackers from -manipulating or exploiting gaps in their knowledge? Third, if there -are too many servers for every server to constantly communicate with -every other, which non-clique topology should the network use? -(Restricted-route topologies promise comparable anonymity with better -scalability~\cite{danezis:pet2003}, but whatever topology we choose, we -need some way to keep attackers from manipulating their position within -it~\cite{casc-rep}.) Fourth, if no central authority is tracking -server reliability, how do we stop unreliable servers from making -the network unusable? Fifth, do clients receive so much anonymity -from running their own ORs that we should expect them all to do -so~\cite{econymics}, or do we need another incentive structure to -motivate them? Tarzan and MorphMix present possible solutions. - -% advogato, captcha - -When a Tor node goes down, all its circuits (and thus streams) must break. -Will users abandon the system because of this brittleness? How well -does the method in Section~\ref{subsec:dos} allow streams to survive -node failure? If affected users rebuild circuits immediately, how much -anonymity is lost? It seems the problem is even worse in a peer-to-peer -environment---such systems don't yet provide an incentive for peers to -stay connected when they're done retrieving content, so we would expect -a higher churn rate. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Future Directions} -\label{sec:conclusion} - -Tor brings together many innovations into a unified deployable system. The -next immediate steps include: - -\emph{Scalability:} Tor's emphasis on deployability and design simplicity -has led us to adopt a clique topology, semi-centralized -directories, and a full-network-visibility model for client -knowledge. These properties will not scale past a few hundred servers. -Section~\ref{sec:maintaining-anonymity} describes some promising -approaches, but more deployment experience will be helpful in learning -the relative importance of these bottlenecks. - -\emph{Bandwidth classes:} This paper assumes that all ORs have -good bandwidth and latency. We should instead adopt the MorphMix model, -where nodes advertise their bandwidth level (DSL, T1, T3), and -Alice avoids bottlenecks by choosing nodes that match or -exceed her bandwidth. In this way DSL users can usefully join the Tor -network. - -\emph{Incentives:} Volunteers who run nodes are rewarded with publicity -and possibly better anonymity~\cite{econymics}. More nodes means increased -scalability, and more users can mean more anonymity. We need to continue -examining the incentive structures for participating in Tor. Further, -we need to explore more approaches to limiting abuse, and understand -why most people don't bother using privacy systems. - -\emph{Cover traffic:} Currently Tor omits cover traffic---its costs -in performance and bandwidth are clear but its security benefits are -not well understood. We must pursue more research on link-level cover -traffic and long-range cover traffic to determine whether some simple padding -method offers provable protection against our chosen adversary. - -%%\emph{Offer two relay cell sizes:} Traffic on the Internet tends to be -%%large for bulk transfers and small for interactive traffic. One cell -%%size cannot be optimal for both types of traffic. -% This should go in the spec and todo, but not the paper yet. -RD - -\emph{Caching at exit nodes:} Perhaps each exit node should run a -caching web proxy~\cite{shsm03}, to improve anonymity for cached pages -(Alice's request never -leaves the Tor network), to improve speed, and to reduce bandwidth cost. -On the other hand, forward security is weakened because caches -constitute a record of retrieved files. We must find the right -balance between usability and security. - -\emph{Better directory distribution:} -Clients currently download a description of -the entire network every 15 minutes. As the state grows larger -and clients more numerous, we may need a solution in which -clients receive incremental updates to directory state. -More generally, we must find more -scalable yet practical ways to distribute up-to-date snapshots of -network status without introducing new attacks. - -\emph{Further specification review:} Our public -byte-level specification~\cite{tor-spec} needs -external review. We hope that as Tor -is deployed, more people will examine its -specification. - -\emph{Multisystem interoperability:} We are currently working with the -designer of MorphMix to unify the specification and implementation of -the common elements of our two systems. So far, this seems -to be relatively straightforward. Interoperability will allow testing -and direct comparison of the two designs for trust and scalability. - -\emph{Wider-scale deployment:} The original goal of Tor was to -gain experience in deploying an anonymizing overlay network, and -learn from having actual users. We are now at a point in design -and development where we can start deploying a wider network. Once -we have many actual users, we will doubtlessly be better -able to evaluate some of our design decisions, including our -robustness/latency tradeoffs, our performance tradeoffs (including -cell size), our abuse-prevention mechanisms, and -our overall usability. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% commented out for anonymous submission -\section*{Acknowledgments} - We thank Peter Palfrader, Geoff Goodell, Adam Shostack, Joseph Sokol-Margolis, - John Bashinski, and Zack Brown - for editing and comments; - Matej Pfajfar, Andrei Serjantov, Marc Rennhard for design discussions; - Bram Cohen for congestion control discussions; - Adam Back for suggesting telescoping circuits; and - Cathy Meadows for formal analysis of the \emph{extend} protocol. - This work has been supported by ONR and DARPA. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\bibliographystyle{latex8} -\bibliography{tor-design} - -\end{document} - -% Style guide: -% U.S. spelling -% avoid contractions (it's, can't, etc.) -% prefer ``for example'' or ``such as'' to e.g. -% prefer ``that is'' to i.e. -% 'mix', 'mixes' (as noun) -% 'mix-net' -% 'mix', 'mixing' (as verb) -% 'middleman' [Not with a hyphen; the hyphen has been optional -% since Middle English.] -% 'nymserver' -% 'Cypherpunk', 'Cypherpunks', 'Cypherpunk remailer' -% 'Onion Routing design', 'onion router' [note capitalization] -% 'SOCKS' -% Try not to use \cite as a noun. -% 'Authorizating' sounds great, but it isn't a word. -% 'First, second, third', not 'Firstly, secondly, thirdly'. -% 'circuit', not 'channel' -% Typography: no space on either side of an em dash---ever. -% Hyphens are for multi-part words; en dashs imply movement or -% opposition (The Alice--Bob connection); and em dashes are -% for punctuation---like that. -% A relay cell; a control cell; a \emph{create} cell; a -% \emph{relay truncated} cell. Never ``a \emph{relay truncated}.'' -% -% 'Substitute ``Damn'' every time you're inclined to write ``very;'' your -% editor will delete it and the writing will be just as it should be.' -% -- Mark Twain diff --git a/doc/design-paper/usenix.sty b/doc/design-paper/usenix.sty deleted file mode 100644 index 575c854e77..0000000000 --- a/doc/design-paper/usenix.sty +++ /dev/null @@ -1,96 +0,0 @@ -% usenix-2e.sty - to be used with latex2e (the new one) for USENIX. -% To use this style file, do this: -% -% \documentclass[twocolumn]{article} -% \usepackage{usenix-2e} -% and put {\rm ....} around the author names. -% -% The following definitions are modifications of standard article.sty -% definitions, arranged to do a better job of matching the USENIX -% guidelines. -% It will automatically select two-column mode and the Times-Roman -% font. - -% -% USENIX papers are two-column. -% Times-Roman font is nice if you can get it (requires NFSS, -% which is in latex2e. - -\if@twocolumn\else\input twocolumn.sty\fi -\usepackage{times} - -% -% USENIX wants margins of: 7/8" side, 1" bottom, and 3/4" top. -% 0.25" gutter between columns. -% Gives active areas of 6.75" x 9.25" -% -\setlength{\textheight}{9.0in} -\setlength{\columnsep}{0.25in} -%%\setlength{\textwidth}{6.75in} -\setlength{\textwidth}{7.00in} -%\setlength{\footheight}{0.0in} -\setlength{\topmargin}{-0.25in} -\setlength{\headheight}{0.0in} -\setlength{\headsep}{0.0in} -\setlength{\evensidemargin}{-0.125in} -\setlength{\oddsidemargin}{-0.125in} - -% -% Usenix wants no page numbers for submitted papers, so that they can -% number them themselves. -% -\pagestyle{empty} - -% -% Usenix titles are in 14-point bold type, with no date, and with no -% change in the empty page headers. The whol author section is 12 point -% italic--- you must use {\rm } around the actual author names to get -% them in roman. -% -\def\maketitle{\par - \begingroup - \renewcommand\thefootnote{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}% - \long\def\@makefntext##1{\parindent 1em\noindent - \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% - \if@twocolumn - \twocolumn[\@maketitle]% - \else \newpage - \global\@topnum\z@ - \@maketitle \fi\@thanks - \endgroup - \setcounter{footnote}{0}% - \let\maketitle\relax - \let\@maketitle\relax - \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} - -\def\@maketitle{\newpage - \vbox to 2.5in{ - \vspace*{\fill} - \vskip 2em - \begin{center}% - {\Large\bf \@title \par}% - \vskip 0.375in minus 0.300in - {\large\it - \lineskip .5em - \begin{tabular}[t]{c}\@author - \end{tabular}\par}% - \end{center}% - \par - \vspace*{\fill} -% \vskip 1.5em - } -} - -% -% The abstract is preceded by a 12-pt bold centered heading -\def\abstract{\begin{center}% -{\large\bf \abstractname\vspace{-.5em}\vspace{\z@}}% -\end{center}} -\def\endabstract{} - -% -% Main section titles are 12-pt bold. Others can be same or smaller. -% -\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus - -.2ex}{2.3ex plus.2ex}{\reset@font\large\bf}} diff --git a/doc/design-paper/usenixsubmit.cls b/doc/design-paper/usenixsubmit.cls deleted file mode 100644 index 743ffcfe4a..0000000000 --- a/doc/design-paper/usenixsubmit.cls +++ /dev/null @@ -1,7 +0,0 @@ -% Created by Anil Somayaji - -\ProvidesClass{usenixsubmit} -\LoadClass[11pt,letterpaper]{article} -\usepackage{times} -\usepackage[margin=1in]{geometry} - diff --git a/doc/roadmaps/2008-12-19-roadmap-full.pdf b/doc/roadmaps/2008-12-19-roadmap-full.pdf deleted file mode 100644 index d87171c2d914ab11503fc48786529cc3cea8a1ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178487 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 diff --git a/doc/roadmaps/2009-03-11-performance.pdf b/doc/roadmaps/2009-03-11-performance.pdf deleted file mode 100644 index 3af74ddca5b432612dd6ac33ebb14df8adfda99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1018633 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

    cE$&a@_5cW1`FyqD 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 diff --git a/doc/roadmaps/roadmap-future.tex b/doc/roadmaps/roadmap-future.tex deleted file mode 100644 index 4ab240f977..0000000000 --- a/doc/roadmaps/roadmap-future.tex +++ /dev/null @@ -1,895 +0,0 @@ -\documentclass{article} - -\usepackage{url} -\usepackage{fullpage} - -\newenvironment{tightlist}{\begin{list}{$\bullet$}{ - \setlength{\itemsep}{0mm} - \setlength{\parsep}{0mm} - % \setlength{\labelsep}{0mm} - % \setlength{\labelwidth}{0mm} - % \setlength{\topsep}{0mm} - }}{\end{list}} -\newcommand{\tmp}[1]{{\bf #1} [......] \\} -\newcommand{\plan}[1]{ {\bf (#1)}} - -\begin{document} - -\title{Tor Development Roadmap: Wishlist for 2008 and beyond} -\author{Roger Dingledine \and Nick Mathewson} -\date{} - -\maketitle -\pagestyle{plain} - -\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 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} - -We've made a lot of progress towards letting an ordinary Tor client also -serve as a Tor relay. But these issues remain. - -\subsection{UPNP} - -We should teach Vidalia how to speak UPNP to automatically open and -forward ports on common (e.g. Linksys) routers. There are some promising -Qt-based UPNP libs out there, and in any case there are others (e.g. in -Perl) that we can base it on. - -\subsection{``ORPort auto'' to look for a reachable port} - -Vidalia defaults to port 443 on Windows and port 8080 elsewhere. But if -that port is already in use, or the ISP filters incoming connections -on that port (some cablemodem providers filter 443 inbound), the user -needs to learn how to notice this, and then pick a new one and type it -into Vidalia. - -We should add a new option ``auto'' that cycles through a set of preferred -ports, testing bindability and reachability for each of them, and only -complains to the user once it's given up on the common choices. - -\subsection{Incentives design} - -Roger has been working with researchers at Rice University to simulate -and analyze a new design where the directory authorities assign gold -stars to well-behaving relays, and then all the relays give priority -to traffic from gold-starred relays. The great feature of the design is -that not only does it provide the (explicit) incentive to run a relay, -but it also aims to grow the overall capacity of the network, so even -non-relays will benefit. - -It needs more analysis, and perhaps more design work, before we try -deploying it. - -\subsection{Windows libevent} - -Tor relays still don't work well or reliably on Windows XP or Windows -Vista, because we don't use the Windows-native ``overlapped IO'' -approach. Christian King made a good start at teaching libevent about -overlapped IO during Google Summer of Code 2007, and next steps are -to a) finish that, b) teach Tor to do openssl calls on buffers rather -than directly to the network, and c) teach Tor to use the new libevent -buffers approach. - -\subsection{Network scaling} - -If we attract many more relays, we will need to handle the growing pains -in terms of getting all the directory information to all the users. - -The first piece of this issue is a practical question: since the -directory size scales linearly with more relays, at some point it -will no longer be practical for every client to learn about every -relay. We can try to reduce the amount of information each client needs -to fetch (e.g. based on fetching less information preemptively as in -Section~\ref{subsec:fewer-descriptor-fetches} below), but eventually -clients will need to learn about only a subset of the network, and we -will need to design good ways to divide up the network information. - -The second piece is an anonymity question that arises from this -partitioning: if Tor's security comes from having all the clients -behaving in similar ways, yet we are now giving different clients -different directory information, how can we minimize the new anonymity -attacks we introduce? - -\subsection{Using fewer sockets} - -Since in the current network every Tor relay can reach every other Tor -relay, and we have many times more users than relays, pretty much every -possible link in the network is in use. That is, the current network -is a clique in practice. - -And since each of these connections requires a TCP socket, it's going -to be hard for the network to grow much larger: many systems come with -a default of 1024 file descriptors allowed per process, and raising -that ulimit is hard for end users. Worse, many low-end gateway/firewall -routers can't handle this many connections in their routing table. - -One approach is a restricted-route topology~\cite{danezis:pet2003}: -predefine which relays can reach which other relays, and communicate -these restrictions to the relays and the clients. We need to compute -which links are acceptable in a way that's decentralized yet scalable, -and in a way that achieves a small-worlds property; and we -need an efficient (compact) way to characterize the topology information -so all the users could keep up to date. - -Another approach would be to switch to UDP-based transport between -relays, so we don't need to keep the TCP sockets open at all. Needs more -investigation too. - -\subsection{Auto bandwidth detection and rate limiting, especially for - asymmetric connections.} - - -\subsection{Better algorithms for giving priority to local traffic} - -Proposal 111 made a lot of progress at separating local traffic from -relayed traffic, so Tor users can rate limit the relayed traffic at a -stricter level. But since we want to pass both traffic classes over the -same TCP connection, we can't keep them entirely separate. The current -compromise is that we treat all bytes to/from a given connectin as -local traffic if any of the bytes within the past N seconds were local -bytes. But a) we could use some more intelligent heuristics, and b) -this leaks information to an active attacker about when local traffic -was sent/received. - -\subsection{Tolerate absurdly wrong clocks, even for relays} - -Many of our users are on Windows, running with a clock several days or -even several years off from reality. Some of them are even intentionally -in this state so they can run software that will only run in the past. - -Before Tor 0.1.1.x, Tor clients would still function if their clock was -wildly off --- they simply got a copy of the directory and believed it. -Starting in Tor 0.1.1.x (and even moreso in Tor 0.2.0.x), the clients -only use networkstatus documents that they believe to be recent, so -clients with extremely wrong clocks no longer work. (This bug has been -an unending source of vague and confusing bug reports.) - -The first step is for clients to recognize when all the directory material -they're fetching has roughly the same offset from their current time, -and then automatically correct for it. - -Once that's working well, clients who opt to become bridge relays should -be able to use the same approach to serve accurate directory information -to their bridge users. - -\subsection{Risks from being a relay} - -Three different research -papers~\cite{back01,clog-the-queue,attack-tor-oak05} describe ways to -identify the nodes in a circuit by running traffic through candidate nodes -and looking for dips in the traffic while the circuit is active. These -clogging attacks are not that scary in the Tor context so long as relays -are never clients too. But if we're trying to encourage more clients to -turn on relay functionality too (whether as bridge relays or as normal -relays), then we need to understand this threat better and learn how to -mitigate it. - -One promising research direction is to investigate the RelayBandwidthRate -feature that lets Tor rate limit relayed traffic differently from local -traffic. Since the attacker's ``clogging'' traffic is not in the same -bandwidth class as the traffic initiated by the user, it may be harder -to detect interference. Or it may not be. - -\subsection{First a bridge, then a public relay?} - -Once enough of the items in this section are done, I want all clients -to start out automatically detecting their reachability and opting -to be bridge relays. - -Then if they realize they have enough consistency and bandwidth, they -should automatically upgrade to being non-exit relays. - -What metrics should we use for deciding when we're fast enough -and stable enough to switch? Given that the list of bridge relays needs -to be kept secret, it doesn't make much sense to switch back. - -\section{Tor on low resources / slow links} -\subsection{Reducing directory fetches further} -\label{subsec:fewer-descriptor-fetches} -\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)} - learn how to get useful crash reports (tracebacks) from Windows users -\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) -\section{Performance research} -\subsection{Load balance better} -\subsection{Improve our congestion control algorithms} -\subsection{Two-hops vs Three-hops} -\subsection{Transport IP packets end-to-end} -\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{Teaching the media about Tor} -\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.} -\subsection{Exactly what do guard nodes provide?} - -Entry guards seem to defend against all sorts of attacks. Can we work -through all the benefits they provide? Papers like Nikita's CCS 2007 -paper make me think their value is not well-understood by the research -community. - -\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{More coordinated media handling and strategy} -\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} - -\bibliographystyle{plain} \bibliography{tor-design} - -\end{document} - - - - -\section{Code and design infrastructure} - -\subsection{Protocol revision} -To maintain backward compatibility, we've postponed major protocol -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 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 (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 yet known to be insecure for our purposes, has begun to show -its age. We should -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 -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. - -\plan{For all the above: 2 person-months to specify, spread over several - months with time for interaction with external participants. One - person-month to implement. Start specifying in early 2007.} - -We might design a {\bf stream migration} feature so that streams tunneled -over Tor could be more resilient to dropped connections and changed IPs. -\plan{Not in 2007.} - -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 -efficient for high-bandwidth protocols, but inefficient for protocols -like SSH or AIM that send information in small chunks. Of course, we need to -investigate the extent to which multiple sizes could make it easier for an -adversary to fingerprint a traffic pattern. \plan{Not in 2007.} - -As a part of our design, we should investigate possible {\bf cipher modes} -other than counter mode. For example, a mode with built-in integrity -checking, error propagation, and random access could simplify our protocol -significantly. Sadly, many of these are patented and unavailable for us. -\plan{Not in 2007.} - -\subsection{Scalability} - -\subsubsection{Improved directory efficiency} - -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 -information has changed or not. (As of Tor 0.1.2.3-alpha, clients tolerate -routers that don't upload often, but routers still upload at least every 18 -hours to support older clients.) \plan{Must do, but not until 0.1.1.x is -deprecated in mid 2007. 1 week.} - -\subsubsection{Non-clique topology} -Our current network design achieves a certain amount of its anonymity by -making clients act like each other through the simple expedient of making -sure that all clients know all servers, and that any server can talk to any -other server. But as the number of servers increases to serve an -ever-greater number of clients, these assumptions become impractical. - -At worst, if these scalability issues become troubling before a solution is -found, we can design and build a solution to {\bf split the network into -multiple slices} until a better solution comes along. This is not ideal, -since rather than looking like all other users from a point of view of path -selection, users would ``only'' look like 200,000--300,000 other -users.\plan{Not unless needed.} - -We are in the process of designing {\bf improved schemes for network - scalability}. Some approaches focus on limiting what an adversary can know -about what a user knows; others focus on reducing the extent to which an -adversary can exploit this knowledge. These are currently in their infancy, -and will probably not be needed in 2007, but they must be designed in 2007 if -they are to be deployed in 2008.\plan{Design in 2007; unknown difficulty. - Write a paper.} - -\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 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~\cite{incentives-txt,tor-challenges}, -but need to perform -some more research to make sure they would be safe and effective.\plan{Write - a draft paper; 2 person-months.} -(XXX we did that) - -\subsection{Portability} -Our {\bf Windows implementation}, though much improved, continues to lag -behind Unix and Mac OS X, especially when running as a server. We hope to -merge promising patches from Christian King to address this point, and bring -Windows performance on par with other platforms.\plan{Do in 2007; 1.5 months - to integrate not counting Mike's work.} - -We should have {\bf better support for portable devices}, including modes of -operation that require less RAM, and that write to disk less frequently (to -avoid wearing out flash RAM).\plan{Optional; 2 weeks.} - -\subsection{Performance: resource usage} -We've been working on {\bf using less RAM}, especially on servers. This has -paid off a lot for directory caches in the 0.1.2, which in some cases are -using 90\% less memory than they used to require. But we can do better, -especially in the area around our buffer management algorithms, by using an -approach more like the BSD and Linux kernels use instead of our current ring -buffer approach. (For OR connections, we can just use queues of cell-sized -chunks produced with a specialized allocator.) This could potentially save -around 25 to 50\% of the memory currently allocated for network buffers, and -make Tor a more attractive proposition for restricted-memory environments -like old computers, mobile devices, and the like.\plan{Do in 2007; 2-3 weeks - plus one week measurement.} (XXX We did this, but we need to do something -more/else.) - -\subsection{Performance: network usage} -We know too little about how well our current path -selection algorithms actually spread traffic around the network in practice. -We should {\bf research the efficacy of our traffic allocation} and either -assure ourselves that it is close enough to optimal as to need no improvement -(unlikely) or {\bf identify ways to improve network usage}, and get more -users' traffic delivered faster. Performing this research will require -careful thought about anonymity implications. - -We should also {\bf examine the efficacy of our congestion control - algorithm}, and see whether we can improve client performance in the -presence of a congested network through dynamic `sendme' window sizes or -other means. This will have anonymity implications too if we aren't careful. - -\plan{For both of the above: research, design and write - a measurement tool in 2007: 1 month. See if we can interest a graduate - student.} - -We should work on making Tor's cell-based protocol perform better on -networks with low bandwidth -and high packet loss.\plan{Do in 2007 if we're funded to do it; 4-6 weeks.} - -\subsection{Performance scenario: one Tor client, many users} -We should {\bf improve Tor's performance when a single Tor handles many - clients}. 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. We haven't optimized for this scenario, and it is likely that -there are some code paths in the current implementation that become -inefficient when a single Tor is servicing hundreds or thousands of client -connections. (Additionally, it is likely that such clients have interesting -anonymity requirements the we should investigate.) We should profile Tor -under appropriate loads, identify bottlenecks, and fix them.\plan{Do in 2007 - if we're funded to do it; 4-8 weeks.} - -\subsection{Tor servers on asymmetric bandwidth} - -Tor should work better on servers that have asymmetric connections like cable -or DSL. Because Tor has separate TCP connections between each -hop, if the incoming bytes are arriving just fine and the outgoing bytes are -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} - -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 -TLS-over-TCP to do so. This approach has proved reliable and flexible, but -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 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 -specification, but the actual implementation will require significant testing -of different reliable transport approaches.\plan{Maybe do a design in 2007 if -we find an interested academic. Ian or Ben L might be good partners here.} - -\section{Blocking resistance} - -\subsection{Design for blocking resistance} -We have written a design document explaining our general approach to blocking -resistance. We should workshop it with other experts in the field to get -their ideas about how we can improve Tor's efficacy as an anti-censorship -tool. - -\subsection{Implementation: client-side and bridges-side} - -Bridges will want to be able to {\bf listen on multiple addresses and ports} -if they can, to give the adversary more ports to block. - -\subsection{Research: anonymity implications from becoming a bridge} - -see arma's bridge proposal; e.g. should bridge users use a second layer of -entry guards? - -\subsection{Implementation: bridge authority} - -we 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. - -we need a design for distributing the bridge authority over more than one -server - -\subsection{Normalizing the Tor protocol on the wire} -Additionally, we should {\bf resist content-based filters}. Though an -adversary can't see what users are saying, some aspects of our protocol are -easy to fingerprint {\em as} Tor. We should correct this where possible. - -Look like Firefox; or look like nothing? -Future research: investigate timing similarities with other protocols. - -\subsection{Research: scanning-resistance} - -\subsection{Research/Design/Impl: 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. - -phase one: personal bridges -phase two: families of personal bridges -phase three: more structured social network -phase four: bag of tricks -Research: phase five... - -Integration with Psiphon, etc? - -\subsection{Document best practices for users} -Document best practices for various activities common among -blocked users (e.g. WordPress use). - -\subsection{Research: how to know if a bridge has been blocked?} - -\subsection{GeoIP maintenance, and "private" user statistics} -How to know if the whole idea is working? - -\subsection{Research: hiding whether the user is reading or publishing?} - -\subsection{Research: how many bridges do you need to know to maintain -reachability?} - -\subsection{Resisting censorship of the Tor website, docs, and mirrors} - -We should take some effort to consider {\bf initial distribution of Tor and - related information} in countries where the Tor website and mirrors are -censored. (Right now, most countries that block access to Tor block only the -main website and leave mirrors and the network itself untouched.) Falling -back on word-of-mouth is always a good last resort, but we should also take -steps to make sure it's relatively easy for users to get ahold of a copy. - -\section{Security} - -\subsection{Security research projects} - -We should investigate approaches with some promise to help Tor resist -end-to-end traffic correlation attacks. It's an open research question -whether (and to what extent) {\bf mixed-latency} networks, {\bf low-volume - long-distance padding}, or other approaches can resist these attacks, which -are currently some of the most effective against careful Tor users. We -should research these questions and perform simulations to identify -opportunities for strengthening our design without dropping performance to -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{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 -on anonymity against other kinds of adversaries. If the approach still looks -promising, we should investigate ways for clients to implement it (or an -approximation of it) without having to download routing tables for the whole -Internet. \plan{Not in 2007 unless a graduate student wants to do it.} - -%\tmp{defenses against end-to-end correlation} We don't expect any to work -%right now, but it would be useful to learn that one did. Alternatively, -%proving that one didn't would free up researchers in the field to go work on -%other things. -% -% See above; I think I got this. - -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 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 - unless a graduate student is interested.} - -\subsection{Implementation security} - -We should also {\bf mark RAM that holds key material as non-swappable} so -that there is no risk of recovering key material from a hard disk -compromise. This would require submitting patches upstream to OpenSSL, where -support for marking memory as sensitive is currently in a very preliminary -state.\plan{Nice to do, but not in immediate Tor scope.} - -There are numerous tools for identifying trouble spots in code (such as -Coverity or even VS2005's code analysis tool) and we should convince somebody -to run some of them against the Tor codebase. Ideally, we could figure out a -way to get our code checked periodically rather than just once.\plan{Almost - no time once we talk somebody into it.} - -We should try {\bf protocol fuzzing} to identify errors in our -implementation.\plan{Not in 2007 unless we find a grad student or - undergraduate who wants to try.} - -Our guard nodes help prevent an attacker from being able to become a chosen -client's entry point by having each client choose a few favorite entry points -as ``guards'' and stick to them. We should implement a {\bf directory - guards} feature to keep adversaries from enumerating Tor users by acting as -a directory cache.\plan{Do in 2007; 2 weeks.} - -\subsection{Detect corrupt exits and other servers} -With the success of our network, we've attracted servers in many locations, -operated by many kinds of people. Unfortunately, some of these locations -have compromised or defective networks, and some of these people are -untrustworthy or incompetent. Our current design relies on authority -administrators to identify bad nodes and mark them as nonfunctioning. We -should {\bf automate the process of identifying malfunctioning nodes} as -follows: - -We should create a generic {\bf feedback mechanism for add-on tools} like -Mike Perry's ``Snakes on a Tor'' to report failing nodes to authorities. -\plan{Do in 2006; 1-2 weeks.} - -We should write tools to {\bf detect more kinds of innocent node failure}, -such as nodes whose network providers intercept SSL, nodes whose network -providers censor popular websites, and so on. We should also try to detect -{\bf routers that snoop traffic}; we could do this by launching connections -to throwaway accounts, and seeing which accounts get used.\plan{Do in 2007; - ask Mike Perry if he's interested. 4-6 weeks.} - -We should add {\bf an efficient way for authorities to mark a set of servers - as probably collaborating} though not necessarily otherwise dishonest. -This happens when an administrator starts multiple routers, but doesn't mark -them as belonging to the same family.\plan{Do during v2.1 directory protocol - redesign; 1-2 weeks to implement.} - -To avoid attacks where an adversary claims good performance in order to -attract traffic, we should {\bf have authorities measure node performance} -(including stability and bandwidth) themselves, and not simply believe what -they're told. We also measure stability by tracking MTBF. Measuring -bandwidth will be tricky, since it's hard to distinguish between a server with -low capacity, and a high-capacity server with most of its capacity in -use. See also Nikita's NDSS 2008 paper.\plan{Do it if we can interest -a grad student.} - -{\bf Operating a directory authority should be easier.} We rely on authority -operators to keep the network running well, but right now their job involves -too much busywork and administrative overhead. A better interface for them -to use could free their time to work on exception cases rather than on -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 some of them down here? -NM -we should add {\bf hooks for denial-of-service resistance}; we have some -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.} - -\section{Development infrastructure} - -\subsection{Build farm} -We've begun to deploy a cross-platform distributed build farm of hosts -that build and test the Tor source every time it changes in our development -repository. - -We need to {\bf get more participants}, so that we can test a larger variety -of platforms. (Previously, we've only found out when our code had broken on -obscure platforms when somebody got around to building it.) - -We need also to {\bf add our dependencies} to the build farm, so that we can -ensure that libraries we need (especially libevent) do not stop working on -any important platform between one release and the next. - -\plan{This is ongoing as more buildbots arrive.} - -\subsection{Improved testing harness} -Currently, our {\bf unit tests} cover only about 20\% of the code base. This -is uncomfortably low; we should write more and switch to a more flexible -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{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 -these loads. This would give us {\it in vitro} performance values to -supplement our deployment experience.\plan{Worthwhile in 2007; 2-6 weeks.} - -We should improve our memory profiling code.\plan{...} - - -\subsection{Centralized build system} -We currently rely on a separate packager to maintain the packaging system and -to build Tor on each platform for which we distribute binaries. Separate -package maintainers is sensible, but separate package builders has meant -long turnaround times between source releases and package releases. We -should create the necessary infrastructure for us to produce binaries for all -major packages within an hour or so of source release.\plan{We should - brainstorm this at least in 2007.} - -\subsection{Improved metrics} -We need a way to {\bf measure the network's health, capacity, and degree of - utilization}. Our current means for doing this are ad hoc and not -completely accurate - -We need better ways to {\bf tell which countries are users are coming from, - and how many there are}. A good perspective of the network helps us -allocate resources and identify trouble spots, but our current approaches -will work less and less well as we make it harder for adversaries to -enumerate users. We'll probably want to shift to a smarter, statistical -approach rather than our current ``count and extrapolate'' method. - -\plan{All of this in 2007 if funded; 4-8 weeks} - -% \tmp{We'd like to know how much of the network is getting used.} -% I think this is covered above -NM - -\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 -encourage the development of more such tools by releasing a {\bf - general-purpose controller library}, ideally with API support for several -popular programming languages.\plan{2006 or 2007; 1-2 weeks.} - -\section{User experience} - -\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. 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.\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 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 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 -before it's ready for a general public release. - -\subsection{LiveCD Tor} -We need a nice bootable livecd containing a minimal OS and a few applications -configured to use it correctly. The Anonym.OS project demonstrated that this -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. 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 better'' item. - -\subsection{Firewall-level deployment} -Another useful deployment mode for some users is using {\bf Tor in a firewall - configuration}, and directing all their traffic through Tor. This can be a -little tricky to set up currently, but it's an effective way to make sure no -traffic leaves the host un-anonymized. To achieve this, we need to {\bf - improve and port our new TransPort} feature which allows Tor to be used -without SOCKS support; to {\bf add an anonymizing DNS proxy} feature to Tor; -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 -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 - 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}. 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. - -%\tmp{clean up our own bundled software: -%E.g. Merge the good features of Foxtor into Torbutton} -% -% What else did you have in mind? -NM - -\subsection{Localization} -Right now, most of our user-facing code is internationalized. We need to -internationalize the last few hold-outs (like the Tor expert installer), and get -more translations for the parts that are already internationalized. - -Also, we should look into a {\bf unified translator's solution}. Currently, -since different tools have been internationalized using the -framework-appropriate method, different tools require translators to localize -them via different interfaces. Inasmuch as possible, we should make -translators only need to use a single tool to translate the whole Tor suite. - -\section{Support} - -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} - -\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, 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 -help us identify what sections of the ``book'' are missing. - -\subsection{Missing technical documentation} - -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 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. - -\subsection{Missing user documentation} - -Our documentation falls into two broad categories: some is `discoursive' and -explains in detail why users should take certain actions, and other -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. - -\bibliographystyle{plain} \bibliography{tor-design} - -\end{document} - diff --git a/doc/rump-fc04.mgp b/doc/rump-fc04.mgp deleted file mode 100644 index efbf6c840c..0000000000 --- a/doc/rump-fc04.mgp +++ /dev/null @@ -1,175 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%deffont "standard" xfont "comic sans ms-medium-r" -%%deffont "thick" xfont "arial black-medium-r" -%%deffont "typewriter" xfont "courier new-bold-r" -%%deffont "type2writer" xfont "arial narrow-bold-r" -%%deffont "standard" tfont "standard.ttf", tmfont "kochi-mincho.ttf" -%%deffont "thick" tfont "thick.ttf", tmfont "goth.ttf" -%%deffont "typewriter" tfont "typewriter.ttf", tmfont "goth.ttf" -%deffont "standard" xfont "helvetica-medium-r", tfont "arial.ttf", tmfont "times.ttf" -%deffont "thick" xfont "helvetica-bold-r", tfont "arialbd.ttf", tmfont "hoso6.ttf" -%deffont "italic" xfont "helvetica-italic-r", tfont "ariali.ttf", tmfont "hoso6.ttf" -%deffont "typewriter" xfont "courier-medium-r", tfont "typewriter.ttf", tmfont "hoso6.ttf" -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Default settings per each line numbers. -%% -%default 1 leftfill, size 8, fore "black", back "white", font "thick", hgap 1 -%default 2 size 8, vgap 10, prefix " ", ccolor "black" -%default 3 size 6, bar "gray70", vgap 0 -%default 4 size 6, fore "black", vgap 0, prefix " ", font "standard" -%% -%%default 1 area 90 90, leftfill, size 9, fore "yellow", back "blue", font "thick" -%%default 2 size 9, vgap 10, prefix " " -%%default 3 size 7, bar "gray70", vgap 10 -%%default 4 size 7, vgap 30, prefix " ", font "standard" -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Default settings that are applied to TAB-indented lines. -%% -%tab 1 size 5, vgap 40, prefix " ", icon arc "red" 50 -%tab 2 size 4, vgap 35, prefix " ", icon delta3 "blue" 40 -%tab 3 size 3, vgap 35, prefix " ", icon dia "DarkViolet" 40 -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -%nodefault -%center, size 9, font "thick", back "white", fore "black" - - - -Tor: -%size 8 -Next-generation Onion Routing - - -%size 7 -Roger Dingledine -Nick Mathewson -Paul Syverson - -%%The Free Haven Project -%%%font "typewriter", fore "blue" -%%http://freehaven.net/ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Low-latency anonymity system - -%leftfill -Deployed: 19 nodes, hundreds of users (?) - -Many improvements on earlier design - -Free software -- available source code - -Design is not covered by earlier onion routing -patent - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Perfect forward secrecy - - -Telescoping circuit - - negotiates keys at each hop - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%page -%% -%%Separation from "protocol cleaning" -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -No mixing, padding, traffic shaping (yet) - - -Please show us they're worth the usability tradeoff - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%page -%% -%%Many TCP streams can share one circuit -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Congestion control - - -Simple rate limiting - -Plus have to keep internal nodes from overflowing - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Directory servers - - -Approve new servers - -Tell clients who's up right now - - plus their keys, location, etc - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Variable exit policies - - -Each server allows different outgoing connections - -E.g. no servers allow outgoing mail currently - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -End-to-end integrity checking - - -In previous onion routing, an insider could change -the text being transmitted: - -"dir" => "rm *" - -Even an external adversary could do this! - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Rendezvous points - - -allow hidden services - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -Differences / limitations - - -We're TCP-only, not all IP (but we're user-space and very portable) - -Not peer-to-peer - -No protocol normalization - -%%Not unobservable - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page - -We have working code - - -Plus a design document, -and a byte-level specification - -%size 9 -http://freehaven.net/tor/ -

    - -1  Overview