Implement proof-of-concept flow obfuscator.
Obfs4 can obfuscate its flow signature, but only by adding padding to the end of a chunk of data that's written to the wire. This patch implements sharknado, which improves on obfs4's flow obfuscation. Sharknado can "break" a packet burst by probabilistically sending padding while receiving data. For example, sharknado can -- in theory -- turn the following packet sequence: client -- 1500 bytes -> server client -- 1500 bytes -> server client -- 500 bytes -> server into the following sequences: client -- 1500 bytes -> server client <- 1500 bytes -- server client -- 1500 bytes -> server client -- 500 bytes -> server The idea (or hope, rather) is that this feature can help us reduce the accuracy of deep learning-based website fingerprinting classifiers because these classifiers frequently rely on packet sequences. As for implementation, sharknado implements a net.Conn interface. Instead of writing directly to its socket, obfs4 writes to sharknado, which wraps the original socket.
Please register or sign in to comment