[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #25347 [Core Tor/Tor]: Tor stops building circuits, and doesn't start when it has enough directory information



#25347: Tor stops building circuits, and doesn't start when it has enough directory
information
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  asn
     Type:  defect                               |         Status:
                                                 |  needs_revision
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.3.3.x-final
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  0.3.0.6
 Severity:  Normal                               |     Resolution:
 Keywords:  031-backport, 032-backport,          |  Actual Points:
  033-must, tor-guard, tor-client, tbb-          |
  usability-website, tbb-needs,                  |
  033-triage-20180320, 033-included-20180320     |
Parent ID:  #21969                               |         Points:  1
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by asn):

 Replying to [comment:25 mikeperry]:
 > A couple comments here:
 >
 > 1. We already treat non-destroy failures at the guard as rotate-away
 failures in circuit_build_failed(). Note that there is an explicit check
 to not blame the guard if circ->base_.received_destroy is set. If we
 remove that check in circuit_build_failed(), we should not need asn's
 patch, as the behavior would then be equivalent (or actually a superset,
 since it would cover all destroy reasons). (I think this is what arma
 meant in his point H?). This would be a simpler patch.
 >

 Seems like a reasonable plan. Let's proceed like that.

 > 2. Roger's point G is scary. I like the solution in E, though, and I
 think it actually fixes G. I would implement E by setting an is_predicted
 flag in circuit_predict_and_launch_new(), and then check that flag in
 select_entry_guard_for_circuit() to completely ignore the is_reachable
 status there if it is set. Then if any of those predicted circuits
 succeed, entry_guards_node_success() will get called, which will clear the
 is_uneachable flag and allow us to resume using the guard. For guards that
 fail only a non-zero but small portion of their circuits, this should
 allow us to keep using them rather than rotating away. I am a fan of this
 plan, and could write a patch for it if we like it.
 >

 Hmm, I can see how the solution of E can help with G, by making Alice try
 her primary guards more aggressively in cases of predicted circuits, but
 if Alice is a busy hidden service (like Roger describes in E) most of her
 circs are not gonna be predicted.

 Furthermore, I wonder if it can completely address the problem in actually
 ''mischievous'' scenarios, where the adversary overloads all 3 primary
 guards of Alice (targeting them using guard discovery attacks) to make her
 switch to other guards in her sampled set.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25347#comment:28>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs