Back in 2007, Bauer et al. showed that a relay-level adversary could lie about their bandwidth capabilities, thus unfairly increasing the chance of having their relay selected in Tor circuits [^1].

Today, this vulnerability is fixed. How? Do directory authorities verify a relay's advertised bandwidth, and/or do clients? Or has the bandwidth advertisement mechanism been removed such that only directories/clients measure it?

[^1]: Bauer, Kevin, et al. "Low-resource routing attacks against Tor." Proceedings of the 2007 ACM workshop on Privacy in electronic society. ACM, 2007.

  • @JSEvans I'm not sure this is a helpful comment. Is the purpose of this StackExchange site not to answer questions without requiring people to go through the extremely extensive Tor wiki, tracker, and literature? I did in fact search through the documentation, but quickly ran into the issue that it's difficult to grok without already being in the know.
    – tao_oat
    Commented Jan 10, 2020 at 13:39
  • 2 Things. First I deleted the previous command. I admit that it was not sufficiently helpful. That is why it was a comment and not an answer. Secondly, you are expected to have done your own research before asking. In reality, nobody does.
    – elmerjfudd
    Commented Jan 10, 2020 at 13:51

1 Answer 1


From: Top changes in Tor since the 2004 design paper (Part 2)

Bandwidth Authorities

Of course, once you choose nodes with unequal probability, you open the possibility of an attacker trying to see a disproportionate number of circuits -- not by running an extra-high number of nodes -- but by claiming to have a very large bandwidth.

For a while, we tried to limit the impact of this attack by limiting the maximum bandwidth that a client would believe, so that a single rogue node couldn't just claim to have infinite bandwidth.

In, clients switched from using bandwidth values advertised by nodes themselves to using values published in the network status consensus document. A subset of the authorities measure and vote on nodes' observed bandwidth, to prevent misbehaving nodes from claiming (intentionally or accidentally) to have too much capacity.

You must log in to answer this question.

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