[tor-reports] [GSoC 2014] wfpadtools: first report

mjuarezm Marc.JuarezMiro at esat.kuleuven.be
Sat Jun 7 16:20:33 UTC 2014


Hi all,

It's time for the first GSoC report. Recall that the goal of this 
project is to implement basic primitives for link padding as a PT 
towards the development of future Website Fingerprinting 
countermeasures. I forked the obfsproxy repo and uploaded it to 
Bitbucket: https://bitbucket.org/mjuarezm/obfsproxy-wfpadtools. As you 
can see the PT has been dubbed "wfpadtools".

* Basic padding module: it uses "probdist" and "fifobuffer" modules from 
ScrambleSuit to buffer data and flush them according to a given time 
probability distribution. Instead of having a separate module I'm 
integrating it in the transport class itself

* Framing layer to distinguish between padding messages and Tor data: 
Data is encapsulated in messages that have a flag in the header 
indicating whether is a padding message or not. If so, the message is 
discarded when parsed at the other end.

* Simpler version of BuFLO implemented as a new PT by extending 
WFPadTransport class.

* State-machine of protocol: now we have three basic states: 
ST_CONNECTED, ST_WAIT and ST_PADDING.

TODOs:
- Use twisted instead of threading module for the implementation of the 
timer.
- Figure out how to negotiate the probability distributions in the 
handshake in a general way.
- I still need to implement the packet padding. Instead of fixing length 
to MTU as ScrambleSuit does, wfpadtools would sample the size of the 
packet from a probability distribution. For that I think I would also 
need to be able to chop packets.
- Implement a traffic window to detect start and end of communications.
- Protocol's handshake.
- Flow control.
- Ad-hoc padding operations.
- Fingerprintability tests.

This last week I was a bit busy but I'll try to catch up these upcoming 
days.

Have a nice weekend everyone!



More information about the tor-reports mailing list