[tor-bugs] #22455 [Core Tor/Tor]: Enumerate cases where we want to retry circuits, and correctly balance retry robustness with guard discovery
Tor Bug Tracker & Wiki
blackhole at torproject.org
Tue May 30 19:14:57 UTC 2017
#22455: Enumerate cases where we want to retry circuits, and correctly balance
retry robustness with guard discovery
------------------------------+------------------------------------------
Reporter: arma | Owner:
Type: task | Status: new
Priority: Medium | Milestone: Tor: 0.3.2.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Keywords: needs-proposal prop224-extra
Actual Points: | Parent ID:
Points: | Reviewer:
Sponsor: |
------------------------------+------------------------------------------
In Tor, and especially in the onion service subsystem, we have a bunch of
situations where a circuit could fail and we ought to retry:
* the onion service attempting to connect to the rendezvous point
* the onion service attempting to publish an hsdesc to the hsdir
* the client attempts to reach the intro point to send its intro1 cell
If we retry too many times, we open ourselves up to new guard discovery
attacks (see prop 247). If we retry too few times, we end up with
robustness or reachability problems ("Tor doesn't work").
It would be nice to just design the single best retry algorithm, and then
apply it to all cases. That way we do the hard design and analysis work
once, and we don't end up with extra complexity when we combine multiple
retry designs. But I think a single best design might not be possible --
compare the hsdir case, where it might be best to wait a while before
retrying, to the rend point case, where waiting a while before retrying is
not so good. Maybe that argues that we can get away with two best designs,
one in the "online, somebody's waiting on me" case, and the other in the
"offline, let's get this done reliably but there's no immediate rush"
case?
Suggested next step: We should write a proposal, with a section
enumerating all of the retry situations that tor has; and a section
enumerating what we can learn about where the circuit failures are, and
how, and how reliable each is (network failure? last hop faillure? guard
failure?); and then a section trying to produce the smallest possible
number of good designs such that every retry situation is handled well.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/22455>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list