Learning Center

Browser Fingerprinting: How Websites Identify You Without Cookies

The signals, the maths behind uniqueness, and which defences genuinely work.

13 min readAdvancedUpdated July 2026
Start here

What is browser fingerprinting?

Browser fingerprinting identifies a device by collecting dozens of small, individually harmless details and combining them into one signature. No single item identifies you. Together, they usually do.
The short answer
  • It needs no cookies and no storage, so there is nothing to clear and no consent banner to decline.
  • Incognito does not help — private windows use the same GPU, fonts and screen.
  • About 33 bits of entropy is enough to identify one person on Earth. A few strong signals get most of the way there.
  • Blocking scripts can backfire: refusing to answer is itself rare, and rare is identifying.
  • It also powers genuine fraud prevention — the technology is neutral, its application is not.

The useful analogy is a witness description. “Brown hair” describes millions of people. Brown hair, 5'11", left-handed, a limp and a Canadian accent describes almost nobody. Fingerprinting works the same way — stack enough weak signals and you arrive at one person.

See the mechanism

Canvas fingerprinting, in the open

The single strongest signal, and the easiest to demonstrate. Normally this render happens off-screen where you never see it — here it is visible.
Canvas fingerprinting, live

Your browser is drawing this right now. The pixels it produces differ from another device’s — that difference is the fingerprint.

normally drawn off-screen — shown here so you can see it

Resulting hash
rendering…

Same instructions, different result on different hardware. Your GPU, driver, font rasteriser and anti-aliasing all nudge individual pixels — invisible to you, perfectly measurable in code.

Why the output differs at all
Your GPU, graphics driver, font rasteriser and anti-aliasing settings each nudge individual pixels. Two identical laptops with different driver versions produce measurably different images. More in canvas fingerprinting.
The maths

How uniqueness actually works

Entropy measures how much each signal narrows the field. Switch them on one at a time and watch the crowd you hide in disappear.
How many people share your fingerprint?

Each signal narrows the field. Toggle them to see how quickly “anonymous” disappears.

Identifying information
13.4 bits

You share this combination with roughly 462,560 of the world’s ~5 billion internet users.

Bit values are published averages, not a measurement of you personally. Roughly 33 bits is enough to identify one person on the planet — which is why so few signals are needed.

The uncomfortable part
Being unusual makes you easier to track, not harder. A rare screen resolution, an obscure OS or an unusual font set all contribute more entropy — which is why privacy advice that tells you to customise everything is often counterproductive.
The full picture

Every signal, grouped

A real fingerprinting script reads dozens of values across four broad categories.

Hardware

  • Screen resolution & pixel ratio
  • CPU cores, device memory
  • GPU model via WebGL
  • Touch support & max touch points

The hardest to change, and therefore the most reliable to track.

Software

  • Operating system & browser version
  • Installed fonts
  • Language & keyboard layout
  • Browser extensions, indirectly

Font lists alone contribute more entropy than almost any other single signal.

Rendering

  • Canvas pixel output
  • WebGL renderer & shader precision
  • AudioContext waveform processing

Same instructions, different output per device — the strongest category by far.

Behaviour

  • Mouse movement & scroll rhythm
  • Typing cadence
  • Navigation flow through a site

Increasingly used for fraud scoring, and much harder to fake convincingly.

Deeper than JavaScript

TLS fingerprinting: identified before the page loads

Everything above needs JavaScript to run. This one does not — it happens during the encrypted handshake, before a single byte of content is exchanged.

When your client opens an HTTPS connection it announces which cipher suites, extensions and elliptic curves it supports — and crucially, in what order. That ordering is a property of the software, not the user. Chrome sends one arrangement, Firefox another, and Python’s requests library something obviously different from both.

Hashing that arrangement produces a JA3 fingerprint. It is why a scraper can be blocked on its very first packet no matter how perfect its headers are: the server knew it was not a real browser before it ever sent one.

The giveaway

A browser-perfect user agent arriving with a Python TLS signature. The mismatch is the tell.

The fix

Use a client that mimics a real browser TLS stack, or drive an actual browser engine.

Directly relevant if you are scraping — see our web scraping lesson.

Why it matters

How a fingerprint follows you

The point is not one site recognising you. It is many unrelated sites recognising the same device, and one network stitching those visits together.
One fingerprint, four unrelated sites

No cookies are involved. The same ad network is present on all four, and recognises the same device each time.

1
news-site.com
········
2
running-shoes.com
········
3
holiday-deals.com
········
4
insurance-quotes.com
········

Nothing known yet. Watch the same fingerprint appear on four unrelated sites.

Practical advice

What actually works

Four approaches, and the most obvious one is the worst. Lower is better.
Which defence actually works?

Lower is better — this is how much your browser stands out from the crowd.

How much you stand out30%

Values change every visit, so sessions cannot be linked. Brave takes this route. Best general-purpose privacy choice.

The counter-intuitive lesson: trying too hard to hide makes you easier to spot. Blending in beats blocking out. For account work the answer is different again — see antidetect browsers.

Practical recommendation
For everyday privacy, use a browser that randomises these values — Brave does this by default, and Firefox offers resist-fingerprinting mode. For genuinely high stakes, the Tor Browser’s uniform approach is stronger. For running accounts, you want the opposite of privacy: a stable, consistent persona per profile.
Be fair about it

The other side of fingerprinting

It is easy to frame this purely as surveillance. The same technique also blocks a great deal of real fraud.

Fraud prevention

Banks and payment processors use device recognition to notice a login from hardware never seen on that account before.

Account security

The “new device” email you get after signing in from a different laptop is fingerprinting doing something genuinely useful.

Bot detection

Spotting automation whose fingerprint is synthetic, contradictory, or identical across thousands of sessions.

Neutral technology, contested application
The mechanism that lets an ad network follow you across four sites is the same one that stops someone logging into your bank from an unrecognised device. The debate is about consent and proportionality, not the maths.
Check your understanding

Test yourself

Five questions. Nothing is recorded — this is just for you.
Quick knowledge check0 / 5

1Roughly how many bits of entropy are needed to identify one person on Earth?

2A VPN protects you from browser fingerprinting.

3Which defence tends to make you MORE identifiable?

4TLS/JA3 fingerprinting happens…

5Why is the canvas signal so strong?

Common questions

Fingerprinting FAQ

1What is browser fingerprinting?

It is a way of identifying a device by combining many small details your browser reveals — screen size, fonts, GPU, timezone, language and more. No single detail identifies you, but together they form a signature that is often unique.

2How is it different from cookies?

Cookies are stored on your device and can be deleted or blocked. A fingerprint is recalculated from your hardware and settings on every visit, so there is nothing to remove. It also works across unrelated sites and largely sidesteps the consent rules written for stored data.

3Does incognito or private browsing stop it?

No. Private windows prevent history and cookies from persisting, but they use the same GPU, fonts, screen resolution and timezone. Your fingerprint comes out essentially identical to a normal window.

4Does a VPN protect me from fingerprinting?

Only partly. A VPN changes your IP address, which is one signal among dozens. Every device-level signal — canvas, WebGL, fonts, screen — is unchanged, so a tracker can still recognise the same browser behind a different IP.

5Why does blocking fingerprinting scripts backfire?

Because refusing to answer is itself unusual. If almost nobody returns a blank canvas and you do, that refusal becomes a distinctive signal. You have swapped a common fingerprint for a rarer one, which is easier to track.

6How many bits does it take to identify me?

Roughly 33 bits of entropy is enough to single out one person from the world’s population, because 2^33 is about 8.6 billion. A handful of strong signals — canvas, fonts, WebGL — can get most of the way there on their own.

7What is TLS or JA3 fingerprinting?

It identifies the software making a connection from the way it negotiates encryption, before any JavaScript runs. The order of cipher suites and extensions differs between Chrome, Firefox and Python’s requests library, which is why a scraper can be spotted from its very first packet.

8Is browser fingerprinting legal?

It occupies a grey area. Under GDPR and similar regimes it is generally treated as personal data requiring a lawful basis and consent, but enforcement lags well behind the rules covering cookies, so the practice remains widespread.

Next steps

Keep learning

Where to go from here.