Edits for section 7. I am happier, and the paper is finally under 15 pages.

svn:r763
This commit is contained in:
Nick Mathewson 2003-11-05 01:18:10 +00:00
parent b449d65ca6
commit 03925bc60b

View file

@ -1410,7 +1410,7 @@ itself may be hostile). Filtering content is not a primary goal of Onion
Routing; nonetheless, Tor can directly use Privoxy and related Routing; nonetheless, Tor can directly use Privoxy and related
filtering services to anonymize application data streams. filtering services to anonymize application data streams.
\emph{Option distinguishability.} Configuration options can be a \emph{Option distinguishability.} Options can be a
source of distinguishable patterns. In general there is economic source of distinguishable patterns. In general there is economic
incentive to allow preferential services \cite{econymics}, and some incentive to allow preferential services \cite{econymics}, and some
degree of configuration choice can attract users, which degree of configuration choice can attract users, which
@ -1420,7 +1420,7 @@ options. Thus, clients are currently distinguishable only by their
behavior. behavior.
%XXX Actually, circuitrebuildperiod is such an option. -RD %XXX Actually, circuitrebuildperiod is such an option. -RD
\emph{End-to-end Timing correlation.} Tor only minimally hides \emph{End-to-end timing correlation.} Tor only minimally hides
end-to-end timing correlations. An attacker watching patterns of end-to-end timing correlations. An attacker watching patterns of
traffic at the initiator and the responder will be traffic at the initiator and the responder will be
able to confirm the correspondence with high probability. The able to confirm the correspondence with high probability. The
@ -1429,39 +1429,44 @@ the connection between the onion proxy and the first Tor node,
by running the onion proxy locally or by running the onion proxy locally or
behind a firewall. This approach behind a firewall. This approach
requires an observer to separate traffic originating at the onion requires an observer to separate traffic originating at the onion
router from traffic passing through it; but because we do not mix router from traffic passing through it: a global observer can do this,
or pad, this does not provide much defense. but it might be beyond a limited observer's capabilities.
\emph{End-to-end Size correlation.} Simple packet counting \emph{End-to-end size correlation.} Simple packet counting
without timing correlation will also be effective in confirming without timing correlation will also be effective in confirming
endpoints of a stream. However, even without padding, we have some endpoints of a stream. However, even without padding, we have some
limited protection: the leaky pipe topology means different numbers limited protection: the leaky pipe topology means different numbers
of packets may enter one end of a circuit than exit at the other. of packets may enter one end of a circuit than exit at the other.
\emph{Website fingerprinting.} All the above passive \emph{Website fingerprinting.} All the effective passive
attacks that are at all effective are traffic confirmation attacks. attacks above are traffic confirmation attacks,
This puts them outside our general design goals. There is also which puts them outside our design goals. There is also
a passive traffic analysis attack that is potentially effective. a passive traffic analysis attack that is potentially effective.
Rather than searching exit connections for timing and volume Rather than searching exit connections for timing and volume
correlations, the adversary may build up a database of correlations, the adversary may build up a database of
``fingerprints'' containing file sizes and access patterns for many ``fingerprints'' containing file sizes and access patterns for
interesting websites. He can confirm a user's connection to a given targeted websites. He can later confirm a user's connection to a given
site simply by consulting the database. This attack has site simply by consulting the database. This attack has
been shown to be effective against SafeWeb \cite{hintz-pet02}. But been shown to be effective against SafeWeb \cite{hintz-pet02}.
Tor is not as vulnerable as SafeWeb to this attack: there is the % But
possibility that multiple streams are exiting the circuit at %Tor is not as vulnerable as SafeWeb to this attack: there is the
different places concurrently. Also, fingerprinting will be limited to %possibility that multiple streams are exiting the circuit at
the granularity of cells, currently 256 bytes. Other defenses include %different places concurrently.
larger cell sizes and/or minimal padding schemes that group websites % XXX How does that help? Roger and I don't know. -NM
It may slightly less effective against Tor, since
fingerprinting will be limited to
the granularity of cells, currently 256 bytes. Further potential
defenses include
larger cell sizes and/or minimal padding schemes to group websites
into large sets. But this remains an open problem. Link into large sets. But this remains an open problem. Link
padding or long-range dummies may also make fingerprints harder to padding or long-range dummies may also make fingerprints harder to
detect.\footnote{Note that detect.\footnote{Note that
such fingerprinting should not be confused with the latency attacks this fingerprintin attack should not be confused with the latency attacks
of \cite{back01}. Those require a fingerprint of the latencies of of \cite{back01}. Those require a fingerprint of the latencies of
all circuits through the network, combined with those from the all circuits through the network, combined with those from the
network edges to the targeted user and the responder website. While network edges to the targeted user and the responder website. While
these are in principle feasible and surprises are always possible, these are in principle feasible and surprises are always possible,
these constitute a much more complicated attack, and there is no they constitute a much more complicated attack, and there is no
current evidence of their practicality.}\\ current evidence of their practicality.}\\
\noindent{\large\bf Active attacks}\\ \noindent{\large\bf Active attacks}\\
@ -1497,57 +1502,58 @@ all of their nodes \cite{jap-backdoor}.
\emph{Run a recipient.} By running a Web server, an adversary \emph{Run a recipient.} By running a Web server, an adversary
trivially learns the timing patterns of users connecting to it, and trivially learns the timing patterns of users connecting to it, and
can introduce arbitrary patterns in its responses. This can greatly can introduce arbitrary patterns in its responses. This can greatly
facilitate end-to-end attacks: If the adversary can induce certain facilitate end-to-end attacks: If the adversary can induce
users to connect to his webserver (perhaps by advertising users to connect to his webserver (perhaps by advertising
content targeted at those users), she now holds one end of their content targeted at those users), she now holds one end of their
connection. Additionally, there is a danger that the application connection. Additionally, there is a danger that the application
protocols and associated programs can be induced to reveal protocols and associated programs can be induced to reveal
information about the initiator. Tor does not aim to solve this problem; information about the initiator. Tor does not aim to solve this latter problem;
we depend on Privoxy and similar protocol cleaners. we depend on Privoxy and similar protocol cleaners.
\emph{Run an onion proxy.} It is expected that end users will \emph{Run an onion proxy.} It is expected that end users will
nearly always run their own local onion proxy. However, in some nearly always run their own local onion proxy. However, in some
settings, it may be necessary for the proxy to run settings, it may be necessary for the proxy to run
remotely---typically, in an institutional setting which wants remotely---typically, in institutions that want
to monitor the activity of those connecting to the proxy. to monitor the activity of those connecting to the proxy.
Compromising an onion proxy means compromising all future connections Compromising an onion proxy compromises all future connections
through it. through it.
\emph{DoS non-observed nodes.} An observer who can observe some \emph{DoS non-observed nodes.} An observer who can only watch some
of the Tor network can increase the value of this traffic analysis of the Tor network can increase the value of this traffic
by attacking non-observed nodes to shut them down, reduce by attacking non-observed nodes to shut them down, reduce
their reliability, or persuade users that they are not trustworthy. their reliability, or persuade users that they are not trustworthy.
The best defense here is robustness. The best defense here is robustness.
\emph{Run a hostile node.} In addition to being a \emph{Run a hostile node.} In addition to being a
local observer, an isolated hostile node can create circuits through local observer, an isolated hostile node can create circuits through
itself, or alter traffic patterns, to affect traffic at itself, or alter traffic patterns to affect traffic at
other nodes. Its ability to directly DoS a neighbor is now limited other nodes. (Its ability to directly DoS a neighbor is now limited
by bandwidth throttling. Nonetheless, in order to compromise the by bandwidth throttling.) Nonetheless, in order to compromise the
anonymity of the endpoints of a circuit by its observations, a anonymity of a circuit by its observations, a
hostile node must be immediately adjacent to that endpoint. hostile node must be immediately adjacent to both endpoints.
If an adversary is able to If an adversary can
run multiple ORs, and is able to persuade the directory servers run multiple ORs, and can persuade the directory servers
that those ORs are trustworthy and independent, then occasionally that those ORs are trustworthy and independent, then occasionally
some user will choose one of those ORs for the start and another some user will choose one of those ORs for the start and another
as the end of a circuit. When this happens, the user's as the end of a circuit. When this happens, the user's
anonymity is compromised for those streams. If an adversary can anonymity is compromised for those circuits. If an adversary
control $m$ out of $N$ nodes, he should be able to correlate at most controls $m>1$ out of $N$ nodes, he should be able to correlate at most
$\left(\frac{m}{N}\right)^2$ of the traffic in this way---although an $\left(\frac{m}{N}\right)^2$ of the traffic in this way---although an
adversary adversary
could possibly attract a disproportionately large amount of traffic could possibly attract a disproportionately large amount of traffic
by running an OR with an unusually permissive exit policy. by running an OR with an unusually permissive exit policy.
\emph{Run a hostile directory server.} Directory servers control %% Duplicate.
admission to the network. However, because the network directory %
must be signed by a majority of servers, the threat of a single %\emph{Run a hostile directory server.} Directory servers control
hostile server is minimized. %admission to the network. However, because the network directory
%must be signed by a majority of servers, the threat of a single
%hostile server is minimized.
\emph{Selectively DoS a Tor node.} As noted, neighbors are \emph{Selectively DoS a Tor node.} As noted, neighbors are
bandwidth limited; however, it is possible to open up sufficient bandwidth limited; however, it is possible to open enough
circuits that converge at a single onion router to circuits converging at a single onion router to
overwhelm its network connection, its ability to process new overwhelm its network connection, CPU, or both.
circuits, or both.
% We aim to address something like this attack with our congestion % We aim to address something like this attack with our congestion
% control algorithm. % control algorithm.
@ -1556,14 +1562,14 @@ version of passive timing attacks already discussed earlier.
\emph{Tagging attacks.} A hostile node could ``tag'' a \emph{Tagging attacks.} A hostile node could ``tag'' a
cell by altering it. This would render it unreadable, but if the cell by altering it. This would render it unreadable, but if the
stream is, for example, an unencrypted request to a Web site, stream were, for example, an unencrypted request to a Web site,
the garbled content coming out at the appropriate time could confirm the garbled content coming out at the appropriate time would confirm
the association. However, integrity checks on cells prevent the association. However, integrity checks on cells prevent
this attack. this attack.
\emph{Replace contents of unauthenticated protocols.} When \emph{Replace contents of unauthenticated protocols.} When
relaying an unauthenticated protocol like HTTP, a hostile exit node relaying an unauthenticated protocol like HTTP, a hostile exit node
can impersonate the target server. Thus, whenever possible, clients can impersonate the target server. Thus clients
should prefer protocols with end-to-end authentication. should prefer protocols with end-to-end authentication.
\emph{Replay attacks.} Some anonymity protocols are vulnerable \emph{Replay attacks.} Some anonymity protocols are vulnerable
@ -1580,34 +1586,33 @@ some political heat.
\emph{Distribute hostile code.} An attacker could trick users \emph{Distribute hostile code.} An attacker could trick users
into running subverted Tor software that did not, in fact, anonymize into running subverted Tor software that did not, in fact, anonymize
their connections---or worse, trick ORs into running weakened their connections---or worse, could trick ORs into running weakened
software that provided users with less anonymity. We address this software that provided users with less anonymity. We address this
problem (but do not solve it completely) by signing all Tor releases problem (but do not solve it completely) by signing all Tor releases
with an official public key, and including an entry in the directory with an official public key, and including an entry in the directory
describing which versions are currently believed to be secure. To listing which versions are currently believed to be secure. To
prevent an attacker from subverting the official release itself prevent an attacker from subverting the official release itself
(through threats, bribery, or insider attacks), we provide all (through threats, bribery, or insider attacks), we provide all
releases in source code form, encourage source audits, and releases in source code form, encourage source audits, and
frequently warn our users never to trust any software (even from frequently warn our users never to trust any software (even from
us!) that comes without source.\\ us) that comes without source.\\
\noindent{\large\bf Directory attacks}\\ \noindent{\large\bf Directory attacks}\\
\emph{Destroy directory servers.} If a few directory \emph{Destroy directory servers.} If a few directory
servers drop out of operation, the others still arrive at a final servers disappear, the others still arrive at a final
directory. So long as any directory servers remain in operation, directory. So long as any any directory servers remain in operation,
they will still broadcast their views of the network and generate a they will still broadcast their views of the network and generate a
consensus directory. (If more than half are destroyed, this consensus directory. (If more than half are destroyed, this
directory will not, however, have enough signatures for clients to directory will not, however, have enough signatures for clients to
use it automatically; human intervention will be necessary for use it automatically; human intervention will be necessary for
clients to decide whether to trust the resulting directory, or continue clients to decide whether to trust the resulting directory.)
to use the old valid one.)
\emph{Subvert a directory server.} By taking over a directory \emph{Subvert a directory server.} By taking over a directory server,
server, an attacker can influence (but not control) the final an attacker can partially influence the final directory. Since ORs
directory. Since ORs are included or excluded by majority vote, are included or excluded by majority vote, the corrupt directory can
the corrupt directory can at worst cast a tie-breaking vote to at worst cast a tie-breaking vote to decide whether to include
decide whether to include marginal ORs. How often such marginal marginal ORs. It remains to be seen how often such marginal cases
cases will occur in practice, however, remains to be seen. occur in practice.
\emph{Subvert a majority of directory servers.} If the \emph{Subvert a majority of directory servers.} If the
adversary controls more than half of the directory servers, he can adversary controls more than half of the directory servers, he can
@ -1641,38 +1646,36 @@ appropriate. The tradeoffs of a similar approach are discussed in
\noindent{\large\bf Attacks against rendezvous points}\\ \noindent{\large\bf Attacks against rendezvous points}\\
\emph{Make many introduction requests.} An attacker could \emph{Make many introduction requests.} An attacker could
try to deny Bob service by flooding his Introduction Point with try to deny Bob service by flooding his introduction points with
requests. Because the introduction point can block requests that requests. Because the Introduction point can block requests that
lack authentication tokens, however, Bob can restrict the volume of lack authentication tokens, however, Bob can restrict the volume of
requests he receives, or require a certain amount of computation for requests he receives, or require a certain amount of computation for
every request he receives. every request he receives.
\emph{Attack an introduction point.} An attacker could try to \emph{Attack an introduction point.} An attacker could try to disrupt
disrupt a location-hidden service by disabling its introduction Bob's location-hidden service by disabling its introduction points.
point. But because a service's identity is attached to its public But because a Bob's identity is attached to his public key, Bob
key, not its introduction point, the service can simply re-advertise service can simply re-advertise himself at a different introduction
itself at a different introduction point. point. If an attacker is able to disable all of Bob's introduction
If an attacker is points, he can block access to Bob. However, re-advertisement of new
able to disable all of the introduction points for a given service,
he can block access to the service. However, re-advertisement of
introduction points can still be done secretly so that only introduction points can still be done secretly so that only
high-priority clients know the address of the service's introduction high-priority clients know the address of Bob's introduction
points. These selective secret authorizations can also be issued points. (These selective secret authorizations can also be issued
during normal operation. Thus an attacker must disable during normal operation.) Thus an attacker must disable
all possible introduction points. all possible introduction points.
\emph{Compromise an introduction point.} If an attacker controls \emph{Compromise an introduction point.} If an attacker controls
an introduction point for a service, it can flood the service with Bob's an introduction point, he can flood Bob with
introduction requests, or prevent valid introduction requests from introduction requests, or prevent valid introduction requests from
reaching the hidden server. The server will notice a flooding reaching him. Bob will notice a flooding
attempt if it receives many introduction requests. To notice attempt if it receives many introduction requests. To notice
blocking of valid requests, however, the hidden server should blocking of valid requests, however, he should periodically test the
periodically test the introduction point by sending its introduction introduction point by sending it introduction requests, and making
requests, and making sure it receives them. sure he receives them.
\emph{Compromise a rendezvous point.} Controlling a rendezvous \emph{Compromise a rendezvous point.} Controlling a rendezvous
point gains an attacker no more than controlling any other OR along point gains an attacker no more than controlling any other OR along
a circuit, since all data passing along the rendezvous is protected a circuit, since all data passing through the rendezvous is protected
by the session key shared by the client and server. by the session key shared by the client and server.
\Section{Open Questions in Low-latency Anonymity} \Section{Open Questions in Low-latency Anonymity}