Learning about Tor
In this project, you will learn how to use Tor, a tool and network designed to protect your
anonymity online. Tor originally developed from research, sponsored by the U.S. Naval
Research Laboratory, on onion routing (Dingledine, Mathewson, and Syverson, 2004). In
onion routing, the client builds a circuit of nodes in an overlay network, which is a network
built on top of an existing network. The Tor network is an overlay network that runs on the
Internet, although it can run on separate networks. The client sends a message to each node,
which is specifically encrypted for that node, asking the node to send it to the next node in
the circuit. Each node peels back a layer of encryption and forwards the result to the next
hop in the circuit, and hence, the onion analogy . The last node contains the client's actual
message, which is forwarded to the destination server.
Onion routing provides anonymity because the destination server does not know the IP ad-
dress of the client. Typically, when you use your browser to access the Internet, the browser
creates a Transmission Control Protocol ( TCP ) connection that originates from your sys-
tem and terminates at the website you are trying to visit. The address for TCP is provided
by the Internet Protocol ( IP ). Each IP datagram contains a source and destination IP ad-
dress. As datagrams arrive at the server, the server can read the source IP address. This is
generally useful as the server needs this address to return your data. However, this also
means that the server knows your IP address, which is where you live on the Internet. Your
IP address alone reveals information about you, such as the country in which you live and
your Internet Service Provider ( ISP ). Geolocating by an IP address can be accurate to the
zip code level, when you use United States as an example.
Tor , originally an acronym for The Onion Router , is now simply referred to as Tor , not
TOR . When you ask questions on the Tor mailing list or IRC channels, Tor developers will
appreciate it if you make note of this subtlety.
The following diagram shows this routing. In this case, Alice is a client who connects to
the first node of her circuit, which happens to be running on your BBB. This BBB unwraps
a layer and forwards Alice's communication to the middle node. The middle node does the
same to the final (exit) node. The exit node sends Alice's original message to the destina-
tion server named Bob. The green arrows show internal Tor connections that are encrypted.
The connection from the exit node to Bob is shown as an unencrypted connection because
this traffic is not part of the Tor network. From Bob's perspective, the IP originator of this