summaryrefslogtreecommitdiff
path: root/doc/design-paper/blocking.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/design-paper/blocking.tex')
-rw-r--r--doc/design-paper/blocking.tex352
1 files changed, 0 insertions, 352 deletions
diff --git a/doc/design-paper/blocking.tex b/doc/design-paper/blocking.tex
deleted file mode 100644
index ebc677ab82..0000000000
--- a/doc/design-paper/blocking.tex
+++ /dev/null
@@ -1,352 +0,0 @@
-\documentclass{llncs}
-
-\usepackage{url}
-\usepackage{amsmath}
-\usepackage{epsfig}
-
-%\setlength{\textwidth}{5.9in}
-%\setlength{\textheight}{8.4in}
-%\setlength{\topmargin}{.5cm}
-%\setlength{\oddsidemargin}{1cm}
-%\setlength{\evensidemargin}{1cm}
-
-\newenvironment{tightlist}{\begin{list}{$\bullet$}{
- \setlength{\itemsep}{0mm}
- \setlength{\parsep}{0mm}
- % \setlength{\labelsep}{0mm}
- % \setlength{\labelwidth}{0mm}
- % \setlength{\topsep}{0mm}
- }}{\end{list}}
-
-\begin{document}
-
-\title{Design of a blocking-resistant anonymity system}
-
-\author{}
-
-\maketitle
-\pagestyle{plain}
-
-\begin{abstract}
-
-Websites around the world are increasingly being blocked by
-government-level firewalls. Many people use anonymizing networks like
-Tor to contact sites without letting an attacker trace their activities,
-and as an added benefit they are no longer affected by local censorship.
-But if the attacker simply denies access to the Tor network itself,
-blocked users can no longer benefit from the security Tor offers.
-
-Here we describe a design that uses the current Tor network as a
-building block to provide an anonymizing network that resists blocking
-by government-level attackers.
-
-\end{abstract}
-
-\section{Introduction and Goals}
-
-Websites like Wikipedia and Blogspot are increasingly being blocked by
-government-level firewalls around the world.
-
-China is the third largest user base for Tor clients~\cite{geoip-tor}.
-Many people already want it, and the current Tor design is easy to block
-(by blocking the directory authorities, by blocking all the server
-IP addresses, or by filtering the signature of the Tor TLS handshake).
-
-Now that we've got an overlay network, we're most of the way there in
-terms of building a blocking-resistant tool.
-
-And it improves the anonymity that Tor can provide to add more different
-classes of users and goals to the Tor network.
-
-\subsection{A single system that works for multiple blocked domains}
-
-We want this to work for people in China, people in Iran, people in
-Thailand, people in firewalled corporate networks, etc. The blocking
-censor will be at different stages of the arms race in different places;
-and likely the list of blocked addresses will be different in each
-location too.
-
-
-\section{Adversary assumptions}
-\label{sec:adversary}
-
-Three main network attacks by censors currently:
-
-\begin{tightlist}
-\item Block destination by string matches in TCP packets.
-
-\item Block destination by IP address.
-
-\item Intercept DNS requests.
-\end{tightlist}
-
-Assume the network firewall has very limited CPU~\cite{clayton06}.
-
-Assume that readers of blocked content will not be punished much
-(relative to writers).
-
-Assume that while various different adversaries can coordinate and share
-notes, there will be a significant time lag between one attacker learning
-how to overcome a facet of our design and other attackers picking it up.
-
-
-
-
-\section{Related schemes}
-
-\subsection{public single-hop proxies}
-
-\subsection{personal single-hop proxies}
-
-Easier to deploy; might not require client-side software.
-
-\subsection{break your sensitive strings into multiple tcp packets}
-
-\subsection{steganography}
-
-% \subsection{}
-
-\section{Useful building blocks}
-
-\subsection{Tor}
-
-Anonymizing networks such as
-Tor~\cite{tor-design}
-aim to hide not only what is being said, but also who is
-communicating with whom, which users are using which websites, and so on.
-These systems have a broad range of users, including ordinary citizens
-who want to avoid being profiled for targeted advertisements, corporations
-who don't want to reveal information to their competitors, and law
-enforcement and government intelligence agencies who need
-to do operations on the Internet without being noticed.
-
-Tor provides three security properties:
-\begin{tightlist}
-\item A local observer can't learn, or influence, your destination.
-\item The destination, or somebody watching the destination, can't learn
-your location.
-\item No single piece of the infrastructure can link you to your
-destination.
-\end{tightlist}
-
-We care most clearly about property number 1. But when the arms race
-progresses, property 2 will become important -- so the blocking adversary
-can't learn user+destination just by volunteering a relay. It's not so
-clear to see that property 3 is important, but consider websites and
-services that are pressured into treating clients from certain network
-locations differently.
-
-Other benefits:
-
-\begin{tightlist}
-\item Separates the role of relay from the role of exit node.
-
-\item (Re)builds circuits automatically in the background, based on
-whichever paths work.
-\end{tightlist}
-
-\subsection{Tor circuits}
-
-can build arbitrary overlay paths given a set of descriptors~\cite{blossom}
-
-\subsection{Tor directory servers}
-
-\subsection{Tor user base}
-
-\section{The Design, version one}
-
-\subsection{Bridge relays}
-
-Some Tor users on the free side of the network will opt to become
-bridge relays. They will relay a bit of traffic and won't need to allow
-exits. They sign up on the bridge directory authorities, below.
-
-...need to outline instructions for a Tor config that will publish
-to an alternate directory authority, and for controller commands
-that will do this cleanly.
-
-\subsection{The bridge directory authority (BDA)}
-
-They aggregate server descriptors just like the main authorities, and
-answer all queries as usual, except they don't publish network statuses.
-
-So once you know a bridge relay's key, you can get the most recent
-server descriptor for it.
-
-XXX need to figure out how to fetch some server statuses from the BDA
-without fetching all statuses. A new URL to fetch I presume?
-
-\subsection{Blocked users}
-
-If a blocked user has a server descriptor for one working bridge relay,
-then he can make secure connections to the BDA to update his knowledge
-about other bridge
-relays, and he can make secure connections to the main Tor network
-and directory servers to build circuits and connect to the rest of
-the Internet.
-
-So now we've reduced the problem from how to circumvent the firewall
-for all transactions (and how to know that the pages you get have not
-been modified by the local attacker) to how to learn about a working
-bridge relay.
-
-The simplest format for communicating information about a bridge relay
-is as an IP address and port for its directory cache. From there, the
-user can ask the directory cache for an up-to-date copy of that bridge
-relay's server descriptor, including its current circuit keys, the port
-it uses for Tor connections, and so on.
-
-However, connecting directly to the directory cache involves a plaintext
-http request, so the censor could create a firewall signature for the
-request and/or its response, thus preventing these connections. If that
-happens, the first fix is to use SSL -- not for authentication, but
-just for encryption so requests look different every time.
-
-There's another possible attack here: since we only learn an IP address
-and port, a local attacker could intercept our directory request and
-give us some other server descriptor. But notice that we don't need
-strong authentication for the bridge relay. Since the Tor client will
-ship with trusted keys for the bridge directory authority and the Tor
-network directory authorities, the user can decide if the bridge relays
-are lying to him or not.
-
-Once the Tor client has fetched the server descriptor at least once,
-it should remember the identity key fingerprint for that bridge relay.
-If the bridge relay moves to a new IP address, the client can then
-use the bridge directory authority to look up a fresh server descriptor
-using this fingerprint.
-
-another option is to conclude
-that it will be better to tunnel through a Tor circuit when fetching them.
-
-The following section describes ways to bootstrap knowledge of your first
-bridge relay, and ways to maintain connectivity once you know a few
-bridge relays.
-
-\section{Discovering and maintaining working bridge relays}
-
-\subsection{Initial network discovery}
-
-We make the assumption that the firewall is not perfect. People can
-get around it through the usual means, or they know a friend who can.
-If they can't get around it at all, then we can't help them -- they
-should go meet more people.
-
-Thus they can reach the BDA. From here we either assume a social
-network or other mechanism for learning IP:dirport or key fingerprints
-as above, or we assume an account server that allows us to limit the
-number of new bridge relays an external attacker can discover.
-
-
-
-\section{The Design, version two}
-
-\item A blinded token, which can be exchanged at the BDA (assuming you
-can reach it) for a new IP:dirport or server descriptor.
-
-\subsection{The account server}
-
-Users can establish reputations, perhaps based on social network
-connectivity, perhaps based on not getting their bridge relays blocked,
-
-
-
-\section{Other issues}
-
-\subsection{How many bridge relays should you know about?}
-
-If they're ordinary Tor users on cable modem or DSL, many of them will
-disappear periodically. How many bridge relays should a blockee know
-about before he's likely to have at least one up at any given point?
-
-The related question is: if the bridge relays change IP addresses
-periodically, how often does the blockee need to "check in" in order
-to keep from being cut out of the loop?
-
-\subsection{How do we know if a bridge relay has been blocked?}
-
-We need some mechanism for testing reachability from inside the
-blocked area. The easiest answer is for certain users inside
-the area to sign up as testing relays, and then we can route through
-them and see if it works.
-
-First problem is that different network areas block different net masks,
-and it will likely be hard to know which users are in which areas. So
-if a bridge relay isn't reachable, is that because of a network block
-somewhere, because of a problem at the bridge relay, or just a temporary
-outage?
-
-Second problem is that if we pick random users to test random relays, the
-adversary should sign up users on the inside, and enumerate the relays
-we test. But it seems dangerous to just let people come forward and
-declare that things are blocked for them, since they could be tricking
-us. (This matters even moreso if our reputation system above relies on
-whether things get blocked to punish or reward.)
-
-
-
-
-\subsection{Tunneling directory lookups through Tor}
-
-All you need to do is bootstrap, and then you can use
-your Tor connection to maintain your Tor connection,
-including doing secure directory fetches.
-
-\subsection{Predictable SSL ports}
-
-We should encourage most servers to listen on port 443, which is
-where SSL normally listens.
-
-Is that all it will take, or should we set things up so some fraction
-of them pick random ports? I can see that both helping and hurting.
-
-\subsection{Predictable TLS handshakes}
-
-Right now Tor has some predictable strings in its TLS handshakes.
-These can be removed; but should they be replaced with nothing, or
-should we try to emulate some popular browser? In any case our
-protocol demands a pair of certs on both sides -- how much will this
-make Tor handshakes stand out?
-
-\section{Anonymity issues from becoming a bridge relay}
-
-You can actually harm your anonymity by relaying traffic in Tor. This is
-the same issue that ordinary Tor servers face. On the other hand, it
-provides improved anonymity against some attacks too:
-
-\begin{verbatim}
-http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#ServerAnonymity
-\end{verbatim}
-
-\subsection{Cablemodem users don't provide important websites}
-
-...so our adversary could just block all DSL and cablemodem networks,
-and for the most part only our bridge relays would be affected.
-
-The first answer is to aim to get volunteers both from traditionally
-``consumer'' networks and also from traditionally ``producer'' networks.
-
-The second answer (not so good) would be to encourage more use of consumer
-networks for popular and useful websites.
-
-\section{Future designs}
-
-\subsection{Bridges inside the blocked network too}
-
-Assuming actually crossing the firewall is the risky part of the
-operation, can we have some bridge relays inside the blocked area too,
-and more established users can use them as relays so they don't need to
-communicate over the firewall directly at all? A simple example here is
-to make new blocked users into internal bridges also -- so they sign up
-on the BDA as part of doing their query, and we give out their addresses
-rather than (or along with) the external bridge addresses. This design
-is a lot trickier because it brings in the complexity of whether the
-internal bridges will remain available, can maintain reachability with
-the outside world, etc.
-
-Hidden services as bridges.
-
-%\bibliographystyle{plain} \bibliography{tor-design}
-
-\end{document}
-