Skip to content
unblockablePublic

About

UPGen: Unidentified Protocol Generator

Resources

Stars

19 stars

Watchers

2 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

UPGen: The Unidentified Protocol Generator

UPGen is a protocol generator for creating randomized Protocol Specification Files (PSFs) for censorship circumvention. The PSFs generated by UPGen can be used with Proteus. UPGen is able to generate a vast number of distinct protocols: the analysis in our USENIX Security publication shows on the order of $10^{22}$ distinct protocols are possible.

UPGen is designed to work when censors use a "blocklist strategy"; that is, when censors maintain a set of rules to block particular protocols. The basic security argument is that it would be difficult to block many or all UPGen protocols without inadvertently blocking many other protocols (that are not designed for circumvention).


Installation

For installing UPGen, please follow the installation guide.


Quickstart

Install uv and GNU Make, then install UPGen and its dependencies:

$ make sync
$ make download-model
$ make generate

make download-model downloads an example, pretrained greeting string model from GitHub and extracts it into build/. If you wish to train your own model instead, see the greeting string model guide for details.

Run make to list the available commands. Paths and generation options can be overridden when needed, for example:

$ make generate CONFIG_FILE=assets/config.json \
    NUM_GENERATED=5 PSF_FILE=build/examples.psf

Usage

See the documentation to generate PSFs and to get related info.


Research citation

You can read more about UPGen in our USENIX Security publication:

@inproceedings{wails:usenixsec:25,
  author       = {Ryan Wails
                  Rob Jansen and
                  Aaron Johnson and
                  Micah Sherr},
  editor       = {Lujo Bauer and
                  Giancarlo Pellegrino},
  title        = {Censorship Evasion with Unidentified Protocol Generation},
  booktitle    = {Proceedings of the 34th USENIX Security Symposium},
  publisher    = {{USENIX} Association},
  year         = {2025},
  pages        = {763--782},
  url          = {https://www.usenix.org/conference/usenixsecurity25/presentation/wails},
  isbn         = {978-1-939133-52-6},
  address      = {Seattle, WA}
}

License

See LICENSE for details.

About

UPGen: Unidentified Protocol Generator

Resources

Stars

19 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages