Browse Source

patch on 112-bring-back-pathlencoinweight.txt from mikeperry

svn:r10001
Roger Dingledine 18 years ago
parent
commit
c148dc7eb4
1 changed files with 34 additions and 79 deletions
  1. 34 79
      doc/spec/proposals/112-bring-back-pathlencoinweight.txt

+ 34 - 79
doc/spec/proposals/112-bring-back-pathlencoinweight.txt

@@ -100,11 +100,12 @@ Anonymity Implications:
 
 
   I believe currently guards are rotated if circuits fail, which does
   I believe currently guards are rotated if circuits fail, which does
   provide some protection, but this could be changed so that an entry
   provide some protection, but this could be changed so that an entry
-  guard is completely abandoned after a certain number of extend or
+  guard is completely abandoned after a certain ratio of extend or
-  general circuit failures, though perhaps this also could be gamed
+  general circuit failures with respect to non-failed circuits. This 
-  to increase guard turnover. Such a game would be much more noticeable
+  could possibly be gamed to increase guard turnover, but such a game 
-  than an individual guard failing circuits, though, since it would
+  would be much more noticeable than an individual guard failing circuits, 
-  affect all clients, not just those who chose a particular guard.
+  though, since it would affect all clients, not just those who chose 
+  a particular guard.
 
 
 
 
 Why not fix Pathlen=2?:
 Why not fix Pathlen=2?:
@@ -117,6 +118,13 @@ Why not fix Pathlen=2?:
   government even care? In the face of these situation-dependent unknowns,
   government even care? In the face of these situation-dependent unknowns,
   it should be up to the user to decide if this is a concern for them or not.
   it should be up to the user to decide if this is a concern for them or not.
 
 
+  It should probably also be noted that even a false positive
+  rate of 1% for a 200k concurrent-user network could mean that for a
+  given node, a given stream could be confused with something like 10
+  users, assuming ~200 nodes carry most of the traffic (ie 1000 users
+  each). Though of course to really know for sure, someone needs to do
+  an attack on a real network, unfortunately.
+
 
 
 Implementation:
 Implementation:
 
 
@@ -124,86 +132,33 @@ Implementation:
   PathlenCoinWeight option (converted to percent) and a call to
   PathlenCoinWeight option (converted to percent) and a call to
   crypto_rand_int(0,100) for the weighted coin.
   crypto_rand_int(0,100) for the weighted coin.
 
 
-  The Vidalia setting should probably be in the network status window
+  The entry_guard_t structure could have num_circ_failed and
-  as a slider, complete with tooltip, help documentation, and perhaps
+  num_circ_succeeded members such that if it exceeds N% circuit 
-  an "Are you Sure?" checkbox.
+  extend failure rate to a second hop, it is removed from the entry list. 
-
+  N should be sufficiently high to avoid churn from normal Tor circuit 
-  The entry_guard_t structure could have a num_circ_failed member
+  failure as determined by TorFlow scans.
-  such that if it exceeds N circuit extend failure to a second hop,
+
-  it is removed from the entry list. N should be sufficiently high
+  The Vidalia option should be presented as a boolean, to minimize confusion
-  to avoid churn from normal Tor circuit failure, and could possibly be
+  for the user. Something like a radiobutton with:
-  represented as a ratio of failed to successful circuits through that
+ 
-  guard.
+   * "I use Tor for Censorship Resistance, not Anonymity. Speed is more
-
+      important to me than Anonymity."
+   * "I use Tor for Anonymity. I need extra protection at the cost of speed."
+  
+  and then some explanation in the help for exactly what this means, and
+  the risks involved with eliminating the adversary's need for timing attacks 
+  wrt to false positives, etc.
 
 
 Migration:
 Migration:
 
 
-  Phase one: Re-enable config and modify new_route_len() to add an
+  Phase one: Experiment with the proper ratio of circuit failures
-  extra hop if coin comes up "heads".
+  used to expire garbage or malicious guards via TorFlow.
 
 
-  Phase two: Experiment with the proper ratio of circuit failures
+  Phase two: Re-enable config and modify new_route_len() to add an
-  used to expire garbage or malicious guards.
+  extra hop if coin comes up "heads".
 
 
-  Phase three: Make slider or entry box in Vidalia, along with help entry
+  Phase three: Make radiobutton in Vidalia, along with help entry
   that explains in layman's terms the risks involved.
   that explains in layman's terms the risks involved.
 
 
 
 
 [1] http://www.cs.umass.edu/~mwright/papers/levine-timing.pdf
 [1] http://www.cs.umass.edu/~mwright/papers/levine-timing.pdf
-
-
-============================================================
-
-I love replying to myself. I can't resist doing it. Sorry. "Think twice
-post once" is a concept totally lost on me, especially when I'm wrong
-the first two times ;)
-
-
-Thus spake Mike Perry (mikepery@fscked.org):
-
-> Why not fix Pathlen=2?:
-> 
->   The main reason I am not advocating that we always use 2 hops is that 
->   in some situations, timing correlation evidence by itself may not be 
->   considered as solid and convincing as an actual, uninterrupted, fully 
->   traced path. Are these timing attacks as effective on a real network 
->   as they are in simulation? Would an extralegal adversary or authoritarian 
->   government even care? In the face of these situation-dependent unknowns, 
->   it should be up to the user to decide if this is a concern for them or not.
-
-Hrmm.. it should probably also be noted that even a false positive
-rate of 1% for a 200k concurrent-user network could mean that for a
-given node, a given stream could be confused with something like 10
-users, assuming ~200 nodes carry most of the traffic (ie 1000 users
-each). Though of course to really know for sure, someone needs to do
-an attack on a real network, unfortunately.
-
-For this reason this option should instead be represented not as a
-slider, but as a straight boolean value, at least in Vidalia.
-
-Perhaps something like a radiobutton: 
-
- * "I use Tor for Censorship Resistance, not Anonymity. Speed is more
-    important to me than Anonymity."
- * "I use Tor for Anonymity. I need extra protection at the cost of speed."
-
-and then some explanation in the help for exactly what this means, and
-the risks involved with eliminating the adversary's need for timing attacks 
-wrt to false positives, etc.
-
-This radio button can then also be used to toggle Johannes's work,
-should it be discovered that using latency/bandwidth measurements
-gives the adversary some information as to your location or likely
-node choices. Or we can create a series of choices along these lines
-as more load balancing/path choice optimizations are developed.
-
----- 
-
-So what does this change mean wrt to the proposal process? Should I
-submit a new proposal? I'm still on the fence if the underlying torrc
-option and Tor implementation should be a coin weight or a fixed
-value, so at this point really all this changes is the proposed
-Vidalia behavior (Vidalia is an imporant part of this proposal,
-because it would be nice to take 33% of the load off the network for
-all users who do not need 3 hops).
-
-