I've just started studying Tor and I came across TAP and ntor protocols. Just want to clear up that are these protocols decided at the time of circuit creation or each relay can decide on its own that which protocol to use?
1 Answer
So I gues to start off: since 0.2.6.1-alpha - 2014-10-30 tor relays and clients are required to support ntor:
- Remove the --disable-curve25519 configure option. Relays and
clients now are required to support curve25519 and the
ntor handshake.
Furthermore, since 0.2.4.21 - 2014-02-28 all circuits will contain at least one node that supports ntor:
o Major features (client security):
- When we choose a path for a 3-hop circuit, make sure it contains
at least one relay that supports the NTor circuit extension
handshake. Otherwise, there is a chance that we're building
a circuit that's worth attacking by an adversary who finds
breaking 1024-bit crypto doable, and that chance changes the game
theory. Implements ticket 9777.
If a relay supports ntor, clients and other relays will use that to talk to it. This is decided at circuit creation (or before circuit creation?). To try and speak TAP to an ntor-supporting relay would require modifications to the source code.