mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Adversary model mostly done? Some other small changes in assumptions et passim.
svn:r648
This commit is contained in:
@@ -798,6 +798,15 @@ full_papers/rao/rao.pdf}},
|
||||
}
|
||||
|
||||
|
||||
@InProceedings{danezis-pets03,
|
||||
author = {George Danezis},
|
||||
title = {Mix-networks with Restricted Routes},
|
||||
booktitle = {Privacy Enhancing Technologies (PET 2003)},
|
||||
year = 2003,
|
||||
editor = {Roger Dingledine},
|
||||
publisher = {Springer-Verlag LNCS (forthcoming)}
|
||||
}
|
||||
|
||||
@InProceedings{gap-pets03,
|
||||
author = {Krista Bennett and Christian Grothoff},
|
||||
title = {{GAP} -- practical anonymous networking},
|
||||
|
||||
+142
-123
@@ -223,8 +223,9 @@ and/or performance limitations. One can also use a cascade (fixed
|
||||
shared route) with a relatively fixed set of users. This assumes a
|
||||
significant degree of agreement and provides an easier target for an active
|
||||
attacker since the endpoints are generally known. However, a practical
|
||||
network with both of these features has been run for many years
|
||||
(the Java Anon Proxy, aka Web MIXes, \cite{web-mix}).
|
||||
network with both of these features and thousands of active users has
|
||||
been run for many years (the Java Anon Proxy, aka Web MIXes,
|
||||
\cite{web-mix}).
|
||||
|
||||
Another low latency design that was proposed independently and at
|
||||
about the same time as onion routing was PipeNet \cite{pipenet}.
|
||||
@@ -313,129 +314,30 @@ communication. Crowds and [XXX] provide anonymity for HTTP requests; [...]
|
||||
|
||||
|
||||
|
||||
anonymizer%
|
||||
pipenet%
|
||||
freedom v1%
|
||||
freedom v2%
|
||||
onion routing v1%
|
||||
isdn-mixes%
|
||||
crowds%
|
||||
real-time mixes, web mixes%
|
||||
anonnet (marc rennhard's stuff)%
|
||||
morphmix%
|
||||
P5%
|
||||
gnunet%
|
||||
rewebbers%
|
||||
tarzan%
|
||||
herbivore%
|
||||
hordes%
|
||||
cebolla (?)%
|
||||
anonymizer\\
|
||||
pipenet\\
|
||||
freedom v1\\
|
||||
freedom v2\\
|
||||
onion routing v1\\
|
||||
isdn-mixes\\
|
||||
crowds\\
|
||||
real-time mixes, web mixes\\
|
||||
anonnet (marc rennhard's stuff)\\
|
||||
morphmix\\
|
||||
P5\\
|
||||
gnunet\\
|
||||
rewebbers\\
|
||||
tarzan\\
|
||||
herbivore\\
|
||||
hordes\\
|
||||
cebolla (?)\\
|
||||
|
||||
[XXX Close by mentioning where Tor fits.]
|
||||
|
||||
\SubSection{Our threat model}
|
||||
\label{subsec:threat-model}
|
||||
|
||||
Like all practical low-latency systems, Tor is broken against a global
|
||||
passive adversary, the most commonly assumed adversary for analysis of
|
||||
theoretical anonymous communication designs. The adversary we assume
|
||||
is weaker than global with respect to distribution, but it is not
|
||||
merely passive. We assume a threat model derived largely from that of
|
||||
\cite{or-pet00}.
|
||||
|
||||
[XXX The following is cut in from the OR analysis paper from PET 2000.
|
||||
I've already changed it a little, but didn't get very far.
|
||||
And, much if not all will eventually
|
||||
go. But I thought it a useful starting point. -PS]
|
||||
|
||||
The basic adversary components we consider are:
|
||||
\begin{description}
|
||||
\item[Observer:] can observe a connection (e.g., a sniffer on an
|
||||
Internet router), but cannot initiate connections.
|
||||
\item[Disrupter:] can delay (indefinitely) or corrupt traffic on a
|
||||
link.
|
||||
\item[Hostile initiator:] can initiate (destroy) connections with
|
||||
specific routes as well as varying the timing and content of traffic
|
||||
on the connections it creates.
|
||||
\item[Hostile responder:] can vary the traffic on the connections made
|
||||
to it including refusing them entirely, intentionally modifying what
|
||||
it sends and at what rate, and selectively closing them.
|
||||
\item[Compromised Tor-node:] can arbitrarily manipulate the connections
|
||||
under its control, as well as creating new connections (that pass
|
||||
through itself).
|
||||
\end{description}
|
||||
|
||||
|
||||
All feasible adversaries can be composed out of these basic
|
||||
adversaries. This includes combinations such as one or more
|
||||
compromised network nodes cooperating with disrupters of links on
|
||||
which those nodes are not adjacent, or such as combinations of hostile
|
||||
outsiders and observers. However, we are able to restrict our
|
||||
analysis of adversaries to just one class, the compromised Tor-node.
|
||||
We now justify this claim.
|
||||
|
||||
Especially in light of our assumption that the network forms a clique,
|
||||
a hostile outsider can perform a subset of the actions that a
|
||||
compromised COR can do. Also, while a compromised COR cannot disrupt
|
||||
or observe a link unless it is adjacent to it, any adversary that
|
||||
replaces some or all observers and/or disrupters with a compromised
|
||||
COR adjacent to the relevant link is more powerful than the adversary
|
||||
it replaces. And, in the presence of adequate link padding or bandwidth
|
||||
limiting even collaborating observers can gain no useful information about
|
||||
connections within the network. They may be able to gain information
|
||||
by observing connections to the network (in the remote-COR configuration),
|
||||
but again this is less than what the COR to which such connection is made
|
||||
can learn. Thus, by considering adversaries consisting of
|
||||
collections of compromised CORs we cover the worst case of all
|
||||
combinations of basic adversaries. Our analysis focuses on this most
|
||||
capable adversary, one or more compromised CORs.
|
||||
|
||||
The possible distributions of adversaries are
|
||||
\begin{itemize}
|
||||
\item{\bf single adversary}
|
||||
\item{\bf multiple adversary:} A fixed, randomly distributed subset of
|
||||
Tor-nodes is compromised.
|
||||
\item{\bf roving adversary:} A fixed-bound size subset of Tor-nodes is
|
||||
compromised at any one time. At specific intervals, other CORs can
|
||||
become compromised or uncompromised.
|
||||
\item{\bf global adversary:} All nodes are compromised.
|
||||
\end{itemize}
|
||||
|
||||
Onion Routing provides no protection against a global adversary. If
|
||||
all the CORs are compromised, they can know exactly who is talking to
|
||||
whom. The content of what was sent will be revealed as it emerges
|
||||
from the OR network, unless it has been end-to-end encrypted outside the
|
||||
OR network. Even a firewall-to-firewall connection is exposed
|
||||
if, as assumed above, our goal is to hide which local-COR is talking to
|
||||
which local-COR.
|
||||
|
||||
\SubSection{Known attacks against low-latency anonymity systems}
|
||||
\label{subsec:known-attacks}
|
||||
|
||||
We discuss each of these attacks in more detail below, along with the
|
||||
aspects of the Tor design that provide defense. We provide a summary
|
||||
of the attacks and our defenses against them in Section \ref{sec:attacks}.
|
||||
|
||||
Passive attacks:
|
||||
simple observation,
|
||||
timing correlation,
|
||||
size correlation,
|
||||
option distinguishability,
|
||||
|
||||
Active attacks:
|
||||
key compromise,
|
||||
iterated subpoena,
|
||||
run recipient,
|
||||
run a hostile node,
|
||||
compromise entire path,
|
||||
selectively DOS servers,
|
||||
introduce timing into messages,
|
||||
directory attacks,
|
||||
tagging attacks
|
||||
|
||||
\Section{Design goals and assumptions}
|
||||
\label{sec:assumptions}
|
||||
|
||||
|
||||
\subsection{Goals}
|
||||
% Are these really our goals? ;) -NM
|
||||
Like other low-latency anonymity designs, Tor seeks to frustrate
|
||||
@@ -500,7 +402,122 @@ provided by an external service.
|
||||
Tor is not steganographic. It doesn't try to conceal which users are
|
||||
sending or receiving communications via Tor.
|
||||
|
||||
\subsection{Assumptions}
|
||||
|
||||
\SubSection{Adversary Model}
|
||||
\label{subsec:adversary-model}
|
||||
|
||||
Like all practical low-latency systems, Tor is broken against a global
|
||||
passive adversary, the most commonly assumed adversary for analysis of
|
||||
theoretical anonymous communication designs. The adversary we assume
|
||||
is weaker than global with respect to distribution, but it is not
|
||||
merely passive.
|
||||
We assume a threat model that expands on that from \cite{or-pet00}.
|
||||
|
||||
|
||||
The basic adversary components we consider are:
|
||||
\begin{description}
|
||||
\item[Observer:] can observe a connection (e.g., a sniffer on an
|
||||
Internet router), but cannot initiate connections. Observations may
|
||||
include timing and/or volume of packets as well as appearance of
|
||||
individual packets (including headers and content).
|
||||
\item[Disrupter:] can delay (indefinitely) or corrupt traffic on a
|
||||
link. Can change all those things that an observer can observe up to
|
||||
the limits of computational ability (e.g., cannot forge signatures
|
||||
unless a key is compromised).
|
||||
\item[Hostile initiator:] can initiate (destroy) connections with
|
||||
specific routes as well as varying the timing and content of traffic
|
||||
on the connections it creates. A special case of the disrupter with
|
||||
additional abilities appropriate to its role in forming connections.
|
||||
\item[Hostile responder:] can vary the traffic on the connections made
|
||||
to it including refusing them entirely, intentionally modifying what
|
||||
it sends and at what rate, and selectively closing them. Also a
|
||||
special case of the disrupter.
|
||||
\item[Key breaker:] can break the longterm private decryption key of a
|
||||
Tor-node.
|
||||
\item[Compromised Tor-node:] can arbitrarily manipulate the connections
|
||||
under its control, as well as creating new connections (that pass
|
||||
through itself).
|
||||
\end{description}
|
||||
|
||||
|
||||
All feasible adversaries can be composed out of these basic
|
||||
adversaries. This includes combinations such as one or more
|
||||
compromised Tor-nodes cooperating with disrupters of links on which
|
||||
those nodes are not adjacent, or such as combinations of hostile
|
||||
outsiders and link observers (who watch links between adjacent
|
||||
Tor-nodes). Note that one type of observer might be a Tor-node. This
|
||||
is sometimes called an honest-but-curious adversary. While an observer
|
||||
Tor-node will perform only correct protocol interactions, it might
|
||||
share information about connections and cannot be assumed to destroy
|
||||
session keys at end of a session. Note that a compromised Tor-node is
|
||||
stronger than any other adversary component in the sense that
|
||||
replacing a component of any adversary with a compromised Tor-node
|
||||
results in a stronger overall adversary (assuming that the compromised
|
||||
Tor-node retains the same signature keys and other private
|
||||
state-information as the component it replaces).
|
||||
|
||||
|
||||
In general we are more focused on traffic analysis attacks than
|
||||
traffic confirmation attacks. A user who runs a Tor proxy on his own
|
||||
machine, connects to some remote Tor-node and makes a connection to an
|
||||
open Internet site, such as a public web server, is vulnerable to
|
||||
traffic confirmation. That is, an active attacker who suspects that
|
||||
the particular client is communicating with the particular server will
|
||||
be able to confirm this if she can attack and observe both the
|
||||
connection between the Tor network and the client and that between the
|
||||
Tor network and the server. Even a purely passive attacker will be
|
||||
able to confirm if the timing and volume properties of the traffic on
|
||||
the connnection are unique enough. This is not to say that Tor offers
|
||||
no resistance to traffic confirmation; it does. We defer discussion
|
||||
of this point and of particular attacks until Section~\ref{sec:attacks},
|
||||
after we have described Tor in more detail. However, we note here some
|
||||
basic assumptions that affect the threat model.
|
||||
|
||||
[XXX I think this next subsection should be cut, leaving its points
|
||||
for the attacks section. But I'm leaving it here for now. The above
|
||||
line refers to the immediately following SubSection.-PS]
|
||||
|
||||
|
||||
\SubSection{Known attacks against low-latency anonymity systems}
|
||||
\label{subsec:known-attacks}
|
||||
|
||||
We discuss each of these attacks in more detail below, along with the
|
||||
aspects of the Tor design that provide defense. We provide a summary
|
||||
of the attacks and our defenses against them in Section~\ref{sec:attacks}.
|
||||
|
||||
Passive attacks:
|
||||
simple observation,
|
||||
timing correlation,
|
||||
size correlation,
|
||||
option distinguishability,
|
||||
|
||||
Active attacks:
|
||||
key compromise,
|
||||
iterated subpoena,
|
||||
run recipient,
|
||||
run a hostile node,
|
||||
compromise entire path,
|
||||
selectively DOS servers,
|
||||
introduce timing into messages,
|
||||
directory attacks,
|
||||
tagging attacks
|
||||
|
||||
|
||||
\SubSection{Assumptions}
|
||||
|
||||
All dirservers are honest and trusted.
|
||||
|
||||
Somewhere between ten percent and twenty percent of nodes
|
||||
are compromised. In some circumstances, e.g., if the Tor network
|
||||
is running on a hardened network where all operators have had careful
|
||||
background checks, the percent of compromised nodes might be much
|
||||
lower. Also, it may be worthwhile to consider cases where many
|
||||
of the `bad' nodes are not fully compromised but simply (passive)
|
||||
observing adversaries. We assume that all adversary components,
|
||||
regardless of their capabilities are collaborating and are connected
|
||||
in an offline clique.
|
||||
|
||||
|
||||
- Threat model
|
||||
- Mostly reliable nodes: not trusted.
|
||||
- Small group of trusted dirserv ops
|
||||
@@ -508,6 +525,7 @@ sending or receiving communications via Tor.
|
||||
|
||||
[XXX what else?]
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\Section{The Tor Design}
|
||||
@@ -744,11 +762,12 @@ issues remaining to be ironed out. In particular:
|
||||
\item \emph{Scalability:} Since Tor's emphasis currently is on simplicity
|
||||
of design and deployment, the current design won't easily handle more
|
||||
than a few hundred servers, because of its clique topology. Restricted
|
||||
route topologies \cite{danezis:pet2003} promise comparable anonymity
|
||||
route topologies \cite{danezis-pets03} promise comparable anonymity
|
||||
with much better scaling properties, but we must solve problems like
|
||||
how to randomly form the network without introducing net attacks.
|
||||
% cascades are a restricted route topology too. we must mention
|
||||
% earlier why we're not satisfied with the cascade approach.
|
||||
% [cascades are a restricted route topology too. we must mention
|
||||
% earlier why we're not satisfied with the cascade approach.]-RD
|
||||
% [We do. At least
|
||||
\item \emph{Cover traffic:} Currently we avoid cover traffic because
|
||||
it introduces clear performance and bandwidth costs, but and its
|
||||
security properties are not well understood. With more research
|
||||
|
||||
Reference in New Issue
Block a user