mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 22:25:51 +01:00
try to provide a bit more organization
svn:r3426
This commit is contained in:
parent
055ea70d3e
commit
45cbac2626
1 changed files with 154 additions and 151 deletions
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\title{Challenges in bringing low-latency stream anonymity to the masses (DRAFT)}
|
\title{Challenges in practical low-latency stream anonymity (DRAFT)}
|
||||||
|
|
||||||
\author{Roger Dingledine and Nick Mathewson}
|
\author{Roger Dingledine and Nick Mathewson}
|
||||||
\institute{The Free Haven Project\\
|
\institute{The Free Haven Project\\
|
||||||
|
@ -29,12 +29,10 @@ foo
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
|
|
||||||
Anonymous communication on the Internet today
|
|
||||||
|
|
||||||
|
|
||||||
Tor is a low-latency anonymous communication overlay network
|
Tor is a low-latency anonymous communication overlay network
|
||||||
\cite{tor-design}. We have been operating a publicly deployed Tor network
|
\cite{tor-design} designed to be practical and usable for securing TCP
|
||||||
since October 2003.
|
streams over the Internet. We have been operating a publicly deployed
|
||||||
|
Tor network since October 2003.
|
||||||
|
|
||||||
Tor aims to resist observers and insiders by distributing each transaction
|
Tor aims to resist observers and insiders by distributing each transaction
|
||||||
over several nodes in the network. This ``distributed trust'' approach
|
over several nodes in the network. This ``distributed trust'' approach
|
||||||
|
@ -48,38 +46,39 @@ who don't want to reveal information to their competitors, and law
|
||||||
enforcement and government intelligence agencies who need
|
enforcement and government intelligence agencies who need
|
||||||
to do operations on the Internet without being noticed.
|
to do operations on the Internet without being noticed.
|
||||||
|
|
||||||
Tor has been funded by both the U.S. Navy, for use in securing government
|
Tor has been funded by the U.S. Navy, for use in securing government
|
||||||
communications, and also the Electronic Frontier Foundation, for use in
|
communications, and also by the Electronic Frontier Foundation, for use
|
||||||
maintain civil liberties for ordinary citizens online.
|
in maintaining civil liberties for ordinary citizens online. The Tor
|
||||||
The Tor protocol is one of the leading choices
|
protocol is one of the leading choices
|
||||||
to be the anonymizing layer in the European Union's PRIME directive to
|
to be the anonymizing layer in the European Union's PRIME directive to
|
||||||
help maintain privacy in Europe. The University of Dresden in Germany
|
help maintain privacy in Europe. The University of Dresden in Germany
|
||||||
has integrated an independent implementation of the Tor protocol into
|
has integrated an independent implementation of the Tor protocol into
|
||||||
their popular Java Anon Proxy anonymizing client. This wide variety of
|
their popular Java Anon Proxy anonymizing client. This wide variety of
|
||||||
interests helps maintain both the stability and the security of the
|
interests helps maintain both the stability and the security of the
|
||||||
network.
|
network.
|
||||||
|
|
||||||
|
Tor has a weaker threat model than many anonymity designs in the
|
||||||
|
literature. This is because we our primary requirements are to have a
|
||||||
|
practical and useful network, and from there we aim to provide as much
|
||||||
|
anonymity as we can.
|
||||||
|
|
||||||
|
%need to discuss how we take the approach of building the thing, and then
|
||||||
|
%assuming that, how much anonymity can we get. we're not here to model or
|
||||||
|
%to simulate or to produce equations and formulae. but those have their
|
||||||
|
%roles too.
|
||||||
|
|
||||||
|
This paper aims to give the reader enough information to understand the
|
||||||
We deployed this thing called Tor. it's got all these different types of
|
technical and policy issues that Tor faces as we continue deployment,
|
||||||
users. it's been backed by navy and eff, and prime and anonymizer looked at
|
and to lay a research agenda for others to help in addressing some of
|
||||||
it. Because we're this cool, you should believe us when we tell you stuff.
|
these issues. Section \ref{sec:what-is-tor} gives an overview of the Tor
|
||||||
|
design and ours goals. We go on in Section \ref{sec:related} to describe
|
||||||
In this paper we give the reader an understanding of Tor's context
|
Tor's context in the anonymity space. Sections \ref{sec:crossroads-policy}
|
||||||
in the anonymity space and then we go on to describe the
|
and \ref{sec:crossroads-technical} describe the practical challenges,
|
||||||
practical challenges that stand in the way of moving from a practical
|
both policy and technical respectively, that stand in the way of moving
|
||||||
useful network to a practical useful anonymous network.
|
from a practical useful network to a practical useful anonymous network.
|
||||||
|
|
||||||
% The goal of the paper is to get the PET-audience reader up to speed
|
|
||||||
% on all the issues we have with Tor, so he can, if he wants,
|
|
||||||
% * understand the technical and policy and legal issues and why they're
|
|
||||||
% tricky in practice
|
|
||||||
% * help us out with answering some of the technical decisions
|
|
||||||
% (and in writing it, we'll clarify our own opinions about them)
|
|
||||||
% * help us out with answering some of the anonymity questions
|
|
||||||
|
|
||||||
\section{What Is Tor}
|
\section{What Is Tor}
|
||||||
|
\label{sec:what-is-tor}
|
||||||
|
|
||||||
\subsection{Distributed trust: safety in numbers}
|
\subsection{Distributed trust: safety in numbers}
|
||||||
|
|
||||||
|
@ -153,6 +152,7 @@ Tor has the following goals.
|
||||||
and we made these assumptions when trying to design the thing.
|
and we made these assumptions when trying to design the thing.
|
||||||
|
|
||||||
\section{Tor's position in the anonymity field}
|
\section{Tor's position in the anonymity field}
|
||||||
|
\label{sec:related}
|
||||||
|
|
||||||
There are many other classes of systems: single-hop proxies, open proxies,
|
There are many other classes of systems: single-hop proxies, open proxies,
|
||||||
jap, mixminion, flash mixes, freenet, i2p, mute/ants/etc, tarzan,
|
jap, mixminion, flash mixes, freenet, i2p, mute/ants/etc, tarzan,
|
||||||
|
@ -160,15 +160,133 @@ morphmix, freedom. Give brief descriptions and brief characterizations
|
||||||
of how we differ. This is not the breakthrough stuff and we only have
|
of how we differ. This is not the breakthrough stuff and we only have
|
||||||
a page or two for it.
|
a page or two for it.
|
||||||
|
|
||||||
|
have a serious discussion of morphmix's assumptions, since they would
|
||||||
|
seem to be the direct competition. in fact tor is a flexible architecture
|
||||||
|
that would encompass morphmix, and they're nearly identical except for
|
||||||
|
path selection and node discovery. and the trust system morphmix has
|
||||||
|
seems overkill (and/or insecure) based on the threat model we've picked.
|
||||||
|
|
||||||
\section{Crossroads}
|
\section{Crossroads: Policy issues}
|
||||||
|
\label{sec:crossroads-policy}
|
||||||
|
|
||||||
Discuss each item that Tor hasn't solved yet that isn't just coding
|
Bittorrent and dmca. Should we add an IDS to autodetect protocols and
|
||||||
work. Perhaps we'll have so many that we can pick out the best ones to
|
snipe them? Takedowns and efnet abuse and wikipedia complaints and irc
|
||||||
discuss, so it's a bit less of a laundry list. Maybe they'll even fit
|
networks. Should we allow revocation of anonymity if a threshold of
|
||||||
into categories. The trick to making the paper good will be to find
|
servers want to?
|
||||||
the right balance between going into depth and breadth of coverage.
|
|
||||||
|
|
||||||
|
Image: substantial non-infringing uses. Image is a security parameter,
|
||||||
|
since it impacts user base and perceived sustainability.
|
||||||
|
|
||||||
|
good uses are kept private, bad uses are publicized. not good.
|
||||||
|
|
||||||
|
Sustainability. Previous attempts have been commercial which we think
|
||||||
|
adds a lot of unnecessary complexity and accountability. Freedom didn't
|
||||||
|
collect enough money to pay its servers; JAP bandwidth is supported by
|
||||||
|
continued money, and they periodically ask what they will do when it
|
||||||
|
dries up.
|
||||||
|
|
||||||
|
How much should Tor aim to do? Applications that leak data. We can say
|
||||||
|
they're not our problem, but they're somebody's problem.
|
||||||
|
|
||||||
|
Logging. Making logs not revealing. A happy coincidence that verbose
|
||||||
|
logging is our \#2 performance bottleneck. Is there a way to detect
|
||||||
|
modified servers, or to have them volunteer the information that they're
|
||||||
|
logging verbosely? Would that actually solve any attacks?
|
||||||
|
|
||||||
|
\section{Crossroads: Scaling and Design choices}
|
||||||
|
\label{sec:crossroads-design}
|
||||||
|
|
||||||
|
\subsection{Transporting the stream vs transporting the packets}
|
||||||
|
|
||||||
|
We periodically run into ZKS people 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.
|
||||||
|
|
||||||
|
1: we still need to do IP-level packet normalization, to stop things
|
||||||
|
like ip fingerprinting. This is doable.
|
||||||
|
2: we still need to be easy to integrate with user-level applications,
|
||||||
|
so they can do application-level scrubbing. So we will still need
|
||||||
|
application-specific proxies.
|
||||||
|
3: 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. (We also believe that the Freedom and Cebolla designs
|
||||||
|
are vulnerable to tagging attacks.)
|
||||||
|
4: we still need to play with parameters for throughput, congestion control,
|
||||||
|
etc -- since we need sequence numbers and maybe more to do replay detection,
|
||||||
|
and just to handle duplicate frames. so we would be reimplementing some subset of tcp
|
||||||
|
anyway.
|
||||||
|
5: tls over udp is not implemented or even specified.
|
||||||
|
6: exit policies over arbitrary IP packets seems to be an IDS-hard problem. i
|
||||||
|
don't want to build an IDS into tor.
|
||||||
|
7: certain protocols are going to leak information at the IP layer anyway. for
|
||||||
|
example, if we anonymizer your dns requests, but they still go to comcast's dns servers,
|
||||||
|
that's bad.
|
||||||
|
8: hidden services, .exit addresses, etc are broken unless we have some way to
|
||||||
|
reach into the application-level protocol and decide the hostname it's trying to get.
|
||||||
|
|
||||||
|
\subsection{Mid-latency}
|
||||||
|
|
||||||
|
Mid-latency. Can we do traffic shape to get any defense against George's
|
||||||
|
PET2004 paper? Will padding or long-range dummies do anything then? Will
|
||||||
|
it kill the user base or can we get both approaches to play well together?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%\subsection{The DNS problem in practice}
|
||||||
|
|
||||||
|
\subsection{Measuring performance and capacity}
|
||||||
|
|
||||||
|
How to measure performance without letting people selectively deny service
|
||||||
|
by distinguishing pings. Heck, just how to measure performance at all. In
|
||||||
|
practice people have funny firewalls that don't match up to their exit
|
||||||
|
policies and Tor doesn't deal.
|
||||||
|
|
||||||
|
Network investigation: Is all this bandwidth publishing thing a good idea?
|
||||||
|
How can we collect stats better? Note weasel's smokeping, at
|
||||||
|
http://seppia.noreply.org/cgi-bin/smokeping.cgi?target=Tor
|
||||||
|
which probably gives george and steven enough info to break tor?
|
||||||
|
|
||||||
|
\subsection{Plausible deniability}
|
||||||
|
|
||||||
|
Does running a server help you or harm you? George's Oakland attack.
|
||||||
|
Plausible deniability -- without even running your traffic through Tor! We
|
||||||
|
have to pick the path length so adversary can't distinguish client from
|
||||||
|
server (how many hops is good?).
|
||||||
|
|
||||||
|
\subsection{Helper nodes}
|
||||||
|
|
||||||
|
When does fixing your entry or exit node help you?
|
||||||
|
Helper nodes in the literature don't deal with churn, and
|
||||||
|
especially active attacks to induce churn.
|
||||||
|
|
||||||
|
Do general DoS attacks have anonymity implications? See e.g. Adam
|
||||||
|
Back's IH paper, but I think there's more to be pointed out here.
|
||||||
|
|
||||||
|
\subsection{Location-hidden services}
|
||||||
|
|
||||||
|
Survivable services are new in practice, yes? Hidden services seem
|
||||||
|
less hidden than we'd like, since they stay in one place and get used
|
||||||
|
a lot. They're the epitome of the need for helper nodes. This means
|
||||||
|
that using Tor as a building block for Free Haven is going to be really
|
||||||
|
hard. Also, they're brittle in terms of intersection and observation
|
||||||
|
attacks. Would be nice to have hot-swap services, but hard to design.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%\section{Crossroads: Scaling}
|
||||||
|
%\label{sec:crossroads-scaling}
|
||||||
|
%P2P + anonymity issues:
|
||||||
|
|
||||||
|
Incentives. Copy the page I wrote for the NSF proposal, and maybe extend
|
||||||
|
it if we're feeling smart.
|
||||||
|
|
||||||
|
Usability: fc03 paper was great, except the lower latency you are the
|
||||||
|
less useful it seems it is.
|
||||||
|
A Tor gui, how jap's gui is nice but does not reflect the security
|
||||||
|
they provide.
|
||||||
|
Public perception, and thus advertising, is a security parameter.
|
||||||
|
|
||||||
Peer-to-peer / practical issues:
|
Peer-to-peer / practical issues:
|
||||||
|
|
||||||
|
@ -201,124 +319,9 @@ and we maybe we should start with a time-release IP publishing system +
|
||||||
advogato based reputation system, to bound the number of IPs leaked to the
|
advogato based reputation system, to bound the number of IPs leaked to the
|
||||||
adversary.
|
adversary.
|
||||||
|
|
||||||
|
\section{The Future}
|
||||||
|
\label{sec:conclusion}
|
||||||
|
|
||||||
Policy issues:
|
|
||||||
|
|
||||||
Bittorrent and dmca. Should we add an IDS to autodetect protocols and
|
|
||||||
snipe them? Takedowns and efnet abuse and wikipedia complaints and irc
|
|
||||||
networks. Should we allow revocation of anonymity if a threshold of
|
|
||||||
servers want to?
|
|
||||||
|
|
||||||
Image: substantial non-infringing uses. Image is a security parameter,
|
|
||||||
since it impacts user base and perceived sustainability.
|
|
||||||
|
|
||||||
Sustainability. Previous attempts have been commercial which we think
|
|
||||||
adds a lot of unnecessary complexity and accountability. Freedom didn't
|
|
||||||
collect enough money to pay its servers; JAP bandwidth is supported by
|
|
||||||
continued money, and they periodically ask what they will do when it
|
|
||||||
dries up.
|
|
||||||
|
|
||||||
Logging. Making logs not revealing. A happy coincidence that verbose
|
|
||||||
logging is our \#2 performance bottleneck. Is there a way to detect
|
|
||||||
modified servers, or to have them volunteer the information that they're
|
|
||||||
logging verbosely? Would that actually solve any attacks?
|
|
||||||
|
|
||||||
|
|
||||||
Anonymity issues:
|
|
||||||
|
|
||||||
Transporting the stream vs transporting the packets.
|
|
||||||
|
|
||||||
The DNS problem in practice.
|
|
||||||
|
|
||||||
Applications that leak data. We can say they're not our problem, but
|
|
||||||
they're somebody's problem.
|
|
||||||
|
|
||||||
How to measure performance without letting people selectively deny service
|
|
||||||
by distinguishing pings. Heck, just how to measure performance at all. In
|
|
||||||
practice people have funny firewalls that don't match up to their exit
|
|
||||||
policies and Tor doesn't deal.
|
|
||||||
|
|
||||||
Mid-latency. Can we do traffic shape to get any defense against George's
|
|
||||||
PET2004 paper? Will padding or long-range dummies do anything then? Will
|
|
||||||
it kill the user base or can we get both approaches to play well together?
|
|
||||||
|
|
||||||
Does running a server help you or harm you? George's Oakland attack.
|
|
||||||
Plausible deniability -- without even running your traffic through Tor! We
|
|
||||||
have to pick the path length so adversary can't distinguish client from
|
|
||||||
server (how many hops is good?).
|
|
||||||
|
|
||||||
When does fixing your entry or exit node help you?
|
|
||||||
Helper nodes in the literature don't deal with churn, and
|
|
||||||
especially active attacks to induce churn.
|
|
||||||
|
|
||||||
Survivable services are new in practice, yes? Hidden services seem
|
|
||||||
less hidden than we'd like, since they stay in one place and get used
|
|
||||||
a lot. They're the epitome of the need for helper nodes. This means
|
|
||||||
that using Tor as a building block for Free Haven is going to be really
|
|
||||||
hard. Also, they're brittle in terms of intersection and observation
|
|
||||||
attacks. Would be nice to have hot-swap services, but hard to design.
|
|
||||||
|
|
||||||
|
|
||||||
P2P + anonymity issues:
|
|
||||||
|
|
||||||
Incentives. Copy the page I wrote for the NSF proposal, and maybe extend
|
|
||||||
it if we're feeling smart.
|
|
||||||
|
|
||||||
Usability: fc03 paper was great, except the lower latency you are the
|
|
||||||
less useful it seems it is.
|
|
||||||
A Tor gui, how jap's gui is nice but does not reflect the security
|
|
||||||
they provide.
|
|
||||||
Public perception, and thus advertising, is a security parameter.
|
|
||||||
|
|
||||||
Network investigation: Is all this bandwidth publishing thing a good idea?
|
|
||||||
How can we collect stats better? Note weasel's smokeping, at
|
|
||||||
http://seppia.noreply.org/cgi-bin/smokeping.cgi?target=Tor
|
|
||||||
which probably gives george and steven enough info to break tor?
|
|
||||||
|
|
||||||
Do general DoS attacks have anonymity implications? See e.g. Adam
|
|
||||||
Back's IH paper, but I think there's more to be pointed out here.
|
|
||||||
|
|
||||||
% need to do somewhere in the paper:
|
|
||||||
|
|
||||||
have a serious discussion of morphmix's assumptions, since they would
|
|
||||||
seem to be the direct competition. in fact tor is a flexible architecture
|
|
||||||
that would encompass morphmix, and they're nearly identical except for
|
|
||||||
path selection and node discovery. and the trust system morphmix has
|
|
||||||
seems overkill (and/or insecure) based on the threat model we've picked.
|
|
||||||
|
|
||||||
need to discuss how we take the approach of building the thing, and then
|
|
||||||
assuming that, how much anonymity can we get. we're not here to model or
|
|
||||||
to simulate or to produce equations and formulae. but those have their
|
|
||||||
roles too.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%%%
|
|
||||||
|
|
||||||
|
|
||||||
TCP vs UDP
|
|
||||||
argument 1: we need to do IP-level packet normalization, to block things like ip
|
|
||||||
fingerprinting.
|
|
||||||
argument 2: we still need to be easy to integrate with applications, so they can do
|
|
||||||
application-level scrubbing.
|
|
||||||
argument 3: we need a block-level encryption approach that can provide security despite
|
|
||||||
packet loss and out-of-order delivery. i believe you that such a thing can be created,
|
|
||||||
but no thing has yet been specified. so specify it for me if you want me to believe it.
|
|
||||||
(freedom and cebolla are vulnerable to tagging and malleability attacks i believe.)
|
|
||||||
argument 4: we still need to play with parameters for throughput, congestion control,
|
|
||||||
etc -- since we need sequence numbers and maybe more to do replay detection,
|
|
||||||
and just to handle duplicate frames. so we would be reimplementing some subset of tcp
|
|
||||||
anyway.
|
|
||||||
argument 5: tls over udp is not implemented or even specified.
|
|
||||||
argument 6: exit policies over arbitrary IP packets seems to be an IDS-hard problem. i
|
|
||||||
don't want to build an IDS into tor.
|
|
||||||
argument 7: certain protocols are going to leak information at the IP layer anyway. for
|
|
||||||
example, if we anonymizer your dns requests, but they still go to comcast's dns servers,
|
|
||||||
that's bad.
|
|
||||||
argument 8: hidden services, .exit addresses, etc are broken unless we have some way to
|
|
||||||
reach into the application-level protocol and decide the hostname it's trying to get.
|
|
||||||
|
|
||||||
\bibliographystyle{plain} \bibliography{tor-design}
|
\bibliographystyle{plain} \bibliography{tor-design}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue