costrictor

command module
v0.0.0-...-af48fad Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2023 License: MIT Imports: 12 Imported by: 0

README

* CoStricTor
This repository accompanies the following paper:

CoStricTor: Collaborative HTTP Strict Transport Security in Tor
  Browser, published at PETs 2024.

  The repository is divided into 3 sections
  - Protocol simulation
  - results graphing
  - filter size compressability testing

All three components of this repository are run using docker (version 20.10.5)

* CoStricTor Simulator
The core of this repository is the simulation code for the CoStricTor Protocol written in Go.

#+BEGIN_SRC bash
  docker build --tag costrictor .
  docker run costrictor > results.csv
#+END_SRC

The code is designed to run on a particular high performance cluster, as such you will see references to this in the main.go file. The code will run on other machines however the simluation might be slow to run without high parallelisation

The simulation runs with parameters given in params.csv the parameters provided should complete on an average laptop in approximately half an hour. These parameters are however not the ones used in the paper as the paper parameters would take a signficant length of time to complete especially when not using high performance hardware.



The codebase has only 2 dependencies which are installed automatically when building the docker image

- github.com/detailyang/fastrand-go 
- github.com/schwarmco/go-cartesian-product 

"websites.txt" is a copy of the Majestic Million list of top websites, obtained from Majestic.com: https://majestic.com/reports/majestic-million and used under a Creative Commons licence [[https://creativecommons.org/licenses/by/3.0][CC BY 3.0]]
* Results Graphing
Several figures were produced for the paper using the results of the simulation. These were created using the python code provided in the

results_graphs directory.
* Filter size testing
The "filter_compressiblilty_test" directory provides a small application to test the compressible size of Bloom filter data obtained from the simulation.

For instructions please see the directory readme here: https://github.com/KillianDavitt/CoStricTor/tree/main/filter_compressibility_test
* Additional utilities
the p_from_q.py script is provided to assist with lookups of the p parameter given q and epsilon, or q given p and epsilon.


Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL