rewrite and tighten section 6

svn:r732
This commit is contained in:
Roger Dingledine 2003-11-03 09:17:47 +00:00
parent e7c0b74c8f
commit 1fa9b39310
2 changed files with 102 additions and 122 deletions

View File

@ -6,6 +6,8 @@ rotate tls-level connections -- make new ones, expire old ones.
dirserver shouldn't put you in running-routers list if you haven't dirserver shouldn't put you in running-routers list if you haven't
uploading a descriptor recently uploading a descriptor recently
look at having smallcells and largecells look at having smallcells and largecells
separate trying to rebuild a circuit because you have none from trying to rebuild a
circuit because the current one is stale
Legend: Legend:
SPEC!! - Not specified SPEC!! - Not specified

View File

@ -992,10 +992,10 @@ at the exit OR.
We stress that Tor does not enable any new class of abuse. Spammers We stress that Tor does not enable any new class of abuse. Spammers
and other attackers already have access to thousands of misconfigured and other attackers already have access to thousands of misconfigured
systems worldwide, and the Tor network is far from the easiest way systems worldwide, and the Tor network is far from the easiest way
to launch these antisocial or illegal attacks. Indeed, Tor's limited to launch these antisocial or illegal attacks.
anonymity may be a benefit here, because large determined adversaries %Indeed, because of its limited
may still be able to track down criminals. In any case, because the %anonymity, Tor is probably not a good way to commit crimes.
%XXX But because the
onion routers can easily be mistaken for the originators of the abuse, onion routers can easily be mistaken for the originators of the abuse,
and the volunteers who run them may not want to deal with the hassle of and the volunteers who run them may not want to deal with the hassle of
repeatedly explaining anonymity networks, we must block or limit attacks repeatedly explaining anonymity networks, we must block or limit attacks
@ -1163,155 +1163,133 @@ bottleneck when we have many users, and do not aid traffic analysis by
forcing clients to periodically announce their existence to any forcing clients to periodically announce their existence to any
central point. central point.
\Section{Rendezvous points: location privacy} \Section{Rendezvous points and location privacy}
\label{sec:rendezvous} \label{sec:rendezvous}
Rendezvous points are a building block for \emph{location-hidden Rendezvous points are a building block for \emph{location-hidden
services} (also known as ``responder anonymity'') in the Tor services} (also known as \emph{responder anonymity}) in the Tor
network. Location-hidden services allow Bob to offer a TCP network. Location-hidden services allow Bob to offer a TCP
service, such as a webserver, without revealing its IP. service, such as a webserver, without revealing its IP.
We are also motivated by protection against distributed DoS attacks: This type of anonymity protects against distributed DoS attacks:
attackers are forced to attack the onion routing network as a whole attackers are forced to attack the onion routing network as a whole
rather than just Bob's IP. rather than just Bob's IP.
Our design for location-hidden servers has the following goals. Our design for location-hidden servers has the following goals.
\textbf{Flood-proof:} An attacker should not be able to flood Bob \textbf{Flood-proof:} Bob needs a way to filter incoming requests,
with traffic simply by sending many requests to talk to Bob. Thus, so an attacker cannot flood Bob simply by sending many requests.
Bob needs a way to filter incoming requests. \textbf{Robust:} Bob \textbf{Robust:} Bob should be able to maintain a long-term pseudonymous
should be able to maintain a long-term pseudonymous identity even identity even in the presence of router failure. Bob's service must
in the presence of router failure. Thus, Bob's service must not be not be tied to a single OR, and Bob must be able to tie his service
tied to a single OR, and Bob must be able to tie his service to new to new ORs. \textbf{Smear-resistant:} if a social attacker offers a
ORs. \textbf{Smear-resistant:} An attacker should not be able to use location-hidden service that is illegal or disreputable, it should not
rendezvous points to smear an OR. That is, if a social attacker tries appear---even to a casual observer---that a rendezvous router is hosting
to host a location-hidden service that is illegal or disreputable, it that service. \textbf{Application-transparent:} Although we require users
should not appear---even to a casual observer---that the OR is hosting to run special software to access location-hidden servers, we must not
that service. \textbf{Application-transparent:} Although we are willing to require them to modify their applications.
require users to run special software to access location-hidden servers,
we are not willing to require them to modify their applications.
\subsection{Rendezvous design}
We provide location-hiding for Bob by allowing him to advertise We provide location-hiding for Bob by allowing him to advertise
several onion routers (his \emph{Introduction Points}) as his public several onion routers (his \emph{introduction points}) as contact
location. (He may do this on any robust efficient distributed points. He may do this on any robust efficient
key-value lookup system with authenticated updates, such as CFS key-value lookup system with authenticated updates, such as a
\cite{cfs:sosp01}\footnote{ distributed hash table (DHT) like CFS \cite{cfs:sosp01}\footnote{
Each onion router could run a node in this lookup Rather than rely on an external infrastructure, the Onion Routing network
system; also note that as a stopgap measure, we can start by running a can run the DHT; to begin, we can run a simple lookup system on the
simple lookup system on the directory servers.}) directory servers.} Alice, the client, chooses an OR as her
Alice, the client, chooses a node for her \emph{rendezvous point}. She connects to one of Bob's introduction
\emph{Meeting Point}. She connects to one of Bob's introduction
points, informs him about her rendezvous point, and then waits for him points, informs him about her rendezvous point, and then waits for him
to connect to the rendezvous point. This extra level of indirection to connect to the rendezvous point. This extra level of indirection
helps Bob's introduction points avoid problems associated with serving helps Bob's introduction points avoid problems associated with serving
unpopular files directly, as could occur, for example, if Bob chooses unpopular files directly (for example, if Bob chooses
an introduction point in Texas to serve anti-ranching propaganda, an introduction point in Texas to serve anti-ranching propaganda,
or if Bob's service tends to get attacked by network vandals. 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 The extra level of indirection also allows Bob to respond to some requests
and ignore others. and ignore others.
The steps of a rendezvous as follows. These steps are performed on We give an overview of the steps of a rendezvous. These steps are
behalf of Alice and Bob by their local onion proxies, which they both performed on behalf of Alice and Bob by their local onion proxies;
must run; application integration is described more fully below. application integration is described more fully below.
\begin{tightlist} \begin{tightlist}
\item Bob chooses some introduction ppoints, and advertises them via \item Bob chooses some introduction points, and advertises them on
CFS (or some other distributed key-value publication system). the DHT.
\item Bob establishes a Tor virtual circuit to each of his \item Bob establishes a Tor circuit to each of his introduction points,
Introduction Points, and waits. and waits.
\item Alice learns about Bob's service out of band (perhaps Bob told her, \item Alice learns about Bob's service out of band (perhaps Bob told her,
or she found it on a website). She looks up the details of Bob's or she found it on a website). She retrieves the details of Bob's
service from CFS. service from the DHT.
\item Alice chooses an OR to serve as a Rendezvous Point (RP) for this \item Alice chooses an OR to serve as the rendezvous point (RP) for this
transaction. She establishes a virtual circuit to her RP, and transaction. She establishes a circuit to RP, and gives it a
tells it to wait for connections. %[XXX how?] rendezvous cookie, which it will use to recognize Bob.
\item Alice opens an anonymous stream to one of Bob's Introduction \item Alice opens an anonymous stream to one of Bob's introduction
Points, and gives it message (encrypted for Bob) which tells him points, and gives it a message (encrypted for Bob) which tells him
about herself, her chosen RP, and the first half of an ephemeral about herself, her chosen RP and the rendezvous cookie, and the
key handshake. The Introduction Point sends the message to Bob. first half of an ephemeral
\item Bob may decide to ignore Alice's request. %[XXX Based on what?] key handshake. The introduction point sends the message to Bob.
Otherwise, he creates a new virtual circuit to Alice's RP, and \item If Bob wants to talk to Alice, he builds a new circuit to Alice's
authenticates himself. %[XXX how?] RP and provides the rendezvous cookie and the second half of the DH
\item If the authentication is successful, the RP connects Alice's handshake (along with a hash of the session key they now share).
virtual circuit to Bob's. Note that RP can't recognize Alice, \item The RP connects Alice's circuit to Bob's. Note that RP can't
Bob, or the data they transmit (they share a session key). recognize Alice, Bob, or the data they transmit.
\item Alice now sends a Begin cell along the circuit. It arrives at Bob's \item Alice now sends a \emph{relay begin} cell along the circuit. It
onion proxy. Bob's onion proxy connects to Bob's webserver. arrives at Bob's onion proxy. Bob's onion proxy connects to Bob's
webserver.
\item An anonymous stream has been established, and Alice and Bob \item An anonymous stream has been established, and Alice and Bob
communicate as normal. communicate as normal.
\end{tightlist} \end{tightlist}
%[XXX We need to modify the above to refer people down to these next
% paragraphs. -NM]
When establishing an introduction point, Bob provides the onion router When establishing an introduction point, Bob provides the onion router
with a public ``introduction'' key. The hash of this public key with a public ``introduction'' key. The hash of this public key
identifies a unique service, and (since Bob is required to sign his identifies a unique service, and (since Bob is required to sign his
messages) prevents anybody else from usurping Bob's introduction point messages) prevents anybody else from usurping Bob's introduction point
in the future. Bob uses the same public key when establishing the other in the future. Bob uses the same public key when establishing the other
introduction points for that service. introduction points for that service. The message that Alice gives
the introduction point includes a hash of Bob's public key to identify
the service, along with an optional initial authentication token (the
introduction point can do prescreening, for example to block replays). Her
message to Bob may include an end-to-end authentication token so Bob
can choose whether to respond.
The message that Alice gives the introduction point includes a hash of Bob's The authentication tokens can be used to provide selective access:
public key to identify the service, an optional initial authentication important users get tokens to ensure uninterrupted access to the
token (the introduction point can do prescreening, eg to block replays), service. During normal situations, Bob's service might simply be offered
and (encrypted to Bob's public key) the location of the rendezvous point, directly from mirrors, and Bob gives out tokens to high-priority users. If
a rendezvous cookie Bob should tell RP so he gets connected to the mirrors are knocked down by distributed DoS attacks, those users
Alice, an optional authentication token so Bob can choose whether to respond, can switch to accessing Bob's service via the Tor rendezvous system.
and the first half of a DH key exchange. When Bob connects to RP
and gets connected to Alice's pipe, his first cell contains the
other half of the DH key exchange.
The authentication tokens can be used to provide selective access to users
proportional to how important it is that they main uninterrupted access
to the service. During normal situations, Bob's service might simply be
offered directly from mirrors; Bob can also give out authentication cookies
to high-priority users. If those mirrors are knocked down by
distributed DoS attacks,
those users can switch to accessing Bob's service via the Tor
rendezvous system.
\SubSection{Integration with user applications} \SubSection{Integration with user applications}
For each service Bob offers, he configures his local onion proxy to know Bob configures his onion proxy to know the local IP and port of his
the local IP and port of the server, a strategy for authorizing Alices, service, a strategy for authorizing clients, and a public key. Bob
and a public key. Bob publishes publishes the public key, an expiration time (``not valid after''), and
the public key, an expiration the current introduction points for his service into the DHT, all indexed
time (``not valid after''), and the current introduction points for by the hash of the public key. Note that Bob's webserver is unmodified,
his and doesn't even know that it's hidden behind the Tor network.
service into CFS, all indexed by the hash of the public key
Note that Bob's webserver is unmodified, and doesn't even know
that it's hidden behind the Tor network.
Because Alice's applications must work unchanged, her client interface Alice's applications also work unchanged---her client interface
remains a SOCKS proxy. Thus we must encode all of the necessary remains a SOCKS proxy. We encode all of the necessary information
information into the fully qualified domain name Alice uses when into the fully qualified domain name Alice uses when establishing her
establishing her connections. Location-hidden services use a virtual connection. Location-hidden services use a virtual top level domain
top level domain called `.onion': thus hostnames take the form called `.onion': thus hostnames take the form x.y.onion where x is the
x.y.onion where x is the authentication cookie, and y encodes the hash authentication cookie, and y encodes the hash of PK. Alice's onion proxy
of PK. Alice's onion proxy examines hostnames and recognizes when examines addresses; if they're destined for a hidden server, it decodes
they're destined for a hidden server. If so, it decodes the PK and the PK and starts the rendezvous as described in the table above.
starts the rendezvous as described in the table above.
\subsection{Previous rendezvous work} \subsection{Previous rendezvous work}
Ian Goldberg developed a similar notion of rendezvous points for Ian Goldberg developed a similar notion of rendezvous points for
low-latency anonymity systems \cite{ian-thesis}. His ``service tags'' low-latency anonymity systems \cite{ian-thesis}. His design differs from
play the same role in his design as the hashes of services' public ours in three ways. First, Goldberg suggests that Alice should manually
keys play in ours. We use public key hashes so that they can be hunt down a current location of the service via Gnutella; whereas our
self-authenticating, and so the client can recognize the same service use of CFS makes lookup faster, more robust, and transparent to the
with confidence later on. His design also differs from ours in the user. Second, in Tor the client and server negotiate ephemeral keys
following ways: First, Goldberg suggests that the client should via Diffie-Hellman, so plaintext is not exposed at any point. Third,
manually hunt down a current location of the service via Gnutella; our design tries to minimize the exposure associated with running the
whereas our use of CFS makes lookup faster, more robust, and service, to encourage volunteers to offer introduction and rendezvous
transparent to the user. Second, in Tor the client and server point services. Tor's introduction points do not output any bytes to the
negotiate ephemeral keys via Diffie-Hellman, so at no point in the clients, and the rendezvous points don't know the client or the server,
path is the plaintext exposed. Third, our design tries to minimize the and can't read the data being transmitted. The indirection scheme is
exposure associated with running the service, so as to make volunteers also designed to include authentication/authorization---if Alice doesn't
more willing to offer introduction and rendezvous point services. include the right cookie with her request for service, Bob need not even
Tor's introduction points do not output any bytes to the clients, and acknowledge his existence.
the rendezvous points don't know the client, the server, or the data
being transmitted. The indirection scheme is also designed to include
authentication/authorization---if the client doesn't include the right
cookie with its request for service, the server need not even
acknowledge its existence.
\Section{Analysis} \Section{Analysis}
\label{sec:analysis} \label{sec:analysis}
@ -1407,6 +1385,7 @@ design withstands them.
not found a compelling use case in Tor for any client-configurable not found a compelling use case in Tor for any client-configurable
options. Thus, clients are currently distinguishable only by their options. Thus, clients are currently distinguishable only by their
behavior. behavior.
%Actually, circuitrebuildperiod is such an option. -RD
\item \emph{End-to-end Timing correlation.} Tor only minimally hides \item \emph{End-to-end Timing correlation.} Tor only minimally hides
end-to-end timing correlations. If an attacker can watch patterns of end-to-end timing correlations. If an attacker can watch patterns of
@ -1567,9 +1546,6 @@ design withstands them.
overwhelm its network connection, its ability to process new overwhelm its network connection, its ability to process new
circuits, or both. circuits, or both.
%OK so I noticed that twins are completely removed from the paper above,
% but it's after 5 so I'll leave that problem to you guys. -PS
\item \emph{Introduce timing into messages.} This is simply a stronger \item \emph{Introduce timing into messages.} This is simply a stronger
version of passive timing attacks already discussed above. version of passive timing attacks already discussed above.
@ -1761,7 +1737,7 @@ anonymity system. Even high-latency anonymity
systems can be vulnerable to end-to-end traffic analysis, if the systems can be vulnerable to end-to-end traffic analysis, if the
traffic volumes are high enough, and if users' habits are sufficiently traffic volumes are high enough, and if users' habits are sufficiently
distinct \cite{limits-open,statistical-disclosure}. \emph{Can distinct \cite{limits-open,statistical-disclosure}. \emph{Can
anything be donw to make low-latency systems resist these attacks as anything be done to make low-latency systems resist these attacks as
well as high-latency systems?} well as high-latency systems?}
Tor already makes some effort to conceal the starts and Tor already makes some effort to conceal the starts and
ends of streams by wrapping all long-range control commands in ends of streams by wrapping all long-range control commands in
@ -1823,7 +1799,7 @@ Alternatively, it may be the case that one of these problems proves
intractable, or that the drawbacks to many-server systems prove intractable, or that the drawbacks to many-server systems prove
greater than the benefits. Nevertheless, we may still do well to greater than the benefits. Nevertheless, we may still do well to
consider non-clique topologies. A cascade topology may provide more consider non-clique topologies. A cascade topology may provide more
defense against traffic confirmation confirmation. defense against traffic confirmation.
% XXX Why would it? Cite. -NM % XXX Why would it? Cite. -NM
Does the hydra (many inputs, few outputs) topology work Does the hydra (many inputs, few outputs) topology work
better? Are we going to get a hydra anyway because most nodes will be better? Are we going to get a hydra anyway because most nodes will be
@ -1938,8 +1914,10 @@ issues remaining to be ironed out. In particular:
%% commented out for anonymous submission %% commented out for anonymous submission
%\Section{Acknowledgments} %\Section{Acknowledgments}
% Peter Palfrader, Geoff Goodell, Adam Shostack, Joseph Sokol-Margolis % Peter Palfrader, Geoff Goodell, Adam Shostack, Joseph Sokol-Margolis,
% John Bashinski
% for editing and comments % for editing and comments
% Matej Pfajfar, Andrei Serjantov, Marc Rennhard for design discussions
% Bram Cohen for congestion control discussions % Bram Cohen for congestion control discussions
% Adam Back for suggesting telescoping circuits % Adam Back for suggesting telescoping circuits