PB
Available
arrow_back Back to Blog

Spoof Your Browser Fingerprint Without Breaking Websites

PB

Patrick Bushe

November 4, 2025 · 5 min read

Why naive spoofing doesn't work

When people first learn about browser fingerprinting, their instinct is to block everything. Block canvas. Block WebGL. Disable all JavaScript APIs that expose identifying information.

This approach has two problems. First, blocking canvas and WebGL breaks a huge portion of the modern web — map rendering, data visualizations, games, and many interactive applications rely on these APIs. Second, browsers that block everything create their own unique fingerprint. "Canvas blocked, WebGL blocked, fonts all absent" is an unusual configuration — one that's actually more identifiable in some databases than a normal browser fingerprint.

The right approach isn't blocking. It's spoofing — providing believable but incorrect values that vary over time.

What good spoofing looks like

For canvas fingerprinting: add a very small amount of noise to the pixel output — one or two pixel values shifted slightly. This produces a canvas output that looks completely normal to sites using canvas for rendering but creates a different fingerprint each session. The modification is invisible to the user and doesn't affect how canvas-based content looks.

For WebGL: return a believable but slightly different renderer string. Not a nonsense string that flags immediately as spoofed, but a variation that looks like a slightly different GPU configuration.

For navigator properties: return values within the normal range of real hardware. If you have 16 CPU cores, reporting 8 or 4 is believable. Reporting 0 or 512 is not.

For screen resolution: this is hard to spoof without causing display issues. Better to focus on higher-impact signals.

For user agent: string-only UA spoofing has limited value because other signals reveal the real browser. But consistent UA alongside other spoofed signals is part of a coherent fake identity.

How Ghost Browser implements this

Ghost Browser is a Chrome extension that handles fingerprint spoofing using the techniques described above — noise injection rather than blocking, believable value ranges rather than random extremes.

  • Install it from the Chrome Web Store. The default configuration handles:
  • Canvas fingerprint noise injection
  • WebGL renderer and vendor string spoofing
  • Navigator property normalization (hardware concurrency, device memory)
  • Audio context fingerprint variation
  • Client rects and font metrics perturbation

Site functionality is preserved because the spoofed values are within the range of real-world browser configurations. A site using canvas for a chart or WebGL for a map still works correctly — the underlying rendering is the same, just the fingerprint output differs.

Per-site control

Some sites — particularly banking and financial services — use fingerprinting as a fraud detection tool. If your bank's login page has associated your account with a fingerprint, changing it might trigger additional authentication steps.

Ghost Browser lets you whitelist sites where you want fingerprinting to return your real values. Log in to your bank with the extension paused on that domain, then resume protection everywhere else.

This is the right balance: strong protection on sites where you're not logged in (tracking and advertising), normal behavior on sites where fingerprint recognition is serving a security function you want.

Verifying your configuration

After setting up Ghost Browser, run your fingerprint through coveryourtracks.eff.org. Then open a new incognito window with Ghost Browser enabled and run it again. The fingerprints should differ.

If both sessions show the same canvas fingerprint hash, the noise injection may not be working on your configuration. Check the extension's settings and ensure canvas spoofing is enabled.

Conclusion

Browser fingerprint spoofing is more effective when done right: believable values, noise injection rather than blocking, and per-site control for services that use fingerprinting legitimately. Ghost Browser implements this correctly, which is why sites keep working while your fingerprint stops being a stable identifier.

More Tools by Patrick Bushe

Free Chrome extensions to boost your productivity and privacy