On Fri, May 06, 2016 at 07:36:25PM +1000, Tim Wilson-Brown - teor wrote:
The rendezvous point (and possibly the introduction point) could terminate the connection if it has a single hop on both ends. However, this could result in false positives if the consensus gets out of sync.
Yes, I think we should do this. It is to protect the relays, in just the same way as exits currently refuse to exit if the previous hop isn't a relay: https://trac.torproject.org/projects/tor/ticket/1751
Or is there a reliable way for a relay to detect non-relays without using the consensus?
Nope, the consensus is the best way we've got.
If we add this feature, we'll want to mod directory_fetches_from_authorities() like we did for #1751, to make sure potential rendezvous points aggressively keep up with new directory information (like exits do).
You're right that we also want a mechanism to avoid both sides innocently trying to do the 1-hop thing, and then finding that they failed because they both tried it. I think your notion of a line in the hsdesc is not a bad one.
It looks like https://trac.torproject.org/projects/tor/ticket/17945 is the place to move forward here.
--Roger