]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Disable Guard usage for Tor2webMode.
authorMike Perry <mikeperry-git@fscked.org>
Tue, 18 Sep 2012 01:45:10 +0000 (18:45 -0700)
committerNick Mathewson <nickm@torproject.org>
Tue, 18 Sep 2012 20:21:35 +0000 (16:21 -0400)
Tor2webMode is fingerprintable by hidden services through repeated
usage of the same three guard nodes for its rend and intro points.

changes/bug6866
src/or/config.c

index 561676b765691b2b7b31023088784f807f61b1ab..ee1e571eb7357ef9dc2e4aabf7bdbad7da3debc0 100644 (file)
@@ -2,3 +2,7 @@
     - Convert an assert in the pathbias code to a log message. Assert
       appears to only be triggerable by Tor2Web mode. Fixes bug 6866;
       bugfix on 0.2.3.17-beta.
+    - Disable the use of Guard nodes when in Tor2WebMode. Guard usage
+      by Tor2Web clients allows hidden services to identity tor2web
+      clients through their repeated selection of the same rendezvous
+      and introduction point circuit endpoints (their guards).
index 4557853cecc3b8949c1f81001c58ba153d3fb69e..c77f7fbeea45b3b3a5292512e3ed3ba07be1f8c4 100644 (file)
@@ -2522,6 +2522,22 @@ options_validate(or_options_t *old_options, or_options_t *options,
     options->LearnCircuitBuildTimeout = 0;
   }
 
+  if (options->Tor2webMode && options->UseEntryGuards) {
+    /* Tor2WebMode is incompatible with EntryGuards in two ways:
+     *
+     * - Tor2WebMode uses its guard nodes as rend and intro points.
+     *   This makes tor2web users fingerprintable by their continued
+     *   selection of the same 3 nodes for these circuits (their guard
+     *   nodes).
+     *
+     * - Tor2WebMode makes unexpected use of circuit path lengths
+     *   in ways that prevent us from applying the PathBias defense.
+     */
+    log_notice(LD_CONFIG,
+               "Tor2WebMode is enabled; disabling UseEntryGuards.");
+    options->UseEntryGuards = 0;
+  }
+
   if (!(options->LearnCircuitBuildTimeout) &&
         options->CircuitBuildTimeout < RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT) {
     log_warn(LD_CONFIG,