[tor-bugs] #13837 [Core Tor/Tor]: Mitigate guard discovery by pinning middle node

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jan 18 07:51:52 UTC 2018


#13837: Mitigate guard discovery by pinning middle node
-------------------------------------------------+-------------------------
 Reporter:  asn                                  |          Owner:
                                                 |  mikeperry
     Type:  defect                               |         Status:
                                                 |  merge_ready
 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, review-group-30            |
Parent ID:  #9001                                |         Points:
 Reviewer:  asn                                  |        Sponsor:
                                                 |  SponsorV-can
-------------------------------------------------+-------------------------

Comment (by mikeperry):

 Replying to [comment:38 arma]:
 > One comment on commit f79f4eec:
 >
 > There keeps being this pattern
 > {{{
 > -  if (purpose == CIRCUIT_PURPOSE_C_GENERAL) {
 > +  if (purpose == CIRCUIT_PURPOSE_C_GENERAL ||
 > +      purpose == CIRCUIT_PURPOSE_S_HSDIR_POST ||
 > +      purpose == CIRCUIT_PURPOSE_C_HSDIR_GET) {
 > }}}
 > Is that the perfect time for a macro of some sort? Bonus if the name
 describes what the three have in common that they keep showing up
 together.

 We discussed this before, and I still don't have clear ideas here that
 will make the code obviously cleaner. Note that many of these occurrences
 are in longer switch statements that would become more confusing if part
 of them was broken out to check a macro, and several others are combined
 with other purposes for various reasons...

 As for the cases where these three do occur together by themselves, the
 unifying condition seems to be
 CIRCUIT_PURPOSE_CAN_SOMETIMES_HAVE_STREAMS_WITH_A_SPECIFIC_EXIT(). And
 there are only two of those cases. The others involve stream-related
 behaviors and usually include the rend purpose (but not always)...

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


More information about the tor-bugs mailing list