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?

3
  • 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. Commented Aug 11, 2015 at 21:25
  • @GregHewgill Oh there are 3 layers by default, not more. Got it.... Commented Aug 11, 2015 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
    Commented Sep 9, 2015 at 18:33

1 Answer 1

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .