[tor-bugs] #4680 [Pluggable transport]: Design, build, and document Morpher as a pluggable transport
Tor Bug Tracker & Wiki
torproject-admin at torproject.org
Thu Jan 26 23:34:28 UTC 2012
#4680: Design, build, and document Morpher as a pluggable transport
---------------------------------+------------------------------------------
Reporter: karsten | Owner: asn
Type: project | Status: new
Priority: normal | Milestone: Sponsor F: March 15, 2012
Component: Pluggable transport | Version:
Keywords: | Parent:
Points: | Actualpoints:
---------------------------------+------------------------------------------
Comment(by asn):
I'll write down some things I've been thinking lately, because me thinking
on my own is not the most effective way of doing things.
a) We should evaluate whether the final morpher transport should use
'random sampling', or 'morphing matrices' to select a packet's final
packet size.
In 'random sampling', you have a packet size probability distribution of a
target protocol, and you pick a random variable, and then you shape your
packet to be of that size.
By 'morphing matrices', I mean the technique described in the paper
''Traffic Morphing: An efficient defense against statistical traffic
analysis'' which attempts to minimize the padding overhead imposed by
packet size shaping.
Since our morpher transport will try to turn Tor traffic into HTTPS
traffic, as far as packet sizes are concerned, we should evaluate whether
the 'morphing matrices' method is worth it. We can build a tool that uses
both methods on a couple thousand packets, and see which method is more
effective. If 'morphing matrices' is indeed more effective, we should see
whether it's effective enough to justify its troublesome implementation.
b) Since we want to look like HTTPS traffic, the outer layer of our
traffic must be SSL.
Unfortunately, it seems that our transport will have to build a second SSL
layer on top of Tor's. If we didn't do that, and we let our transport
morph the packet sizes of the original SSL layer of tor, that layer would
look "morphed"; some packets would be splitted and others would be padded.
In other words, it wouldn't look like normal SSL.
The problem with a second SSL layer is not only the network overhead, but
the fact that we will have to camouflage it, like we camouflaged Tor's SSL
layer: very painfully. We will have to camouflage the certificates, and
the SSL properties, and the SSL crypto values (DH modulus etc.).
Maybe with some crazy hacking skills, we can expose some of Tor's
camouflage into a file, that both Tor and morpher can use, similar to how
ciphers.inc is independent from tor's code atm.
Maybe with #4550, Tor's certificates will be exported to files, and
morpher can use them too.
But in any case, this will be messy and I can't find a good way to make it
better.
(A positive thing, which I'm not sure if it's possible (without
refactoring obfsproxy too much), is that we might be able to use libnss as
the client-side SSL library.)
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/4680#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list