Git Product home page Git Product logo

fprandom's Introduction

FPRandom

Welcome to the official repository of FPRandom, a modified browser whose goal is to counter advanced fingerprinting techniques!

The browser

FPRandom is a modified version of the Nightly version of Firefox 54 from Mozilla. FPRandom's primary goal is to break the stability and determinism of very specific fingerprinting techniques while preserving the best user experience possible. By introducing enough noise during the fingerprinting process, trackers are fooled and cannot bound a freshly collected fingerprint with an old one, thus rendering the tracking across multiple sessions impossible. FPRandom is detailed in a scientific publication that has been presented at the ESSoS 2017 conference where it received a "Distinguished Artifact" award ๐Ÿ†.

The patch

The fprandom.patch file contains the complete list of modifications brought to Firefox. The patch is structured as follows:

  • From line 1 to 259 - addition of two entries in the Privacy section of Firefox preferences: choose when the protection is activated ("Always", "Only in private windows" or "Never") and select the desired "Randomization" strategy ("Always random" or "Per session")
  • From line 260 to 392 - modification of the Canvas API to change the browser's fallback font and add imperceptible variations to selected colors
  • From line 393 to 627 - modification of the AudioContext API to reduce the volume of random parts of processed audio by a very small factor inaudible by the user
  • From line 628 to 720 - modification of the iterator of JavaScript objects to change the enumeration order of properties and to prevent browser's unmasking

The Linux prototype

You can find a fully-compiled prototype of FPRandom for x64 Linux systems in the Release section of this repository HERE. After downloading the archive, extract it and execute the following command:

./firefox

If you want to launch FPRandom alongside your main instance of Firefox with a different profile, you can execute the following command:

./firefox -no-remote -P "New profile"

Demo

You can use the demo page at https://plaperdr.github.io/fprandom/ to compare the impact of FPRandom with a vanilla version of Firefox or Chrome. By running the tests several times, you can see that FPRandom produces new values at every execution while a standard browser keeps the same stable ones.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.