[tor-bugs] #15482 [Tor]: Don't surprise users with new circuits in the middle of browsing

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Apr 18 08:25:03 UTC 2015


#15482: Don't surprise users with new circuits in the middle of browsing
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  mikeperry
  mikeperry              |     Status:  needs_review
         Type:           |  Milestone:  Tor: 0.2.7.x-final
  enhancement            |    Version:
     Priority:  normal   |   Keywords:  tbb-usability, tbb-4.5-alpha,
    Component:  Tor      |  MikePerry201503, tbb-wants,
   Resolution:           |  TorBrowserTeam201504
Actual Points:           |  Parent ID:
       Points:           |
-------------------------+-------------------------------------------------
Changes (by mikeperry):

 * status:  new => needs_review


Comment:

 I now have a proper git branch with something resembling what I'd like to
 have for TBB 4.5 and beyond:
 https://gitweb.torproject.org/mikeperry/tor.git/commit/?h=bug15482

 I decided to create a SocksAuthCircuitRenewPeriod torrc option that
 governs how long we extend the lifetime of socksauth-isolated circuits
 each time a new stream arrives on them. I set the default value to 1 hour.

 I also added code in circuit_is_acceptable() to allow us to keep using a
 circuit with SOCKS u+p auth even if it was otherwise too dirty. I did this
 because when we enable HTTP/2 (#14952), we'll have super-long-lived
 connections that may actually exceed even the 1 hour circuit lifetime
 extension. To preserve our circuit UI and isolation model, we'll want to
 keep using the same circuit for new connections with the same auth in this
 case.

 Because the circuit_detach_stream() hack makes it easier to differentiate
 TBB users (since it removes any possibility of a circuit closing
 immediately after RELAY_END), I placed that in its own commit. I don't
 think I'll actually use this commit in 4.5, though I do think it will
 improve behavior once HTTP/2 is enabled.

 Along the way, I noticed that circuit_is_better() has a serious bug where
 the circuit purpose value was actually being obtained incorrectly, causing
 the majority of that function body to be skipped, so I fixed that. When
 this is fixed, we also need to ensure that we actually keep using SOCKS
 auth circuits if a stream arrives with that same SOCKS auth, otherwise
 we'll actually increase circuit churn.

 I'm going to let that branch run on my TBB through the weekend and keep an
 eye on the loglines, and  if it still seems good to me by Monday, I'll
 probably apply everything but the circuit_detach_stream() commit to the
 4.5-stable release.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/15482#comment:11>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list