A platform to study browser fingerprinting
HTML JavaScript Python CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
fingerprint
static
templates
translations
.gitignore
LICENSE
README.md
babel.cfg
config_example.py
env_config.py
requirements.txt
run.py

README.md

Fingerprint Central

Welcome to the official Fingerprint Central repository! This project is developed as part of the Google Summer of Code 2016 by Pierre Laperdrix for the Tor organisation.

Fingerprint Central is a platform where users can learn about browser fingerprinting and where developers can study device diversity. You will find here global information on the project. Additional details on the technical implementation can be found in readmes in the fingerprint folder.

Integration with the Tor Project

FPCentral is officially part of the Tor Project since the end of 2017. An instance has been launched here: https://fpcentral.tbb.torproject.org/. The website will also be used to reinforce QA efforts of the TBB development team.

Goal

The goal of FP Central is to collect browser fingerprints from thousands of users and study the diversity of devices on the Internet. Data is key in understanding how much identifying information transpires through a browser and collecting fingerprints will help developers design smart defenses against unwanted leaks.

FP Central is designed first and foremost for the Tor community and Tor developers. The aim is to remove as much differences as possible between Tor browsers to reinforce the privacy and anonymity of Tor users.

FP Central is built in a way so that tests can be added and removed easily. Any developers can quickly set up a test to find out if a a fingerprinting-related fix is working or to study a newly discovered technique.

Local installation

The only way to launch FP Central is through the run.py script. Other ways will be added later on as new features get added to the project.

For an easy installation, you can download everything through pip by executing the following instruction at the root of the repo.

Creation of your virtual environment

pyvenv .venv

Activation of your virtual environment

source ./.venv/bin/activate

Local installation of packages through pip

pip3 install -r requirements.txt

Then you need to have MongoDB running on your system. Refer to the official documentation HERE for instructions on how to install and run it on your operating system.

After this step, you can directly run

python3 run.py

By default, the website is launched on port 5000.

http://127.0.0.1:5000

Technology behind the project

Here is the list of technology or libraries currently used by the project for the back-end:

And for the front-end:

Features

You will find below the list of currently supported features.

  • Basic front-end and back-end with Flask and Bootstrap
  • Support of a dynamic test suite
  • Addition of MongoDB and storage of collected fingerprints
  • Addition of standard and Tor Browser specific fingerprinting tests
  • Support of returning visitors
  • Addition of basic statistics (for users + global page with aggregate statistics)
  • Addition of finer-grained statistics with lifetime stats, epoched stats and browser version stats
  • Addition of an API to get specific statistics easily
  • Support for localization
  • Addition of a page for acceptable Tor fingerprints
  • Support of additional browsers through the tagging system

Contributions

As the project is in early phases of development, it is subject to heavy modifications and refactoring. For that reason, I'm not accepting pull requests for the moment. However, as soon as the project is online, I'll gladly welcome any contributions with open arms to fix bugs or add new features.

License

This project is licensed under the MIT License. See the LICENSE file for details.