3

I think a Tor circuit looks like this when sent

Key1.Encrypt(Key2.Encrypt(Key3.Encrypt(Key4.Encrypt(Key5.encrypt(DATA)))));

... where KeyX represents the RSA or ECC encryption of a node in the chain.

If a client sends a fixed length data chunk, and each key is constant, isn't it easy to determine what "level" one is in the Onion?

  • 1
    Maybe, but you still won't know how many layers the client chose. For the default 3 layers, the Tor node will obviously know whether it is an exit node, and entry node, or a relay node without having to inspect traffic at all. – Greg Hewgill Aug 11 '15 at 21:25
  • @GregHewgill Oh there are 3 layers by default, not more. Got it.... – goodguys_activate Aug 11 '15 at 22:04
  • 1
    @GregHewgill Would you post that as the answer to the question? I'll upvote you if you let me know ;) – Ron Sep 9 '15 at 18:33
1

As already commented, there are only three relays a normal circuit goes through. The exit relay obviously knows it is the exit - because it is asked to make a connection to the outside world. For middle and entry nodes, it is not as clear-cut, but still pretty easy to figure out in most cases: If the connection comes from a known Tor relay IP address, most likely the relay is being used as a middle node, otherwise as an entry node.

But I think one thing you're not clear on, and that also hasn't been commented on before: The "layers" of encryption do not actually make the data that gets sent through the network any longer, instead the data just gets changed. Imagine you had a simple scheme where each relay just changed each text character to be the next one in the alphabet. If the original text is then "hello my friend", the first encryption step would be "idmmp nz gsjdoe" - one "layer" was added, but the length didn't change.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.