Exit relays, and why an onion address skips them entirely
An exit relay is the last hop for ordinary web traffic, and the one position with a view of where you went. An onion connection does not have one.
An exit relay operator · The ordinary website being fetched
What an exit does, for ordinary websites
When Tor is used to reach a normal site, the traffic has to rejoin the ordinary internet somewhere, because the server at the far end has never heard of Tor. The relay making that final connection is the exit. From the point of view of the website, the visitor is the exit.
That gives the exit operator a real view. It performs the name lookup and opens the connection, so it learns the hostname and the server. If the site has no transport encryption, the exit is handling readable content, including anything typed into a form there. If the site is encrypted, it sees the destination and the volume, not the contents.
What an exit never sees is you. It receives cells from a relay, and that relay is not your first hop. It has no route back to your address.
What happens instead for an address ending in .onion
An onion address is not a hostname resolved to a server on the public internet, so there is nothing for an exit to connect to. The lookup happens inside the network, which is the subject of finding an onion address on the network.
The connection is assembled inside the network as well. Your client builds a path to a relay it nominates as a meeting point and hands over a one time token. The service, through its own path, is asked to come to the same meeting point with the same token. The two circuits are joined there and cells pass between them. Nobody unwraps the traffic in the middle.
So the position everybody worries about is simply absent. No relay in the path is contacting a destination on your behalf, because the far end is inside.
The two shapes side by side
| An ordinary site over Tor | An address ending in .onion | |
|---|---|---|
| Last relay in the path | An exit, which contacts the site for you | No exit; a meeting relay joins two circuits |
| Who learns the destination | The exit operator and the site | No relay position on the path |
| Name lookup performed by | A resolver, usually the exit one | Directory positions inside the network |
| Readable content visible to | The exit, if the site has no encryption | No relay; layers are not removed in the middle |
| Who sees your network address | Your first relay only | Your first relay only |
| Relay positions involved | Three, in the usual case | More, because both sides build a path and join them |
The two mistakes this corrects
The first is overestimating the exit. Readers who absorbed the general warning that exit operators can watch traffic carry that worry into a context where it does not apply. An exit cannot read what you do at an onion address, because it is not in the path, not because it is being polite.
The second mistake matters more. Concluding from the absence of an exit that the activity is unobservable is a much bigger error, and a more comfortable one to make. The far end receives everything you send it, deliberately, because that is what using a site means. See typing a delivery address into a form and using the market inbox. Beyond that sits a physical object no circuit property reaches: a parcel entering the postal system.
What the meeting relay sees
It is fair to ask what the meeting relay holds, since it is the closest thing to an exit this arrangement has. It holds two circuits and moves cells between them. It does not know which service is involved, because it was nominated with a token rather than an address, and it does not know either party, because both arrived through their own paths. It sees volume and timing across the join, as any middle does, and the middle relay covers why that is weak alone.
Where the trust actually comes from
On the ordinary web, a certificate issued by a third party asserts that a server matches a name. An onion address works differently: the string is derived from the key material of the service, so reaching the address and reaching the holder of the key are the same event. A wrong character produces no warning. It produces a different service, or nothing.
That is a statement about mathematics, not honesty. It says the party you reached holds the key for the address you used, and nothing about who they are or what they do with what you send. Where a string came from is a question about people and clipboards, handled in copying an address to the clipboard.
What changes the answer
5 things change how much this action gives away. None of them takes it to zero, and none of them is a promise.
- Know which of the two shapes you are inThe distinction is the address itself. Ordinary hostnames leave through an exit, addresses ending in .onion do not, and no browser setting turns one into the other.
- The character string is the whole of the authenticationBecause the address is derived from a key, a mistyped or substituted string reaches a different place rather than raising an alarm. How the string reached your clipboard is covered in copying an address to the clipboard.
- Everything else on the machine still uses exits, or no Tor at allOther applications are not in this path and often are not using Tor at all. The rest of the software on the machine is where that gets counted.
- A new circuit changes the middles and the meeting relayIt does not add or remove an exit, because there was never one. A new circuit for this site sets out what moves.
- The absence of an exit changes nothing on either side of the pathA file written to disk is no longer protected by any property of the path it arrived on, which is files you downloaded. At the other end the server still holds an account and an order history because you supplied them, starting at registering an account.
What this card is not
This is not a claim that an onion connection is private in every sense. It is a narrow statement that one observer, the exit relay, is not in the path.
Questions that come up
Can an exit operator see which market I visit?
Not for an address ending in .onion, because no exit relay is involved in reaching one. For ordinary websites over Tor, an exit does learn the hostname.
If there is no exit, is the connection encrypted end to end?
The layers are not removed anywhere in the middle of the path, so no relay position handles readable content. That is a property of the arrangement, not a promise about anything that happens after the traffic arrives.