summaryrefslogtreecommitdiff
path: root/doc/design-paper/challenges.tex
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2005-02-07 06:46:49 +0000
committerRoger Dingledine <arma@torproject.org>2005-02-07 06:46:49 +0000
commit5194833045e8de1c10dc7b2929baa6684db9b2c1 (patch)
tree174c6aa2e6a7161a67bf3c866a516ec1334a0470 /doc/design-paper/challenges.tex
parent0c18282beea9d590fbea5ad8c2b11185e6f84440 (diff)
downloadtor-5194833045e8de1c10dc7b2929baa6684db9b2c1.tar.gz
tor-5194833045e8de1c10dc7b2929baa6684db9b2c1.zip
checkpoint in-progress mucking
svn:r3573
Diffstat (limited to 'doc/design-paper/challenges.tex')
-rw-r--r--doc/design-paper/challenges.tex110
1 files changed, 47 insertions, 63 deletions
diff --git a/doc/design-paper/challenges.tex b/doc/design-paper/challenges.tex
index 857ea67f0c..d40829efef 100644
--- a/doc/design-paper/challenges.tex
+++ b/doc/design-paper/challenges.tex
@@ -18,12 +18,9 @@
\title{Challenges in deploying low-latency anonymity (DRAFT)}
-%\author{Roger Dingledine and Nick Mathewson and }
-%\institute{The Free Haven Project\\
-%\email{\{arma,nickm\}@freehaven.net}}
-\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}
+\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 Lab \email{<syverson@itd.nrl.navy.mil>}}
\maketitle
\pagestyle{empty}
@@ -751,10 +748,11 @@ workable alternative.
\label{subsec:stream-vs-packet}
\label{subsec:tcp-vs-ip}
-We periodically run into ex ZKS employees who tell us that the process of
-anonymizing IPs should ``obviously'' be done at the IP layer. Here are
-the issues that need to be resolved before we'll be ready to switch Tor
-over to arbitrary IP traffic.
+Tor transports streams; it does not tunnel packets. We periodically
+run into developers of the old Freedom network~\cite{freedom21-security}
+who tell us that anonymizing IP addresses should ``obviously'' be done
+at the IP layer. Here are the issues that need to be resolved before
+we'll be ready to switch Tor over to arbitrary IP traffic.
\begin{enumerate}
\setlength{\itemsep}{0mm}
@@ -773,8 +771,7 @@ understanding 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. %, and we believe it's likely vulnerable to tagging
-%attacks \cite{tor-design}.
+never publicly specified.
Also, TLS over UDP is not implemented or even
specified, though some early work has begun on that~\cite{dtls}.
\item \emph{We'll still need to tune network parameters}. Since the above
@@ -806,32 +803,47 @@ than we think. We certainly wouldn't mind if Tor one day is able to
transport a greater variety of protocols.
[XXX clarify our actual attitude here. -NM]
+To be fair, Tor's stream-based approach has run into practical
+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. Supporting such applications requires
+replacing the networking system calls with SOCKS-aware
+versions, or running a SOCKS tunnel locally, neither of which is
+easy for the average user---even with good instructions.
+Even when applications do use SOCKS, they often make DNS requests
+themselves. (The various versions of the SOCKS protocol include some where
+the application tells the proxy an IP address, and some where it sends a
+hostname.) By connecting to the DNS server directly, the application breaks
+the user's anonymity and advertises where it is about to connect.
+
+So in order 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}
-Though Tor has always been designed to be practical and usable first
-with as much anonymity as can be built in subject to those goals, we
-have contemplated that users might need resistance to at least simple
-traffic correlation attacks. Higher-latency mix-networks resist these
-attacks by introducing variability into message arrival times in order to
-suppress timing correlation. Thus, it seems worthwhile to consider the
-whether we can improving Tor's anonymity by introducing batching and delaying
-strategies to the Tor messages to prevent observers from linking incoming and
-outgoing traffic.
-
-Before we consider the engineering issues involved in the approach, of
-course, we first need to study whether it can genuinely make users more
-anonymous. Research on end-to-end traffic analysis on higher-latency mix
-networks~\cite{e2e-traffic} indicates that as timing variance decreases,
-timing correlation attacks require increasingly less data; it might be the
-case that Tor can't resist timing attacks for longer than a few minutes
-without increasing message delays to an unusable degree. Conversely, if Tor
-can remain usable and slow timing attacks by even a matter of hours, this
-would represent a significant improvement in practical anonymity: protecting
-short-duration, once-off activities against a global observer is better than
-protecting no activities at all. In order to answer this question, we might
+Some users need to resist traffic correlation attacks. Higher-latency
+mix-networks resist these attacks by introducing 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 to these attacks without losing too much usability?
+%by introducing batching
+%and delaying strategies to the Tor messages?
+
+First, we need to learn whether we can trade a small increase in latency
+for a large anonymity increase, or if we'll end up trading a lot of
+latency for a small security gain. It would be worthwhile even if we
+can only protect certain use cases, such as infrequent short-duration
+transactions.
+
+ In order to answer this question, we might
try to adapt the techniques of~\cite{e2e-traffic} to a lower-latency mix
-network, where instead of sending uncorrelated messages, users send batches
+network, where instead of sending messages, users send batches
of cells in temporally clustered connections.
Once the anonymity questions are answered, we need to consider usability. If
@@ -851,7 +863,7 @@ the anonymity provided and the interest on the part of users.
Adding a mid-latency option should not require significant fundamental
change to the Tor client or server design; circuits could be labeled as
low- or mid- latency as they are constructed. Low-latency traffic
-would be processed as now, while cells on on circuits that are mid-latency
+would be processed as now, while cells on circuits that are mid-latency
would be sent in uniform-size chunks at synchronized intervals. (Traffic
already moves through the Tor network in fixed-sized cells; this would
increase the granularity.) If servers forward these chunks in roughly
@@ -950,34 +962,6 @@ distribution threat might be to only cache at certain semitrusted
helper nodes. This might help specific clients, but it would limit
the general value of caching.
-%Does that cacheing discussion belong in low-latency?
-
-\subsection{Application support: SOCKS and beyond}
-
-Tor supports the SOCKS protocol, which provides a standardized interface for
-generic TCP proxies. Unfortunately, this is not a complete solution for
-many applications and platforms:
-\begin{tightlist}
-\item Many applications do not support SOCKS. To support such applications,
- it's necessary to replace the networking system calls with SOCKS-aware
- versions, or to run a local SOCKS tunnel and convince the applications to
- connect to localhost. Neither of these tasks is easy for the average user,
- even with good instructions.
-\item Even when applications do use SOCKS, they often make DNS requests
- themselves. (The various versions of the SOCKS protocol include some where
- the application tells the proxy an IP address, and some where it sends a
- hostname.) By connecting to the DNS sever directly, the application breaks
- the user's anonymity and advertises where it is about to connect.
-\end{tightlist}
-
-So in order 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{Measuring performance and capacity}
\label{subsec:performance}