If all the nodes in a Tor circuit aren't supposed to know about each other, how can the Tor Browser display the whole circuit? If it knows all the addresses in the chain, can't someone else pull that same information out of the packets and make the relay thing moot? Would that be how some agencies have been able to "break" Tor by placing what they call "malware" on websites to backtrace the origin IP? I know, a lot of questions but I think they're all related and I'm trying to understand how all this stuff works.
1 Answer
For onion routing to work, you need to know what each layer is encrypted with, although the middle circuits only know who sent them and who to send it to. Maybe the explanation below will be clearer. :-)
Client needs to know Relay 1, 2 and 3's public key to do this
{
Client sends to relay 1
{
Encrypted with Relay 1's key
{
Instruction to send to relay 2
Encrypted with Relay 2's key
{
Instruction to send to relay 3
Encrypted with Relay 3's key
{
Instruction to send to destination
{Data}
}
}
}
}
}
Only the clients know who relay 1, 2 and 3 are, and they are not traceable without a big chain of inter-communicating routers or a client exploit.
-
Thank you for that, it clears it all up a bit. So for a web page to get the origin IP it would have to include some code to query the client - is JavaScript the only way to do that or are there other ways web pages execute code and if so can they be disabled? Commented Jan 23, 2016 at 1:40
-
JavaScript and any browser plugins that retrieves / parses incoming data, also one of the reasons why tor doesn't want you to install browser plugins, for your own security. Commented Jan 23, 2016 at 14:55