Browse Source

other cleanups that have been sitting in my sandbox

svn:r13649
Roger Dingledine 17 years ago
parent
commit
b3c0d066e5

BIN
doc/design-paper/blocking.pdf


+ 4 - 3
doc/design-paper/blocking.tex

@@ -25,7 +25,7 @@
 %\newcommand{\workingnote}[1]{(**#1)}   % makes the note visible.
 %\newcommand{\workingnote}[1]{(**#1)}   % makes the note visible.
 
 
 \date{}
 \date{}
-\title{Design of a blocking-resistant anonymity system}
+\title{Design of a blocking-resistant anonymity system\\DRAFT}
 
 
 %\author{Roger Dingledine\inst{1} \and Nick Mathewson\inst{1}}
 %\author{Roger Dingledine\inst{1} \and Nick Mathewson\inst{1}}
 \author{Roger Dingledine \\ The Tor Project \\ arma@torproject.org \and
 \author{Roger Dingledine \\ The Tor Project \\ arma@torproject.org \and
@@ -46,7 +46,8 @@ itself, blocked users can no longer benefit from the security Tor offers.
 
 
 Here we describe a design that builds upon the current Tor network
 Here we describe a design that builds upon the current Tor network
 to provide an anonymizing network that resists blocking
 to provide an anonymizing network that resists blocking
-by government-level attackers.
+by government-level attackers. We have implemented and deployed this
+design, and talk briefly about early use.
 
 
 \end{abstract}
 \end{abstract}
 
 
@@ -194,7 +195,7 @@ currently~\cite{clayton:pet2006}:
   certain strings or patterns in TCP packets.  Offending packets can be
   certain strings or patterns in TCP packets.  Offending packets can be
   dropped, or can trigger a response like closing the
   dropped, or can trigger a response like closing the
   connection.
   connection.
-\item Block a destination by listing its IP address at a
+\item Block certain IP addresses or destination ports at a
   firewall or other routing control point.
   firewall or other routing control point.
 \item Intercept DNS requests and give bogus responses for certain
 \item Intercept DNS requests and give bogus responses for certain
   destination hostnames.
   destination hostnames.

+ 5 - 3
doc/design-paper/roadmap-future.tex

@@ -52,7 +52,7 @@ into Vidalia.
 
 
 We should add a new option ``auto'' that cycles through a set of preferred
 We should add a new option ``auto'' that cycles through a set of preferred
 ports, testing bindability and reachability for each of them, and only
 ports, testing bindability and reachability for each of them, and only
-complains to the user once it's given up on the common options.
+complains to the user once it's given up on the common choices.
 
 
 \subsection{Incentives design}
 \subsection{Incentives design}
 
 
@@ -112,8 +112,9 @@ routers can't handle this many connections in their routing table.
 
 
 One approach is a restricted-route topology~\cite{danezis:pet2003}:
 One approach is a restricted-route topology~\cite{danezis:pet2003}:
 predefine which relays can reach which other relays, and communicate
 predefine which relays can reach which other relays, and communicate
-these restrictions to the clients. We would need to compute which links
+these restrictions to the relays and the clients. We need to compute
-are acceptable in a way that's decentralized yet scalable, and we would
+which links are acceptable in a way that's decentralized yet scalable,
+and in a way that achieves a small-worlds property; and we
 need an efficient (compact) way to characterize the topology information
 need an efficient (compact) way to characterize the topology information
 so all the users could keep up to date.
 so all the users could keep up to date.
 
 
@@ -162,6 +163,7 @@ Metrics for deciding when you're fast enough and stable enough
 \subsection{Continue Torbutton improvements}
 \subsection{Continue Torbutton improvements}
       especially better docs
       especially better docs
 \subsection{Vidalia and stability (especially wrt ongoing Windows problems)}
 \subsection{Vidalia and stability (especially wrt ongoing Windows problems)}
+      learn how to get useful crash reports (tracebacks) from Windows users
 \subsection{Polipo support on Windows}
 \subsection{Polipo support on Windows}
 \subsection{Auto update for Tor, Vidalia, others}
 \subsection{Auto update for Tor, Vidalia, others}
 \subsection{Tor browser bundle for USB and standalone use}
 \subsection{Tor browser bundle for USB and standalone use}

+ 16 - 15
doc/spec/proposals/121-hidden-service-authentication.txt

@@ -42,8 +42,8 @@ Motivation:
 
 
   The major part of hidden services does not require client authorization
   The major part of hidden services does not require client authorization
   now and won't do so in the future. To the contrary, many clients would
   now and won't do so in the future. To the contrary, many clients would
-  not want to be (pseudonymously) identifiable by the service (which
+  not want to be (pseudonymously) identifiable by the service (though this
-  is unavoidable to some extend), but rather use the service
+  is unavoidable to some extent), but rather use the service
   anonymously. These services are not addressed by this proposal.
   anonymously. These services are not addressed by this proposal.
 
 
   However, there may be certain services which are intended to be accessed
   However, there may be certain services which are intended to be accessed
@@ -93,8 +93,8 @@ Motivation:
   previously guaranteed QoS level, thus providing better latency or
   previously guaranteed QoS level, thus providing better latency or
   bandwidth for selected clients.
   bandwidth for selected clients.
 
 
-  As a disadvantage of performing authorization within the Tor network can
+  A disadvantage of performing authorization within the Tor network is
-  be seen that a hidden service cannot make use of authorization data in
+  that a hidden service cannot make use of authorization data in
   the transported protocol. Tor hidden services were designed to be
   the transported protocol. Tor hidden services were designed to be
   independent of the transported protocol. Therefore it's only possible to
   independent of the transported protocol. Therefore it's only possible to
   either grant or deny access to the whole service, but not to specific
   either grant or deny access to the whole service, but not to specific
@@ -120,7 +120,7 @@ Motivation:
 
 
 Details:
 Details:
 
 
-  1  General infrastructure for authorization to hidden services 
+  1. General infrastructure for authorization to hidden services 
 
 
   We spotted three possible authorization points in the hidden service
   We spotted three possible authorization points in the hidden service
   protocol:
   protocol:
@@ -133,7 +133,7 @@ Details:
   The general idea of this proposal is to allow service providers to
   The general idea of this proposal is to allow service providers to
   restrict access to all of these points to authorized clients only.
   restrict access to all of these points to authorized clients only.
 
 
-  1.1  Client authorization at directory
+  1.1. Client authorization at directory
 
 
   Since the implementation of proposal 114 it is possible to combine a
   Since the implementation of proposal 114 it is possible to combine a
   hidden service descriptor with a so-called descriptor cookie. If done so,
   hidden service descriptor with a so-called descriptor cookie. If done so,
@@ -183,7 +183,7 @@ Details:
   (clients and servers would have to be upgraded anyway for using the new
   (clients and servers would have to be upgraded anyway for using the new
   features).
   features).
 
 
-  1.2  Client authorization at introduction point
+  1.2. Client authorization at introduction point
 
 
   The next possible authorization point after downloading and decrypting
   The next possible authorization point after downloading and decrypting
   a hidden service descriptor is the introduction point. It is important
   a hidden service descriptor is the introduction point. It is important
@@ -288,7 +288,7 @@ Details:
   depending on the version of the contained INTRODUCE2 cell; however, this
   depending on the version of the contained INTRODUCE2 cell; however, this
   approach does not appear very clean.)
   approach does not appear very clean.)
 
 
-  1.3  Client authorization at hidden service
+  1.3. Client authorization at hidden service
 
 
   The time when a hidden service receives an INTRODUCE2 cell constitutes
   The time when a hidden service receives an INTRODUCE2 cell constitutes
   the last possible authorization point during the hidden service
   the last possible authorization point during the hidden service
@@ -363,7 +363,7 @@ Details:
   rendezvous point for 3 times and a total number of 10 connection
   rendezvous point for 3 times and a total number of 10 connection
   establishments (not requests in the transported protocol) per hour.
   establishments (not requests in the transported protocol) per hour.
 
 
-  1.4  Summary of authorization data fields
+  1.4. Summary of authorization data fields
 
 
   In summary, the proposed descriptor format and cell formats provide the
   In summary, the proposed descriptor format and cell formats provide the
   following fields for carrying authorization data:
   following fields for carrying authorization data:
@@ -393,7 +393,7 @@ Details:
   cannot be performed without using an encryption schema for introduction
   cannot be performed without using an encryption schema for introduction
   information.
   information.
 
 
-  1.5  Managing authorization data at servers and clients
+  1.5. Managing authorization data at servers and clients
 
 
   In order to provide authorization data at the hidden server and the
   In order to provide authorization data at the hidden server and the
   authenticated clients, we propose to use files---either the tor
   authenticated clients, we propose to use files---either the tor
@@ -407,7 +407,7 @@ Details:
   and is also a bad idea, because in case of HTTP the requested URL may be
   and is also a bad idea, because in case of HTTP the requested URL may be
   contained in the Host and Referer fields.
   contained in the Host and Referer fields.
 
 
-  2  An authorization protocol based on group and user passwords
+  2. An authorization protocol based on group and user passwords
 
 
   In the following we discuss an authorization protocol for the proposed
   In the following we discuss an authorization protocol for the proposed
   authorization architecture that performs authorization at all three
   authorization architecture that performs authorization at all three
@@ -419,7 +419,7 @@ Details:
   derived from the user key will be used for performing authorization at
   derived from the user key will be used for performing authorization at
   the introduction and the hidden service.
   the introduction and the hidden service.
 
 
-  2.1  Client authorization at directory
+  2.1. Client authorization at directory
 
 
   The server creates groups of users that shall be able to access his
   The server creates groups of users that shall be able to access his
   service. He provides all users of a certain group with the same group key
   service. He provides all users of a certain group with the same group key
@@ -437,7 +437,7 @@ Details:
   server decides to remove authorization for a group, he can simply stop
   server decides to remove authorization for a group, he can simply stop
   publishing hidden service descriptors using the descriptor cookie.
   publishing hidden service descriptors using the descriptor cookie.
 
 
-  2.2  Client authorization at introduction point
+  2.2. Client authorization at introduction point
 
 
   The idea for authenticating at the introduction point is borrowed from
   The idea for authenticating at the introduction point is borrowed from
   authorization at the rendezvous point using a rendezvous cookie. A
   authorization at the rendezvous point using a rendezvous cookie. A
@@ -496,7 +496,7 @@ Details:
   number for the encrypted introduction cookies as well as for
   number for the encrypted introduction cookies as well as for
   ESTABLISH_INTRO and INTRODUCE1 cells is "1".
   ESTABLISH_INTRO and INTRODUCE1 cells is "1".
 
 
-  2.3  Client authorization at hidden service
+  2.3. Client authorization at hidden service
 
 
   Authorization at the hidden service also makes use of the user key,
   Authorization at the hidden service also makes use of the user key,
   because whoever is authorized to pass the introduction point shall be
   because whoever is authorized to pass the introduction point shall be
@@ -526,7 +526,7 @@ Details:
   connection limit of 10 requests per hour and user that helps prevent some
   connection limit of 10 requests per hour and user that helps prevent some
   threats.
   threats.
 
 
-  2.4  Providing authorization data
+  2.4. Providing authorization data
 
 
   The authorization data that needs to be provided by servers consists of
   The authorization data that needs to be provided by servers consists of
   a number of group keys, each having a number of user keys assigned. These
   a number of group keys, each having a number of user keys assigned. These
@@ -647,3 +647,4 @@ Compatibility:
   changed, so that they understand the new cell versions and perform
   changed, so that they understand the new cell versions and perform
   authorization. But again, the new introduction points would remain
   authorization. But again, the new introduction points would remain
   compatible to the existing hidden service protocol.
   compatible to the existing hidden service protocol.
+

+ 2 - 2
src/common/aes.c

@@ -135,9 +135,9 @@ static void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr,
 /*======================================================================*/
 /*======================================================================*/
 /* Interface to AES code, and counter implementation */
 /* Interface to AES code, and counter implementation */
 
 
-/** Implements an aes counter-mode cipher. */
+/** Implements an AES counter-mode cipher. */
 struct aes_cnt_cipher {
 struct aes_cnt_cipher {
-  /** This next element (howevever it's defined) is the AES key. */
+/** This next element (however it's defined) is the AES key. */
 #if defined(USE_OPENSSL_EVP)
 #if defined(USE_OPENSSL_EVP)
   EVP_CIPHER_CTX key;
   EVP_CIPHER_CTX key;
 #elif defined(USE_OPENSSL_AES)
 #elif defined(USE_OPENSSL_AES)

+ 1 - 1
src/common/container.h

@@ -207,7 +207,7 @@ DECLARE_MAP_FNS(digestmap_t, const char *, digestmap_);
 
 
 #undef DECLARE_MAP_FNS
 #undef DECLARE_MAP_FNS
 
 
-/** Used to iterate over the key-value pairs in a map <b>map</b> in order.
+/** Iterates over the key-value pairs in a map <b>map</b> in order.
  * <b>prefix</b> is as for DECLARE_MAP_FNS (i.e., strmap_ or digestmap_).
  * <b>prefix</b> is as for DECLARE_MAP_FNS (i.e., strmap_ or digestmap_).
  * The map's keys and values are of type keytype and valtype respectively;
  * The map's keys and values are of type keytype and valtype respectively;
  * each iteration assigns them to keyvar and valvar.
  * each iteration assigns them to keyvar and valvar.

+ 1 - 1
src/common/tortls.c

@@ -1306,7 +1306,7 @@ _check_no_tls_errors(const char *fname, int line)
 }
 }
 
 
 /** Return true iff the initial TLS connection at <b>tls</b> did not use a v2
 /** Return true iff the initial TLS connection at <b>tls</b> did not use a v2
- * TLS handshake. Output undefined if the handshake isn't finished. */
+ * TLS handshake. Output is undefined if the handshake isn't finished. */
 int
 int
 tor_tls_used_v1_handshake(tor_tls_t *tls)
 tor_tls_used_v1_handshake(tor_tls_t *tls)
 {
 {

+ 1 - 1
src/or/config.c

@@ -2446,7 +2446,7 @@ options_init(or_options_t *options)
   config_init(&options_format, options);
   config_init(&options_format, options);
 }
 }
 
 
-/** Set all vars in the configuration object 'options' to their default
+/** Set all vars in the configuration object <b>options</b> to their default
  * values. */
  * values. */
 static void
 static void
 config_init(config_format_t *fmt, void *options)
 config_init(config_format_t *fmt, void *options)

+ 2 - 2
src/or/geoip.c

@@ -296,8 +296,8 @@ geoip_get_history_start(void)
 
 
 /** Helper type: used to sort per-country totals by value. */
 /** Helper type: used to sort per-country totals by value. */
 typedef struct c_hist_t {
 typedef struct c_hist_t {
-  char country[3]; /**< two-leter country code. */
+  char country[3]; /**< Two-letter country code. */
-  unsigned total; /**< total ips seen in this country. */
+  unsigned total; /**< Total IP addresses seen in this country. */
 } c_hist_t;
 } c_hist_t;
 
 
 /** Sorting helper: return -1, 1, or 0 based on comparison of two
 /** Sorting helper: return -1, 1, or 0 based on comparison of two

+ 1 - 1
src/or/routerlist.c

@@ -3939,7 +3939,7 @@ update_consensus_router_descriptor_downloads(time_t now)
   log_info(LD_DIR,
   log_info(LD_DIR,
            "%d router descriptors downloadable. %d delayed; %d present "
            "%d router descriptors downloadable. %d delayed; %d present "
            "(%d of those were in old_routers); %d would_reject; "
            "(%d of those were in old_routers); %d would_reject; "
-           "%d wouldnt_use, %d in progress.",
+           "%d wouldnt_use; %d in progress.",
            smartlist_len(downloadable), n_delayed, n_have, n_in_oldrouters,
            smartlist_len(downloadable), n_delayed, n_have, n_in_oldrouters,
            n_would_reject, n_wouldnt_use, n_inprogress);
            n_would_reject, n_wouldnt_use, n_inprogress);