{ "name":"FingerprintingActivity", "description":"Definition of fingerprinting behavior by FPD module.", "severity": [ [0, "FPDSeverityNone", "#3CA519"], [1, "FPDSeverityLow", "#80B012"], [2, "FPDSeverityModerate", "#CD9600"], [3, "FPDSeverityHigh", "#E64B19"], [5, "FPDSeverityVeryHigh", "#C8004B"] ], "criteria":[ { "value":3, "weight":1 } ], "groups":[ { "name":"BrowserProperties", "description":"Fingerprinting methods based on simple information gathering by accessing certain APIs.", "criteria":[ { "value":7, "weight":1 }, { "value":12, "weight":2 }, { "value":14, "weight":3 } ], "groups":[ { "name":"NavigatorBasic", "description":"Basic information about browser and system.", "criteria":[ { "percentage":35, "weight":1 }, { "percentage":65, "weight":2 } ] }, { "name":"NavigatorHardware", "description":"Hardware information about device.", "criteria":[ { "value":1, "weight":1 } ] }, { "name":"NavigatorMobile", "description":"Information about features supported by mobile devices.", "criteria":[ { "value":1, "weight":1 } ] }, { "name":"NavigatorNetwork", "description":"Information about internet connection.", "criteria":[ { "value":3, "weight":1 } ] }, { "name":"LocalizationInfo", "description":"Localization details and keyboard layout.", "criteria":[ { "percentage":50, "weight":1 } ] }, { "name":"PermissionsInfo", "description":"Querying different permissions through API.", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"AudioInfo", "description":"AudioContext configuration parameters.", "criteria":[ { "percentage":40, "weight":1 } ] }, { "name":"ScreenInfo", "description":"Information about screen and its properties.", "criteria":[ { "value":5, "weight":1 } ] }, { "name":"WindowInfo", "description":"Information about screen from root Window object.", "criteria":[ { "value":3, "weight":1 } ] }, { "name":"StorageInfo", "description":"Availability of WebStorage technology.", "criteria":[ { "percentage":60, "weight":1 } ] }, { "name":"NavigatorFlags", "description":"Binary browser settings.", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"TimeInfo", "description":"Information about exact time values.", "criteria":[ { "access":10, "weight":1 } ] }, { "name":"WebGLInfo", "description":"Information from WebGL/WebGL2 interface.", "criteria":[ { "percentage":50, "weight":1 } ] } ] }, { "name":"AlgorithmicMethods", "description":"Fingerprinting methods based on specific procedures, calculations or processing.", "criteria":[ { "value":1, "weight":2 }, { "value":2, "weight":3 } ], "groups":[ { "name":"FontsEnumFingerprint", "description":"System fonts enumeration techniques.", "criteria":[ { "percentage":50, "weight":1 } ], "groups":[ { "name":"JSFontEnum", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"JSFontEnumStepOne" }, { "name":"JSFontEnumStepTwo", "criteria":[ { "access":15, "weight":1 } ] } ] }, { "name":"CanvasFontEnum", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"CanvasFontEnumStepOne" }, { "name":"CanvasFontEnumStepTwo" } ] } ] }, { "name":"CanvasFingerprint", "description":"Extraction of rendered image from 2D canvas.", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"CanvasFingerprintStepOne", "criteria":[ { "percentage":50, "weight":1 } ] }, { "name":"CanvasFingerprintStepTwo", "criteria":[ { "access":2, "weight":1 } ] }, { "name":"CanvasFingerprintStepThree" } ] }, { "name":"WebGLFingerprint", "description":"Extraction of rendered image from WebGL canvas.", "criteria":[ { "percentage":50, "weight":1 } ], "groups":[ { "name":"WebGL1Fingerprint", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"WebGL1FingerprintStepOne", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"WebGL1FingerprintStepTwo", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"WebGL1FingerprintStepThree" } ] }, { "name":"WebGL2Fingerprint", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"WebGL2FingerprintStepOne", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"WebGL2FingerprintStepTwo", "criteria":[ { "percentage":100, "weight":1 } ] }, { "name":"WebGL2FingerprintStepThree" } ] } ] }, { "name":"WebRTCFingerprint", "description":"Leakage of public or local IP address.", "criteria":[ { "percentage":100, "weight":1 } ], "groups":[ { "name":"WebRTCFingerprintStepOne", "criteria":[ { "percentage":50, "weight":1 } ] }, { "name":"WebRTCFingerprintStepTwo", "criteria":[ { "percentage":50, "weight":1 } ] } ] }, { "name":"AudioContextFingerprint", "description":"Fingerprinting based on AudioContext processing.", "criteria":[ { "value":2, "weight":1 } ] } ] }, { "name":"CrawlFpInspector", "description":"APIs often abused for fingerprinting according to FP-Inspector study.", "criteria":[ { "percentage":10, "weight":1 }, { "percentage":15, "weight":2 }, { "percentage":20, "weight":3 } ] } ] }