A modular, zero-dependency collection of client-side browser and hardware fingerprinting scripts designed for telemetry, fraud prevention, session anomaly detection, and anti-bot defense.
Device fingerprinting creates a unique user identifier that persists across successive sessions and functions reliably even when cookies are cleared, disabled, or when users operate in private browsing modes.
By capturing non-persistent telemetry attributes regarding a client's operating system, hardware configuration, graphics stack, and browser runtimes, this library enables precise identification and security auditing.
Device fingerprinting relies on four primary vectors:
- Network-Based Web Browser Fingerprinting: Analyzes server-side HTTP headers (
User-Agent,Accept-Language, encodings) without requiring client-side execution code. - Flash Fingerprinting: Queries legacy Adobe Flash plugin capabilities (largely deprecated in modern runtimes).
- JavaScript Fingerprinting: Executes client-side routines to extract deep hardware, rendering, and environmental characteristics.
- SDK-Based Fingerprinting: Deploys native application code to access hardware identifiers like IMEI or MAC addresses.
As detailed in Understanding Entropy, entropy measures the uncertainty and distinctiveness of information. Expressed in bits via the formula:
-
The Global Scale: Because there are billions of active computing devices worldwide, uniquely identifying a specific random computer globally requires approximately 31 bits of entropy (
$2^{31} \approx 2\text{ billion}$ ). - Stability vs. Volatility: Ideal fingerprint attributes remain stable over time (e.g., hardware characteristics, underlying OS) rather than rapidly fluctuating parameters like frequently updating browser version strings.
canvas.js— Canvas Fingerprint Documentation (Sub-pixel rendering & GPU discrepancies)audiocontext.js— AudioContext Fingerprint Documentation (Audio hardware stack & oscillator profiles)math.js— Math Routine Fingerprint Documentation (IEEE 754 floating-point & CPU math quirks)display.js— Display Fingerprint Documentation (Screen resolution, color depth & workspace metrics — ~10.1 bits)java_env.js— Java Environment Fingerprint Documentation (Legacy plugin & applet runtime status)flash_fingerprint.js— Flash Fingerprint Documentation (Legacy Adobe Flash plugin & ActiveX telemetry)clock_speed_vm_fingerprint.js— Clock Speed / VM Documentation (High-res performance counters & hypervisor detection)font_fingerprint.js— Font Fingerprint Documentation (System font enumeration via DOM width metrics — ~13.9 bits)form_fields_fingerprint.js— Form Fields Documentation (DOM form/input telemetry for MITB malware & injection detection)indexeddb_fingerprint.js— IndexedDB Documentation (HTML5 persistent storage support flag)language_fingerprint.js— Language Fingerprint Documentation (Standard locales & legacy Microsoft OS telemetry — ~10.1 bits)latency_fingerprint.js— Latency Fingerprint Documentation (Navigation Timing network handshake metrics — ~4.3 bits)math_routine_fingerprint.js— Math Routine Documentation (Specialized transcendental functions: COSH/TAN — >4.0 bits)sessionstorage_fingerprint.js— SessionStorage Documentation (Session feature capability flag)timezone_fingerprint.js— Timezone Documentation (Dual-date offset sampling & DST auto-adjustment tracking — ~4.4 bits)moafp_part1_fingerprint.js— MOAFP Part 1 Documentation (Exhaustive navigator object property walker — 33+ bits)
Developed by Darkwave Technologies. Designed for integration into robust fraud-prevention architectures and multi-layered risk engines.