5

I understand how a Tor client connects to a hidden service, but can anyone explain to me how long a rendezvous point is used?

According to numbers 10-16 on this post on Tor stack exchange, the client determines the rendezvous point and sends an "introduce message" to the hidden service, containing the information of the rendezvous point and a one-time-secret/cookie request, via one of the hidden services introductory points, in order for the hidden service to know how to communicate with the client. The hidden service then sends the one-time-secret/cookie to the rendezvous point, where the rendezvous point forwards it to the client. The client is then informed that a connection is established.

Now this is where I was confused, number 16 states:

"Client and hidden service talk to each other over this rendezvous point. All traffic is end-to-end encrypted and the rendezvous point just relays it back and forth. Note that each of them, client and hidden service, build a circuit to the rendezvous point; at three hops per circuit this makes six hops in total."

I understand this, I am simply wondering how often this changes.

  • Do you change rendezvous points and repeat this whole process everytime you switch to a different page, even on the same hidden service?
  • Do you use the same rendezvous point the whole time you are using the hidden service, even when you switch to a different page on that hidden service, and only change rendezvous point and repeat this proccess when you leave the site and come back?
  • Or does none of this change until you completely shut down the Tor browser and re-open it?
  • Is the same rendezvous point used for every hidden service you visit in a given browsing session until you restart Tor?
3
  • The second question is easy: a new rendezvous point is used for each new hidden service. The first question, however, is quite tricky. Looking at src/or/rendclient.c it looks like - although I could be wrong - is that once a rendezvous point is chosen for a specific hidden service, it will be reused until it is closed (due to connection error or timeout on either side).
    – George Y.
    Jan 4, 2017 at 3:21
  • Thanks once again, to me, you've been the most helpful person on this site.
    – tim petrem
    Jan 4, 2017 at 3:27
  • This is on-topic at the TOR site, not here.
    – schroeder
    Jan 4, 2017 at 7:37

1 Answer 1

2
  1. Do you change rendezvous points and repeat this whole process every time you switch to a different page, even on the same hidden service?
    • No, the rendezvous point is used to establish a circuit, over each circuit you can create many streams (think "TCP connections"). Tor uses a notion of circuit "dirtiness", by default after 10 minutes a circuit is considered "dirty" and any new connections are made over a new circuit, old connections will remain open on the old circuit. In the case of onion services, the dirtiness is "reset" each time a new connection is made over a circuit, so in this case if an onion circuit is unused for 10 minutes, it will be marked dirty and a new one established.
  2. Do you use the same rendezvous point the whole time you are using the hidden service, even when you switch to a different page on that hidden service, and only change rendezvous point and repeat this process when you leave the site and come back? Or does none of this change until you completely shut down the Tor browser and re-open it?
    • Answered above.
  3. Is the same rendezvous point used for every hidden service you visit in a given browsing session until you restart Tor?
    • No, a new rendezvous point is used for each onion service. This rendezvous point may be the same relay but won't be the same circuit.

From the rendezvous protocol specification:

1.7. Alice's OP establishes a rendezvous point.

When Alice requests a connection to a given location-hidden service, and Alice's OP does not have an established circuit to that service, the OP builds a rendezvous circuit. It does this by establishing a circuit to a randomly chosen OR, and sending a RELAY_COMMAND_ESTABLISH_RENDEZVOUS cell to that OR.

(OP - Onion Proxy, a Tor client. OR - Onion Router, a Tor relay.)

Further to this, there are various isolation flags that can be used to isolate circuit use, using these could change the circumstances in which new circuits are used.

You must log in to answer this question.