[messaging] Ronion anonymous routing protocol framework

carlo von lynX lynX at i.know.you.are.psyced.org
Fri Nov 3 06:19:30 PDT 2017

On Fri, Nov 03, 2017 at 12:14:42PM +0000, James McGlasan wrote:
> (Carlo, sorry for the dup, accidentally replied directly to you.)

Don't worry, I know the feeling..  ;)

> On Wed, Nov 01, 2017 at 08:27:37PM +0100, carlo von lynX wrote:
> > James, SOCKS5: Sorry, my bad, I just assumed it is a circuit-oriented
> > interface. So Tor could introduce message types to support other parts
> > of the SOCKS5 protocol?
> As I already said, Tor isn't suitable for UDP traffic because Tor is
> already reliable - which is perfectly fine for TCP and may even reduce
> the latency in retransmissions when packets are dropped.

Who said reliable datagrams aren't an interesting thing? I haven't
been mentioning UDP at all. I am talking about properly framing
messages on the application level so that no attacker can later
fingerprint the stream as it enters or exits the Tor network.
SOCKS-UDP could be a suitable API, even if the semantics are
"wrong" since there would not be traditional packet loss.

If GNUnet implemented SOCKS-UDP below its circuit emulation layer
(called CADET), it can have that UDP type of semantics. In GNUnet,
routing is non-deterministic. It's part of the design to resist 
sybil attacks, but also protects against phoneme detection.

The difference is that encryption and varying degrees of metadata
protection are provided, but the immediacy of non-blocking packet
loss makes sense for real-time apps. I wasn't actually speaking
of those, but rather arguing that all applications could
provide improved metadata protection properties if they stop
using TCP on the way in and out of the network. As long as people
use these tools to surf HTTP sites, they will have not as good
protection. The web is structurally a threat to privacy.

So GNUnet can do UDP-like, TCP-like but also reliable datagrams
which is the right choice to pick for private text messaging etc.
We have a pubsub API which provides both a history of messages
as a distributed storage facility, so it's a bit like low-level git.

Someday we may even have a working multicast layer over the
mesh network, that would enable to do distributed privacy apps
with cloud-like scalability properties: la quadrature du net.

> If you want UDP over TCP, you gain none of the benefits of UDP.  You may
> use https://onioncat.org without modifying Tor. Just as OnionCat
> implements UDP, yes, Tor could do the same for SOCKS5.

Blocking reliable packets would still be useful, even if they
are disguised as UDP.  ;)  In fact it's an interesting plan to
allow for dedicated Tor apps that resist fingerprinting.

> Alternatively if Tor were to use both UDP and TCP for transport, then it
> might look something along the lines of this (old and discarded)
> proposal.
>  https://gitweb.torproject.org/torspec.git/tree/proposals/100-tor-spec-udp.txt

Reminds me that Tribler has a Tor-over-UDP implementation.
No idea how many useful things one can do with that.
But that's an entirely different topic, as it does not
address the challenge of resisting fingerprinting.
I'll skip the part of your mail regarding Tor-over-UDP
and jump to:

> Recap or TLDR:
>  TCP over Tor: slow setup, low latency, per-hop retransmission.
>  TCP over HORNET: fast setup, lower latency, whole-path retransmission.
   TCP over GNUnet: varying setup*, varying latency*, per-hop/neighbor retr.

*) depends on subsystems and settings and whether the nodes have
   communicated beforehand.

>  UDP over Tor: slow setup, reliable and ordered (blocking).
>  UDP over HORNET: fast setup, unreliable and unordered.
   UDP over GNUnet: varying setup*, low latency, unordered unreliable.
pubsub over GNUnet: varying setup*, varying latency, ordered, reliable,
      one-to-many recipients, distributed state, per-hop/neighbor retr.

>  Sidenote: one of the benefits of UDP over HORNET is that we can have
>  send-only services / push notifications that do not leak if the
>  recipient is actively online or not. We cannot get this feature with
>  Tor's TLS/TCP core.
> Finally, the lowest level protocol that HORNET can expose is similar to
> IP, just datagrams with a destination and optional return path. With
> this, we implement SOCKS5 for TCP and UDP.

Same with gnunet. I think gnunet also offers access to lower layers
like neighbors-only gossip, but that's not as interesting.  ;)

HORNET and Tor however have a huge advantage over GNUnet:
They're out there and actually doing their job.
We're still battling bugs.

  E-mail is public! Talk to me in private using encryption:

More information about the Messaging mailing list