Group 4 - Leonard Eyer, Cristina Stoleriu, Sofia Lohr, Tobias Loch, Matthijs Reyers
This repository contains code for our report on the paper: "OpenVPN is Open to VPN Fingerprinting" by Xue et al. (2022) [1].
- Install:
- python 3.9
- scapy 2.5.0
- docker 24.0
- Download the following datasets:
The project is structured as follows:
- docker: Docker environments to generate datasets with OpenVPN configurations (udp, tcp, udp-tls, tcp-tls)
- docker-pcaps: Captured pcap files from the various Docker environments
- src: source code for the passive fingerprinting methods
- Extract the contents of the datasets into some folder
- Adjust the paths in the config.
- Run the experiments by:
python experiments.py
The config contains the information on how to execute the experiments. Its structure is as follows:
- The
datasets
dictionary contains the path to all pcap files. The actual used datasets are specified inused_datasets
- The
experiments
array contains the algorithms that are run and with what parameters - The
output_folder
field contains then the folder where for each dataset its results are output
To generate some datasets with known OpenVPN configurations, we created several docker compose environments contained in the docker
folder.
The captured Pcap files are stored in the docker-pcaps
folder.
Every OpenVPN client container runs the docker/client.sh
script to generate some network traffic.
- Diwen Xue, Reethika Ramesh, Arham Jain, Michalis Kallitsis, J. Alex Halderman, Jedidiah R. Crandall, & Roya Ensafi (2022). OpenVPN is Open to VPN Fingerprinting. In 31st USENIX Security Symposium (USENIX Security 22) (pp. 483–500). USENIX Association.