Browser Fingerprinting: The Invisible Tracker
Blocking cookies does not stop browser fingerprinting. Websites track your device configuration, fonts, and screen size without ever storing a cookie.
Table of Contents
- What Is Browser Fingerprinting?
- What Data Gets Collected
- Basic Browser Properties
- Canvas Fingerprinting
- WebGL Fingerprinting
- Audio Context Fingerprinting
- Font Enumeration
- Hardware and Performance Signals
- Who Uses Fingerprinting and Why
- How to Fight Browser Fingerprinting
- Use Tor Browser
- Use Firefox with Fingerprint-Resistant Settings
- Use Brave Browser
- Avoid Uncommon Configurations
- Use Browser Extensions Carefully
- Testing Your Fingerprint
What Is Browser Fingerprinting?
When you visit a website, your browser automatically shares a wealth of technical information about your device and configuration. Individually, these details seem innocuous. Combined, they form a fingerprint — a profile so specific it can identify you across websites without using cookies, IP addresses, or any local storage.
Browser fingerprinting is a tracking technique that collects this configuration data and hashes it into a unique identifier. Unlike cookies, fingerprinting:
- Stores nothing on your device
- Cannot be cleared or blocked by clearing cookies or browsing history
- Works even in private/incognito mode
- Persists across different browsers on the same machine
- Is completely invisible to users
Studies show that browser fingerprints are unique for over 80% of users, and when combined with other signals, uniqueness approaches 99%.
What Data Gets Collected
Fingerprinting scripts query dozens of browser and device properties:
Basic Browser Properties
- User-Agent string: Browser name, version, OS, device type
- Accept headers: Which content types, languages, and encodings the browser accepts
- Installed plugins and MIME types (less relevant in modern browsers, but historically distinctive)
- Do Not Track status (ironically, enabling DNT can make you more distinctive)
- Screen resolution and color depth
- Timezone and language settings
Canvas Fingerprinting
The most powerful technique. JavaScript draws invisible text or graphics onto an HTML5 canvas element and reads the resulting pixel data. Due to subtle differences in GPU, OS rendering libraries, and anti-aliasing algorithms, the same instructions produce slightly different output on different machines. This pixel data is hashed to create a highly stable identifier.
WebGL Fingerprinting
Similar to canvas but uses WebGL to render 3D graphics. GPU model, driver version, and renderer parameters create a distinctive fingerprint that's particularly stable over time.
Audio Context Fingerprinting
JavaScript generates audio data using the Web Audio API and measures how the browser's audio stack processes it. Differences in OS audio libraries and hardware produce subtly different outputs — another hash, another signal.
Font Enumeration
By measuring how text renders with different fonts, scripts can infer which fonts are installed on your system. A distinctive font set narrows down your device significantly.
Hardware and Performance Signals
- CPU core count (via
navigator.hardwareConcurrency) - Device memory (approximate, via
navigator.deviceMemory) - Battery status (deprecated due to privacy concerns, but historically used)
- Sensor data on mobile (accelerometer, gyroscope)
- Network connection type
Who Uses Fingerprinting and Why
Advertising networks use fingerprinting to track users across sites for targeted advertising, bypassing cookie consent requirements.
Fraud detection systems use it legitimately — banks and e-commerce platforms fingerprint browsers to detect account takeovers when a login appears from an unusual device.
Analytics providers use it to count unique visitors without cookies.
Data brokers combine fingerprint data with other sources to build behavioral profiles.
The dual-use nature of the technology makes it ethically murky — the same technique used by banks for fraud prevention is used by ad networks to circumvent user consent.
How to Fight Browser Fingerprinting
Complete prevention is extremely difficult — the countermeasure itself can make you stand out. The goal is to blend into the crowd rather than eliminate all signals.
Use Tor Browser
The Tor Browser is the gold standard for fingerprint resistance. It deliberately standardizes dozens of fingerprinting signals — all Tor Browser users present nearly identical canvas outputs, screen sizes, fonts, and headers. This is the most effective approach but comes with performance trade-offs (Tor's network routing is slower).
Use Firefox with Fingerprint-Resistant Settings
Firefox with privacy.resistFingerprinting set to true (in about:config) applies similar standardization. Combined with uBlock Origin and the Firefox Multi-Account Containers extension, it's a practical daily-driver option.
Use Brave Browser
Brave has built-in fingerprint randomization — it slightly randomizes canvas, WebGL, and audio output on each page load, making it impossible to build a stable cross-site profile. It's the most convenient fingerprint-resistant browser for general use.
Avoid Uncommon Configurations
Paradoxically, aggressive privacy setups with unusual plugins and settings can make you more fingerprintable. Sticking to standard browser configurations with fewer modifications blends better into the crowd.
Use Browser Extensions Carefully
Every extension you install can be detected, making your browser more unique. Minimize extensions and prefer privacy tools that are widely used (uBlock Origin has millions of users, which dilutes its fingerprintability).
Testing Your Fingerprint
Several tools let you assess your browser's fingerprint uniqueness:
- coveryourtracks.eff.org (by EFF): Tests fingerprint uniqueness and explains tracking protection
- browserleaks.com: Detailed breakdown of every signal your browser exposes
- fingerprintjs.com/demo: Shows what the popular fingerprinting library can identify
These tools help you understand your current exposure and measure the impact of changes you make.