In Tor, middle and exit relays are changed periodically and are chosen from a available relays, what is the reason behind it?

Why the guard node isn't changed that much frequently? Isn't it a highly sensible relay in the circuit as if this is compromised, then the whole circuit can be compromised according to my understanding?

1 Answer 1


To answer your questions, please let me correct the first misunderstanding. If the guard relay is compromised, the whole circuit is NOT compromised. Guard relay can only identify the IP address of the client which established the circuit, but it cannot identify the server are you communicating with, nor the content.

This explains the guard design - here is the document about it - and answers your second question. To quote the main reason:

If you choose new relays for each circuit, eventually an attacker who runs a few relays will be your first and last hop. With entry guards, the risk of end-to-end correlation for any given circuit is the same, but the cumulative risk for all your circuits over time is capped.

This means the following: let's assume an attacker controls one guard relay out of ten, and one exit node, and thus can do traffic correlation between them. If there are 10 users of the site, and they change the guard relay often, in a day they change all ten guard relays, and the malicious guard relay will know about all of them. But if the guard relay is not changing, the attacker will only know about one of them at the end of the day. This raises the cost of attack to an attacker significantly.

Now the first question. The main reason circuit changes (once in 10 minutes) is to prevent profiling. If the circuit is used long enough, a malicious exit node operator will be able to correlate your activities on different web sites and reasonably find out who you are, even though he wouldn't know your IP address. Changing the circuit prevents this.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .