[messaging] Ronion anonymous routing protocol framework

Nazar Mokrynskyi nazar at mokrynskyi.com
Tue Oct 10 04:18:13 PDT 2017


Hi folks,

Recently I've being exploring anonymous routing protocols (Tor, mixed networks) because I need such for one of my projects.

Each project seemed to design the whole thing from the ground up and they are protocols are quite complex as a whole.

I thought it could be a good idea to create something like Noise, but for anonymous routing.

In a nutshell Ronion aims to design a generic anonymous routing protocol framework agnostic to encryption algorithm and transport layer.

If you want to re-implement Tor with Ronion you do the following:
* choose transport layer where messages delivery order is guaranteed (TCP)
* choose your crypto (like Noise IK for end-to-end encryption and some stream cipher for onion-like non-authenticated layered encryption)
* choose algorithm for nodes selection for future circuit
* choose address format (depends on transport layer and use case, can be IP:port or public key)

And Ronion will provide a framework for circuit creation, communication between nodes, messages forwarding and data delivery.

Ronion is relatively simple, provides only very basic primitives and greatly limits its responsibilities to facilitate diversity of higher-level protocols on top of it.

Besides proposed specification repository contains an implementation in JavaScript (LiveScript) and tests against that implementation to ensure it can work at all.
JavaScript language was selected for initial implementation because I'll need to run everything within browser for my project.

If you're building something that might use this spec as the low-level framework, I'd be interested to discuss how to make this spec suitable for you.

Also I'd like to request some feedback from those who have a bit of spare time to make sure I didn't mess up something badly and there are no obvious flaws.

Ronion specification: https://github.com/nazar-pc/ronion/blob/master/spec.md

-- 
Sincerely, Nazar Mokrynskyi
github.com/nazar-pc



More information about the Messaging mailing list