[tor-dev] A few questions about defenses against particular attacks

Yuhao Dong yd2dong at uwaterloo.ca
Thu Mar 13 22:08:26 UTC 2014


Hi,

I am currently working on a personal project implementing an onion-router,
vaguely similar to Tor (let's just call it Oor, other onion router, for the
moment), and I have a few questions about attacks, which I think are not
really protected by Tor, and whether my solution could possibly work. Of
course, if Tor defends against such attacks, then please enlighten me.


    - Traffic volume correlation. Tor's FAQ says that it doesn't plan on
    defending against an adversary monitoring traffic volumes flowing 
through
    the Tor network. Oor tries to protect against this attack by:
       - Obfuscating every single link with a protocol derived by Tor's
       obfs3 protocol
       - No public list of all node addresses; this makes determining
       whether certain traffic is Oor traffic much harder. More at the next
       bulletpoint
       - Splitting each circuit (termed "onion stew") into many subcircuits,
       all terminating at the same exit node. à la multipath TCP. Cells 
going
       through the subcircuits have a randomly-determined *uneven 
*distribution
       of choice of subcircuit, barring attackers from deducing total
traffic from
       observing one subcircuit.
    - Blanket blacklist attacks by censors. Censors can poll the directory
    and block all ordinary Tor nodes. (obfsproxy) bridges are a workaround.
       - Oor's directory maintains a *graph* of all nodes. Each node knows
       the public keys of all the other nodes, but each node only knows the
       addresses of *adjacent* nodes.
       - Note that this allows (sub)circuit-building along any path in the
       graph. The "extend circuit" command takes the next node's public
key as the
       parameter, rather than the address.
       - This reduces the bootstrapping problem to distributing (an alias
       of) the directory server address. Unlike with Tor bridges, this 
does not
       create a bandwidth bottleneck, and no nodes need to be reserved for a
       special pool of bridges, unable to be used by usual users.
Bridges often go
       offline, but this would work until the alias is blocked. However, 
as with
       Tor bridges, things like e-mail can be used to distribute many
       dynamically-generated aliases of the directory server.
    - Protocol recognition. In "free" countries like the US of A, Tor users
    see no pressure to use obfuscated bridges. Tor traffic is rather easily
    distinguished, and could be used to form suspicion on people. Even with
    obfsproxy, Tor's constant 512-byte cell length may be an issue. The
    "Stegotorus" paper presents a filter that finds cell lengths typical 
of Tor.
       - Every link is obfuscated in oor with obfs3.
       - obfs3 happens to create various cell lengths. This would be a
       problem for Tor-like circuits because it doesn't hide data sizes 
at all,
       but I think that breaking circuits into subcircuits solves this 
problem.

There is a not-really-working but readable PoC implementation of everything
except the "onion stewing" part, i.e. circuits can only work with one
subcircuit, athttps://github.com/quantum1423/kirisurf-dev/

Current work is underway to rewrite a more robust version with various
repos at
https://github.com/KirisurfProject/

(yes, it is currently called Kirisurf, oor is just for short previously,
and I want to change the kirisurf name anyways. You may find a "kirisurf"
on sourceforge. That is a simple one-hop encrypted proxy I made a long time
ago just for breaking censorship without privacy protection; Kirisurf
gradually grew onion-routing things until I decided to redesign it;
namechange probably needed to prevent misleading version numbers)

I would be interested to know what research has been done on these areas in
Tor (to avoid reinventing the wheel), and whether any of my ideas are novel.

Thanks!


More information about the tor-dev mailing list