Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

It's possible for Tor exit nodes to sniff traffic on normal websites, unless you connect via SSL/HTTPS. But what about hidden services, they don't seem to support the HTTPS protocol.

Can the exit node sniff/modify the traffic?

share|improve this question
    
related: tor.stackexchange.com –  strugee Feb 13 at 17:11

2 Answers 2

Tor exit nodes aren't involved in the connection to hidden services. Exit nodes are only needed when you want to exit the Tor network in order to connect to some website outside of it. In the case of connecting to hidden services, all the traffic stays inside the Tor network.

In the following illustration, you can see how Bob (a normal user) is trying to connect to Alice (hosting a hidden service). As you can see, the connection happens through a Rendezvous point (RP) inside the Tor network.

tor hidden
[image from torproject.org]

All traffic inside the Tor network are encrypted and secured with TLS tunnels.

share|improve this answer
1  
If it helps to think of it another way, TOR traffic is encrypted and a TOR service is basically a particular exit node that actually also hosts the site, so your traffic gets directed to the node that has the site running on it and is protected by TOR the whole way. –  AJ Henderson Feb 13 at 16:05
    
You should maybe mention that the green arrows in the above diagram don't represent direct connections but full-fledged TOR circuits. That means the RP doesn't know the IP of Bob or Alice. –  Philipp Feb 13 at 16:18
    
@Philipp I didn't mention it because it's right there in the illustration legend. I assumed if people aren't gonna read what is written in the shiny nice picture, they probably wouldn't read what is in the boring text of my answer. –  Adnan Feb 13 at 16:36

Yes, it is.

A TOR hidden service deposits its public key in the distributed hash table of the TOR network and on several random nodes ("introductory points") all over the TOR network. When a client wants to connect to a hidden service, the first thing it does is to get that public key so it can encrypt the request to the hidden service.

That means hidden services don't need HTTPS, because the TOR hidden service protocol already provides end-to-end encryption. The public key infrastructure of the TOR network is even more secure than HTTPS, because it doesn't rely on public certificate authorities which can be compromised.

In fact, getting a certificate from a CA would make it quite pointless to have a hidden service in the first place. The purpose of a TLS certificate signed by a CA is to prove your identity. The purpose of a hidden service is to conceal your identity. When you don't want anonymity for yourself and only for your users, then set up a webserver on a non-onion domain, get a TLS certificate, and only allow connections from TOR exit nodes. That would also have a much better performance, by the way.

More information about the TOR hidden service protocol.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.