Giter VIP home page Giter VIP logo

creepjs's Introduction

CreepJS

https://abrahamjuliot.github.io/creepjs

The purpose of this project is to shed light on weaknesses and privacy leaks among modern anti-fingerprinting extensions and browsers.

  1. Detect and ignore API tampering (API lies)
  2. Fingerprint lie types
  3. Fingerprint extension code
  4. Fingerprint browser privacy settings
  5. Employ large-scale validation, but allow possible inconsistencies
  6. Feature detect and fingerprint new APIs that reveal high entropy
  7. Rely only on APIs that are the most difficult to spoof when generating a pure fingerprint

Tested:

  • Tor Browser (SL 1 & 2)
  • Firefox (RFP)
  • ungoogled-chromium (fingerprint deception)
  • Brave Browser (Standard/Strict)
  • uBlock Origin (aopr)
  • Privacy Badger
  • Privacy Possom
  • Random User-Agent
  • User Agent Switcher and Manager
  • CanvasBlocker
  • Trace
  • CyDec
  • Chameleon
  • ScriptSafe
  • Windscribe

Rules

Data

  • data collected: user agent string, encrypted fingerprints and booleans
  • data retention: auto deletes 30 days after last visit
  • visit tracking: limited to data retention and new feature scaling

Signatures

  • you may optionally sign your fingerprint with 4-64 characters
  • signatures can be memorable descriptors
  • in low entropy browsers, a signature can signal to others that the fingerprint is shared

New feature scaling

  • scaling should occur no more than once per week
  • new weekly features may render fingerprints anew
  • view deploy history

Formulas

Trust Score

A failing trust score is unique and can be used to connect fingerprints.

  • start at 100%
  • less than 2 loose fingerprints: subtract 0
  • less than 11 loose fingerprints: subtract total*0.1
  • *11+ loose fingerprints: subtract total*0.2
  • trash: subtract total*15.5
  • lies: subtract total*31
  • errors: subtract total*5.2

Bot Detection

Bots leak unusual behavior and can be denied service.

  • 10 loose fingerprints within 48 hours

Browser Detection

  • a guess attempt is made to decrypt the browser vendor, version and platform
  • this guess does not affect the fingerprint
  • fingerprints with lies are ignored
  • system is guessed only when WorkerNavigator.userAgent system is an exact match to the current samples
  • decoded samples are auto gathered and manually reviewed

Tests

  1. js Math implementation (SpiderMonkey, JavaScriptCore, V8)
  2. js engine via console errors
  3. HTMLElement version
  4. system styles
  5. CSS style version
  6. contentWindow version

Definitions

Trash

  • unusual results
  • forgivable lies

Lies

  • prototype tampering
  • failed math calculations

Errors

  • invalid results
  • blocked features

Loose Fingerprint

  • collects as much entropy as possible

Fingerprint

  • adapts to browsers and distrusts known noise vectors
  • aims to ignore entropy unique to a browser version release
  • gathers compressed and static entropy

creepjs's People

Contributors

abrahamjuliot avatar ttury avatar

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.