| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| provenance:privacy:fingerprinting [2026/08/12 10:07] – Add section 10: the Fable review pass, the windowed-guard defect it exposed (29 corpus figures stale outside the audited heading window across six pages), the hardened check_page_numbers.mjs, and the page-specific fixes. Authored by Claude. karel.kubicek.claude | provenance:privacy:fingerprinting [2026/09/21 13:30] (current) – Quote-check refresh 2026-09-21: re-ran quote_check.mjs --detection fingerprint with the pypdf fallback; 92 below threshold -> 50 rescued + 42 below in both; new provenance section. Authored by Claude karel.kubicek.claude |
|---|
| ^ Item ^ Value ^ | ^ Item ^ Value ^ |
| | Content page | [[privacy:fingerprinting]] | | | Content page | [[privacy:fingerprinting]] | |
| | Report script | ''scripts/report_fingerprinting.mjs'' (''--wiki'' emits DokuWiki tables) | | | 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 | | | Fold | ''scripts/fp_fold.mjs'' — three passes: STRONG patterns, GENERIC resolved by paper context, HAND table | |
| | Quote verification | ''scripts/quote_check.mjs --detection fingerprint'' | | | Quote verification | ''%%scripts/quote_check.mjs --detection fingerprint%%'' | |
| | Data | ''data/extract/run1/extractions.jsonl'', 5,859 papers, 7 venues, 2010–2026 | | | Data | ''data/extract/run1/extractions.jsonl'', 5,859 papers, 7 venues, 2010–2026 | |
| | Refreshed | 2026-08-12 | | | Refreshed | 2026-08-12 (corpus), 2026-09-03 (review pass, see §11) | |
| |
| ===== 2. Populations and denominators ===== | ===== 2. Populations and denominators ===== |
| ===== 6. Quotes checked ===== | ===== 6. Quotes checked ===== |
| |
| //Recorded, 2026-08-12.// | //Recorded, 2026-08-12. Re-run 2026-09-21 with the PDF fallback — see //Quote-check refresh, 2026-09-21// at the foot of this page for what moved and why.// |
| |
| <code> | <code> |
| $ node scripts/quote_check.mjs --detection 'fingerprint' | $ node scripts/quote_check.mjs --detection 'fingerprint' |
| 544 quotes checked: 312 exact, 140 partial (>=60% of 5-word windows), | 544 quotes checked: 312 exact, 140 partial (>=60% of 5-word windows), 50 rescued from the PDF, 42 below threshold in both renderings, 0 with no full text on disk. |
| 92 below threshold, 0 with no full text on disk. | |
| </code> | </code> |
| |
| **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.: | **The old figure was 92 below threshold; 50 of those 92 are defects in the stored text, not in the extraction.** They are below threshold against the rendering the extractor read and at or above it against an independent ''pypdf'' rendering of the same ''paper.pdf''. ''exact'' (312) and ''partial'' (140) did not move. What has to be read by hand is the **42** that are below threshold in **both** renderings. |
| | |
| | **Not all of the 42 were read.** Before the fallback existed, five of the then-92 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**. The fallback now reaches three of those five on its own (''practical-censorship-evasion'', ''examining-how-the-great-firewall'', ''voip-fraud''); ''online-tracking-a-1-million-site'' and ''identity-location-disease-and-more'' are still below threshold in both renderings and are in the 42, so the hand-read result is the only evidence for them. In every case the cause is the column repair splicing the neighbouring column mid-sentence, e.g.: |
| |
| <code> | <code> |
| * 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. | * 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. | **Rejected:** not recorded for the original run — a gap, and the reason §11 records them explicitly. |
| |
| ===== 8. What could not be established ===== | ===== 8. What could not be established ===== |
| * **Whether the 103 technique-only exclusions are all correctly excluded.** The rule is defensible and it has never been audited paper by paper. | * **Whether the 103 technique-only exclusions are all correctly excluded.** The rule is defensible and it has never been audited paper by paper. |
| |
| ===== 10. Review pass, 2026-08-12 ===== | ===== 9. Review pass, 2026-08-12 ===== |
| |
| //Recorded.// The refresh was reviewed by a second model (Claude Fable 5), told explicitly that the summary it was given might not be exhaustive, with instructions to hunt stale numbers. It found a **systematic defect, not a scatter of typos**, and it is worth stating because it will recur on the next refresh: | //Recorded.// The refresh was reviewed by a second model (Claude Fable 5), told explicitly that the summary it was given might not be exhaustive, with instructions to hunt stale numbers. It found a **systematic defect, not a scatter of typos**, and it is worth stating because it will recur on the next refresh: |
| * The matcher was **substring**, not word-boundary, so ''report.includes('59')'' was satisfied by ''11.59 bits''. One genuinely stale figure sat inside a checked window and passed for that reason. | * The matcher was **substring**, not word-boundary, so ''report.includes('59')'' was satisfied by ''11.59 bits''. One genuinely stale figure sat inside a checked window and passed for that reason. |
| |
| Both are fixed in ''scripts/check_page_numbers.mjs'': matching is now anchored with lookarounds, ISO dates and URLs are stripped before scanning, ''--code'' opts into scanning ''<file>'' blocks, and omitting the heading markers checks the whole page. **Run it windowed //and// whole-page.** The whole-page run is noisy — a page's non-corpus half is full of figures quoted from other papers — so read its output rather than expecting it to exit clean. | Both are fixed in ''scripts/check_page_numbers.mjs'': matching is now anchored with lookarounds, ISO dates and URLs are stripped before scanning, ''%%--code%%'' opts into scanning ''%%<file>%%'' blocks, and omitting the heading markers checks the whole page. **Run it windowed //and// whole-page.** The whole-page run is noisy — a page's non-corpus half is full of figures quoted from other papers — so read its output rather than expecting it to exit clean. |
| This page's content page was the worst affected — **twelve** stale figures outside the corpus section, including the opening ''<WRAP important>'' box, which is the first thing a reader sees and said ''201 / 59 / 71'' against a corpus section saying ''280 / 83 / 105''. Also fixed: OpenWPM **12 → 15**, Tracker Radar Collector **3 → 6** (it contradicted the page's own tool table), FingerprintJS **9 → 14**, ''puppeteer-extra-plugin-stealth'' **1 → 2**, legal **7 of 59 → 10 of 83**, and two Related-Pages shares. | This page's content page was the worst affected — **twelve** stale figures outside the corpus section, including the opening ''%%<WRAP important>%%'' box, which is the first thing a reader sees and said ''201 / 59 / 71'' against a corpus section saying ''280 / 83 / 105''. Also fixed: OpenWPM **12 → 15**, Tracker Radar Collector **3 → 6** (it contradicted the page's own tool table), FingerprintJS **9 → 14**, ''puppeteer-extra-plugin-stealth'' **1 → 2**, legal **7 of 59 → 10 of 83**, and two Related-Pages shares. |
| |
| **Two claims were not stale but false, and had to be re-derived rather than renumbered.** Both are recorded here because they go beyond the mechanical brief: | **Two claims were not stale but false, and had to be re-derived rather than renumbered.** Both are recorded here because they go beyond the mechanical brief: |
| Both papers were added to [[literature:bibliography]] as ''luo2025_canvassing'' and ''annamalai2025_beyond'' (duplicate-key check first, cache purged, keys confirmed rendering). | Both papers were added to [[literature:bibliography]] as ''luo2025_canvassing'' and ''annamalai2025_beyond'' (duplicate-key check first, cache purged, keys confirmed rendering). |
| |
| ===== 11. Run log ===== | ===== 10. Run log ===== |
| |
| ^ ^ ^ | ^ ^ ^ |
| | 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. | | | 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. | |
| | Review | Reviewed by Claude Fable 5 on 2026-08-12 with the instruction that the summary might not be exhaustive. It found the windowed-guard defect in §10 and 12 stale figures on this page plus two claims that had become false. All fixes were applied and re-saved the same day. | | | Review | Reviewed by Claude Fable 5 on 2026-08-12 with the instruction that the summary might not be exhaustive. It found the windowed-guard defect in §10 and 12 stale figures on this page plus two claims that had become false. All fixes were applied and re-saved the same day. | |
| | |
| | ===== 11. Review pass, 2026-09-03 — the generic (Fable) reviewer ===== |
| | |
| | //Recorded.// The step-9 generic review was **skipped for budget** when this page was written, and was run on 2026-09-03 as its own task. The reviewer (Claude Fable) was given the content page, the provenance page, ''report_fingerprinting.mjs'', ''fp_fold.mjs'' and a re-run of the report against the current corpus, and was told explicitly that the author's context might not be exhaustive and that the three focused passes (figures-vs-script, citations-and-quotes, external currency) had already run — so its budget should go on what none of them was looking for. No checklist was given. |
| | |
| | The corpus did **not** change between 2026-08-12 and this pass: still ''data/extract/run1'', 5,859 papers. Every figure below was re-derived, not carried over. |
| | |
| | ==== 11.1 Found before the reviewer returned ==== |
| | |
| | Three defects were found by the author while preparing the reviewer's bundle. They are recorded here because two of them are the kind a reviewer brief does not own. |
| | |
| | ^ # ^ Defect ^ Evidence ^ Action ^ |
| | | A | ''%%--wiki%%'', ''%%--detection%%'' and ''%%--code%%'' were written as ''%%--flag%%'' inside ''%%''…''%%'' monospace. DokuWiki's typography converts the double hyphen to an **en-dash**, so five published command-line flags across these two pages rendered as ''%%–wiki%%'' etc. and fail on copy-paste. | Rendered DOM: ''%%<code>–wiki</code>%%''. The source regex alone does not show this — the damage only exists after rendering. | Fixed by wrapping each literal in ''%%''%%…%%''%%'', the idiom already used on ''provenance:artifacts'' and ''security:dns''. **Site-wide**: the same defect is live on at least ''programming:docker'', ''programming:traffic_files'' and ''provenance:artifacts'', and 72 local page drafts match the source pattern. Filed as its own task item rather than fixed here. | |
| | | B | The ''%%<file javascript fp_fold.mjs>%%'' block on the content page was an **abridged rewrite** of the module, not the module: 52 lines against 184, with three families (''media-content'', ''device-hardware'', ''evasion-environment'') deleted and the ''traffic-analysis'' pattern cut from ~40 alternatives to 7 — under a ''%%<file>%%'' block named ''fp_fold.mjs'', i.e. downloadable under the real filename. | Reconstructed the published excerpt into a runnable module and ran it against the same 280 papers. It reproduces **none** of the ten rows of the page's own family table. | Fixed: the block is now the committed file **verbatim** (diffed byte-for-byte before saving). | |
| | | C | ''19.6%'' as the corpus-wide statefulness rate in the //Defences// section, against ''21.9%'' in the page's own crawl-config table three sections earlier. | ''report_fingerprinting.mjs'' line 143: ''statefulness 21 36.8% 21.9%''. | Fixed. Independently found by the reviewer as its finding 8. | |
| | |
| | **What B would have produced**, run against the same 280 papers (left: the committed module and the published table; right: the code the page actually published): |
| | |
| | <code> |
| | family real published-excerpt |
| | traffic-analysis 105 89 |
| | browser-device 83 65 |
| | network-stack 38 23 |
| | physical-forensic 28 9 |
| | biometric 16 2 |
| | device-hardware 13 3 |
| | media-content 8 0 |
| | unmapped 6 92 |
| | evasion-environment 2 0 |
| | llm-model 1 1 |
| | </code> |
| | |
| | The unmapped row is the one that matters: the page's headline methodological claim is that the fold leaves **7 tuples in 6 papers** unassigned. Under the published code it leaves **92 papers**, 32.9% of the population. The page was honest about the block being an excerpt — it said so on its line 15 — but an excerpt that changes every number beneath it is not an audit trail, and "the full module … is in the wiki repository" pointed at a repository neither page links because none is public. |
| | |
| | ==== 11.2 The reviewer's findings, and what was done with each ==== |
| | |
| | Fifteen findings. **Thirteen accepted, two accepted in part.** Every load-bearing claim was verified against a primary source before acting — the reviewer was right on each one that was checked, which is worth recording as much as any rejection would be. |
| | |
| | ^ # ^ Severity ^ Finding ^ Verified how ^ Action ^ |
| | | 1 | **blocking** | The open question "none in the corpus tests whether a CMP's consent signal changes fingerprinting behaviour on the same site" is **refuted by a paper cited on the page**. | Read ''2021/WWW/user-tracking-in-the-post-cookie-era…/paper.cols.txt''. §4.3 verbatim: //"we set out to explore whether websites track users differently via browser fingerprinting, given the different user responses to the requested cookie consent"//. Table 6 verbatim: //"No Action 279 1.03% Reject All 285 1.05% Accept All 330 1.21% … In all 3 cases 247"//. Denominator located in the same paper rather than back-calculated: //"Websites with a CMP and no error in all three consent actions 27,180"//; 279/27,180 = 1.03% checks out. | **Accepted.** Question rewritten to state the published result with its denominator and narrow what is actually open (the post-2025 repeat, and whether any refusal signal is honoured). | |
| | | 2 | should-fix | Three places disagree about who measured the automated-crawl gap: FP-Fed "explicitly measures" it, yet Annamalai 2025 is credited with "the first published size". | Read ''2024/NDSS/fp-fed…/paper.cols.txt'': //"we also conduct a small-scale study on the top 300 domains from the Tranco ranking list and find that crawls involving real users (logging in, solving CAPTCHAs, etc.) can capture 3 times more fingerprinting scripts than automated/centralized ones"//. So FP-Fed did publish a size. | **Accepted.** All three passages rewritten: FP-Fed is the top-300 pilot at 3×, Annamalai 2025 is the first size //at scale//, and both are noted to vary interaction, login and consent together — so neither isolates headless-vs-headful. | |
| | | 3 | should-fix | The page recommends OpenWPM on a corpus rank while warning elsewhere that the browser is a defence configuration, and never connects the two. | ''programming:crawler:openwpm'' on this wiki, which reads the repository directly: unbranded **Firefox only**; each release pins one build (v0.35.0, 2026-06-17 → Firefox 152); and ''js_instrument=True'' means the fixed ''collection_fingerprinting'' list of 14 objects, **content-unchanged since 2020-07-08**, with no ''WebGLRenderingContext'', no ''document.fonts'', and ''window.screen'' only for ''colorDepth''/''pixelDepth''. | **Accepted, and strengthened.** The reviewer's suggested fix was about fingerprinting-protection prefs; the sharper and verifiable defect is the instrumentation gap — OpenWPM's default JS collection misses three of the surfaces in this page's own table. The tooling section now opens "pick by question, not by citation count" and says so. | |
| | | 4 | should-fix | The tool fold has a silent ''if (!fam) continue;'' and prints no residue, in violation of the house rule; the drop hides the crawl drivers and VisibleV8. | Ran the fold's drop set over the 83 papers: 398 distinct names dropped, 55 in ≥2 papers — Selenium 13, Puppeteer 12, CDP 5, VisibleV8 5, Docker 5, mitmproxy 4, Playwright 3. VisibleV8 at 5 outranks FP-Inspector (4) and AmIUnique (4) in the published table. | **Accepted.** ''report_fingerprinting.mjs'' now collects and prints the residue in full (see the output below). The page gained a ''%%<WRAP info>%%'' naming the drivers, and VisibleV8 is now a tooling entry in its own right. | |
| | | 5 | should-fix | Two overstated bullets: "a keyword search … is about 30% precise" (that is the precision of the //extraction//, not of a keyword search) and "both literatures are the same size and both are growing" (105 vs 83, and browser FP goes 16.0 → 14.8 → 15.2, i.e. flat). | The second half is checkable on the page's own numbers. | **Accepted**, both rewritten. Browser fingerprinting is now described as flat near 15 per 1,000 since 2018, which is what the series says. | |
| | | 6 | should-fix | "They do not cite each other" is unsupported — the extraction has no citation graph — and "reviewers from one side routinely read submissions from the other" is anecdote. | The schema has no citation field. | **Accepted.** The methods contrast is kept; the citation claim is replaced with an explicit statement that this page cannot answer it. | |
| | | 7 | should-fix | "Filter lists were not built to label fingerprinting" is **wrong for Disconnect**; and the page never tells the reader which datasets exist. | Fetched ''disconnect-blacklist.json'' from ''mozilla-services/shavar-prod-lists'' on 2026-09-03: 11 categories including ''FingerprintingInvasive'' (281 entries) and ''FingerprintingGeneral'' (96). Fetched ''docs/DATA_MODEL.md'' and ''README.md'' from ''duckduckgo/tracker-radar'': per-domain and per-resource ''fingerprinting'' score and an ''apis'' list of //"browser APIs accessed by this resource which are commonly used in fingerprinting"//; CC BY-NC-SA 4.0. Sampled scores: doubleclick.net 3, cloudflare.com 2, facebook.net 2, criteo.com 1. | **Accepted.** The filter-list paragraph now separates EasyList/EasyPrivacy (no fingerprinting category) from Disconnect (two of them, and papers should say which they used), and a new //Datasets you can start from// subsection was added. | |
| | | 8 | should-fix | 19.6% vs 21.9%. | See §11.1 C. | **Accepted**; had already been fixed. | |
| | | 9 | should-fix | The fold subsection, code block and output sit between the reader and //Use in Publications//; the published excerpt does not reproduce the output beneath it; no repository is linked; the 83-paper list is promised twice and never published; and this provenance page promises "the report script and its unedited output" and contains neither. | Self-evident on both pages. | **Accepted in part.** The excerpt problem is fixed (§11.1 B) and the missing output and 83-paper list are fixed — both are now published below, in full and unedited. **Rejected:** moving the fold section off the content page. Other pages on this site carry a "Reproducing these figures" section, a reader who wants to check a family assignment should not have to change page, and the section already sits after the family table it explains. **Also rejected:** linking a repository — there is no public one, and the honest fix was to publish the artefacts here rather than to point at something nobody can open. | |
| | | 10 | should-fix | §9 was missing (headings ran 1–8, 10, 11), and the page overstates its own completeness — "Rejected: not recorded" under a heading whose purpose is recording rejections. | Self-evident. | **Accepted.** It was a numbering slip, not a dropped section: renumbered to 1–10, with this pass as §11. The rejected-sources gap is now named as a gap, and this pass records its own rejections in this table. | |
| | | 11 | nit | "More than four in five of the papers measuring fingerprinting do not say whether they were detectable" mis-scopes 17.5%, which is over the 57 crawling papers and is about stating headless, not about detectability. | Report line: headless is 10 of 57. | **Accepted**, rewritten with the right denominator and the distinction between reporting the mode and reporting detectability. | |
| | | 12 | nit | "Usability of fingerprinting defences is invisible here" — the 83 include a PETS 2026 perception study (this page's own §5 folds its tuples into browser fingerprinting) and Berke et al. | §5 of this page. | **Accepted**: "invisible" → "thin", with both papers named. | |
| | | 13 | nit | The surface table is undated, so a reader cannot tell which rows are historical surfaces. | ''navigator.plugins'': WHATWG HTML Standard now specifies a fixed ''PluginArray'' (fetched 2026-09-03; the spec text names "Chromium PDF Viewer", "WebKit built-in PDF"). Battery API: Bugzilla **1313580** "Remove web content access to Battery API", queried via the REST API on 2026-09-03 — ''status: VERIFIED'', ''resolution: FIXED'', ''cf_status_firefox52: verified''. | **Accepted.** A ''%%<WRAP important>%%'' after the surface table dates the rows. This is the single fix most aligned with the currency requirement, and it is the one the corpus alone could never have produced. | |
| | | 14 | nit | "the most consequential change since GDPR … a web in which the largest ad platform contractually forbade the technique" — the policy bound Google's advertising customers, not the web. | The ICO source already on the page describes a change to Google's own advertising-product policy. | **Accepted**, hedged and scoped. | |
| | | 15 | nit | PhishPrint is named without a citation though ''acharya2021_phishprint'' is in the bibliography. | ''literature:bibliography'' line 5703. | **Accepted**, cited. | |
| | |
| | ==== 11.3 What this pass could not establish ==== |
| | |
| | * **Whether the "59 tuples in 31 papers" counterfactual can be reproduced.** The content page says the pre-2026-08-12 fold would have left that residue on the current corpus. That figure is recorded in §5 but **no published artefact can regenerate it**, because the old fold was overwritten rather than kept. It is the one number on the page a reader cannot check. Keeping a dated copy of a fold before widening it would close this; it was not done. |
| | * **Whether the 103 technique-only exclusions are correctly excluded.** Unchanged from §8 — still never audited paper by paper. |
| | * **Whether the surface-dating box is complete.** Four surfaces were dated against primary sources. WebRTC, ''AudioContext'' and the extension-enumeration channels were not re-checked against current browser behaviour, and a reader should not read their absence from the box as "unchanged". |
| | * **The 2025 policy-reversal section was not re-verified** in this pass. §7's warning still stands: it is the part of the page most likely to be stale first. |
| | |
| | ==== 11.4 External sources: used, and rejected ==== |
| | |
| | ^ Source ^ Used for ^ Verification ^ |
| | | ''mozilla-services/shavar-prod-lists'', ''disconnect-blacklist.json'' | Disconnect's two fingerprinting categories and their sizes | Fetched raw from GitHub 2026-09-03, parsed, category counts printed | |
| | | ''duckduckgo/tracker-radar'', ''docs/DATA_MODEL.md'' + ''README.md'' | the ''fingerprinting'' score, the ''apis'' field, the licence | Fetched raw 2026-09-03; four domain files sampled to confirm the score is populated | |
| | | WHATWG HTML Standard, § PDF viewing support | ''navigator.plugins'' is a fixed list | Fetched the spec page 2026-09-03 and read the mandated ''PluginArray'' names out of it | |
| | | Bugzilla 1313580 | Battery API removed from Firefox web content | Queried the Bugzilla REST API 2026-09-03; status and ''cf_status_firefox52'' read from the JSON, not from a summary | |
| | | ''wspr-ncsu/visiblev8'' README + GitHub API | what VisibleV8 is; that it is maintained | README fetched raw and quoted verbatim; repository metadata (''pushed_at 2026-07-15'', ''archived: false'') and release tags read from the API | |
| | | ''programming:crawler:openwpm'' on this wiki | the Firefox pin and the ''collection_fingerprinting'' defaults | A sibling page that cites the repository at a named commit; not re-derived from the repository here | |
| | |
| | **Rejected:** |
| | |
| | * **The Web Almanac / HTTP Archive fingerprinting figure** the reviewer suggested adding ("FingerprintJS on 0.57% of sites, 2024 chapter"). Not verified against the chapter, so **not published**. HTTP Archive is a legitimate dataset for this page and a future pass should add it — with the figure read out of the chapter, not out of a review summary. |
| | * **The reviewer's "score 0–3" for Tracker Radar's ''fingerprinting'' field.** The documentation says only "likelihood"; values 1, 2 and 3 were observed. The page states what was observed and does not assert the range. |
| | * **The reviewer's claim that VisibleV8 is "the instrumentation behind the 2025 CCS function-level V8-bytecode detector".** No such paper was located in the five VisibleV8 users in this population; the page names the 2021, 2023 and 2026 papers that were verified instead. |
| | |
| | ==== 11.5 The report script, and its real unedited output ==== |
| | |
| | Re-run on 2026-09-03 against ''data/extract/run1'' (5,859 papers) after the residue fix. This is the complete output, not an extract — including the tool residue (§11.2 #4) and the 83-paper list (§11.2 #9), both of which the page previously promised and did not publish. |
| | |
| | <code> |
| | $ node scripts/report_fingerprinting.mjs |
| | </code> |
| | |
| | <file text fp_report_2026-09-03.txt> |
| | corpus 5859 papers |
| | detection fired at all 5655 papers |
| | phenomenon names a fingerprint 280 papers |
| | only the technique does (excluded) 103 papers |
| | |
| | ## What "fingerprinting" means in this corpus |
| | |
| | 459 distinct free-text strings across 280 papers. |
| | |
| | What was being fingerprinted Papers Share of 280 Distinct strings |
| | ----------------------------------------- ------ ------------ ---------------- |
| | Website / traffic fingerprinting 105 37.5% 136 |
| | Browser fingerprinting (the web platform) 83 29.6% 156 |
| | Remote host & network-stack ID 38 13.6% 53 |
| | Physical-object & hardware forensics 28 10.0% 54 |
| | Human biometrics 16 5.7% 24 |
| | Off-web device identification 13 4.6% 18 |
| | Media content identification 8 2.9% 11 |
| | unmapped 6 2.1% 7 |
| | Analysis-environment evasion 2 0.7% 4 |
| | LLM / model identification 1 0.4% 4 |
| | |
| | Shares exceed 100%: 18 papers (6.4%) fall in more than one family. |
| | |
| | Tuples: 544 total — 441 resolved by the string, 76 by paper context (property-only strings), 7 unresolved. |
| | 95 of 544 strings name only a property of a fingerprint, not its subject. |
| | |
| | ## Unmapped residue (printed in full) |
| | |
| | 7 tuples, 6 papers |
| | CCS/2011/bitshred-feature-hashing-malware-for-scalable-triage-and-semantic-analysis |
| | Fingerprint similarity approximation |
| | USENIX/2016/an-empirical-study-of-textual-key-fingerprint-representations |
| | Fingerprint comparison speed |
| | USENIX/2016/identifying-and-characterizing-sybils-in-the-tor-network |
| | Fingerprint changes |
| | CCS/2019/privacy-aspects-and-subliminal-channels-in-zcash |
| | value fingerprinting |
| | CCS/2019/privacy-aspects-and-subliminal-channels-in-zcash |
| | fingerprint survival |
| | USENIX/2025/shadows-in-cipher-spaces-exploiting-tweak-repetition-in-hardware-memory-encrypti |
| | Application page fingerprints |
| | NDSS/2026/snpeek-side-channel-analysis-for-privacy-applications-on-confidential-vms |
| | PHH fingerprinting leakage |
| | |
| | ## The browser-fingerprinting subset: 83 papers |
| | |
| | Property Papers Share of 83 |
| | --------------------------------------- ------ ----------- |
| | measured the web platform 78 94.0% |
| | measured mobile 16 19.3% |
| | ran an automated web crawl 57 68.7% |
| | empirical (measured the world as it is) 82 98.8% |
| | proposes a system, attack or defence 54 65.1% |
| | reanalyses an existing dataset 36 43.4% |
| | recruited human participants 19 22.9% |
| | assessed a law 10 12.0% |
| | released an artifact link 77 92.8% |
| | |
| | ## Over time, and by venue |
| | |
| | Bucket Corpus papers Browser FP Per 1,000 papers Website/traffic FP Per 1,000 |
| | ---------- ------------- ---------- ---------------- ------------------ --------- |
| | 2010–2013 511 3 5.9 7 13.7 |
| | 2014–2017 769 10 13.0 11 14.3 |
| | 2018–2021 1439 23 16.0 25 17.4 |
| | 2022–2024 1955 29 14.8 35 17.9 |
| | 2025–2026* 1185 18 15.2 27 22.8 |
| | |
| | Venue Corpus papers Browser FP Share of venue |
| | ------- ------------- ---------- -------------- |
| | WWW 843 17 2.0% |
| | PETS 510 17 3.3% |
| | USENIX 1410 14 1.0% |
| | CCS 990 11 1.1% |
| | NDSS 701 9 1.3% |
| | IEEE-SP 767 9 1.2% |
| | IMC 638 6 0.9% |
| | |
| | ## Which surfaces and questions the browser-FP papers name |
| | |
| | Surface or question Papers Share of 83 |
| | ---------------------------------------------- ------ ----------- |
| | Uniqueness / entropy / anonymity set 34 41.0% |
| | Fingerprinting scripts as the detection target 33 39.8% |
| | Canvas 23 27.7% |
| | Stability & evolution over time 14 16.9% |
| | Fonts 11 13.3% |
| | Audio (AudioContext / Web Audio) 10 12.0% |
| | Browser extensions as a signal 10 12.0% |
| | Defences & their resistance 9 10.8% |
| | WebGL / GPU 8 9.6% |
| | navigator / User-Agent / plugins 6 7.2% |
| | WebRTC 6 7.2% |
| | Timing & clock 4 4.8% |
| | Screen & display 3 3.6% |
| | Device sensors (motion, battery) 2 2.4% |
| | TLS / network-layer signal 0 0.0% |
| | |
| | A paper can name several; shares do not sum. Rankings, not precise figures — the underlying field is free text. |
| | |
| | ## Tools and resources, folded across spellings |
| | |
| | Of 83 browser-FP papers, tools used or produced (`usedOrMentioned` filtered): |
| | Tool family Papers Share of 83 |
| | -------------------------------- ------ ----------- |
| | EasyList / EasyPrivacy 19 22.9% |
| | OpenWPM 15 18.1% |
| | FingerprintJS 14 16.9% |
| | Disconnect list 13 15.7% |
| | Brave 7 8.4% |
| | Tracker Radar Collector 6 7.2% |
| | uBlock Origin 6 7.2% |
| | FP-Inspector 4 4.8% |
| | AmIUnique 4 4.8% |
| | Panopticlick / Cover Your Tracks 2 2.4% |
| | Tor Browser 2 2.4% |
| | puppeteer-extra-plugin-stealth 2 2.4% |
| | FP-Scanner / FP-Collect 1 1.2% |
| | FPMON 1 1.2% |
| | |
| | Unmapped tool residue: 398 distinct names not in TOOL_FAMILIES, of which 55 are named by 2 or more of the 83 papers. Those 55, in full: |
| | Unmapped tool name Papers |
| | ------------------------ ------ |
| | chrome 22 |
| | firefox 13 |
| | selenium 13 |
| | puppeteer 12 |
| | esprima 6 |
| | python 6 |
| | chrome devtools protocol 5 |
| | chromium 5 |
| | docker 5 |
| | random forest 5 |
| | virustotal 5 |
| | visiblev8 5 |
| | aws 4 |
| | cookiepedia 4 |
| | edge 4 |
| | mitmproxy 4 |
| | scikit-learn 4 |
| | browserstack 3 |
| | frida 3 |
| | opera 3 |
| | playwright 3 |
| | safari 3 |
| | adblockparser 2 |
| | adguard 2 |
| | appium 2 |
| | aws ec2 2 |
| | consent-o-matic 2 |
| | ghostery 2 |
| | grid'5000 2 |
| | jsbeautifier 2 |
| | k-nearest neighbors 2 |
| | kraken 2 |
| | lighthouse 2 |
| | logistic regression 2 |
| | louvain method 2 |
| | mcafee 2 |
| | mystique 2 |
| | postgresql 2 |
| | prolific 2 |
| | python requests 2 |
| | qualtrics 2 |
| | random forest (custom) 2 |
| | redis 2 |
| | samsung remote test lab 2 |
| | scikit-optimize 2 |
| | selenium webdriver 2 |
| | semi-hard triplet loss 2 |
| | sunspider 2 |
| | tranco 2 |
| | v8 2 |
| | wayback machine 2 |
| | webgl 2 |
| | webshrinker 2 |
| | xhound 2 |
| | xvfb 2 |
| | The remaining 343 appear in one paper each and are listed below. |
| | a-miu nique, adblock plus, adblock-rs, adblockplus, adguard chinese ads filter, adguard's base filter, adguard's mobile ads filter, adguard's tracking protection filter, adobe flash, adservers list, amazon ec2, amazon mechanical turk, anaeng, android app, android debug bridge, android debug bridge (adb), android emulator, android studio, angular 11.0.4, anubis, apache, apidiff, apktool, appbrain, aristaeus, audio-fingerprint test page, autoconsent, aware, aws lightsail, bad-asn-list, bag-of-words model (custom), better tracker blocker, bfad, binomial cdf, blindelephant, bluecava, botd, browsec vpn, browser polygraph, browserleaks, browserling, browserprint, burp suite, caniuse, cantina+, canvas defender, carnus, carnus honeypage, celery, chameleon, charles web-proxy, chatgpt, chi-squared tests of independence, chrome developer tools, chrome devtools protocol (cdp), chrome extension, chrome remote debugging protocol, chrome-remoteinterface, chromevox, chromium 117.0, chromium browser extension, chromium profiler, cisco talos, clientjs, clientsim, cloud firebase, cloudflare domain intelligence api, coinbase, convolutional neural network, convolutional neural network (cnn), cookie database, cookiebot, cookiegraph, crossbrowsertesting, crt.sh, cryptofp, css-inline, custom android app, custom chrome browser extension, custom chrome extension, custom chromium-based crawler, custom crawler, custom differential grammar-based fuzzer, custom eme javascript script, custom fingerprinting analysis pipeline, custom fingerprinting heuristics, custom imss identifier, custom javascript integration, custom parsers, custom regular-expression library, custom script, custom template-attack framework, d rawn a part, data collection browser extensions, datadome, dbscan, decision tree, deep convolutional neural network, didomi, doccano, docker compose, dolphin, drawnapart, droidbot, duckduckgo autoconsent, duckduckgo entity map, duckduckgo web tracker blocklist, elasticsearch, embedding model with glove, eme track, ermes proxy, estraverse, exthouse, extremely randomized trees, f5 bot and fraud detection/defense platform, fakeium, fanboy, fasttext, fathom, feed-forward neural network (custom), fingeprintls (fptls), fingerprint analysis tool, fingerprinting script (custom), firefox for android, flask, floc, foxhound, fp-extractor, fp-fed, fp-rainbow, fp-spoofer, fpcentral, fpserver, fptrace, fritap, fully connected neural network (multilayer perceptron classifier), google chrome, google chrome m114, google closure compiler, google cloud vision api, google compute engine, google natural language processing api, google public dns, google safe browsing, google search, google translate, google-play-scraper, google's natural language api, gridsearchcv, guimark, gummy browser, hostinger, hosttracker, html5 web cryptography api, https everywhere, hugging face's trainer, huggingface trainer api, ibm watson speech to text, ida pro, ie, imagehash, infomeasure, instrumented chromium, instrumented firefox, ip2location lite ip-asn database, ipinfo, ipinfo dataset, ipregistry, ipstack, isolation forest, jaccard similarity, jadx, javascript, javascript obfuscator tool, javascript template attacks, javascript-obfuscator, jaws, jax/tensorflow, jeb, jenks natural breaks, js-beautify, jsbench, jshelter, jsnice, jsrestrictor, jstap, jupyter notebooks, justdomains, keras, kmeans clustering algorithm, kubernetes, lda, leakage detector, let's encrypt, levenshtein distance, lightbeam, local dns stub resolver, local stand-in server, longest common subsequence (lcs), magisk, maxmind geoip, maxmind geolite2, maxmind minfraud api, mcafee smartfilter internet database, mdn web api, mdn web apis, mdn web docs, memento api, metamask, metamask automator, microsoft smartscreen, minfraud, modernizr, modheader, mongodb, moss, mozilla developer network (mdn), mozilla firefox, namecheap, network advertising initiative (nai), nginx, nltk, nodejs, nordvpn, noscript, nrc lexicon, nvda, ocr library, omnicrawl, onetrust, ontheflydom, pagegraph crawler, pandas, panoptichrome, paraphrase-multilingual-mpnet-base-v2, performance api, performancenavigationtiming api, peter-lowe's blocklist, petinspector, petportal, phash, phishprint, php, polisis, prebid.js, prefixlsh, principal component analysis, priv-accept, privacy pioneer, privaricator, prototype analyzer, puppeteercluster, pyautogui, pydnsbl, pysimilar, python difflib.sequencematcher, python's cookie jar, pytorch, pyvirtualdisplay, quantcast, raccoon app downloader, raider, random forest (rf), random forest ensemble classifier, ratcliff-obershelp, ratcliff-obershelp algorithm, ray tune, recaptcha v2, regular expressions, relevantid, request interceptor, requests, resnet50, resource timing api, routeviews, safari content blocker api, safedns website categorization service, samsung internet browser, savitzky-golay filter, scikit-learn resample, scrapy, seclists, selenium chromedriver, sentencetransformers, shap, simhash, spacy, spartacus, sqlite, standard scaler, strace, stress, stylisticfp, support vector machines (svm), svm, svm (custom), tailscale, talkback, tcpdump, tensorflow, tensorflow.js, texttiling, tf-idf, three.js, time-series k-means with dynamic time warping, tinybert, tinyproxy, tldextract, tor, tor proxy list, trackerlist, trackingexcavator, transformer, treeinterpreter, trendmicro, ua parser, uiharvester, uniquemachine, user agent switcher, user timing api, virtualbox, virustotal api, visiblejs, voiceover, wallet simulator, web idl, webrate, webviewtracer, webxray, weka, wepawet, wespoofed, wget, whatweb, whoer, whois, whotracks.me, whotracksme, widevine integration platform, windows sysinternals, word2vec, xgboost, yandex browser |
| | |
| | Classification resources named by the same 83 papers: |
| | Resource family Papers |
| | -------------------------------- ------ |
| | EasyList / EasyPrivacy 17 |
| | Disconnect list 13 |
| | FP-Inspector 5 |
| | FingerprintJS 4 |
| | Tracker Radar Collector 2 |
| | OpenWPM 1 |
| | Panopticlick / Cover Your Tracks 1 |
| | FP-Scanner / FP-Collect 1 |
| | Brave 1 |
| | uBlock Origin 1 |
| | FPMON 1 |
| | |
| | Folding check — FingerprintJS appears under 7 spellings here: fingerprintjs, fingerprintjs2, FingerprintJS2, Fingerprint2, FingerprintJS, FPJS Pro, Fingerprintjs2 (FPJS2) |
| | |
| | ## Crawl configuration: 57 of 83 ran a crawl, 57 recorded a configuration |
| | |
| | crawlConfig field States a value Share of 57 All 1080 crawling papers |
| | ----------------- -------------- ----------- ------------------------ |
| | statefulness 21 36.8% 21.9% |
| | interactionDepth 52 91.2% 77.9% |
| | consentAction 39 68.4% 54.2% |
| | headless 10 17.5% 13.0% |
| | authentication 55 96.5% 72.1% |
| | browsers 44 77.2% 49.0% |
| | |
| | Browser driven (folded) Papers |
| | ------------------------------------- ------ |
| | Chrome / Chromium 29 |
| | Firefox (incl. versions) 17 |
| | IE 1 |
| | Opera 1 |
| | default browser 1 |
| | Spartacus browser 1 |
| | Brave 1 |
| | Tor Browser 1 |
| | DuckDuckGo 1 |
| | Ghostery 1 |
| | Android WebView 1 |
| | basic HTTP fetcher 1 |
| | Puppeteer/TRC desktop browser 1 |
| | Puppeteer/TRC emulated mobile browser 1 |
| | |
| | ## Prevalence claims stated by browser-FP papers |
| | |
| | 81 of 83 state a headline prevalence for a browser-FP phenomenon (97.6%). |
| | |
| | 2012 NDSS/host-fingerprinting-and-tracking-on-the-web-privacy-and-security-implications |
| | Browser fingerprint entropy — UA+IP entropy was 20.29 bits |
| | 2013 IEEE-SP/cookieless-monster-exploring-the-ecosystem-of-web-based-device-fingerprinting |
| | commercial web fingerprinting adoption — 40 sites (0.4% of the Alexa top 10,000) |
| | 2013 IEEE-SP/cookieless-monster-exploring-the-ecosystem-of-web-based-device-fingerprinting |
| | browser-family fingerprinting — Each browser family had at least two unique features |
| | 2013 IEEE-SP/cookieless-monster-exploring-the-ecosystem-of-web-based-device-fingerprinting |
| | browser-version fingerprinting — 71 sets identified specific Google Chrome versions |
| | 2013 IEEE-SP/cookieless-monster-exploring-the-ecosystem-of-web-based-device-fingerprinting |
| | system fingerprinting plugins — Two of three providers searched for and loaded special plugins |
| | 2014 CCS/the-web-never-forgets-persistent-tracking-mechanisms-in-the-wild |
| | canvas fingerprinting — more than 5.5% of crawled sites; 5542 of the top 100,000 sites |
| | 2015 WWW/privaricator-deceiving-fingerprinters-with-little-white-lies |
| | Fingerprintable browser-property usage — 82.3% of scripts had 0 offsetHeight accesses; 1.87% had more than 50 |
| | 2015 WWW/privaricator-deceiving-fingerprinters-with-little-white-lies |
| | Fingerprinting resistance — 96.32% BlueCava; 78.36% fingerprintjs; 37.83% PetPortal; 78.81% Coinbase |
| | 2016 CCS/online-tracking-a-1-million-site-measurement-and-analysis |
| | canvas fingerprinting — 14,371 sites (1.6%); 98.2% came from third-party scripts. |
| | 2016 CCS/online-tracking-a-1-million-site-measurement-and-analysis |
| | canvas font fingerprinting — 3,250 first-party sites; 2.5% of the top 1,000. |
| | 2016 CCS/online-tracking-a-1-million-site-measurement-and-analysis |
| | AudioContext fingerprinting — Two fingerprinting scripts utilizing the API were discovered. |
| | 2016 CCS/online-tracking-a-1-million-site-measurement-and-analysis |
| | Battery API fingerprinting — Two fingerprinting scripts were identified. |
| | 2016 PETS/near-optimal-fingerprinting-with-constraints |
| | Targeted fingerprint uniqueness — 96.15% of users had anonymity sets of at most 3 at s = 50 |
| | 2016 PETS/near-optimal-fingerprinting-with-constraints |
| | Font fingerprint uniqueness — 13,155 users (30.13%) were uniquely identified using 10 fonts |
| | 2016 PETS/near-optimal-fingerprinting-with-constraints |
| | General fingerprint uniqueness — 19.02% of users were unique with 10 fonts and available screen size |
| | 2016 USENIX/internet-jones-and-the-raiders-of-the-lost-trackers-an-archaeological-study-of-w |
| | fingerprint-related API use — use of two or more fingerprinting APIs rose over time |
| | 2016 IEEE-SP/beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge |
| | browser fingerprint uniqueness — 89.4% of 118,934 fingerprints |
| | 2016 IEEE-SP/beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge |
| | mobile browser fingerprinting — 81% of 13,105 mobile fingerprints |
| | 2016 IEEE-SP/beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge |
| | desktop browser fingerprinting — 90% of desktop fingerprints |
| | 2016 IEEE-SP/beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge |
| | canvas fingerprinting — 0.491 overall |
| | 2016 IEEE-SP/cloak-of-visibility-detecting-when-machines-browse-a-different-web |
| | cloaking fingerprinting techniques — JavaScript support: 22.4% of search and 49.6% of ads |
| | 2017 USENIX/a-privacy-analysis-of-cross-device-tracking |
| | device fingerprint uniqueness — 3 duplicate mobile fingerprints and 1 duplicate desktop fingerprint |
| | 2017 USENIX/extension-breakdown-security-analysis-of-browsers-extension-resources-control-po |
| | extension-set device fingerprinting — 116 of 204 users, or 56.86%, had unique extension sets. |
| | 2017 IEEE-SP/xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | browser-extension fingerprintability — At least 9.2% on arbitrary domains and more than 16.6% on popular URLs among the top 10,000 Chrome extensions |
| | 2017 IEEE-SP/xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | user extension fingerprintability — 14.1% uniquely identifiable; 19.4% share fingerprints with 2–20 users |
| | 2017 IEEE-SP/xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | persistent extension fingerprintability — 88.0% of originally detectable extensions remained detectable |
| | 2017 IEEE-SP/xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | Firefox extension fingerprintability — 16% on at least one URL and 7.3% on any domain |
| | 2017 IEEE-SP/xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | extension-fingerprinting script performance — Less than one second with up to 20 installed extensions |
| | 2018 CCS/clock-around-the-clock-time-based-device-fingerprinting |
| | Web fingerprint discrimination — CryptoFP achieved around 45% exactly unique fingerprints among 300 users |
| | 2018 CCS/the-webs-sixth-sense-a-study-of-scripts-accessing-smartphone-sensors |
| | browser fingerprinting — 62.7% of motion-sensor scripts also fingerprinted |
| | 2018 IEEE-SP/fp-stalker-tracking-browser-fingerprint-evolutions |
| | browser fingerprint evolution — 50% of browser instances changed fingerprints in less than 5 days; 80% in less than 10 days |
| | 2018 IEEE-SP/fp-stalker-tracking-browser-fingerprint-evolutions |
| | browser fingerprint linkability — 54.48 consecutive days on average for the hybrid variant |
| | 2018 IMC/how-tracking-companies-circumvented-ad-blockers-using-websockets |
| | browser fingerprinting — approximately 3.4% of WebSockets |
| | 2018 USENIX/fp-scanner-the-privacy-implications-of-browser-fingerprint-inconsistencies |
| | browser fingerprint inconsistencies — FP-Scanner reaches accuracy 1.0 overall |
| | 2018 WWW/hiding-in-the-crowd-an-analysis-of-the-effectiveness-of-browser-fingerprinting-a |
| | unique browser fingerprints — 33.6% of fingerprints were unique; 35.7% on personal computers and 18.5% on mobile devices |
| | 2018 WWW/hiding-in-the-crowd-an-analysis-of-the-effectiveness-of-browser-fingerprinting-a |
| | fingerprint fragility — More than 85% of desktop/laptop fingerprints became unique after one change |
| | 2019 IMC/tales-from-the-porn-a-comprehensive-privacy-analysis-of-the-web-porn-ecosystem |
| | canvas fingerprinting — 245 scripts in 315 websites; third-party services appeared in 4% of sites |
| | 2019 WWW/evaluating-anti-fingerprinting-privacy-enhancing-technologies |
| | Fingerprint trackability — Tor Browser Bundle revealed under 3 bits of entropy in the hybrid evaluation |
| | 2019 WWW/unnecessarily-identifiable-quantifying-the-fingerprintability-of-browser-extensi |
| | bloat-related fingerprintable side effects — 3,320 extensions, or 5.7% of all extensions |
| | 2019 WWW/unnecessarily-identifiable-quantifying-the-fingerprintability-of-browser-extensi |
| | bloat-only fingerprintability — approximately 62% of fingerprintable extensions had at least one bloat-related side effect |
| | 2019 WWW/unnecessarily-identifiable-quantifying-the-fingerprintability-of-browser-extensi |
| | unique bloat fingerprints — 61.2% had totally distinct fingerprints |
| | 2020 NDSS/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | web-accessible-resource extension fingerprinting — 25,866 extensions detected |
| | 2020 NDSS/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | DOM-based extension fingerprinting — 5,793 extensions detected |
| | 2020 NDSS/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | intra-browser communication fingerprinting — 450 extensions detected |
| | 2020 NDSS/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | extension HTTP-request fingerprinting — 859 extensions detected |
| | 2020 NDSS/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | fingerprintability under CloakX — 83.6%–87.92% remain identifiable |
| | 2020 PETS/long-term-observation-on-browser-fingerprinting-users-trackability-and-perspecti |
| | browser fingerprint trackability — 64.6%-94.5% of users were trackable across evaluated feature sets |
| | 2020 PETS/long-term-observation-on-browser-fingerprinting-users-trackability-and-perspecti |
| | fingerprint stability — 10.7-11.9 weeks when optimizing for stability |
| | 2020 PETS/long-term-observation-on-browser-fingerprinting-users-trackability-and-perspecti |
| | user perceptions of fingerprinting — 99.1% agreed websites can recognize users |
| | 2020 WWW/beyond-the-front-page-measuring-third-party-dynamics-in-the-field |
| | device fingerprinting — Device fingerprinting increased by 25% on subsites; 0.15% of landing pages contained the script. |
| | 2020 WWW/the-representativeness-of-automated-web-crawls-as-a-surrogate-for-human-browsing |
| | browser fingerprinting — Around 12% of Trexa sites, mostly Canvas fingerprinting. |
| | 2021 IEEE-SP/fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha |
| | browser fingerprinting prevalence — 10.18% of Alexa top-100K websites |
| | 2021 IEEE-SP/fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha |
| | fingerprinting domains — 2,349 domains on the top 100K sites |
| | 2021 IEEE-SP/fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha |
| | fingerprinting script classification — 99.9% accuracy, 93.8% recall, and 93.1% precision |
| | 2021 IEEE-SP/fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha |
| | JavaScript API use by fingerprinters — 25 API-keyword clusters extracted |
| | 2021 PETS/ml-cb-machine-learning-canvas-block |
| | canvas fingerprinting — 21,395 of 280,148 files leveraged canvas fingerprinting |
| | 2021 PETS/ml-cb-machine-learning-canvas-block |
| | canvas fingerprinting — 11% at the time of the 2018 scrape |
| | 2021 NDSS/tales-of-favicons-and-caches-persistent-tracking-in-modern-browsers |
| | fingerprint entropy — 16–24 bits commonly available across platforms |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | web fingerprinting — 1.1% of JSWild scripts |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | web fingerprinting — 4,544 scripts from 842 services |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | unknown fingerprinters — 695 services were unknown to TrackerList |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | fingerprinting API usage — Plug-in and MIME-type enumeration used by 85% of fingerprinting scripts |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | canvas fingerprinting — 21% of fingerprinting scripts |
| | 2021 PETS/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | audio fingerprinting — 4% of fingerprinting scripts |
| | 2021 USENIX/fingerprinting-in-style-detecting-browser-extensions-via-injected-style-sheets |
| | Unique CSS extension fingerprints — 4,446 extensions, or 3.8%, could be uniquely identified on any webpage |
| | 2021 USENIX/fingerprinting-in-style-detecting-browser-extensions-via-injected-style-sheets |
| | CSS fingerprint persistence — 82.5% still remain fingerprintable despite their updates |
| | 2021 USENIX/phishprint-evading-phishing-detection-crawlers-by-prior-profiling |
| | Advanced browser fingerprints — 204 distinct <F,C,W> fingerprints across 348,516 sessions |
| | 2021 USENIX/phishprint-evading-phishing-detection-crawlers-by-prior-profiling |
| | Fingerprint specificity — Smallest comparison dataset contained 467,696 visitors |
| | 2021 USENIX/security-analysis-of-the-democracy-live-online-voting-system |
| | Browser fingerprint collection — Online ballot return included a browser fingerprint. |
| | 2021 WWW/cookie-swap-party-abusing-first-party-cookies-for-web-tracking |
| | fingerprinting-generated cookies — 3 cookies highly indicative of fingerprinting |
| | 2021 WWW/user-tracking-in-the-post-cookie-era-how-websites-bypass-gdpr-consent-to-track-u |
| | browser fingerprinting — 336 websites (1.24%) in at least one consent action; 73.5% in all three cases |
| | 2021 IEEE-SP/good-bot-bad-bot-characterizing-automated-browsing-activity |
| | application fingerprinting — 223,913 requests from 12,183 unique bot IP addresses |
| | 2022 CCS/im-spartacus-no-im-spartacus-proactively-protecting-users-from-phishing-by-inten |
| | fingerprinting-based cloaking — 96.52% (2,831) of 2,933 phishing kits |
| | 2022 IMC/your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing |
| | Web Audio fingerprint stability — Dynamics Compressor produced one stable fingerprint for each of 2,093 users. |
| | 2022 IMC/your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing |
| | Fingerprint collation — Fingerprint match scores ranged from 0.9899 to 0.9978 for tested subset sizes. |
| | 2022 IMC/your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing |
| | Audio fingerprint diversity — The combined audio vectors yielded 95 distinct fingerprints among 2,093 users. |
| | 2022 IMC/your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing |
| | Additive fingerprinting value — Canvas + Audio increased normalized entropy by 9.6%; UA + Audio increased it by 9.7%. |
| | 2022 NDSS/auto-draft-242 |
| | browser fingerprint tracking — Tracking increased from 17.5 to 28 days for seven-day collection periods |
| | 2022 NDSS/auto-draft-242 |
| | cross-browser fingerprinting — 52.6%, 79.3%, and 89.7% for Edge, Opera, and Yandex |
| | 2022 NDSS/drawn-apart-a-device-identification-technique-based-on-remote-gpu-fingerprinting |
| | browser fingerprint tracking — Tracking time increased from 17.5 days to 28 days for seven-day collection periods. |
| | 2022 PETS/fp-radar-longitudinal-measurement-and-early-detection-of-browser-fingerprinting |
| | browser fingerprinting via web APIs — 1.16% in 2016 and 3.70% in 2018 |
| | 2022 PETS/fp-radar-longitudinal-measurement-and-early-detection-of-browser-fingerprinting |
| | previously unknown API fingerprinting — 44% of API keywords were still publicly undisclosed |
| | 2022 PETS/fp-radar-longitudinal-measurement-and-early-detection-of-browser-fingerprinting |
| | fingerprinting API cluster — 61% of keywords in the fingerprinting cluster appeared in fingerprinting scripts |
| | 2022 PETS/my-cookie-is-a-phoenix-detection-measurement-and-lawfulness-of-cookie-respawning |
| | cookie respawning with browser fingerprinting — 1,150 of 30,000 websites (3.83%) |
| | 2022 PETS/my-cookie-is-a-phoenix-detection-measurement-and-lawfulness-of-cookie-respawning |
| | fingerprinting-feature dependency — 1,425 cookies depended on at least one studied feature |
| | 2022 PETS/omnicrawl-comprehensive-measurement-of-web-tracking-with-real-desktop-and-mobile |
| | browser fingerprinting — Privacy-focused browsers showed 48% fewer WebGL Image and 44% fewer Canvas detections. |
| | 2022 PETS/omnicrawl-comprehensive-measurement-of-web-tracking-with-real-desktop-and-mobile |
| | fingerprinting code reuse — 277 of 1,444 scripts, or 14%, contained all fingerprintjs2 magic strings. |
| | 2022 USENIX/phish-in-sheeps-clothing-exploring-the-authentication-pitfalls-of-browser-finger |
| | browser fingerprinting on login pages — Basic fingerprinting was widespread; advanced techniques included canvas, fonts, WebRTC, and AudioContext. |
| | 2022 USENIX/the-dangers-of-human-touch-fingerprinting-browser-extensions-through-user-action |
| | user-triggered extension fingerprinting — 4,971 unique extensions |
| | 2022 USENIX/the-dangers-of-human-touch-fingerprinting-browser-extensions-through-user-action |
| | user-action-only fingerprintability — ≈64% can only be detected through user-driven interactions |
| | 2022 WWW/beyond-bot-detection-combating-fraudulent-online-survey-takers |
| | browser-fingerprint duplication — 48 MTurk worker IDs contained duplicate fingerprints and were grouped into 14 groups. |
| | 2022 WWW/investigating-advertisers-domain-changing-behaviors-and-their-impacts-on-ad-bloc |
| | browser fingerprinting — 142 of 395 labeled RAD domains (35.9%) |
| | 2023 CCS/cookiegraph-understanding-and-detecting-first-party-tracking-cookies |
| | Fingerprinting scripts setting cookies — 1,908 out of 20K sites |
| | 2023 NDSS/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites |
| | adversarial versus benign browser fingerprints — 1.6% shared, 8.1% purely adversarial, and 90.3% purely benign |
| | 2023 NDSS/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites |
| | fingerprint evolution — Benign fingerprints increased from near one to more than 1.5 fingerprints per account; adversarial fingerprints stayed near one |
| | 2023 NDSS/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites |
| | adversarial fingerprint generation tools — Scripting tools accounted for over 80% of adversarial traffic |
| | 2023 NDSS/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites |
| | adversarial fingerprint strategies — Block+Randomize was the most common emulated-browser strategy, at 9.0% of adversarial requests |
| | 2023 PETS/your-drm-can-watch-you-too-exploring-the-privacy-implications-of-browsers-mis-im |
| | Android Client ID fingerprint uniqueness — The certificate chain was unique for all Android devices in the test set. |
| | 2023 PETS/your-drm-can-watch-you-too-exploring-the-privacy-implications-of-browsers-mis-im |
| | Client ID fingerprint stability — Android devices returned the same certificate over two years and shorter intervals. |
| | 2023 USENIX/is-your-wallet-snitching-on-you-an-analysis-on-the-privacy-implications-of-web3 |
| | wallet-enhanced browser fingerprinting — 878 scripts belonging to 1,099 websites |
| | 2023 USENIX/one-size-does-not-fit-all-uncovering-and-exploiting-cross-platform-discrepant-ap |
| | Fingerprintable APIs — 13 APIs |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | browser fingerprinting — 18.7% (319,922) of 1,709,810 sites |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | fingerprinting over time — around 12% initially to over 26.6% in the last months |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | fingerprinting intention — 32.6% content manipulation; 31.6% harvesting; 35.8% both |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | fingerprinting API usage — 890,795 calls; 78.2% collect UserAgent; 6% use canvas |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | fingerprint harvesting — 81.3% (490) of clusters sent data in requests |
| | 2023 USENIX/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | target-page fingerprint matching — 29.1% of target login pages |
| | 2023 WWW/automatic-discovery-of-emerging-browser-fingerprinting-techniques |
| | browser fingerprinting APIs — 231 fingerprinting APIs in the first crawl; 249 across two crawls |
| | 2023 WWW/automatic-discovery-of-emerging-browser-fingerprinting-techniques |
| | emerging fingerprinting APIs — 18 additional fingerprinting APIs |
| | 2023 WWW/automatic-discovery-of-emerging-browser-fingerprinting-techniques |
| | fingerprinting API detection coverage — 176 of 249 fingerprinting APIs |
| | 2023 IEEE-SP/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | stylistic browser fingerprinting — StylisticFP uniquely identified 534 of 866 filtered devices. |
| | 2023 IEEE-SP/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | fingerprint stability across visits — StylisticFP failed for 41 devices; FPJS failed for 188. |
| | 2023 IEEE-SP/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | fingerprint collisions — 95 StylisticFP collisions versus 55 for FPJS |
| | 2023 IEEE-SP/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | fingerprint feature entropy — Media-2 had the highest entropy, 0.58. |
| | 2023 IEEE-SP/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | fingerprinting performance overhead — Entire page loading was under one second in 98% of runs. |
| | 2024 IMC/browser-polygraph-efficient-deployment-of-coarse-grained-browser-fingerprints-fo |
| | fraud browser fingerprints — 75–84% recall for GoLogin, Incogniton, and Octo Browser; 67% for Sphere |
| | 2024 IMC/browser-polygraph-efficient-deployment-of-coarse-grained-browser-fingerprints-fo |
| | fingerprint uniqueness — 0.3% of fingerprints were unique |
| | 2024 IMC/browser-polygraph-efficient-deployment-of-coarse-grained-browser-fingerprints-fo |
| | fingerprint response overhead — 6 ms response time and 1 KB storage |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Global-variable fingerprinting — 1,301 extensions uniquely identified by variables |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Storage-side-effect fingerprinting — 391 extensions uniquely identified through storage IndexedDB behavior |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | postMessage fingerprinting — 737 of 1,028 deterministic-message extensions sent uniquely identifying messages |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Chrome extension fingerprintability — 2,747 of 3,398 behaviorally active extensions uniquely fingerprintable |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Firefox extension fingerprintability — 572 extensions |
| | 2024 CCS/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Fingerprint persistence across visits — nine visits per extension |
| | 2024 PETS/website-data-transparency-in-the-browser |
| | browser fingerprinting — F1 score 1.00 on seven test instances |
| | 2024 NDSS/fp-fed-privacy-preserving-federated-detection-of-browser-fingerprinting |
| | Browser fingerprinting scripts — 752 of 181,633 scripts (0.41%) |
| | 2024 NDSS/fp-fed-privacy-preserving-federated-detection-of-browser-fingerprinting |
| | Fingerprinting scripts missed by automated crawls — Manual crawling captured 3.07× more fingerprinting scripts than automated crawlers. |
| | 2024 NDSS/fp-fed-privacy-preserving-federated-detection-of-browser-fingerprinting |
| | Fingerprinting detector performance — 0.86 AUPRC with 1M participants and ε = 1 |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | browser fingerprinting flows — 269 784 fingerprinting flows and 15 239 unique browser attribute combinations |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | entropy-based fingerprinting severity — Very High 8.08%, High 61.49%, Medium 30.94%, Low 58.99% |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | audio fingerprinting — 54 crawled domains |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | canvas fingerprinting — 6237 crawled domains |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | storage fingerprinting — storageEstimate.quota detected in 148 domains |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | fingerprinting obfuscation — 46% of transmitted attributes in the most severe category |
| | 2024 PETS/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | collaborative fingerprinting — 38% of fingerprinters involve two or more domains |
| | 2024 USENIX/purl-safe-and-effective-sanitization-of-link-decoration |
| | fingerprinting information sharing — 200 of 1,800 decorations were labeled ATS |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | browser fingerprinting — 9.2% of visited pages |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | browser fingerprinting on authentication pages — 10.2% of login and sign-up pages |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | Canvas fingerprinting — 93.10% of fingerprinting homepages |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | tracking fingerprinting scripts — 50.50% on login pages and 55.65% on sign-up pages |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | same third-party fingerprinting scripts — 505 of 515 domains (98.06%) |
| | 2024 WWW/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | fingerprinting blocked functionality — Disruptions observed on deezer.com and hepsiburada.com |
| | 2024 WWW/panoptichrome-a-modern-in-browser-taint-analysis-framework |
| | fingerprinting APIs — 362 APIs probably used for fingerprinting or potentially misusable; 208 were previously unreported |
| | 2024 IEEE-SP/targeted-and-troublesome-tracking-and-advertising-on-childrens-websites |
| | browser fingerprinting — 9% in Frankfurt and 10% in NYC desktop crawls |
| | 2025 CCS/byte-by-byte-unmasking-browser-fingerprinting-at-the-function-level-using-v8-byt |
| | Browser fingerprinting functions — 4,670 unique fingerprinting functions after cleaning and deduplication |
| | 2025 CCS/byte-by-byte-unmasking-browser-fingerprinting-at-the-function-level-using-v8-byt |
| | Browser fingerprinting scripts — 7,539 fingerprinting scripts after URL filtering |
| | 2025 CCS/byte-by-byte-unmasking-browser-fingerprinting-at-the-function-level-using-v8-byt |
| | Fingerprinting-function detection overhead — 158.74 ms average, a 4% increase in median page-load time |
| | 2025 CCS/local-frames-exploiting-inherited-origins-to-bypass-content-blockers |
| | fingerprinting in local frames — 4,280 websites |
| | 2025 IMC/canvassing-the-fingerprinters-characterizing-canvas-fingerprinting-use-across-th |
| | canvas fingerprinting — 12.7% of 16,276 popular sites; 9.9% of 17,260 tail sites |
| | 2025 IMC/canvassing-the-fingerprinters-characterizing-canvas-fingerprinting-use-across-th |
| | fingerprinting vendor reach — Akamai reached 485 popular and 205 tail sites; FingerprintJS reached 462 and 298 |
| | 2025 NDSS/cascading-spy-sheets-exploiting-the-complexity-of-modern-css-for-email-and-browser-fingerprinting |
| | font fingerprinting — 831 of 861 (96.5 %) |
| | 2025 NDSS/cascading-spy-sheets-exploiting-the-complexity-of-modern-css-for-email-and-browser-fingerprinting |
| | CSS arithmetic fingerprinting — 1116 OS-browser combination pairs (94.9 %) |
| | 2025 NDSS/cascading-spy-sheets-exploiting-the-complexity-of-modern-css-for-email-and-browser-fingerprinting |
| | browser-extension fingerprinting — all 10 tested extensions |
| | 2025 NDSS/cascading-spy-sheets-exploiting-the-complexity-of-modern-css-for-email-and-browser-fingerprinting |
| | email-client fingerprinting — 8 of 21 clients (40 %) |
| | 2025 PETS/how-unique-is-whose-web-browser-the-role-of-demographics-in-browser-fingerprinti |
| | browser fingerprint uniqueness — 60.2% of the 8,400 browser fingerprints were unique |
| | 2025 PETS/how-unique-is-whose-web-browser-the-role-of-demographics-in-browser-fingerprinti |
| | demographic differences in fingerprinting risk — Lower-income and older groups showed greater fingerprinting risk |
| | 2025 PETS/rethinking-fingerprinting-an-assessment-of-behavior-based-methods-at-scale-and-i |
| | behavioral fingerprint uniqueness — At 150,000 users, average anonymity was reduced by 94.6%. |
| | 2025 PETS/rethinking-fingerprinting-an-assessment-of-behavior-based-methods-at-scale-and-i |
| | behavioral fingerprint consistency — F1 decreased from 0.571 to 0.339 over 540 days. |
| | 2025 PETS/rethinking-fingerprinting-an-assessment-of-behavior-based-methods-at-scale-and-i |
| | combined behavioral and browser fingerprinting — Combined fingerprinting achieved F1 scores above 0.86 with weighted voting at scale. |
| | 2025 USENIX/double-edged-shield-on-the-fingerprintability-of-customized-ad-blockers |
| | filter-list fingerprinting — 84% of filter lists identified |
| | 2025 USENIX/double-edged-shield-on-the-fingerprintability-of-customized-ad-blockers |
| | ad-blocker configuration fingerprinting — 0.72 for ADGUARD |
| | 2025 WWW/beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions |
| | Browser fingerprinting scripts — 695 fingerprinting scripts in real-user sessions versus 498 in the automated crawl |
| | 2025 WWW/beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions |
| | Fingerprinting API vectors — Several Audio and WebRTC APIs had Call Ratio = ∞ |
| | 2025 WWW/beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions |
| | Federated fingerprinting detection — AUPRC 0.98 at ε=1, 5, and 10 versus 0.96 for the centralized automated-crawl model |
| | 2025 WWW/broken-access-on-the-challenges-of-screen-reader-assisted-two-factor-and-passwor |
| | browser-extension fingerprinting — ChromeVox and other listed extensions accurately detected |
| | 2025 PETS/tracking-without-borders-studying-the-role-of-webviews-in-bridging-mobile-and-we |
| | Browser and canvas fingerprinting — Canvas fingerprinting observed in six apps across fraud detection, bot identification, and cross-platform tracking |
| | 2025 PETS/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie |
| | Browser fingerprinting — over 70% across all analyzed countries; nearly 90% in Australia and Brazil |
| | 2025 IMC/fp-inconsistent-measurement-and-analysis-of-fingerprint-inconsistencies-in-evasi |
| | fingerprint attribute evasion — 97.71% for BotD and 81.66% for DataDome |
| | 2025 IMC/fp-inconsistent-measurement-and-analysis-of-fingerprint-inconsistencies-in-evasi |
| | spatial fingerprint inconsistencies — Combined rules raised detection to 76.88% for DataDome and 70.86% for BotD |
| | 2025 IMC/fp-inconsistent-measurement-and-analysis-of-fingerprint-inconsistencies-in-evasi |
| | temporal fingerprint inconsistencies — Combined rules reduced evasion by 48.11% against DataDome and 44.95% against BotD |
| | 2025 WWW/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin |
| | fingerprinting-based ad tracking — Substantial bid-value differences after changing browser fingerprints. |
| | 2025 WWW/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin |
| | fingerprinting-based HTTP tracking — Fake fingerprints reduced HTTP chains to 6,345 versus more than 36,000 for true fingerprints. |
| | 2025 WWW/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin |
| | fingerprinting under privacy regulations — Potential fingerprint-based data sharing remained under selected GDPR and CCPA settings. |
| | 2025 WWW/fp-rainbow-fingerprint-based-browser-configuration-identification |
| | browser configuration fingerprint identification — 84.36% for individual parameters and 78.15% for multiple switches |
| | 2026 NDSS/cross-boundary-mobile-tracking-exploring-java-to-javascript-information-diffusion-in-webviews |
| | Fingerprinting API use — over 30% of exfiltrating apps invoked more than 50 fingerprinting APIs |
| | 2026 NDSS/cross-boundary-mobile-tracking-exploring-java-to-javascript-information-diffusion-in-webviews |
| | Canvas fingerprinting — over 742 apps used WebGLRenderingContext.getExtension; 284 used canvas.toDataURL |
| | 2026 PETS/an-improved-entropy-measure-for-web-browser-fingerprinting-risk |
| | Browser fingerprinting risk — The combined Fingerprint had 5,973 distinct values and 60.2% unique users. |
| | 2026 PETS/the-masks-we-think-we-wear-privacy-threats-of-browser-extension-wallets-in-the-w |
| | wallet fingerprinting — 36 of 85 wallets (42.4%), covering 29.08 million users (82%) |
| | 2026 PETS/analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger |
| | Awareness of digital fingerprinting — Mean fingerprinting awareness was 2.4 versus 2.86 for cookies. |
| | 2026 PETS/analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger |
| | Acceptance of fingerprinting applications — Mean acceptance was 3.90 for cybersecurity, 3.73 for law enforcement, and 3.00 for user experience. |
| | 2026 PETS/analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger |
| | Qualitative concerns about fingerprinting — Own-purpose concerns were 34.0% for cybersecurity, 17.4% for law enforcement, and 42.9% for user experience. |
| | |
| | ## Evidence quotes to spot-check (every 7th browser-FP tuple) |
| | |
| | NDSS/2012/host-fingerprinting-and-tracking-on-the-web-privacy-and-security-implications [results] |
| | Browser fingerprint entropy: "In our data, UA has an entropy of 11.59 bits, while the entropy of UA+IP is 20.29 bits." |
| | |
| | WWW/2015/privaricator-deceiving-fingerprinters-with-little-white-lies [methodology] |
| | Fingerprintable browser-property usage: "Overall, 82.3% of scripts have 0 accesses to offsetHeight. However, 1.87% of scripts have more than 50 accesses when visited at runtime." |
| | |
| | PETS/2016/near-optimal-fingerprinting-with-constraints [results] |
| | Font fingerprint uniqueness: "Detection of 10 fonts allows unique identification of 13, 155 users in our datasets (30.13%)" |
| | |
| | IEEE-SP/2018/fp-stalker-tracking-browser-fingerprint-evolutions [results] |
| | browser fingerprint evolution: "50 % of browser instances changed their fingerprints in less than 5 days, 80 % in less than 10 days" |
| | |
| | WWW/2019/evaluating-anti-fingerprinting-privacy-enhancing-technologies [results] |
| | Fingerprint trackability: "It finds Tor Browser Bundle (Tor BB) to be most effective, revealing under 3 bits of entropy." |
| | |
| | NDSS/2020/carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting [methodology] |
| | extension HTTP-request fingerprinting: "we obtain all resources requested by the web page and content scripts of extensions installed in the user's browser." |
| | |
| | IEEE-SP/2021/fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha [results] |
| | browser fingerprinting prevalence: "Overall, we find that more than 10.18% of top-100K websites deploy fingerprinting." |
| | |
| | PETS/2021/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning [results] |
| | web fingerprinting: "Only 1.1% of scripts is classified as actual fingerprinting." |
| | |
| | USENIX/2021/fingerprinting-in-style-detecting-browser-extensions-via-injected-style-sheets [results] |
| | CSS fingerprint persistence: "after re-running our testing pipeline, 776 triggered at least one of their previously discovered triggers. In other words, 82.5% still remain fingerprintable despite their updates." |
| | |
| | CCS/2022/im-spartacus-no-im-spartacus-proactively-protecting-users-from-phishing-by-inten [results] |
| | fingerprinting-based cloaking: "In total, 96.52% (2,831) out of 2,933 phishing kits contain fingerprinting-based cloaking techniques." |
| | |
| | NDSS/2022/drawn-apart-a-device-identification-technique-based-on-remote-gpu-fingerprinting [results] |
| | browser fingerprint tracking: "adding D RAWN A PART to FP-S TALKER increases the tracking time, raising the median average tracking time by 10.5 days, from 17.5 days to 28 days." |
| | |
| | PETS/2022/omnicrawl-comprehensive-measurement-of-web-tracking-with-real-desktop-and-mobile [results] |
| | fingerprinting code reuse: "out of the 1444 unique scripts that match at least one fingerprinting category, 277 (14%) contain all the magic strings of fingerprintjs2" |
| | |
| | NDSS/2023/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites [results] |
| | adversarial versus benign browser fingerprints: "Only 1.6% of unique fingerprints are shared between adversarial and benign; by contrast, 8.1% are purely adversarial and 90.3% purely benign." |
| | |
| | USENIX/2023/is-your-wallet-snitching-on-you-an-analysis-on-the-privacy-implications-of-web3 [results] |
| | wallet-enhanced browser fingerprinting: "we find that 878 scripts (79%) belonging to 1, 099 websites (83%) engage in browser fingerprinting and leverage wallet information to enhance the fingerprints they generate." |
| | |
| | USENIX/2023/rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages [results] |
| | fingerprinting intention: "104, 279 (32.6%) ... use it for content manipulation, and 101, 030 (31.6%) ... shares them ... Finally, 114, 613 (35.8%) use fingerprinting for both intentions." |
| | |
| | CCS/2024/peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl [results] |
| | Chrome extension fingerprintability: "Out of those, we can uniquely identify 2,747." |
| | |
| | NDSS/2024/fp-fed-privacy-preserving-federated-detection-of-browser-fingerprinting [dataset] |
| | Browser fingerprinting scripts: "According to our high-precision ground-truth heuristic, 752 out of the 181,633 scripts (0.41%) are fingerprinting." |
| | |
| | PETS/2024/fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e [results] |
| | storage fingerprinting: "We detected storageEstimate.quota in 148 domains." |
| | |
| | WWW/2024/the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting [results] |
| | tracking fingerprinting scripts: "home pages have the highest rate of tracking at 61.46%, compared to login pages at 50.50% and sign-up pages at 55.65%." |
| | |
| | CCS/2025/local-frames-exploiting-inherited-origins-to-bypass-content-blockers [results] |
| | fingerprinting in local frames: "Approximately a third (4,280) of all websites containing local frames use them to perform fingerprinting, a clear privacy concern." |
| | |
| | PETS/2025/how-unique-is-whose-web-browser-the-role-of-demographics-in-browser-fingerprinti [results] |
| | browser fingerprint uniqueness: "Approximately 60% of users in our dataset have a unique overall Fingerprint." |
| | |
| | WWW/2025/beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions [results] |
| | Browser fingerprinting scripts: "out of these collected scripts, 695 were found to be fingerprinting in the real user browsing sessions, compared to only 498 in the automated crawl." |
| | |
| | PETS/2026/analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger [results] |
| | Awareness of digital fingerprinting: "We observed an overall mean awareness level of 2.86 ... and 2.4 ... respectively (min: 1 - max: 4)." |
| | |
| | IEEE-SP/2016/beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge [results] |
| | canvas fingerprinting: "Alone, as a simple rendered picture, the normalized entropy is at 0.491, putting it in the top 5 of the most discriminating attributes." |
| | |
| | WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin [results] |
| | fingerprinting-based ad tracking: "When comparing "True FP True IP" to "Fake FP True IP," in Table 2, there are substantial differences in median and maximum bid values." |
| | |
| | IEEE-SP/2017/xhound-quantifying-the-fingerprintability-of-browser-extensions [results] |
| | persistent extension fingerprintability: "Among the extensions that were originally fingerprintable, approximately 38% were updated and, overall, 88% of them remained fingerprintable." |
| | |
| | IEEE-SP/2023/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin [evaluation] |
| | fingerprinting performance overhead: "our approach is stable and the entire page's loading time is less than 1 second in 98% of the runs." |
| | |
| | |
| | ## Legal and human-subjects angles |
| | |
| | 10 of 83 browser-FP papers assess a law (corpus-wide: 402 of 5859). |
| | Law Papers |
| | ---------------------------------------------- ------ |
| | GDPR 9 |
| | ePrivacy Directive 3 |
| | CCPA 3 |
| | European directives 2002/58/CE and 2009/136/CE 1 |
| | ePrivacy directive 1 |
| | Digital Economy Act 2017 1 |
| | LGPD 1 |
| | COPPA 1 |
| | Digital Services Act 1 |
| | WWW/2018/hiding-in-the-crowd-an-analysis-of-the-effectiveness-of-browser-fingerprinting-a European directives 2002/58/CE and 2009/136/CE: Consent for cookies and browser fingerprinting collection |
| | IMC/2019/tales-from-the-porn-a-comprehensive-privacy-analysis-of-the-web-porn-ecosystem GDPR: Tracking, cookie consent, privacy policies, and HTTPS |
| | IMC/2019/tales-from-the-porn-a-comprehensive-privacy-analysis-of-the-web-porn-ecosystem ePrivacy directive: Cookie-consent banners before cookie use |
| | IMC/2019/tales-from-the-porn-a-comprehensive-privacy-analysis-of-the-web-porn-ecosystem Digital Economy Act 2017: Verifiable age-verification mechanisms |
| | WWW/2020/beyond-the-front-page-measuring-third-party-dynamics-in-the-field GDPR: Third-party connections to potentially inadequate countries |
| | PETS/2021/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning GDPR: Data-collection privacy and protection procedures |
| | WWW/2021/user-tracking-in-the-post-cookie-era-how-websites-bypass-gdpr-consent-to-track-u GDPR: Tracking and personal-data processing after consent choices |
| | WWW/2021/user-tracking-in-the-post-cookie-era-how-websites-bypass-gdpr-consent-to-track-u ePrivacy Directive: Compliance of tracking mechanisms with privacy rules |
| | PETS/2022/my-cookie-is-a-phoenix-detection-measurement-and-lawfulness-of-cookie-respawning GDPR: Fairness, transparency, lawfulness, and consent for respawned cookies |
| | PETS/2022/my-cookie-is-a-phoenix-detection-measurement-and-lawfulness-of-cookie-respawning ePrivacy Directive: Consent requirements for cookie-based processing |
| | NDSS/2023/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites GDPR: Secure processing of collected personal data |
| | NDSS/2023/him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites CCPA: Secure processing of collected personal data |
| | PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie GDPR: Differences in tracking across GDPR-country vantage points |
| | PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie CCPA: Tracking measurements from a CCPA-covered vantage point |
| | PETS/2025/unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie LGPD: Tracking measurements from an LGPD-covered vantage point |
| | WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin GDPR: Fingerprint-based data sharing after consent opt-out and opt-in. |
| | WWW/2025/the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin CCPA: Fingerprint-based data sharing after consent opt-out and opt-in. |
| | IEEE-SP/2024/targeted-and-troublesome-tracking-and-advertising-on-childrens-websites GDPR: Tracking and targeted advertising consent requirements |
| | IEEE-SP/2024/targeted-and-troublesome-tracking-and-advertising-on-childrens-websites ePrivacy Directive: Consent before tracking cookies or similar technologies |
| | IEEE-SP/2024/targeted-and-troublesome-tracking-and-advertising-on-childrens-websites COPPA: Parental consent for child-directed targeted advertising |
| | IEEE-SP/2024/targeted-and-troublesome-tracking-and-advertising-on-childrens-websites Digital Services Act: Behavioral advertising to minors |
| | |
| | 19 of 83 recruited human participants: |
| | USENIX/2017/a-privacy-analysis-of-cross-device-tracking n=126 not-stated |
| | USENIX/2017/extension-breakdown-security-analysis-of-browsers-extension-resources-control-po n=204 snowball |
| | CCS/2018/clock-around-the-clock-time-based-device-fingerprinting n=565 snowball |
| | IEEE-SP/2018/fp-stalker-tracking-browser-fingerprint-evolutions n=1905 not-stated |
| | PETS/2020/long-term-observation-on-browser-fingerprinting-users-trackability-and-perspecti n=2315/1275/243 professional-network/professional-network/professional-network |
| | WWW/2020/the-representativeness-of-automated-web-crawls-as-a-surrogate-for-human-browsing n=52000 not-stated |
| | PETS/2021/unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning n=982 other-crowd-platform |
| | USENIX/2021/phishprint-evading-phishing-detection-crawlers-by-prior-profiling n=1150/1007 mechanical-turk/mechanical-turk |
| | CCS/2022/im-spartacus-no-im-spartacus-proactively-protecting-users-from-phishing-by-inten n= not-stated |
| | IMC/2022/your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing n=2064/29 mechanical-turk/not-stated |
| | NDSS/2022/drawn-apart-a-device-identification-technique-based-on-remote-gpu-fingerprinting n= not-stated |
| | WWW/2022/beyond-bot-detection-combating-fraudulent-online-survey-takers n=289/162 social-media/mechanical-turk |
| | PETS/2024/website-data-transparency-in-the-browser n=100 prolific |
| | PETS/2025/how-unique-is-whose-web-browser-the-role-of-demographics-in-browser-fingerprinti n=12461 prolific |
| | WWW/2025/beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions n=30 mechanical-turk |
| | PETS/2026/analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger n=261/473 other-crowd-platform/university-pool |
| | IMC/2025/fp-inconsistent-measurement-and-analysis-of-fingerprint-inconsistencies-in-evasi n= university-pool |
| | IEEE-SP/2017/xhound-quantifying-the-fingerprintability-of-browser-extensions n=51/509/294 professional-network/mechanical-turk/university-pool |
| | IEEE-SP/2023/fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin n= professional-network |
| | |
| | ## Browser-FP papers, newest first (for citation picking) |
| | |
| | 2026 NDSS cross-boundary-mobile-tracking-exploring-java-to-javascript-information-diffusion-in-webviews |
| | Fingerprinting API use; Canvas fingerprinting |
| | 2026 PETS an-improved-entropy-measure-for-web-browser-fingerprinting-risk |
| | Browser fingerprinting risk |
| | 2026 PETS the-masks-we-think-we-wear-privacy-threats-of-browser-extension-wallets-in-the-w |
| | wallet fingerprinting |
| | 2026 PETS analyzing-societal-awareness-and-perception-of-digital-fingerprinting-and-finger |
| | Awareness of digital fingerprinting; Acceptance of fingerprinting applications; Qualitative concerns about fingerprinting |
| | 2025 CCS byte-by-byte-unmasking-browser-fingerprinting-at-the-function-level-using-v8-byt |
| | Browser fingerprinting functions; Browser fingerprinting scripts; Fingerprinting-function detection overhead |
| | 2025 CCS local-frames-exploiting-inherited-origins-to-bypass-content-blockers |
| | fingerprinting in local frames |
| | 2025 IMC canvassing-the-fingerprinters-characterizing-canvas-fingerprinting-use-across-th |
| | canvas fingerprinting; fingerprinting vendor reach |
| | 2025 IMC fp-inconsistent-measurement-and-analysis-of-fingerprint-inconsistencies-in-evasi |
| | fingerprint attribute evasion; spatial fingerprint inconsistencies; temporal fingerprint inconsistencies |
| | 2025 NDSS cascading-spy-sheets-exploiting-the-complexity-of-modern-css-for-email-and-browser-fingerprinting |
| | font fingerprinting; CSS arithmetic fingerprinting; browser-extension fingerprinting; email-client fingerprinting |
| | 2025 PETS how-unique-is-whose-web-browser-the-role-of-demographics-in-browser-fingerprinti |
| | browser fingerprint uniqueness; demographic differences in fingerprinting risk |
| | 2025 PETS rethinking-fingerprinting-an-assessment-of-behavior-based-methods-at-scale-and-i |
| | behavioral fingerprint uniqueness; behavioral fingerprint consistency; combined behavioral and browser fingerprinting |
| | 2025 PETS tracking-without-borders-studying-the-role-of-webviews-in-bridging-mobile-and-we |
| | Browser and canvas fingerprinting |
| | 2025 PETS unmasking-the-shadows-a-cross-country-study-of-online-tracking-in-illegal-movie |
| | Browser fingerprinting |
| | 2025 USENIX double-edged-shield-on-the-fingerprintability-of-customized-ad-blockers |
| | filter-list fingerprinting; ad-blocker configuration fingerprinting |
| | 2025 WWW beyond-the-crawl-unmasking-browser-fingerprinting-in-real-user-interactions |
| | Browser fingerprinting scripts; Fingerprinting API vectors; Federated fingerprinting detection |
| | 2025 WWW broken-access-on-the-challenges-of-screen-reader-assisted-two-factor-and-passwor |
| | browser-extension fingerprinting |
| | 2025 WWW the-first-early-evidence-of-the-use-of-browser-fingerprinting-for-online-trackin |
| | fingerprinting-based ad tracking; fingerprinting-based HTTP tracking; fingerprinting under privacy regulations |
| | 2025 WWW fp-rainbow-fingerprint-based-browser-configuration-identification |
| | browser configuration fingerprint identification |
| | 2024 CCS peeking-through-the-window-fingerprinting-browser-extensions-through-page-visibl |
| | Global-variable fingerprinting; Storage-side-effect fingerprinting; postMessage fingerprinting; Chrome extension fingerprintability; Firefox extension fingerprintability; Fingerprint persistence across visits |
| | 2024 IEEE-SP targeted-and-troublesome-tracking-and-advertising-on-childrens-websites |
| | browser fingerprinting |
| | 2024 IMC browser-polygraph-efficient-deployment-of-coarse-grained-browser-fingerprints-fo |
| | fraud browser fingerprints; fingerprint uniqueness; fingerprint response overhead |
| | 2024 NDSS fp-fed-privacy-preserving-federated-detection-of-browser-fingerprinting |
| | Browser fingerprinting scripts; Fingerprinting scripts missed by automated crawls; Fingerprinting detector performance |
| | 2024 PETS website-data-transparency-in-the-browser |
| | browser fingerprinting |
| | 2024 PETS fp-tracer-fine-grained-browser-fingerprinting-detection-via-taint-tracking-and-e |
| | browser fingerprinting flows; entropy-based fingerprinting severity; audio fingerprinting; canvas fingerprinting; storage fingerprinting; fingerprinting obfuscation; collaborative fingerprinting |
| | 2024 USENIX purl-safe-and-effective-sanitization-of-link-decoration |
| | fingerprinting information sharing |
| | 2024 WWW the-double-edged-sword-identifying-authentication-pages-and-their-fingerprinting |
| | browser fingerprinting; browser fingerprinting on authentication pages; Canvas fingerprinting; tracking fingerprinting scripts; same third-party fingerprinting scripts; fingerprinting blocked functionality |
| | 2024 WWW panoptichrome-a-modern-in-browser-taint-analysis-framework |
| | fingerprinting APIs |
| | 2023 CCS cookiegraph-understanding-and-detecting-first-party-tracking-cookies |
| | Fingerprinting scripts setting cookies |
| | 2023 IEEE-SP fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin |
| | stylistic browser fingerprinting; fingerprint stability across visits; fingerprint collisions; fingerprint feature entropy; fingerprinting performance overhead |
| | 2023 NDSS him-of-many-faces-characterizing-billion-scale-adversarial-and-benign-browser-fingerprints-on-commercial-websites |
| | adversarial versus benign browser fingerprints; fingerprint distribution differences; fingerprint evolution; adversarial fingerprint generation tools; adversarial fingerprint strategies |
| | 2023 PETS your-drm-can-watch-you-too-exploring-the-privacy-implications-of-browsers-mis-im |
| | Android Client ID fingerprint uniqueness; Client ID fingerprint stability |
| | 2023 USENIX is-your-wallet-snitching-on-you-an-analysis-on-the-privacy-implications-of-web3 |
| | wallet-enhanced browser fingerprinting |
| | 2023 USENIX one-size-does-not-fit-all-uncovering-and-exploiting-cross-platform-discrepant-ap |
| | Fingerprintable APIs |
| | 2023 USENIX rods-with-laser-beams-understanding-browser-fingerprinting-on-phishing-pages |
| | browser fingerprinting; fingerprinting over time; fingerprinting intention; fingerprinting API usage; fingerprint harvesting; target-page fingerprint matching |
| | 2023 WWW automatic-discovery-of-emerging-browser-fingerprinting-techniques |
| | browser fingerprinting APIs; emerging fingerprinting APIs; fingerprinting API detection coverage |
| | 2022 CCS privacy-limitations-of-interest-based-advertising-on-the-web-a-post-mortem-empir |
| | fingerprinting-enhanced cohort unicity |
| | 2022 CCS im-spartacus-no-im-spartacus-proactively-protecting-users-from-phishing-by-inten |
| | fingerprinting-based cloaking |
| | 2022 IMC your-speaker-or-my-snooper-measuring-the-effectiveness-of-web-audio-browser-fing |
| | Web Audio fingerprint stability; Fingerprint collation; Audio fingerprint diversity; Additive fingerprinting value |
| | 2022 NDSS auto-draft-242 |
| | browser fingerprint tracking; cross-browser fingerprinting |
| | 2022 NDSS drawn-apart-a-device-identification-technique-based-on-remote-gpu-fingerprinting |
| | browser fingerprint tracking |
| | 2022 PETS fp-radar-longitudinal-measurement-and-early-detection-of-browser-fingerprinting |
| | browser fingerprinting via web APIs; previously unknown API fingerprinting; fingerprinting API cluster |
| | 2022 PETS my-cookie-is-a-phoenix-detection-measurement-and-lawfulness-of-cookie-respawning |
| | cookie respawning with browser fingerprinting; fingerprinting-feature dependency |
| | 2022 PETS omnicrawl-comprehensive-measurement-of-web-tracking-with-real-desktop-and-mobile |
| | browser fingerprinting; fingerprinting code reuse |
| | 2022 USENIX phish-in-sheeps-clothing-exploring-the-authentication-pitfalls-of-browser-finger |
| | browser fingerprinting on login pages |
| | 2022 USENIX the-dangers-of-human-touch-fingerprinting-browser-extensions-through-user-action |
| | user-triggered extension fingerprinting; user-action-only fingerprintability |
| | 2022 WWW beyond-bot-detection-combating-fraudulent-online-survey-takers |
| | browser-fingerprint duplication |
| | 2022 WWW investigating-advertisers-domain-changing-behaviors-and-their-impacts-on-ad-bloc |
| | browser fingerprinting |
| | 2021 IEEE-SP fingerprinting-the-fingerprinters-learning-to-detect-browser-fingerprinting-beha |
| | browser fingerprinting prevalence; fingerprinting domains; fingerprinting script classification; JavaScript API use by fingerprinters |
| | 2021 IEEE-SP good-bot-bad-bot-characterizing-automated-browsing-activity |
| | application fingerprinting |
| | 2021 NDSS tales-of-favicons-and-caches-persistent-tracking-in-modern-browsers |
| | fingerprint entropy |
| | 2021 PETS ml-cb-machine-learning-canvas-block |
| | canvas fingerprinting |
| | 2021 PETS unveiling-web-fingerprinting-in-the-wild-via-code-mining-and-machine-learning |
| | web fingerprinting; unknown fingerprinters; fingerprinting API usage; canvas fingerprinting; audio fingerprinting |
| | 2021 USENIX fingerprinting-in-style-detecting-browser-extensions-via-injected-style-sheets |
| | Unique CSS extension fingerprints; CSS fingerprint persistence |
| | 2021 USENIX phishprint-evading-phishing-detection-crawlers-by-prior-profiling |
| | Advanced browser fingerprints; Fingerprint specificity |
| | 2021 USENIX security-analysis-of-the-democracy-live-online-voting-system |
| | Browser fingerprint collection |
| | 2021 WWW cookie-swap-party-abusing-first-party-cookies-for-web-tracking |
| | fingerprinting-generated cookies |
| | 2021 WWW user-tracking-in-the-post-cookie-era-how-websites-bypass-gdpr-consent-to-track-u |
| | browser fingerprinting |
| | 2020 NDSS carnus-exploring-the-privacy-threats-of-browser-extension-fingerprinting |
| | web-accessible-resource extension fingerprinting; DOM-based extension fingerprinting; intra-browser communication fingerprinting; extension HTTP-request fingerprinting; fingerprintability under CloakX |
| | 2020 PETS long-term-observation-on-browser-fingerprinting-users-trackability-and-perspecti |
| | browser fingerprint trackability; fingerprint stability; user perceptions of fingerprinting |
| | 2020 WWW beyond-the-front-page-measuring-third-party-dynamics-in-the-field |
| | device fingerprinting |
| | 2020 WWW the-representativeness-of-automated-web-crawls-as-a-surrogate-for-human-browsing |
| | browser fingerprinting |
| | 2019 IMC tales-from-the-porn-a-comprehensive-privacy-analysis-of-the-web-porn-ecosystem |
| | canvas fingerprinting |
| | 2019 WWW evaluating-anti-fingerprinting-privacy-enhancing-technologies |
| | Fingerprint trackability |
| | 2019 WWW unnecessarily-identifiable-quantifying-the-fingerprintability-of-browser-extensi |
| | bloat-related fingerprintable side effects; bloat-only fingerprintability; unique bloat fingerprints |
| | 2018 CCS clock-around-the-clock-time-based-device-fingerprinting |
| | Web fingerprint discrimination |
| | 2018 CCS the-webs-sixth-sense-a-study-of-scripts-accessing-smartphone-sensors |
| | browser fingerprinting |
| | 2018 IEEE-SP fp-stalker-tracking-browser-fingerprint-evolutions |
| | browser fingerprint evolution; browser fingerprint linkability |
| | 2018 IMC how-tracking-companies-circumvented-ad-blockers-using-websockets |
| | browser fingerprinting |
| | 2018 USENIX fp-scanner-the-privacy-implications-of-browser-fingerprint-inconsistencies |
| | browser fingerprint inconsistencies |
| | 2018 WWW hiding-in-the-crowd-an-analysis-of-the-effectiveness-of-browser-fingerprinting-a |
| | unique browser fingerprints; fingerprint fragility |
| | 2017 IEEE-SP xhound-quantifying-the-fingerprintability-of-browser-extensions |
| | browser-extension fingerprintability; user extension fingerprintability; persistent extension fingerprintability; Firefox extension fingerprintability; extension-fingerprinting script performance |
| | 2017 USENIX a-privacy-analysis-of-cross-device-tracking |
| | device fingerprint uniqueness |
| | 2017 USENIX extension-breakdown-security-analysis-of-browsers-extension-resources-control-po |
| | extension-set device fingerprinting |
| | 2016 CCS online-tracking-a-1-million-site-measurement-and-analysis |
| | canvas fingerprinting; canvas font fingerprinting; AudioContext fingerprinting; Battery API fingerprinting |
| | 2016 IEEE-SP beauty-and-the-beast-diverting-modern-web-browsers-to-build-unique-browser-finge |
| | browser fingerprint uniqueness; mobile browser fingerprinting; desktop browser fingerprinting; canvas fingerprinting; WebGL fingerprinting |
| | 2016 IEEE-SP cloak-of-visibility-detecting-when-machines-browse-a-different-web |
| | cloaking fingerprinting techniques |
| | 2016 PETS near-optimal-fingerprinting-with-constraints |
| | Targeted fingerprint uniqueness; Font fingerprint uniqueness; General fingerprint uniqueness |
| | 2016 USENIX internet-jones-and-the-raiders-of-the-lost-trackers-an-archaeological-study-of-w |
| | fingerprint-related API use |
| | 2015 WWW privaricator-deceiving-fingerprinters-with-little-white-lies |
| | Fingerprintable browser-property usage; Fingerprinting resistance |
| | 2014 CCS the-web-never-forgets-persistent-tracking-mechanisms-in-the-wild |
| | canvas fingerprinting |
| | 2013 CCS performance-signatures-of-mobile-phone-browsers |
| | mobile browser performance fingerprinting |
| | 2013 IEEE-SP cookieless-monster-exploring-the-ecosystem-of-web-based-device-fingerprinting |
| | commercial web fingerprinting adoption; browser-family fingerprinting; browser-version fingerprinting; system fingerprinting plugins |
| | 2012 NDSS host-fingerprinting-and-tracking-on-the-web-privacy-and-security-implications |
| | Browser fingerprint entropy |
| | </file> |
| | |
| | ==== 11.6 Run log for this pass ==== |
| | |
| | ^ ^ ^ |
| | | Date | 2026-09-03 | |
| | | Corpus | ''data/extract/run1'', 5,859 papers, unchanged since 2026-08-12 | |
| | | Models | Claude Opus 5 (author, verification, edits); **Claude Fable** (generic review, step 9 — the pass skipped when this page was written) | |
| | | Script changes | ''report_fingerprinting.mjs'': tool-fold residue now collected and printed. ''fp_fold.mjs'': header said "Two-pass design" while the code has three passes, and carried the old corpus's ''201 papers / 339 strings'' in a comment — both fixed. No figure changed. | |
| | | Pages saved | ''privacy:fingerprinting'' (45,805 → 69,330 bytes), this page | |
| | | Verified after saving | 0 red links, 35 rendered references against 35 distinct citekeys, 9 WRAP boxes, no en-dashed flags left in any ''%%<code>%%'' span | |
| | | Mistake caught in review | The reviewer's brief pointed it at ''out/fp_report.txt'', which is an **Aug-5 output against the 4,322-paper corpus**. It was caught before the reviewer was launched and a fresh re-run was substituted; had it not been, every figure the reviewer checked would have been checked against a stale corpus. Old output files in a working directory are a trap — this one had been sitting next to the current page for four weeks. | |
| | | Related item found, not fixed here | ''design:crawling_location'' was reported as an unsaved draft. It is **live** (revision of 2026-08-21) and the local draft is the //older// copy; the content page's ''%%[[Design:Crawling location]]%%'' link resolves. The stale local drafts were preserved rather than overwritten. | |
| | |
| | ===== Amendment, 2026-09-04: citekey consolidation ===== |
| | |
| | * ''fouad2022my'' was one of two keys for the same paper in [[:literature:bibliography]]. The wiki-wide consolidation of 2026-09-04 (drain item ''dedup-regional-filter-lists-bibkey'') kept ''fouad2022_cookie'' and deleted the other entry. |
| | * 2 citation markers on [[:privacy:fingerprinting]] were repointed to the kept key. No prose on either page changed, and no figure moved. Statements above that name the deleted key describe the state when they were written. Full query log and the invariants checked before saving: [[:provenance:literature:bibliography]]. |
| | |
| | ===== Quote-check refresh, 2026-09-21 ===== |
| | |
| | The 2026-09-04 ''cols''-vs-PDF audit on [[:provenance:literature:corpus]] showed that 73.1% of evidence quotes that cannot be located in ''paper.cols.txt'' **are** present in an independent ''pypdf'' rendering of the same ''paper.pdf''. ''scripts/quote_check.mjs'' was patched the same day to re-check everything below threshold against that second rendering and to report a fourth verdict, **RESCUED**. §6's figure predates the patch and therefore overstated this page's quote-failure rate. Re-run, unedited first line: |
| | |
| | <code> |
| | $ node scripts/quote_check.mjs --detection 'fingerprint' --show 400 |
| | 544 quotes checked: 312 exact, 140 partial (>=60% of 5-word windows), 50 rescued from the PDF, 42 below threshold in both renderings, 0 with no full text on disk. |
| | </code> |
| | |
| | ^ Figure ^ Was ^ Is ^ Why ^ |
| | | quotes checked | 544 | 544 | population unchanged — the corpus has not moved | |
| | | exact | 312 | 312 | unchanged | |
| | | partial (≥60% of 5-word windows) | 140 | 140 | unchanged | |
| | | rescued from the PDF | — | **50** | new verdict; these were inside the old 92 | |
| | | below threshold | **92** | **42** (in both renderings) | 92 = 50 + 42 exactly; nothing else moved | |
| | |
| | **What this does and does not say.** It does not say 50 extractions were wrong and are now right — the quotes were always in the papers. It says the //stored text// could not locate them and a second rendering of the same PDF can, so counting them as quote failures was a measurement of ''decolumn.mjs'', not of the extraction. The 42 remaining are not "unsupported" either; two of them were read by hand in §6 and both are present. |
| | |
| | **Scope of this edit.** Only §6's quote-check figure and its surrounding prose. No fold, no report figure, no citation and no other number on either page was touched or re-derived: ''report_fingerprinting.mjs'' was **not** re-run in this pass, and every figure outside §6 stands as published on 2026-09-03. The content page's spot-check bullet was corrected in the same pass, because it described the checker as testing against ''paper.cols.txt'' alone, which is no longer what it does. |
| | |
| | ^ Item ^ Value ^ |
| | | Date | 2026-09-21, unsupervised | |
| | | Command | ''%%node scripts/quote_check.mjs --detection 'fingerprint' --show 400%%'' | |
| | | Artifact | ''out/qc0921/detect_fingerprint.txt'' (full run, 50 RESCUED rows and 42 below-threshold rows listed) | |
| | | Script changes | none — ''quote_check.mjs'' was already patched on 2026-09-04 | |
| | | Reviewers | one ''sonnet'' figures-vs-script pass over this page and [[:privacy:fingerprinting]] | |
| | | Pages saved | this page, [[:privacy:fingerprinting]] | |
| |
| [[privacy:fingerprinting|← back to the content page]] · [[literature:corpus|corpus-level provenance]] | [[privacy:fingerprinting|← back to the content page]] · [[literature:corpus|corpus-level provenance]] |
| |