2 stable releases

Uses new Rust 2024

1.0.1 Sep 9, 2025
1.0.0 Sep 8, 2025

#182 in Cryptography

35 downloads per month

MIT/Apache

1MB
14K SLoC

Rust 13K SLoC // 0.1% comments Python 2K SLoC // 0.1% comments

Maybenot CLI

A CLI tool for defense generation using Maybenot. Provides command-line utilities for creating, optimizing, and analyzing traffic analysis defenses using the Maybenot framework.

Crates.io Documentation Build Status MIT OR Apache-2.0

A CLI tool for defense generation using Maybenot

Usage: maybenot <COMMAND>

Commands:
  search      Search for defenses based on the provided configuration
  derive      Derive a defense from a seed using the provided configuration
  combo       Combine machines of existing defenses into new defenses
  sim         Simulate defenses on a dataset
  eval        Evaluate defenses on a dataset
  eval-print  Print the results of an evaluation in a human-readable format
  fixed       Create or update defenses by adding fixed static machines
  budget      Update budgets for existing defenses
  release     Create a release JSON with placeholder values
  tune-rng    Tune config by randomly replacing values to search for better defenses
  help        Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

As part of the Maybenot GitHub repository, there is an example configuration in examples/popets26-eph-padding.toml based on the ephemeral padding-only defenses in the "Ephemeral Network-Layer Fingerprinting Defenses" paper, PETS 2026 (to appear). You will need to edit the path to the extracted BigEnough dataset by Mathews et al., and ensure that your environment can run scripts/rf.py and scripts/df.py (also in the Maybenot repo). The below three commands:

  1. Searches for 100 random defenses.
  2. Combines the 100 defenses into 19000 defenses to match the number of traces in BigEnough.
  3. Simulated the defenses on the BigEnough dataset and evaluates the results in terms of overheads and attack accuracy by the Deep Fingerprinting and Robust Fingerprinting attacks.
$ maybenot search -c examples/popets26-eph-padding.toml -o def-100
$ maybenot combo -c examples/popets26-eph-padding.toml -i def-100 -o def-100-h2-19k
$ maybenot sim -c examples/popets26-eph-padding.toml -i def-100-h2-19k -o /mnt/ramdisk/def-100-h2-19k-be -e

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as MIT or Apache-2.0, without any additional terms or conditions.

Sponsorship

Made possible with support from Mullvad VPN, the Swedish Internet Foundation, and the Knowledge Foundation of Sweden.

Dependencies

~22MB
~398K SLoC