A little about TOR Networks

Syed Saad Ahmed
2 min readJun 4, 2018

--

Revelations about governments’ mass-surveillance programs have demonstrated their capability of conducting pervasive surveillance on huge volumes of domestic and international traffic. Meanwhile, an increasing number of users have begun using anonymous communication software to protect their privacy.

Onion routing is a technology aiming to provide anonymous communication between entities on a network. The objective is to provide low latency connections transparent to the end user, whereas the exchange of information is still resistant against traffic analysis and other attacks. This is accomplished by a set of encrypted layers and frequently changing paths between a subset of the routers that participates in the routing system.

For instance, Tor has on average 2 million active users per day. However, most anonymity software today is built as an overlay network composed of end hosts’ voluntarily-contributed nodes. As a consequence, users experience poor performance due to long propagation delays and limited bandwidth, along with intrinsic queuing and retransmission delays of the protocols.

The routing in Tor is done on the transport level in the protocol stack, and only supports TCP. Applications access the network through the SOCKS interface, which means that all applications with support for SOCKS can use Tor for anonymous communication, without needing modification. The network consists of Tor nodes (routers), run by contributors, and central directory servers run by the maintainer. The directory servers are a database of all routers which both routers and Tor clients use to gain knowledge of the network.

When the circuit is set up, it is used to relay data. The last router in the path is called the exit node. The data to be sent is encrypted in several layers, like an onion (hence the name Onion Routing), together with routing information with the data destined for the exit node at the core of the onion. This core is then encrypted for the router closest to the exit, along with information of which the exit router is. This procedure is repeated for all other routers in the path. This process is repeated until the packet reaches the exit node. At each intermediate step, the current router is unable to see where the data is destined to, where it is originating from or the data itself. The data is sent in clear between the exit node and the ultimate destination, but the exit node has no means to know where it’s from.

--

--

Syed Saad Ahmed
Syed Saad Ahmed

Written by Syed Saad Ahmed

Python, DevOps, Cryptography, Infrastructure Automation. https://thesaadahmed.com/

No responses yet