I love Tor and for good reasons. It's the only network that has that large amount of users and a very active development. But there are still a problem with Tor by not being decentralized.
There are around 10(right now) authority nodes that mostly controls the network in some way. I won't dig into details how these works but all you need to know is that authority nodes have the power to give an exit node the 'Badexit'-flag if it's a bad exit(wrong configured, manipulating traffic and so on...) and if a node gets this flag a client won't use that exit(per default). So yes, Tor is not designed to be decentralized and that's OK as long as it works but I will give an perfect example why Tor in this case is killing its users by being centralized.
First of all I would like to point out that I've tried very hard to help the Tor-network by creating tools and host exit nodes and I've got some friends with me so we have around 15 nodes running now so that's great!
The tool I've created can be read more about here so please read it if you haven't. I've been running this script for a few weeks now with great results!
It's a method that cost money, heart and time because I need to buy "juicy" domain names, design a legit-looking website and host the website. So no, this is not a typical "git clone"-and-run kind of script. The more people that use this method, the better Tor will get.
After a few hours I found a node that was sniffing the exit traffic and used the data actively by using the username and unique password to log into my website. So the first thing I did was of course sending a mail to Tor and notifying them about this issue. Short after I got response from them and they were grateful.
But nothing happened. Still today the same node is actively sniffing traffic and making the Tor network unsafe for everyone.
We won't see Tor becoming more decentralized in a long time, but there's a few things that can be done under the meantime. And here's a few things that I suggest:
- A group that seeks new nodes for passive MITM.
- An easier way to report bad nodes and a better way to handle this kind of reports.
- Deprioritize new nodes.