Zuruck zum Blog
Erste Schritte

Browser Fingerprinting Explained: The Complete Guide

A comprehensive guide to browser fingerprinting: what it is, how it works, what signals are collected, and why it matters for browser automation.

Introduction

Browser fingerprinting is the practice of collecting attributes about your browser and device to create a unique identifier. Unlike cookies, which can be cleared, a fingerprint is derived from your hardware and software configuration. It persists across sessions, across browsers, and even across incognito mode.

This guide explains every major fingerprinting vector, how they work together, and why they matter for browser automation.

What Is a Browser Fingerprint?

A browser fingerprint is a collection of data points that, when combined, uniquely identify a browser instance. No single data point is unique on its own, but the combination of 30+ signals creates a highly distinctive profile.

Think of it like identifying a person: brown hair is common, blue eyes are common, 6'2" is less common, but someone who is 6'2" with brown hair, blue eyes, a specific shoe size, and a particular accent is likely unique in any given crowd.

The Major Fingerprinting Vectors

1. Canvas Fingerprinting (~10 bits)

The HTML5 Canvas API renders graphics differently on each device due to GPU, driver, and rendering pipeline differences. Drawing text and shapes on a canvas and reading back the pixel data produces a device-specific hash.

2. WebGL Fingerprinting (~15 bits)

WebGL exposes your GPU model, driver vendor, supported extensions, and capability limits. The WEBGL_debug_renderer_info extension directly reveals your GPU identity.

3. Audio Fingerprinting (~8 bits)

The Web Audio API processes audio differently on each device. An OfflineAudioContext with specific oscillator and compressor settings produces device-specific sample values.

4. Font Fingerprinting (~8 bits)

Each operating system ships with different fonts. By measuring text rendered in hundreds of candidate fonts, scripts can determine which fonts are installed, revealing your OS and configuration.

5. Navigator Properties (~6 bits)

navigator.hardwareConcurrency, navigator.deviceMemory, navigator.platform, and User-Agent Client Hints all contribute hardware and software details.

6. Screen Properties (~12 bits)

Screen resolution, available screen area, device pixel ratio, and color depth identify your display configuration.

7. Timezone and Locale (~5 bits)

Intl.DateTimeFormat().resolvedOptions().timeZone, navigator.language, and locale-specific formatting reveal your geographic context.

8. WebRTC (~4 bits)

ICE candidate gathering can reveal your real IP address, local network IPs, and STUN server responses.

9. Storage Quota (~4 bits)

navigator.storage.estimate() reveals your disk size through the quota calculation.

10. Media Codecs (~6 bits)

canPlayType() and MediaCapabilities API responses vary by OS, browser version, and hardware.

Combined Entropy

SignalApproximate Entropy
Canvas10 bits
WebGL15 bits
Audio8 bits
Fonts8 bits
Navigator6 bits
Screen12 bits
Timezone/Locale5 bits
Storage4 bits
Media Codecs6 bits
CSS Features10 bits
Total~84 bits

With 84 bits of entropy, there are 2^84 possible combinations, far more than the number of browsers on the internet. In practice, 33 bits of entropy is enough to uniquely identify a browser among 8 billion possibilities.

How Detection Systems Use Fingerprints

Consistency Checking

The most powerful technique is not the fingerprint itself but checking that all signals are internally consistent:

  • Does the User-Agent match navigator.platform?
  • Does the GPU match the claimed OS?
  • Does the screen size match the claimed device type?
  • Does the timezone match the IP geolocation?
  • Does the font list match the claimed OS?

A single inconsistency is more damaging than having a common fingerprint.

Cross-Session Tracking

Fingerprints persist across cookie clears, incognito sessions, and even browser reinstalls. If the hardware does not change, the fingerprint remains the same.

Bot Detection

Automation tools leave distinctive fingerprints:

  • navigator.webdriver === true
  • Missing Chrome runtime properties
  • Software GPU renderer (SwiftShader)
  • Identical fingerprints across thousands of sessions

Why Fingerprinting Matters for Automation

For browser automation, fingerprinting creates two challenges:

  1. Identity linkage - All sessions from the same machine have the same fingerprint
  2. Bot detection - Automation artifacts in the fingerprint trigger blocking

Cloud browsers address both: each session gets a unique, consistent fingerprint with no automation artifacts.

Summary

Browser fingerprinting combines dozens of hardware and software signals to create unique identifiers. For automation, the key is not just having a fingerprint, but having one that is unique, consistent, and realistic. Cloud browsers achieve this by controlling all fingerprinting vectors at the engine level, producing sessions that are indistinguishable from real user browsers.

#fingerprinting#guide#introduction#privacy