tor-design.tex 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. \documentclass[times,10pt,twocolumn]{article}
  2. \usepackage{latex8}
  3. \usepackage{times}
  4. \usepackage{url}
  5. \usepackage{graphics}
  6. \usepackage{amsmath}
  7. \pagestyle{empty}
  8. \renewcommand\url{\begingroup \def\UrlLeft{<}\def\UrlRight{>}\urlstyle{tt}\Url}
  9. \newcommand\emailaddr{\begingroup \def\UrlLeft{<}\def\UrlRight{>}\urlstyle{tt}\Url}
  10. % If an URL ends up with '%'s in it, that's because the line *in the .bib/.tex
  11. % file* is too long, so break it there (it doesn't matter if the next line is
  12. % indented with spaces). -DH
  13. %\newif\ifpdf
  14. %\ifx\pdfoutput\undefined
  15. % \pdffalse
  16. %\else
  17. % \pdfoutput=1
  18. % \pdftrue
  19. %\fi
  20. \begin{document}
  21. %% Use dvipdfm instead. --DH
  22. %\ifpdf
  23. % \pdfcompresslevel=9
  24. % \pdfpagewidth=\the\paperwidth
  25. % \pdfpageheight=\the\paperheight
  26. %\fi
  27. \title{Tor: Design of a Next-generation Onion Router}
  28. \author{Roger Dingledine \\ The Free Haven Project \\ arma@freehaven.net \and
  29. Nick Mathewson \\ The Free Haven Project \\ nickm@freehaven.net \and
  30. Paul Syverson \\ Naval Research Lab \\ syverson@itd.nrl.navy.mil}
  31. \maketitle
  32. \thispagestyle{empty}
  33. \begin{abstract}
  34. We present Tor, a connection-based anonymous communication system based
  35. on onion routing.
  36. Tor works in a real-world Internet environment,
  37. requires little synchronization or coordination between nodes, and
  38. protects against known anonymity-breaking attacks as well
  39. as or better than other systems with similar design parameters.
  40. \end{abstract}
  41. %\begin{center}
  42. %\textbf{Keywords:} anonymity, peer-to-peer, remailer, nymserver, reply block
  43. %\end{center}
  44. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  45. \Section{Overview}
  46. \label{sec:intro}
  47. Onion routing is a TCP-based anonymous communication system
  48. The onion routing project published a number of papers several years
  49. ago \cite{x,y,z}, but because the only implementation was a fragile
  50. proof-of-concept that ran on a single machine, many critical design issues
  51. were not considered or addressed. Here we describe Tor, a protocol for
  52. asynchronous, loosely federated onion routers that provides the following
  53. improvements over the old onion routing design:
  54. \begin{itemize}
  55. \item \textbf{Congestion control:} Foo
  56. \item \textbf{No mixing or traffic shaping:}
  57. \item \textbf{Applications talk to the onion proxy via socks:}
  58. \item \textbf{Directory servers:}
  59. \item \textbf{Forward security:}
  60. \item \textbf{Many applications can share one circuit:}
  61. \item \textbf{End-to-end integrity checking:}
  62. \item \textbf{Robustness to node failure:} router twins
  63. \item \textbf{Exit policies:}
  64. Tor provides a consistent mechanism for each node to specify and
  65. advertise an exit policy.
  66. \item \textbf{Rendezvous points:}
  67. location-protected servers
  68. \end{itemize}
  69. We review mixes and mix-nets in Section \ref{sec:background},
  70. describe our goals and assumptions in Section \ref{sec:assumptions},
  71. and then address the above list of improvements in Sections
  72. \ref{sec:design}-\ref{sec:nymservers}. We then summarize how our design
  73. stands up to known attacks, and conclude with a list of open problems.
  74. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  75. \Section{Threat model and background}
  76. \label{sec:background}
  77. anonymizer
  78. pipenet
  79. freedom
  80. onion routing
  81. isdn-mixes
  82. crowds
  83. real-time mixes, web mixes
  84. anonnet (marc rennhard's stuff)
  85. morphmix
  86. P5
  87. gnunet
  88. rewebbers
  89. tarzan
  90. herbivore
  91. \SubSection{Known attacks against low-latency anonymity systems}
  92. We discuss each of these attacks in more detail below, along with the
  93. aspects of the Tor design that provide defense. We provide a summary
  94. of the attacks and our defenses against them in Section \ref{sec:attacks}.
  95. \Section{Design goals and assumptions}
  96. \label{sec:assumptions}
  97. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  98. \Section{The Tor Design}
  99. \label{sec:design}
  100. \Section{Other design decisions}
  101. \SubSection{Exit policies and abuse}
  102. \label{subsec:exitpolicies}
  103. \SubSection{Directory Servers}
  104. \label{subsec:dir-servers}
  105. \Section{Rendezvous points: pseudonyms with responder anonymity}
  106. \label{sec:rendezvous}
  107. \Section{Maintaining anonymity sets}
  108. \label{sec:maintaining-anonymity}
  109. \SubSection{Using a circuit many times}
  110. \label{subsec:many-messages}
  111. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  112. \Section{Attacks and Defenses}
  113. \label{sec:attacks}
  114. Below we summarize a variety of attacks and how well our design withstands
  115. them.
  116. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  117. \Section{Future Directions and Open Problems}
  118. \label{sec:conclusion}
  119. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  120. \Section{Acknowledgments}
  121. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  122. \bibliographystyle{latex8}
  123. \bibliography{minion-design}
  124. \end{document}
  125. % Style guide:
  126. % U.S. spelling
  127. % avoid contractions (it's, can't, etc.)
  128. % 'mix', 'mixes' (as noun)
  129. % 'mix-net'
  130. % 'mix', 'mixing' (as verb)
  131. % 'Mixminion Project'
  132. % 'Mixminion' (meaning the protocol suite or the network)
  133. % 'Mixmaster' (meaning the protocol suite or the network)
  134. % 'middleman' [Not with a hyphen; the hyphen has been optional
  135. % since Middle English.]
  136. % 'nymserver'
  137. % 'Cypherpunk', 'Cypherpunks', 'Cypherpunk remailer'
  138. %
  139. % 'Whenever you are tempted to write 'Very', write 'Damn' instead, so
  140. % your editor will take it out for you.' -- Misquoted from Mark Twain