[tor-bugs] #23101 [Core Tor/Tor]: Predict and build specific HS purpose circuits (rather than GENERAL)
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sat Nov 11 02:51:26 UTC 2017
#23101: Predict and build specific HS purpose circuits (rather than GENERAL)
-------------------------------------------------+-------------------------
Reporter: mikeperry | Owner: (none)
Type: enhancement | Status: new
Priority: Medium | Milestone: Tor:
| 0.3.3.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: tor-hs, tor-guard, guard-discovery- | Actual Points:
prop247-controller |
Parent ID: #13837 | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by mikeperry):
Asn - you are right to worry about trying to alter how we deal with
existing purposes, especially in a way that changes the HS state machine.
However, adding a whole new circuit purpose is quite easy. I have done it
several times before. I know how to do it without issue. Aside from a
couple asserts and checks here and there, new purposes get ignored by
existing code. That's what circuit purposes are for.
How about this: instead of messing with the existing HS purpose state
machine(s), we create a new purpose (say CIRCUIT_PURPOSE_HS_GENERAL), and
then in circuit_predict_and_launch_new() we launch new circuits of that
type when we predict we need any hidden service circuits. Then we should
be able to make just a few changes to circuit_get_open_circ_or_launch(),
circuit_launch_by_extend_info(), and circuit_find_to_cannibalize() to use
this new circuit type for hidden service circuits (instead of using
CIRCUIT_PURPOSE_C_GENERAL for them).
That way circuits with this new purpose will otherwise be ignored unless
we are looking to build a new one. And that mechanism for reusing them
will be very similar as it is today, just drawing from
CIRCUIT_PURPOSE_HS_GENERAL instead of CIRCUIT_PURPOSE_C_GENERAL, and we
also don't have to change our current rephist prediction code.
Sound like a plan?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23101#comment:5>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list