Professional Documents
Culture Documents
9197 - Onion Routing - Assignment - 4
9197 - Onion Routing - Assignment - 4
Group Members :
Onion Routing
Onion routing is a method of communicating anonymously over a computer network.
Messages in an onion network are encapsulated in layers of encryption, similar to the
layers of an onion.
To make web browsing safer and more secure for users, there is a large set of
precautionary measures and best practises. Assume you send an HTTPS request to a
server and someone intercepts it, but that person cannot read the message because it
is encrypted. However, you are not satisfied with this level of security and wish to take
it to the next level, i.e. you do not want anyone sniffing on your network to know which
server you are contacting and whether or not you are making any requests. This is
where the onion routing comes into play.
The Onion Routing programme is made up of studies that look into, design, build, and
analyse anonymous communication networks. The emphasis is on practical solutions
for low-latency Internet-based connections that can withstand traffic analysis,
eavesdropping, and other attacks from both outsiders (like Internet routers) and
insiders (like hackers) (Onion Routing servers themselves). The network only knows
that communication is taking place because onion routing hides who is
communicating with whom from the transport medium. Furthermore, the content of
the conversation is hidden from eavesdroppers until the transmission leaves the OR
network.
What is the procedure for onion routing?
o When you browse the internet using a standard web browser such as Chrome
or Firefox, you request webpages by sending simple GET requests to servers
with no intermediary. It is only a single connection between a client and a server,
and anyone sniffing on your network can determine which server your
computer is contacting. This is done differently in onion routing. The connection
is maintained between different nodes in onion routing, i.e. the connection hops
from one server to another and when it reaches the last server on this circuit, it
is the server that we wanted to contact and it will process our request and serve
us the desired webpage, which is returned to us using the same network of
nodes.
o You're probably wondering why it's called the onion router. It's because the
messages we send and the responses we receive are encrypted with different
keys, with each hop or server visit requiring a different key for encryption.
o The client has access to all keys, but the servers only have access to the keys
that are specific to that server's encryption/decryption.
o Because this process wraps your message in layers of encryption that must be
peeled off at each different hop, it is referred to as an onion router.
Similar to this, if sniffing begins at the exit node, all the sniffer sees is one server
speaking to another, but it is unable to identify the client or the origin of the request.
However, you might now imagine that if someone were to listen in at Node 2, they
would be able to trace the client and the destination server if they knew the addresses
of the input and exit. But it's not that easy; each of these nodes is running hundreds
of connections simultaneously, making it difficult to determine which connection leads
to the correct source and destination. Node 2 is a middle node in our circuit, but it can
also be a part of another circuit on a different connection where it serves as an exit
node dispensing websites from various servers or an input node receiving requests.
Explanation of the onion routing concept
Now imagine you are using Tor (the onion router), a unique browser that enables you
to use the onion routers, to browse the internet. Since YouTube is blocked in China,
you want to access YouTube but you also don't want your government to find out that
you are doing so, so you choose to use Tor. To get the YouTube homepage, your
computer must make contact with a specific server, but it does not do so directly. In
order to prevent anyone from tracking the conversation you had with that server, it
does this through three nodes/servers/routers (maintained by volunteers around the
world) before that server. Although a real Tor network can have hundreds of nodes in
between, I am only using 3 nodes in this example to keep things simple.
o The client encrypts the message (get request) three times, wrapping it in three
layers like an onion that must be peeled one layer at a time. This client has
access to keys 1, 2, and 3.
o This triple-encrypted message is then forwarded to Node 1, the first server
(Input Node).
o Only Node 2's address and Key 1 are stored in Node 1. It uses Key 1 to decrypt
the message but realises that it is illogical because there are still two layers of
encryption, so it sends the message to Node 2.
o Key 2 and the addresses of the input and exit nodes are located on Node 2. It
then transmits the message to the exit node after using Key 2 to decrypt it but
realising that it is still encrypted.
o A GET request for youtube.com is discovered by Node 3 (the exit node), which
removes the final layer of encryption and forwards it to the target server.
o The requested webpage is delivered as a result of the server processing the
request.
o The response travels backwards through the same nodes, each of which adds a
layer of encryption using its unique key.
o In the end, it is delivered to the client as a triple encrypted response that can
be decrypted because the client has access to all the keys.