This repository contains code from the following papers:
Three defenses implementations are provided, which are described in the papers. They are:
src/bin/{maybenot-front.rs, pipelined-front.rs}
)src/bin/maybenot-regulator.rs
)src/bin/maybenot-surakav.rs
)We do not recommend the use of these implementations for protection against website fingerprinting attacks. They are provided only for research purposes.
The maybenot
crate is expected to be in the parent directory. To change this, edit Cargo.toml
.
Compilation with cargo build --release
will produce four binaries in target/release
, one for each defense implementation. They generate machines based on supplied parameters.
Specifically, the binaries can be run as follows:
./target/release/maybenot-front <Wmax> <N> <num states>
./target/release/pipelined-front <Wmax> <N> <num pipelines> <num states>
./target/release/maybenot-regulator <R> <D> <T> <U> <cells per state>
./target/release/maybenot-surakav <ref trace path>
The code in this repository is available under the BSD-3-Clause license.
[1] Jiajun Gong and Tao Wang, "Zero-delay Lightweight Defenses against Website Fingerprinting" (https://www.usenix.org/conference/usenixsecurity20/presentation/gong)
[2] James Holland and Nicholas Hopper, "RegulaTor: A Straightforward Website Fingerprinting Defense" (https://petsymposium.org/popets/2022/popets-2022-0049.php)
[3] Jiajun Gong et al., "Surakav: Generating Realistic Traces for a Strong Website Fingerprinting Defense" (https://jiajungong.github.io/files/sp22-surakav.pdf)