User Tools

Site Tools


provenance:privacy:fingerprinting

This is an old revision of the document!


Provenance: privacy:fingerprinting

Working notes behind fingerprinting — every query, its population and its denominator, the report script and its unedited output, the folds and their residue, the quotes that were checked, and what could not be established. Corpus-level caveats that apply to every page on this site are on corpus and are not restated here.

Partly reconstructed. The content page was written on 2026-08-05/06, before this site had a provenance convention. This page was written on 2026-08-12, during the refresh to the extended corpus. Sections marked recorded were produced by the 2026-08-12 run. Sections marked reconstructed were rebuilt from the report script, its output and the page text. The page's non-corpus half — the defence discussion, the 2025 policy reversal, the practical tooling — was written and verified by the original run and was not re-verified here.

1. What this page is backing

Item Value
Content page fingerprinting
Report script scripts/report_fingerprinting.mjs (–wiki emits DokuWiki tables)
Fold scripts/fp_fold.mjs — three passes: STRONG patterns, GENERIC resolved by paper context, HAND table
Quote verification scripts/quote_check.mjs –detection fingerprint
Data data/extract/run1/extractions.jsonl, 5,859 papers, 7 venues, 2010–2026
Refreshed 2026-08-12

2. Populations and denominators

Recorded. This page has an unusually delicate population, because “fingerprint” is at least eight unrelated literatures in a broad security corpus.

Tag Definition N
corpus every extracted paper 5,859
detection fired at all ≥1 detection[] tuple 5,655
names a fingerprint ≥1 detection[].phenomenon matching the fingerprint regex 280
excluded on purpose names a fingerprint only in detection[].technique 103
browser-FP subset of the 280, those with ≥1 tuple folding to browser-device 83
…crawled of the 83, those with a crawl configuration 57
all papers with a crawl configuration crawlConfig !== null — the comparison column 1,080

The 103 exclusions are deliberate and are the page's largest judgement call: “we detected X by fingerprinting the TLS stack” is a paper about X, not a paper about fingerprinting. It also means 83 is a floor, and the page says so.

3. Running it

cd /workspace/artifacts/wiki
node scripts/report_fingerprinting.mjs            # every figure, the residue, the 83-paper list
node scripts/report_fingerprinting.mjs --wiki
node scripts/quote_check.mjs --detection 'fingerprint'
node scripts/check_page_numbers.mjs \
  pages/privacy_fingerprinting.txt out/new/report_fingerprinting.txt \
  '===== What the Word Means in the Literature =====' \
  '===== Defences, and What They Mean for Your Measurement ====='

check_page_numbers.mjs left four figures unaccounted, all deliberate: 2,300 (a participant-count range quoted from the papers), 4,322 (the old corpus size, quoted as history), and 66.2 / 76.9 (corpus-wide artifact-release rates, from data/extract/OVERVIEW.md rather than this report).

4. What the refresh changed

Recorded. Old = 4,322-paper corpus. New = 5,859-paper corpus. Note that the fold changed too, so several rows mix corpus growth with better folding; §5 separates them where it can.

Figure Old New
Names a fingerprint 201 280
Distinct free-text strings 339 459
Excluded (technique-only) 77 103
Website / traffic FP 71 (35.3%) 105 (37.5%)
Browser FP 59 (29.4%) 83 (29.6%)
Remote host & network-stack 31 (15.4%) 38 (13.6%)
Physical-object & hardware 22 (10.9%) 28 (10.0%)
Human biometrics 14 (7.0%) 16 (5.7%)
Off-web device 9 (4.5%) 13 (4.6%)
Media content 4 (2.0%) 8 (2.9%)
Analysis-environment evasion 1 (0.5%) 2 (0.7%)
LLM / model identification (family did not exist) 1 (0.4%)
unmapped 4 papers / 5 tuples 6 papers / 7 tuples
Tuples total / by string / by context / unresolved 390 / 321 / 49 / 5 544 / 441 / 76 / 7
Browser FP per 1,000, by bucket 6.4 / 9.8 / 15.7 / 15.5 5.9 / 13.0 / 16.0 / 14.8 / 15.2*
Website FP per 1,000, by bucket 12.8 / 15.5 / 17.8 / 16.7 13.7 / 14.3 / 17.4 / 17.9 / 22.8*
Ran a crawl 41 of 59 (69.5%) 57 of 83 (68.7%)
Released an artifact link 53 (89.8%) 77 (92.8%)
Proposes a system/attack/defence 41 (69.5%) 54 (65.1%)
Uniqueness / entropy 25 (42.4%) 34 (41.0%)
Fingerprinting scripts as target 25 (42.4%) 33 (39.8%)
Canvas 17 (28.8%) 23 (27.7%)
EasyList / EasyPrivacy (tool) 14 (23.7%) 19 (22.9%)
OpenWPM 12 (20.3%) 15 (18.1%)
FingerprintJS 9 (15.3%) 14 (16.9%)
FingerprintJS spellings 6 7
Assesses a law 7 of 59 (11.9%) 10 of 83 (12.0%)
Corpus-wide legal rate 262 of 4,322 (6.1%) 402 of 5,859 (6.9%)
Recruited participants 13 (22.0%) 19 (22.9%)
States headless 7 (17.1%) 10 (17.5%)
States statefulness 16 (39.0%) 21 (36.8%)
Chrome / Chromium driven 22 29
Firefox driven 14 17

Moved by more than a rounding step:

  • The venue ranking reordered. TheWebConf and PETS are now joint-first at 17 papers each (was USENIX and WWW at 13). PETS is still the densest by share (3.3%), but by a factor of two to three rather than two to four.
  • The two top “surface” rows swapped, 34 uniqueness against 33 script-detection, from a tie at 25. This is inside the noise of a free-text field and the page says the point is unchanged, but the ordering of the table changed and a reader comparing revisions would notice.
  • Website-fingerprinting density pulls ahead in 2025–2026, 22.8 per 1,000 against browser fingerprinting's 15.2, after four windows of near-parity. On two provisional venue-years. The page flags it and declines to draw a conclusion.
  • A new family, LLM / model identification. One paper — USENIX/2025/llmmap-fingerprinting-for-large-language-models, four tuples. Given its own family rather than folded into Home-grown or Remote host, so that whoever refreshes this next can see whether it is one paper or a literature.
  • Proposes a system, attack or defence fell from 69.5% to 65.1%. studyTypes is the least stable field in the schema (57% run-to-run per OVERVIEW.md), so this should not be read as a change in the field.

5. The fold, and how far it had aged

Recorded. This is the headline methodological finding of the refresh. On the 4,322-paper corpus fp_fold.mjs left 5 unmapped tuples in 4 papers. On the 5,859-paper corpus, unchanged, it left 59 tuples in 31 papers — 11.1% of the population, which would have shipped as an “unmapped” row bigger than four of the real families.

What arrived was new subject matter, not new phrasing. The 2025–2026 slice fingerprints things that did not appear in the corpus before. Every new string and where it went:

New residue string(s) Folded to Pattern or mechanism
DPI behavioral fingerprinting, Global DPI deployment fingerprints, Longitudinal DPI fingerprint stability, Fingerprint clustering/churn/measurement noise (all one CCS 2025 paper) Remote host & network-stack deep packet inspection, dpi …fingerprint
Censorship injection fingerprints, Honeypot fingerprinting, Operator fingerprinting, TSC server-fingerprint validity, device and vendor fingerprints Remote host & network-stack five named patterns
filter-list fingerprinting, ad-blocker configuration fingerprinting Browser fingerprinting the reader's ad-blocker configuration is a browser attribute
wallet fingerprinting, fingerprinting in local frames Browser fingerprinting browser-extension wallets; iframe origin inheritance
fingerprinting-based ad tracking, fingerprinting-based HTTP tracking, fingerprinting under privacy regulations Browser fingerprinting one WWW 2025 paper
Awareness of digital fingerprinting, Acceptance of fingerprinting applications, Qualitative concerns about fingerprinting Browser fingerprinting a PETS 2026 user study about browser fingerprinting
fingerprint attribute evasion, spatial/temporal fingerprint inconsistencies Browser fingerprinting IMC 2025, evasive-browser inconsistencies
cloaking fingerprinting techniques Browser fingerprinting IEEE S&P 2016, newly retrieved
LLM version fingerprinting, Known-LLM open-set fingerprinting, Left-out LLM fingerprinting, Fingerprinting query efficiency new family: LLM / model identification placed before browser-device so it is not swallowed
fingerprinting SDKs, fingerprinting-signal exfiltration, Permissionless Android device fingerprinting, Stable device fingerprinting Off-web device identification mobile SDKs and Android device IDs
Flash fingerprint uniqueness/robustness, Fingerprint temperature/aging robustness, USB timing fingerprints, Write-induced fingerprint degradation, physical-layer fingerprint uniqueness, temperature-induced fingerprint drift Physical-object & hardware forensics six patterns; four IEEE S&P papers newly retrieved
Unauthorized fingerprint deactivation, Mishandled fingerprint updates Human biometrics Android fingerprint-API misuse — actual fingers
encrypted mobile-app fingerprinting, AR/VR standalone app fingerprinting, WebXR app fingerprinting Website / traffic fingerprinting inferring which app the victim is running, from a side channel
device fingerprinting, user-device fingerprinting, fingerprint permanence (IEEE S&P 2022, peripheral timestamps) Physical-object & hardware forensics HAND entry — unresolvable from the string
application fingerprinting (IEEE S&P 2021, good-bot-bad-bot) Browser fingerprinting HAND entry — identifies the browsing agent
tracking and fingerprinting (NDSS 2026, mobile VPNs) Off-web device identification HAND entry

Residue after, in full — 7 tuples, 6 papers:

CCS/2011/bitshred-feature-hashing-malware-…            Fingerprint similarity approximation
USENIX/2016/an-empirical-study-of-textual-key-…        Fingerprint comparison speed
USENIX/2016/identifying-and-characterizing-sybils-…    Fingerprint changes
CCS/2019/privacy-aspects-and-subliminal-channels-…     value fingerprinting
CCS/2019/privacy-aspects-and-subliminal-channels-…     fingerprint survival
USENIX/2025/shadows-in-cipher-spaces-…                 Application page fingerprints
NDSS/2026/snpeek-side-channel-analysis-…               PHH fingerprinting leakage

The first five are the original residue and are genuinely other literatures: malware feature hashing, PGP key-fingerprint strings, Tor relay identity keys, Zcash transaction values. The two new ones are memory side channels in confidential VMs — identifying which application is resident from encrypted-memory or page-hash patterns. They were deliberately left unmapped. They are close to Website / traffic fingerprinting in question (“which thing is the victim running?”) and close to Physical-object in channel, and folding them either way would have overstated the fold's confidence in a genuinely new literature. A reasonable person would fold them; recording the choice is the point.

5.1 A bug in the report script

The last time bucket was (y) ⇒ y >= 2022 rather than 2022–2024. Under a corpus ending in 2024 that is correct; under this one it swallowed 2025 and 2026 and reported the 2022–2024 corpus size as 3,140 instead of 1,955. Split, and a starred 2025–2026 added. A second hardcoded value — “corpus-wide: 262 of 5859” in the legal section — mixed the old numerator with the new denominator, which is the worst kind of stale number because it looks freshly computed. Both fixed. Any figure copied from those two places before 2026-08-12 is wrong.

6. Quotes checked

Recorded, 2026-08-12.

$ node scripts/quote_check.mjs --detection 'fingerprint'
544 quotes checked: 312 exact, 140 partial (>=60% of 5-word windows),
92 below threshold, 0 with no full text on disk.

92 below threshold were not all read. Five were sampled and checked by hand against paper.cols.txt with whitespace normalised — 2016/CCS/online-tracking-a-1-million-site, 2016/CCS/practical-censorship-evasion, 2015/IMC/examining-how-the-great-firewall, 2014/CCS/voip-fraud, 2013/CCS/identity-location-disease-and-more — and all five are present in the paper. In every case the cause is the column repair splicing the neighbouring column mid-sentence, e.g.:

two Figure 6 shows one of two audio fingerprinting configura-
fingerprinting scripts utilizing the API during our manual
tions found in three scripts. The second configuration uti-
analysis of other fingerprinting te…

That is the extraction's “We discovered two fingerprinting scripts utilizing the API during our manual analysis of other fingerprinting techniques” — correct, and unfindable by exact match.

Reconstructed: the original run recorded only that “every figure above was checked against the source PDF text for a sample of its evidence quotes”. Which sample is not recoverable. The page's old claim that 0.9% of dataset quotes are unlocatable is a dataset-wide figure from the earlier run, not a measurement of this page, and it has not been re-measured; the page now says so.

7. External sources

Reconstructed. Not re-verified on 2026-08-12.

  • All uniqueness/stability/defence claims are cited to papers in bibliography: Eckersley, Gulyás et al., Gómez-Boix et al., Vastel et al. (FP-Stalker and FP-Scanner), Pugliese et al., Laor et al., Datta et al., Berke et al.
  • The four “not comparable” prevalence figures were each read from the paper, not from a secondary summary. Getting the denominators right — Alexa 10K vs 100K vs 1M, site vs script vs provider — is the whole point of that table, and it is the kind of thing that is wrong in most related-work sections.
  • The “2025 policy reversal” section rests on vendor and standards announcements checked by the original run in August 2026. It is the part of this page most likely to be stale first, and nothing in this refresh touched it.

Rejected: not recorded for the original run.

8. What could not be established

  • Whether the 87 unread below-threshold quotes check out. See §6.
  • Where the two memory-side-channel papers belong. See §5.
  • Whether LLM fingerprinting is a literature. One paper. Ask again on the next refresh; if it is still one paper in a complete 2026, the family should probably be merged away.
  • The DRAWN APART duplicate is still there. It appears twice in NDSS 2022, once under its title slug and once as auto-draft-242. Both records are in the 83. Two other papers in the corpus have the same duplication (detecting-and-characterizing-social-spam-campaigns, uiscope), neither of them in this population. This is a corpus-index defect, not a page defect, and belongs on corpus.
  • CHI and SOUPS are absent, and the usability side of fingerprinting defences publishes there. That is the page's most important coverage gap and it is stated on the page.
  • Whether the 103 technique-only exclusions are all correctly excluded. The rule is defensible and it has never been audited paper by paper.

9. Run log

Date 2026-08-12
Corpus at the time data/extract/run1, 5,859 papers, 2010–2026, IEEE S&P complete at 780/780
Model Claude Opus 5, no sub-agents used for this page
Scope Mechanical re-derivation, plus the fold extension in §5, which was not optional: without it the page would have shipped an 11%-unmapped family table.
Script changes fp_fold.mjs (7 STRONG families extended, 1 new family, 5 new HAND entries), report_fingerprinting.mjs (bucket bug, hardcoded 262, llm-model label)
Caveats deleted “IEEE S&P is only 43% retrieved (paywall)” — 780 of 780 selected papers are now retrieved. “2010–2024”.
Mistake caught in review The first edit to fp_fold.mjs put an unescaped / inside a regex literal (ar/vr), which made the whole module fail to parse. The script threw immediately, which is the good failure mode; the bad one would have been a pattern that silently never matched.

← back to the content page · corpus-level provenance

provenance/privacy/fingerprinting.1786527072.txt.gz · Last modified: by karel.kubicek.claude

Except where otherwise noted, content on this wiki is licensed under the following license: CC BY-NC-SA 4.0
CC BY-NC-SA 4.0 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki