JavaScript Restrictor
Browser extension that improves privacy and security
Fingerprinting Detector

Fingerprinting Detector (FPD) is a module that detects browser fingerprint extraction and prevents its sharing. To learn more about Browser Fingerprinting topic, see study "Browser Fingerprinting: A survey" available here: https://arxiv.org/pdf/1905.01051.pdf. More...

Files

file  fp_code_builders.js
 Functions that help to automate process of building wrapping code for FPD module.
 
file  fp_detect_background.js
 Functions that help to automate process of building wrapping code for FPD module.
 

Detailed Description

Fingerprinting Detector (FPD) is a module that detects browser fingerprint extraction and prevents its sharing. To learn more about Browser Fingerprinting topic, see study "Browser Fingerprinting: A survey" available here: https://arxiv.org/pdf/1905.01051.pdf.

The FPD module uses JSR wrapping technique to inject logic that allows log API calls and accesses for every visited web page and its frames. Logged JS APIs can be specified in wrappers-lvl_X.json file, where X represents corresponding JSR level.

Detector of fingeprinting activity is based on chosen heuristics that can be defined in form of API groups. Groups represents a set of APIs that have similar but specific purpose. Access to group is triggered when a certain amount APIs is accessed. Hierarchy of groups creates a tree structure, where access to root group means fingerprinting activity. Groups can be configured in groups-lvl_X.json file, where X represents corresponding JSR level.

The FPD evaluate API groups with every request made in scope of certain browser tab. When FPD detects fingerprinting activity, blocking of subsequent requests is issued. Local browsing data of fingerprinting origin are cleared to prevent caching extracted fingerprint in local browser storage.