Implementations of anonymous networks always strive to be as simple as possible, more accessible for understanding, both at the theoretical and program levels. Such conditions become necessary due to one of the basic principles of building secure programs – the easier it is to explain, the easier it is to prove . But unfortunately theory can often diverge from practice, and what is easy to explain in theory can be problematic to explain in code.
As a result of this, one might say just-for-fun, I had a question: is it possible to implement an anonymous network so small that even a novice programmer can understand its program code in a short time?
Kernel selection
Anonymous networks are always based on some obfuscation routing algorithm. For example, Tor is based on onion routing, I2P on garlic routing, Mixminion on traffic mixing, DC networks ( Herbivore , Dissent ) on the diner cryptographer task , HIdden Lake on the queuing task , etc. The chosen obfuscating routing algorithm can not only lead to the formation of different threat models, but also to limit or expand the application of the resulting anonymous network. Thus, we can say that the obfuscating routing algorithm is the core of the anonymous network.
If our task is to implement an anonymous network with the least amount of code, then its core should also be minimalistic, that is, it should not require many operations, conditions, routing, etc., and should also be easily explained. The most suitable kernel (obfuscation routing algorithm) in this case becomes a task based on queues. Unlike most other algorithms, it does not require multiple routings, does not require the creation of multiple layers of encryption, plus it is a theoretically provable model for building anonymous networks.
👤
• Implementations of anonymous networks always strive to be as simple as possible, more accessible for understanding, both at the theoretical and program levels. Such conditions become necessary due to one of the basic principles of building secure programs – the easier it is to explain, the easier it is to prove. But unfortunately theory can often diverge from practice, and what is easy to explain in theory can be problematic to explain in code.
• As a result of this, one might say just-for-fun, I had a question: is it possible to implement an anonymous network so small that even a novice programmer can understand its program code in a short time?
• https://habr.com/ru/articles/745256/
#Golang #Сети #Анонимность
https://habr.com/ru/articles/745256/
