Couple of things to digest here.
First and foremost, I have to preface everything by saying the chances of you being caught by a correlation or advanced attack that compromises Tor in general is astronomically low. It is much easier for your adversary to find OpSec mistakes you make than compromise an anonymity network. Even high-level adversaries with basically infinite funding would much rather find a few OpSec mistakes youâve made throughout the years than spend hundreds of thousands or even millions of dollars to undermine an anonymity network that they themselves use. That being said, itâs not impossible.
While there is no solid evidence of a correlation attack ever being performed on the Tor network alone, there have been some cases in the past where it looked very suspicious and likely that they have been performed. Again, it is very unlikely but NOT impossible. If you hear about a major Drug Market being busted, the chances they compromised the Tor network is far, far lower than an admin using an outdated application, failing to update a program, or even using a zero-day on a specific piece of software they use.
While the â20% of nodes being compromisedâ is completely baseless, I will run with it. IF 20% of Tor nodes were malicious, the time it would take for your circuit to be deanonymized would be roughly as follows:
Note: The Tor browser picks a guard node at first connection along with a few backup nodes. After one is through, a new node from that initial pool will be used. Guards cycle about every month OR if one becomes unusable.
Math
Definitions
-
pG = fraction of guard bandwidth compromised (e.g., 0.2)
-
pE = fraction of exit bandwidth compromised (e.g., 0.2)
-
N = number of circuits you build while on the same primary guard
-
Ît = average time between new circuits that matter (minutes)
Core results
-
Chance of at least one deanonymized circuit after N circuits:
- P = pG Ă [1 â (1 â pE)^N]
-
Circuits to first deanonymization if you have a bad guard:
- E[N | bad guard] = 1 / pE
-
Time to first deanonymization if you have a bad guard:
- E[T | bad guard] = Ît / pE
Quick plug-in example (pG = pE = 0.2, Ît = 10 min)
Takeaway: Most users will get safe guards which makes correlation much, much more difficult. I wonât break down that math as itâs even more unpredictable than this. IF a user is assigned a malicious guard node, it would take about 50 minutes on average for a circuit to be fully compromised.
With it only taking an average of 50 minutes to deanonymize someone given 20% of nodes are compromised, that alone should tell you itâs unlikely. You would see a lot more arrests of people if that was the case. A lot more nuance is needed to calculate an actual amount, but you get the idea.
You must understand that to become a guard or exit, you need sustained presence as a middle relay on the Tor network. An adversary canât just spin up 400 servers at the same hosting company as the Tor directory would spot that instantly and disable the nodes. A lot of people throw around a number like âThey could easily spend $5k and spin up hundreds of malicious servers.â This is vastly taken out of context. An adversary would need to spin up only a few servers at a large number of ASN/hosting providers to not be caught almost instantly. Even then, The Tor Project and volunteers actively look out for malicious nodes and they can be reported to the Directory Authority. Here is a VERY rough breakdown of spending/infra necessary for control of a specific portion of the network.
Cost/Infra Breakdown
- About 2% of guard bandwidth
- About 5% of guard bandwidth
- About 2% of exit bandwidth
-
Exits are pricier (abuse, turnover)
-
Infra: 8â15 exits across 8â12 providers
-
Spend: roughly $5kâ$12k/month
- About 5% of exit bandwidth
- Ambitious: ~10% guards + 10% exits
That is money that could very well just be a waste if discovered by the Tor Directory Authority. It is VERY unlikely that an adversary is controlling anywhere NEAR 20% of the network. If anything, it would be closer to 1%, but even that is unlikely.