This repository contains the code for the attack components and evaluation from the master thesis "Analysing and exploiting Google's FLoC advertising proposal".
The thesis is available on the ETH research collection website.
This project makes use of LeakGAN by @CR-Gjx and for compatibility requires the use of an older tensorflow version. It was updated to Python 3.6 and TensorFlow 1.8.0.
For convenience we provide a conda environment file (used on Windows 10). Some listed dependencies may not be needed anymore.
conda env create -f attacks-on-floc.yml
A requirements.txt file is also provided. It however does not contain all dependencies that are in the conda env.
pip install -r requirements.txt
We provide the file used during the FLoC Origin Trial to map SimHashes to FLoC ID.
The Tranco list used can be found here.
The MovieLens 25M dataset can be downloaded here.
attack-on-floc
├── attack
│ ├── generating_histories.py
│ ├── ...
│ └── README.md
├── chromium_components
│ ├── cityhash.py
│ ├── ...
│ └── sorting_lsh_cluster.py
├── chromium_floc
│ ├── floc_sample.py
│ └── setup.py
├── data
│ ├── Floc
│ │ └── 1.0.6
│ │ └── SortingLshClusters
│ ├── ml-25m
│ │ └── ...
│ ├── host_list.json
│ └── tranco_NLKW.csv
├── evaluation
│ ├── logs
│ ├── saved
│ ├── anonymity_evaluation.py
│ ├── ...
│ └── wasserstein_distance.py
├── GAN
│ ├── chkpts_ml25m
│ ├── save_ml25m
│ ├── dataloader.py
│ ├── ...
│ └── README.md
├── preprocessing
│ ├── movielens_extractor.py
│ ├── ...
│ └── vocab_corpus_builder.py
├── README.md
└── utils.py