Tor is a project that allows users to browse using a network built around anonymity. If I visit a website right now in a typical browser that website will see my IP and if someone is between me and the website (like on my router) they can potentially see what I’m sending and receiving.
A typical network will go something like:
Me -> Router -> Server
And if I use encryption between me and the server the router can’t see what I’m doing.
When connected to the Tor network it looks more like this:
Me -> Router -> Node1 -> Node2 -> Node3 -> Exit Node -> Server
Tor attempts to provide perfect forward secrecy by encrypting the contact between each Tor node and it always routs you through multiple nodes. This means that if an attacker is in any of those areas they can’t see or interfere with the connection. If they control the server they see your connection coming from the ‘Exit Node’ ensuring that no one could possibly tell where you’re going.
The downside of this is that there’s significant latency and overhead for the network. Tor nodes have to encrypt and communicate with each other and the number of communications drastically increases compared to a typical setup.
If you want to use Tor you should check out the Tor Browser Bundle here.
The browser is portable Firefox with HTTPS-Everywhere and NoScript already installed and configured. It it highly recommended you use this as it’s already tailored to the systems needs – any difference could potentially lead to an information leak, allowing an attacker to learn your IP and information.
Tor really isn’t for every day browsing. It’s much too slow. But if you need to be anonymous it’s a great way to do it.