mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
finish the draft.
svn:r8942
This commit is contained in:
parent
2557555cd4
commit
e49d7a6e86
BIN
doc/design-paper/blocking.pdf
Normal file
BIN
doc/design-paper/blocking.pdf
Normal file
Binary file not shown.
@ -91,8 +91,11 @@ leveraged for a new blocking-resistant design. Section~\ref{sec:related}
|
|||||||
explains the features and drawbacks of the currently deployed solutions.
|
explains the features and drawbacks of the currently deployed solutions.
|
||||||
In sections~\ref{sec:bridges} through~\ref{sec:discovery}, we explore the
|
In sections~\ref{sec:bridges} through~\ref{sec:discovery}, we explore the
|
||||||
components of our designs in detail. Section~\ref{sec:security} considers
|
components of our designs in detail. Section~\ref{sec:security} considers
|
||||||
security implications; ..... %write the rest.
|
security implications and Section~\ref{sec:reachability} presents other
|
||||||
|
issues with maintaining connectivity and sustainability for the design.
|
||||||
|
Section~\ref{sec:future} speculates about future more complex designs,
|
||||||
|
and finally Section~\ref{sec:conclusion} summarizes our next steps and
|
||||||
|
recommendations.
|
||||||
|
|
||||||
% The other motivation is for places where we're concerned they will
|
% The other motivation is for places where we're concerned they will
|
||||||
% try to enumerate a list of Tor users. So even if they're not blocking
|
% try to enumerate a list of Tor users. So even if they're not blocking
|
||||||
@ -110,7 +113,7 @@ security implications; ..... %write the rest.
|
|||||||
\section{Adversary assumptions}
|
\section{Adversary assumptions}
|
||||||
\label{sec:adversary}
|
\label{sec:adversary}
|
||||||
|
|
||||||
To design an effective anticensorship tool, we need a good model for the
|
To design an effective anti-censorship tool, we need a good model for the
|
||||||
goals and resources of the censors we are evading. Otherwise, we risk
|
goals and resources of the censors we are evading. Otherwise, we risk
|
||||||
spending our effort on keeping the adversaries from doing things they have no
|
spending our effort on keeping the adversaries from doing things they have no
|
||||||
interest in doing, and thwarting techniques they do not use.
|
interest in doing, and thwarting techniques they do not use.
|
||||||
@ -149,7 +152,7 @@ We assume that the attackers' goals are somewhat complex.
|
|||||||
impossible, but unnecessary: if ``undesirable'' information is known only
|
impossible, but unnecessary: if ``undesirable'' information is known only
|
||||||
to a small few, further censoring efforts can be focused elsewhere.
|
to a small few, further censoring efforts can be focused elsewhere.
|
||||||
\item Similarly, the censors are not attempting to shut down or block {\it
|
\item Similarly, the censors are not attempting to shut down or block {\it
|
||||||
every} anticensorship tool---merely the tools that are popular and
|
every} anti-censorship tool---merely the tools that are popular and
|
||||||
effective (because these tools impede the censors' information restriction
|
effective (because these tools impede the censors' information restriction
|
||||||
goals) and those tools that are highly visible (thus making the censors
|
goals) and those tools that are highly visible (thus making the censors
|
||||||
look ineffectual to their citizens and their bosses).
|
look ineffectual to their citizens and their bosses).
|
||||||
@ -238,7 +241,7 @@ Section~\ref{subsec:trust-chain} for discussion on helping the user
|
|||||||
confirm that he has a genuine version and that he can connect to the
|
confirm that he has a genuine version and that he can connect to the
|
||||||
real Tor network.
|
real Tor network.
|
||||||
|
|
||||||
\section{Adapting the current Tor design to anticensorship}
|
\section{Adapting the current Tor design to anti-censorship}
|
||||||
\label{sec:current-tor}
|
\label{sec:current-tor}
|
||||||
|
|
||||||
Tor is popular and sees a lot of use. It's the largest anonymity
|
Tor is popular and sees a lot of use. It's the largest anonymity
|
||||||
@ -325,8 +328,8 @@ user has for her first hop, and the more options she has for her last hop,
|
|||||||
the less likely it is that a given attacker will be watching both ends
|
the less likely it is that a given attacker will be watching both ends
|
||||||
of her circuit~\cite{tor-design}. As a bonus, because our design attracts
|
of her circuit~\cite{tor-design}. As a bonus, because our design attracts
|
||||||
more internal relays that want to help out but don't want to deal with
|
more internal relays that want to help out but don't want to deal with
|
||||||
being an exit relay, we end up with more options for the first hop---the
|
being an exit relay, we end up providing more options for the first
|
||||||
one most critical to being able to reach the Tor network.
|
hop---the one most critical to being able to reach the Tor network.
|
||||||
|
|
||||||
Fifth, Tor is sustainable. Zero-Knowledge Systems offered the commercial
|
Fifth, Tor is sustainable. Zero-Knowledge Systems offered the commercial
|
||||||
but now defunct Freedom Network~\cite{freedom21-security}, a design with
|
but now defunct Freedom Network~\cite{freedom21-security}, a design with
|
||||||
@ -346,7 +349,8 @@ Sixth, Tor has an established user base of hundreds of
|
|||||||
thousands of people from around the world. This diversity of
|
thousands of people from around the world. This diversity of
|
||||||
users contributes to sustainability as above: Tor is used by
|
users contributes to sustainability as above: Tor is used by
|
||||||
ordinary citizens, activists, corporations, law enforcement, and
|
ordinary citizens, activists, corporations, law enforcement, and
|
||||||
even government and military users\footnote{http://tor.eff.org/overview},
|
even government and military users,
|
||||||
|
%\footnote{http://tor.eff.org/overview}
|
||||||
and they can
|
and they can
|
||||||
only achieve their security goals by blending together in the same
|
only achieve their security goals by blending together in the same
|
||||||
network~\cite{econymics,usability:weis2006}. This user base also provides
|
network~\cite{econymics,usability:weis2006}. This user base also provides
|
||||||
@ -356,7 +360,7 @@ addresses that we can leverage for our blocking-resistance design.
|
|||||||
Finally and perhaps most importantly, Tor provides anonymity and prevents any
|
Finally and perhaps most importantly, Tor provides anonymity and prevents any
|
||||||
single server from linking users to their communication partners. Despite
|
single server from linking users to their communication partners. Despite
|
||||||
initial appearances, {\it distributed-trust anonymity is critical for
|
initial appearances, {\it distributed-trust anonymity is critical for
|
||||||
anticensorship efforts}. If any single server can expose dissident bloggers
|
anti-censorship efforts}. If any single server can expose dissident bloggers
|
||||||
or compile a list of users' behavior, the censors can profitably compromise
|
or compile a list of users' behavior, the censors can profitably compromise
|
||||||
that server's operator, perhaps by applying economic pressure to their
|
that server's operator, perhaps by applying economic pressure to their
|
||||||
employers,
|
employers,
|
||||||
@ -609,7 +613,7 @@ this idea when we consider whether and how to publicize a Tor variant
|
|||||||
that improves blocking-resistance---see Section~\ref{subsec:publicity}
|
that improves blocking-resistance---see Section~\ref{subsec:publicity}
|
||||||
for more discussion.)
|
for more discussion.)
|
||||||
|
|
||||||
The broader explanation is that the maintainance of most government-level
|
The broader explanation is that the maintenance of most government-level
|
||||||
filters is aimed at stopping widespread information flow and appearing to be
|
filters is aimed at stopping widespread information flow and appearing to be
|
||||||
in control, not by the impossible goal of blocking all possible ways to bypass
|
in control, not by the impossible goal of blocking all possible ways to bypass
|
||||||
censorship. Censors realize that there will always
|
censorship. Censors realize that there will always
|
||||||
@ -647,7 +651,7 @@ have such a set: the Tor users.
|
|||||||
|
|
||||||
Hundreds of thousands of people around the world use Tor. We can leverage
|
Hundreds of thousands of people around the world use Tor. We can leverage
|
||||||
our already self-selected user base to produce a list of thousands of
|
our already self-selected user base to produce a list of thousands of
|
||||||
often-changing IP addresses. Specifically, we can give them a little
|
frequently-changing IP addresses. Specifically, we can give them a little
|
||||||
button in the GUI that says ``Tor for Freedom'', and users who click
|
button in the GUI that says ``Tor for Freedom'', and users who click
|
||||||
the button will turn into \emph{bridge relays} (or just \emph{bridges}
|
the button will turn into \emph{bridge relays} (or just \emph{bridges}
|
||||||
for short). They can rate limit relayed connections to 10 KB/s (almost
|
for short). They can rate limit relayed connections to 10 KB/s (almost
|
||||||
@ -847,6 +851,7 @@ differently from, say, instant messaging.
|
|||||||
% learn that these are related problems, but it's not obvious to me. -RD
|
% learn that these are related problems, but it's not obvious to me. -RD
|
||||||
|
|
||||||
\subsection{Identity keys as part of addressing information}
|
\subsection{Identity keys as part of addressing information}
|
||||||
|
\label{subsec:id-address}
|
||||||
|
|
||||||
We have described a way for the blocked user to bootstrap into the
|
We have described a way for the blocked user to bootstrap into the
|
||||||
network once he knows the IP address and ORPort of a bridge. What about
|
network once he knows the IP address and ORPort of a bridge. What about
|
||||||
@ -1020,7 +1025,7 @@ The first distribution strategy (used for the first pool) publishes bridge
|
|||||||
addresses in a time-release fashion. The bridge authority divides the
|
addresses in a time-release fashion. The bridge authority divides the
|
||||||
available bridges into partitions, and each partition is deterministically
|
available bridges into partitions, and each partition is deterministically
|
||||||
available only in certain time windows. That is, over the course of a
|
available only in certain time windows. That is, over the course of a
|
||||||
given time slot (say, an hour), each requestor is given a random bridge
|
given time slot (say, an hour), each requester is given a random bridge
|
||||||
from within that partition. When the next time slot arrives, a new set
|
from within that partition. When the next time slot arrives, a new set
|
||||||
of bridges from the pool are available for discovery. Thus some bridge
|
of bridges from the pool are available for discovery. Thus some bridge
|
||||||
address is always available when a new
|
address is always available when a new
|
||||||
@ -1036,9 +1041,9 @@ be useful to some users even as the arms races progress.
|
|||||||
The second distribution strategy publishes bridge addresses based on the IP
|
The second distribution strategy publishes bridge addresses based on the IP
|
||||||
address of the requesting user. Specifically, the bridge authority will
|
address of the requesting user. Specifically, the bridge authority will
|
||||||
divide the available bridges in the pool into a bunch of partitions
|
divide the available bridges in the pool into a bunch of partitions
|
||||||
(as in the first distribution scheme), hash the requestor's IP address
|
(as in the first distribution scheme), hash the requester's IP address
|
||||||
with a secret of its own (as in the above allocation scheme for creating
|
with a secret of its own (as in the above allocation scheme for creating
|
||||||
pools), and give the requestor a random bridge from the appropriate
|
pools), and give the requester a random bridge from the appropriate
|
||||||
partition. To raise the bar, we should discard the last octet of the
|
partition. To raise the bar, we should discard the last octet of the
|
||||||
IP address before inputting it to the hash function, so an attacker
|
IP address before inputting it to the hash function, so an attacker
|
||||||
who only controls a single ``/24'' network only counts as one user. A
|
who only controls a single ``/24'' network only counts as one user. A
|
||||||
@ -1387,13 +1392,13 @@ always reasonable.
|
|||||||
|
|
||||||
For Internet cafe Windows computers that let you attach your own USB key,
|
For Internet cafe Windows computers that let you attach your own USB key,
|
||||||
a USB-based Tor image would be smart. There's Torpark, and hopefully
|
a USB-based Tor image would be smart. There's Torpark, and hopefully
|
||||||
there will be more thoroughly analyzed options down the road. Worries
|
there will be more thoroughly analyzed and trustworthy options down the
|
||||||
remain about hardware or
|
road. Worries remain about hardware or software keyloggers and other
|
||||||
software keyloggers and other spyware---and physical surveillance.
|
spyware, as well as and physical surveillance.
|
||||||
|
|
||||||
If the system lets you boot from a CD or from a USB key, you can gain
|
If the system lets you boot from a CD or from a USB key, you can gain
|
||||||
a bit more security by bringing a privacy LiveCD with you. (This
|
a bit more security by bringing a privacy LiveCD with you. (This
|
||||||
approach isn't foolproof of course, since hardware
|
approach isn't foolproof either of course, since hardware
|
||||||
keyloggers and physical surveillance are still a worry).
|
keyloggers and physical surveillance are still a worry).
|
||||||
|
|
||||||
In fact, LiveCDs are also useful if it's your own hardware, since it's
|
In fact, LiveCDs are also useful if it's your own hardware, since it's
|
||||||
@ -1460,6 +1465,7 @@ community, though, this question remains a critical weakness.
|
|||||||
%issues?
|
%issues?
|
||||||
|
|
||||||
\section{Maintaining reachability}
|
\section{Maintaining reachability}
|
||||||
|
\label{sec:reachability}
|
||||||
|
|
||||||
\subsection{How many bridge relays should you know about?}
|
\subsection{How many bridge relays should you know about?}
|
||||||
|
|
||||||
@ -1522,37 +1528,50 @@ running bridges?
|
|||||||
|
|
||||||
If it's trivial to verify that a given address is operating as a bridge,
|
If it's trivial to verify that a given address is operating as a bridge,
|
||||||
and most bridges run on a predictable port, then it's conceivable our
|
and most bridges run on a predictable port, then it's conceivable our
|
||||||
attacker could scan the whole Internet looking for bridges. (In fact, he
|
attacker could scan the whole Internet looking for bridges. (In fact,
|
||||||
can just concentrate on scanning likely networks like cablemodem and DSL
|
he can just concentrate on scanning likely networks like cablemodem
|
||||||
services---see Section~\ref{subsec:block-cable} above for related attacks.) It
|
and DSL services---see Section~\ref{subsec:block-cable} above for
|
||||||
would be nice to slow down this attack. It would be even nicer to make
|
related attacks.) It would be nice to slow down this attack. It would
|
||||||
it hard to learn whether we're a bridge without first knowing some
|
be even nicer to make it hard to learn whether we're a bridge without
|
||||||
secret. We call this general property \emph{scanning resistance}.
|
first knowing some secret. We call this general property \emph{scanning
|
||||||
|
resistance}, and it goes along with normalizing Tor's TLS handshake and
|
||||||
|
network signature.
|
||||||
|
|
||||||
Password protecting the bridges.
|
We could provide a password to the blocked user, and she (or her Tor
|
||||||
Could provide a password to the bridge user. He provides a nonced hash of
|
client) provides a nonced hash of this password when she connects. We'd
|
||||||
it or something when he connects. We'd need to give him an ID key for the
|
need to give her an ID key for the bridge too (in addition to the IP
|
||||||
bridge too, and wait to present the password until we've TLSed, else the
|
address and port---see Section~\ref{subsec:id-address}), and wait to
|
||||||
adversary can pretend to be the bridge and MITM him to learn the password.
|
present the password until we've finished the TLS handshake, else it
|
||||||
|
would look unusual. If Alice can authenticate the bridge before she
|
||||||
|
tries to send her password, we can resist an adversary who pretends
|
||||||
|
to be the bridge and launches a man-in-the-middle attack to learn the
|
||||||
|
password. But even if she can't, we resist against widespread scanning.
|
||||||
|
|
||||||
We could use some kind of ID-based knocking protocol, or we could act like an
|
Another approach would be some kind of ID-based knocking protocol,
|
||||||
unconfigured HTTPS server if treated like one.
|
where the bridge only answers after some predefined set of connections
|
||||||
|
or interactions. The bridge could even act like an unconfigured HTTPS
|
||||||
|
server (``welcome to the default Apache page'') if accessed without the
|
||||||
|
correct authorization.
|
||||||
|
|
||||||
We can assume that the attacker can easily recognize https connections
|
We might assume that the attacker can recognize HTTPS connections that
|
||||||
to unknown servers. It can then attempt to connect to them and block
|
use self-signed certificates. (This process would be resource-intensive
|
||||||
connections to servers that seem suspicious. It may be that password
|
but not out of the realm of possibility.) But even in this case, many
|
||||||
protected web sites will not be suspicious in general, in which case
|
popular websites around the Internet use self-signed or just plain broken
|
||||||
that may be the easiest way to give controlled access to the bridge.
|
SSL certificates.
|
||||||
If such sites that have no other overt features are automatically
|
|
||||||
blocked when detected, then we may need to be more subtle.
|
|
||||||
Possibilities include serving an innocuous web page if a TLS encrypted
|
|
||||||
request is received without the authorization needed to access the Tor
|
|
||||||
network and only responding to a requested access to the Tor network
|
|
||||||
of proper authentication is given. If an unauthenticated request to
|
|
||||||
access the Tor network is sent, the bridge should respond as if
|
|
||||||
it has received a message it does not understand (as would be the
|
|
||||||
case were it not a bridge).
|
|
||||||
|
|
||||||
|
%to unknown servers. It can then attempt to connect to them and block
|
||||||
|
%connections to servers that seem suspicious. It may be that password
|
||||||
|
%protected web sites will not be suspicious in general, in which case
|
||||||
|
%that may be the easiest way to give controlled access to the bridge.
|
||||||
|
%If such sites that have no other overt features are automatically
|
||||||
|
%blocked when detected, then we may need to be more subtle.
|
||||||
|
%Possibilities include serving an innocuous web page if a TLS encrypted
|
||||||
|
%request is received without the authorization needed to access the Tor
|
||||||
|
%network and only responding to a requested access to the Tor network
|
||||||
|
%of proper authentication is given. If an unauthenticated request to
|
||||||
|
%access the Tor network is sent, the bridge should respond as if
|
||||||
|
%it has received a message it does not understand (as would be the
|
||||||
|
%case were it not a bridge).
|
||||||
|
|
||||||
\subsection{How to motivate people to run bridge relays}
|
\subsection{How to motivate people to run bridge relays}
|
||||||
\label{subsec:incentives}
|
\label{subsec:incentives}
|
||||||
@ -1564,14 +1583,16 @@ will be pleased to run it. We take a similar approach here, by leveraging
|
|||||||
the fact that these users are already interested in protecting their
|
the fact that these users are already interested in protecting their
|
||||||
own Internet traffic, so they will install and run the software.
|
own Internet traffic, so they will install and run the software.
|
||||||
|
|
||||||
Make all Tor users become bridges if they're reachable---needs more work
|
Eventually, we may be able to make all Tor users become bridges if they
|
||||||
on usability first, but we're making progress.
|
pass their self-reachability tests---the software and installers need
|
||||||
|
more work on usability first, but we're making progress.
|
||||||
|
|
||||||
Also, we can make a snazzy network graph with Vidalia that emphasizes
|
In the mean time, we can make a snazzy network graph with Vidalia that
|
||||||
the connections the bridge user is currently relaying. (Minor anonymity
|
emphasizes the connections the bridge user is currently relaying.
|
||||||
implications, but hey.) (In many cases there won't be much activity,
|
%(Minor
|
||||||
so this may backfire. Or it may be better suited to full-fledged Tor
|
%anonymity implications, but hey.) (In many cases there won't be much
|
||||||
servers.)
|
%activity, so this may backfire. Or it may be better suited to full-fledged
|
||||||
|
%Tor servers.)
|
||||||
|
|
||||||
% Also consider everybody-a-server. Many of the scalability questions
|
% Also consider everybody-a-server. Many of the scalability questions
|
||||||
% are easier when you're talking about making everybody a bridge.
|
% are easier when you're talking about making everybody a bridge.
|
||||||
@ -1608,16 +1629,17 @@ Many people working on this field want to publicize the existence
|
|||||||
and extent of censorship concurrently with the deployment of their
|
and extent of censorship concurrently with the deployment of their
|
||||||
circumvention software. The easy reason for this two-pronged push is
|
circumvention software. The easy reason for this two-pronged push is
|
||||||
to attract volunteers for running proxies in their systems; but in many
|
to attract volunteers for running proxies in their systems; but in many
|
||||||
cases their main goal is not to build the software, but rather to educate
|
cases their main goal is not to focus on actually allowing individuals
|
||||||
the world about the censorship. The media also tries to do its part by
|
to circumvent the firewall, but rather to educate the world about the
|
||||||
broadcasting the existence of each new circumvention system.
|
censorship. The media also tries to do its part by broadcasting the
|
||||||
|
existence of each new circumvention system.
|
||||||
|
|
||||||
But at the same time, this publicity attracts the attention of the
|
But at the same time, this publicity attracts the attention of the
|
||||||
censors. We can slow down the arms race by not attracting as much
|
censors. We can slow down the arms race by not attracting as much
|
||||||
attention, and just spreading by word of mouth. If our goal is to
|
attention, and just spreading by word of mouth. If our goal is to
|
||||||
establish a solid social network of bridges and bridge users before
|
establish a solid social network of bridges and bridge users before
|
||||||
the adversary gets involved, does this attention tradeoff work to our
|
the adversary gets involved, does this extra attention work to our
|
||||||
advantage?
|
disadvantage?
|
||||||
|
|
||||||
\subsection{The Tor website: how to get the software}
|
\subsection{The Tor website: how to get the software}
|
||||||
|
|
||||||
@ -1636,6 +1658,7 @@ other media.
|
|||||||
See Section~\ref{subsec:first-bridge} for more discussion.
|
See Section~\ref{subsec:first-bridge} for more discussion.
|
||||||
|
|
||||||
\section{Future designs}
|
\section{Future designs}
|
||||||
|
\label{sec:future}
|
||||||
|
|
||||||
\subsection{Bridges inside the blocked network too}
|
\subsection{Bridges inside the blocked network too}
|
||||||
|
|
||||||
@ -1651,16 +1674,30 @@ is a lot trickier because it brings in the complexity of whether the
|
|||||||
internal bridges will remain available, can maintain reachability with
|
internal bridges will remain available, can maintain reachability with
|
||||||
the outside world, etc.
|
the outside world, etc.
|
||||||
|
|
||||||
Hidden services as bridges. Hidden services as bridge directory authorities.
|
More complex future designs involve operating a separate Tor network
|
||||||
|
inside the blocked area, and using \emph{hidden service bridges}---bridges
|
||||||
|
that can be accessed by users of the internal Tor network but whose
|
||||||
|
addresses are not published or findable, even by these users---to get
|
||||||
|
from inside the firewall to the rest of the Internet. But this design
|
||||||
|
requires directory authorities to run inside the blocked area too,
|
||||||
|
and they would be a fine target to take down the network.
|
||||||
|
|
||||||
\section{Conclusion}
|
% Hidden services as bridge directory authorities.
|
||||||
|
|
||||||
a technical solution won't solve the whole problem. after all, china's
|
\section{Next Steps}
|
||||||
firewall is *socially* very successful, even if technologies exist to
|
\label{sec:conclusion}
|
||||||
get around it.
|
|
||||||
|
|
||||||
but having a strong technical solution is still useful as a piece of the
|
Technical solutions won't solve the whole censorship problem. After all,
|
||||||
puzzle. and tor provides a great set of building blocks to start from.
|
the firewalls in places like China and Iran are \emph{socially} very
|
||||||
|
successful, even if technologies and tricks exist to get around them.
|
||||||
|
However, having a strong technical solution is still necessary as one
|
||||||
|
important piece of the puzzle.
|
||||||
|
|
||||||
|
In this paper, we have shown that Tor provides a great set of building
|
||||||
|
blocks to start from. The next steps are to deploy prototype bridges and
|
||||||
|
bridge authorities, implement some of the proposed discovery strategies,
|
||||||
|
and then observe the system in operation and get more intuition about
|
||||||
|
the actual requirements and adversaries we're up against.
|
||||||
|
|
||||||
\bibliographystyle{plain} \bibliography{tor-design}
|
\bibliographystyle{plain} \bibliography{tor-design}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user