本頁面暫無您所用語言的版本,您正在閱讀英文原文。
Glossary
Browser fingerprint
A browser fingerprint is a set of device values a site reads without asking and combines into one identifier.
How a site collects it
Collection happens in ordinary page code while the page is still loading. A property read costs nothing and asks nothing, so a whole set is gathered before the first picture appears.
No permission dialog appears, because the browser does not treat any of it as private. The technique works precisely on a visitor who has agreed to nothing.
- 1
Reads what is reported
The user agent, the language list, the timezone, the screen size and the core count.
- 2
Draws and measures
A canvas image, a WebGL frame, an audio buffer and the width of a string in a named font. Each of the four comes back slightly differently on different hardware.
- 3
Joins it into one value
The joined text is hashed, and that hash is stored beside the account you just opened.
Your browser right now
These five values are read in your browser on this page. A site that wanted them would read the same properties in the same order.
Nothing here leaves this page. The values are read and drawn on the spot, and a checker that sends your readings somewhere has already collected them.
此刻您的裝置
- User agent
- 正在您的裝置上測量
- Languages
- 正在您的裝置上測量
- Timezone
- 正在您的裝置上測量
- Screen
- 正在您的裝置上測量
- CPU cores
- 正在您的裝置上測量
在您的瀏覽器中讀取並在此顯示,不會傳送到任何地方。
Where sites put it to work
The value rarely refuses a visit outright. It decides that two accounts belong to one person, and that decision arrives days after both were opened.
It also survives the things people expect to break it. A fresh window, a cleared jar and a different address leave it exactly where it was.
Linking two accounts
One fingerprint behind two logins is read as one person, whatever the addresses say. The link is drawn quietly and shows up as a suspension weeks later.
Scoring a session
An unusual set raises the score that decides whether a checkout or a login gets challenged. Rarity counts against you here even when nothing about it is wrong.
Recognising a return
A visitor who cleared everything is still recognised, which is the whole reason the technique exists. Storage rules apply to storage, and this is not storage.
Why the set has to agree
Changing the user agent is the easiest change to make and the weakest one. The set has to agree with itself, and every reader inside the browser has to give the same answer.
Three disagreements measured on our own engine. Each is one line of the self-test, and each is a value a site can read in a few milliseconds.
A site does not need all three to act. One disagreement inside a single browser is stronger evidence than any unusual value on its own.
The picture disagrees with itself
A WebGL frame read straight from the buffer did not match the same frame copied onto a canvas.
109 bytesThe voice list names other languages
A profile speaking one language carried the whole system voice list beside it.
68 voicesThe connection answers its own number
Reported latency did not match the number the profile was given, and no real link behaves that way.
100 against 150
What our engine does
The seed reaches the engine on the launch line and the values are produced inside it, not written over the page by a script afterwards. A worker, a frame and the document therefore answer the same numbers, because all three inherit one source.
Two runs of the same acceptance harness: the build before the fingerprint patches, and the build shipping today.
| Measurement | Before, 25 Aug 2026 | Shipping, 2 Sep 2026 |
|---|---|---|
| Checks green in one run | 24 of 29 | 29 of 29 |
| WebGL frame against its canvas copy | 109 bytes apart | 0 bytes apart |
| Reported latency against the seed | 100 against 150 | 150 against 150 |
Often confused with
Cookies
A cookie is a file left on your machine and you can delete it. A fingerprint is computed on demand, and there is no file to find.
Your IP address
The address says where the traffic comes out. The fingerprint says which machine sent it, and changing one leaves the other untouched.
Canvas fingerprint
That is one value inside the set, not the set itself. Fixing it alone leaves the other twenty odd readings as they were.
Device fingerprint
That phrase covers the machine rather than the browser, and the two overlap heavily. Two browsers on one computer still answer differently, so the browser is the unit that counts here.
How to check your own
The panel above shows five values for the browser you are reading this in. The full self-test lives in the app and runs inside a profile, against the engine that profile launched.
It reports every check by name, green and red alike. A checker embedded in a frame on a marketing page tells you about that page instead.
Read it against a second profile on the same computer. Two profiles that answer as two machines are the thing worth checking, and one run shows both.
What this does not do
- It does not make you anonymous. Behaviour, address reputation and account history are separate problems, and they close more accounts than fingerprints do.
- It does not give each site a different set. The seed belongs to the profile, and values that shift between two tabs of one session are themselves a signal.
- It does not hide that a browser exists. Every reading answers with something plausible, because refusing to answer is rarer than any particular answer.
- It does not undo a link that already exists. Two accounts opened from one profile stay linked whatever the readings do afterwards.
Check it
Every number above comes from a file you can open.
- The whole list of checks the self-test runs
- apps/desktop/src/lib/fpAudit.js
- The two acceptance runs quoted above
- docs/замеры/приёмка-до-заплат-25-08.log · docs/замеры/приёмка-windows-02-09.log
- A build is not accepted until these hold
- engine/scripts/engine-invariants.js · engine/scripts/accept-engine.js
- The checks run in a real browser
- apps/desktop/test/fp-audit.js · apps/desktop/test/audit-on-builtin.js
Questions
- How many values make up a fingerprint?
- There is no fixed number, and that is the point. Our acceptance run measures twenty nine of them on a desktop profile, and names each one in its report.
- Does clearing cookies change it?
- No, and the technique exists because it does not. Cookies are storage on your side, while a fingerprint is recomputed from the machine on every visit.
- Is a fingerprint unique to one person?
- Often it is close to it, and rarely on the strength of one value. Uniqueness comes from the combination, which is why a single edited value changes little.
- Do two profiles on one computer share a fingerprint?
- Not in our engine: the values come from the seed of each profile, so two profiles read as two machines. A separate check in the app says whether another profile shares them.
- Can a browser extension do the same job?
- An extension writes over values after the page has already loaded, and it cannot reach a worker or a frame. That gap is what the realm checks measure.
Next to this
See what your own profile answers
The self-test runs inside a profile and reports every check by name, green and red alike.