Hi Joe,

Onion routing refers to the fact that each Tor message is wrapped in 
several layers of encryption, like the layers of an onion. The sender 
chooses the route in advance and encrypts the message once for each node 
along the route, starting with the last. Each node removes a layer of 
encryption to reveal the address of the next node, and forwards the 
message to the revealed address.

Onion encryption is supposed to prevent the node next to the sender and 
the node next to the recipient from colluding to discover whether the 
sender and recipient are communicating, because the nodes can't tell 
they're handling the same message. However, in a low-latency system like 
Tor it may be possible for nodes to tell whether they're part of the 
same route by comparing the timing and throughput of the routes they 
belong to, so the benefit of onion encryption for low-latency 
communication is debatable.

The biggest problem with onion encryption is key distribution: the 
sender needs to know the public key of every node along the route in 
order to onion-encrypt the message. Tor handles this by using a small 
number of directory servers to distribute keys, thus creating a central 
point of failure.

Freenet doesn't use onion encryption, so nodes along the route know 
they're handling the same message, but this isn't as much of a problem 
in Freenet as it would be in Tor - as Ian pointed out, Tor uses a 
client/server architecture so it's easy to distinguish the sender and 
recipient from nodes that are merely forwarding the message, but Freenet 
is peer-to-peer and therefore it's hard to tell whether a request 
originated from the previous node or whether it was forwarded on behalf 
of someone else.

There's a longer (though by no means comprehensive) survey of 
anonymising networks in my literature review:

http://www.cs.ucl.ac.uk/staff/mrogers/literature-review.html

Cheers,
Michael

Reply via email to