[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] formatting and partial typo fixing
Update of /home/or/cvsroot/doc
In directory moria.mit.edu:/tmp/cvs-serv19353
Modified Files:
tor-design.tex
Log Message:
formatting and partial typo fixing
Index: tor-design.tex
===================================================================
RCS file: /home/or/cvsroot/doc/tor-design.tex,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- tor-design.tex 30 Oct 2003 23:05:40 -0000 1.41
+++ tor-design.tex 31 Oct 2003 06:16:21 -0000 1.42
@@ -251,10 +251,11 @@
deploying isn't there yet, and not all features are implemented.
Mention that it runs, is kinda alpha, kinda deployed, runs on win32.]
-We review previous work in Section \ref{sec:background}, describe
-our goals and assumptions in Section \ref{sec:assumptions},
-and then address the above list of improvements in Sections
-\ref{sec:design}-\ref{sec:maintaining-anonymity}. We then summarize
+We review previous work in Section~\ref{sec:background}, describe
+our goals and assumptions in Section~\ref{sec:assumptions},
+and then address the above list of improvements in
+Sections~\ref{sec:design}-\ref{sec:maintaining-anonymity}. We then
+summarize
how our design stands up to known attacks, and conclude with a list of
open problems.
@@ -416,7 +417,7 @@
\Section{Design goals and assumptions}
\label{sec:assumptions}
-\subsection{Goals}
+\SubSection{Goals}
Like other low-latency anonymity designs, Tor seeks to frustrate
attackers from linking communication partners, or from linking
multiple communications to or from a single point. Within this
@@ -484,7 +485,7 @@
% This last bit sounds completely cheesy. Somebody should tone it down. -NM
\end{description}
-\subsection{Non-goals}
+\SubSection{Non-goals}
In favoring conservative, deployable designs, we have explicitly deferred
a number of goals. Many of these goals are desirable in anonymity systems,
but we choose to defer them either because they are solved elsewhere,
@@ -499,8 +500,8 @@
conservative design.
\item[Not secure against end-to-end attacks:] Tor does not claim to provide a
definitive solution to end-to-end timing or intersection attacks. Some
- approaches, such as running an onion router, may help; see Section
- \ref{sec:analysis} for more discussion.
+ approaches, such as running an onion router, may help; see
+ Section~\ref{sec:analysis} for more discussion.
\item[No protocol normalization:] Tor does not provide \emph{protocol
normalization} like Privoxy or the Anonymizer. In order to make clients
indistinguishable when they use complex and variable protocols such as HTTP,
@@ -697,9 +698,9 @@
privileges. Currently, each OR maintains a long-term TLS connection
to every other
OR. (We examine some ways to relax this clique-topology assumption in
-section \ref{subsec:restricted-routes}). A subset of the ORs also act as
+Section~\ref{subsec:restricted-routes}.) A subset of the ORs also act as
directory servers, tracking which routers are currently in the network;
-see section \ref{subsec:dirservers} for directory server details. Users
+see Section~\ref{subsec:dirservers} for directory server details. Users
run local software called an onion proxy (OP) to fetch directories,
establish paths (called \emph{virtual circuits}) across the network,
and handle connections from user applications. Onion proxies accept
@@ -719,15 +720,15 @@
new router. The onion (decryption) key is used for decrypting requests
from users to set up a circuit and negotiate ephemeral keys. Finally,
link keys are used by the TLS protocol when communicating between
-onion routers. We discuss rotating these keys in Section
-\ref{subsec:rotating-keys}.
+onion routers. We discuss rotating these keys in
+Section~\ref{subsec:rotating-keys}.
-Section \ref{subsec:cells} discusses the structure of the fixed-size
+Section~\ref{subsec:cells} discusses the structure of the fixed-size
\emph{cells} that are the unit of communication in Tor. We describe
-in section \ref{subsec:circuits} how virtual circuits are
-built, extended, truncated, and destroyed. Section \ref{subsec:tcp}
+in Section~\ref{subsec:circuits} how virtual circuits are
+built, extended, truncated, and destroyed. Section~\ref{subsec:tcp}
describes how TCP streams are routed through the network, and finally
-Section \ref{subsec:congestion} talks about congestion control and
+Section~\ref{subsec:congestion} talks about congestion control and
fairness issues.
\SubSection{Cells}
@@ -735,24 +736,27 @@
% I think we should describe connections before cells. -NM
-Traffic passes from one OR to another, or from a user's OP to an OR,
+Traffic passes from one OR to another, or between a user's OP and an OR,
in fixed-size cells. Each cell is 256
bytes, and consists of a header and a payload. The header includes an
-anonymous circuit identifier (ACI) the specifies which circuit the
+anonymous circuit identifier (ACI) that specifies which circuit the
+% Should we replace ACI with circID ? What is this 'anonymous circuit'
+% thing anyway? -RD
cell refers to
(many circuits can be multiplexed over the single TCP connection between
ORs or between an OP and an OR), and a command to describe what to do
with the cell's payload. Cells are either \emph{control} cells, which are
interpreted by the node that receives them, or \emph{relay} cells,
-whichcarry end-to-end stream data. Controls cells can be one of:
+which carry end-to-end stream data. Controls cells can be one of:
\emph{padding} (currently used for keepalive, but also usable for link
padding); \emph{create} or \emph{created} (used to set up a new circuit);
or \emph{destroy} (to tear down a circuit).
% We need to say that ACIs are connection-specific: each circuit has
% a different ACI along each connection. -NM
+% agreed -RD
Relay cells have an additional header (the relay header) after the
-cell header, containing a the stream identifier (many streams can
+cell header, containing the stream identifier (many streams can
be multiplexed over a circuit); an end-to-end checksum for integrity
checking; the length of the relay payload; and a relay command. Relay
commands can be one of: \emph{relay
@@ -876,8 +880,9 @@
address and port, it asks the OP (via SOCKS) to make the connection. The
OP chooses the newest open circuit (or creates one if none is available),
chooses a suitable OR on that circuit to be the exit node (usually the
-last node, but maybe others due to exit policy conflicts; see Section
-\ref{sec:exit-policies}), chooses a new random stream ID for this stream,
+last node, but maybe others due to exit policy conflicts; see
+Section~\ref{sec:exit-policies}), chooses a new random stream ID for
+this stream,
and delivers a relay begin cell to that exit node. It uses a stream ID
of zero for the begin cell (so the OR will recognize it), and the relay
payload lists the new stream ID and the destination address and port.
@@ -939,7 +944,7 @@
% accept passive timing attacks,
% (How? I don't get it. Do we mean end-to-end traffic
% confirmation attacks? -NM)
-and preform integrity
+and perform integrity
checking only at the edges of the circuit. When Alice negotiates a key
with the exit hop, they both start a SHA-1 with some derivative of that key,
thus starting out with randomness that only the two of them know. From
@@ -1052,7 +1057,7 @@
because the TCP streams already guarantee in-order delivery of each
cell. But we need to investigate further the effects of the current
parameters on throughput and latency, while also keeping privacy in mind;
-see Section \ref{sec:maintaining-anonymity} for more discussion.
+see Section~\ref{sec:maintaining-anonymity} for more discussion.
\Section{Other design decisions}
@@ -1355,7 +1360,7 @@
those special 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
the local IP and port of the server, a strategy for authorizating Alices,
@@ -1664,8 +1669,8 @@
the directory servers are still trust bottlenecks. We must find more
decentralized yet practical ways to distribute up-to-date snapshots of
network status without introducing new attacks.
-\item \emph{Implementing location-hidden servers:} While Section
-\ref{sec:rendezvous} provides a design for rendezvous points and
+\item \emph{Implementing location-hidden servers:} While
+Section~\ref{sec:rendezvous} provides a design for rendezvous points and
location-hidden servers, this feature has not yet been implemented.
We will likely encounter additional issues, both in terms of usability
and anonymity, that must be resolved.
@@ -1679,8 +1684,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\Section{Acknowledgments}
%% commented out for anonymous submission
+%\Section{Acknowledgments}
+% Peter Palfrader for editing
+% Bram Cohen for congestion control discussions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%