现象:打开网页,你就有了一个外号
The demo那篇文章本身就是个演示:页面加载时对你的设备做几项测量,哈希后给你分配一个绰号——原文作者拿到的是 "Greedy Panda"(贪心熊猫)。
换一台设备打开,绰号变了,但同样稳定。原因很简单:这不是存进你浏览器的标记,而是你设备本身的读数——读数来自硬件,所以不会因为你删了什么而消失。
评论区补充了一个容易忽略的差异:Chrome 系浏览器即使在无痕模式下指纹依然成立;Safari 和 Firefox 的无痕则不会——它们的无痕会话会切断这条线。
测量从哪来:两个来源,两种质量
Signal sources网络请求 · 脆弱 / 通用
IP 地址:理想情况下一个人一个 IP 就够用,但移动网络、共享 WiFi、VPN、ISP 轮换都会让它失效。User-Agent、Accept-Language:暴露浏览器、系统、版本与语言——但这些值在人群里高度重复。
代码环境 · 稳定 / 近乎唯一
- 硬件(无需任何权限提示):GPU 行为与厂商驱动、CPU 行为与线程数、内存大小、显示(分辨率 / 像素比 / 刷新率)、音频处理、设备型号。
- 软件:已安装字体、浏览器扩展、系统信息。
原文页面上用的就是这六种手法,全部不需要弹窗授权:
- OfflineAudioContext离屏渲染一小段音频,浮点差异取决于浏览器音频引擎和 CPU
- WebGL读 GPU 厂商/型号、驱动支持的特性、渲染像素
- canvas画文字与 emoji 再读回像素,抗锯齿与字体渲染依系统而异
- Intl时区与日期/数字格式——VPN 改得了 IP,改不了时区
- navigatorCPU 核心数、内存大小(Chrome)、浏览器语言
- crypto.subtle把以上字段 SHA-256 成哈希,再由哈希挑选昵称
唯一性来自交集,不是来自单项
Collapse of the pool单独看每一项都很普通:数百万台设备用最新版 Chrome,数百万台 Mac 装 M4,数百万个浏览器说法语。但把这些条件同时叠上去,候选池立刻塌缩。
答案越罕见,它告诉对方的越多(惊奇值)。至于"再多加几个条件就一定能认出你"——原文给的两个锚点:
- 33 bits 就足以在全球人口里唯一区分一个人;
- 邮编 + 出生日期 + 性别,三者组合就能唯一识别超过 60% 的美国人。
但原文也很诚实地加了一句更正:只有相互独立的特征比特才能相加。胡子本身是"男性"的强指示,男性也更可能只有一只眼——特征相关时,比特不能简单叠加,实际信息量低于纸面值。
评论区的第一记冷水:商业上远没那么好用
The top rebuttal讨论里最高赞的一条直接质疑原文的叙事:能测出来 ≠ 能长期追踪。
- 90% 的商业指纹服务仍主要依赖 IP。把 IP 拿掉,剩下的是一堆半衰期极短的配置:音量设置、已安装字体、软件版本。可以预期相当一部分受众在几天内就"失效"。
- 对比:cookie 名义寿命 2 年,实际能活几个月——都比这份"配置指纹"稳。
- 第三方供应商真正卖钱的,是围绕稳定数据点串起来的关联:手机号、邮箱、用户 ID。有其中一个,就能跨设备、想追踪多久追踪多久。
两条重要补充(来自后续回复)
- "最大、最可疑的数据经纪(信用监控)如今几乎已经在法律里根深蒂固了。"
- 有人指出这条评论忽略了信息安全 / 反欺诈场景:那里的猫鼠博弈激烈得多,随新技术、黑产反制和浏览器缓解方案不断变化。一位反欺诈从业者的说法是——指纹没能阻止欺诈,但抬高了成本,挡掉了大量低投入的滥用。
还有一场关于"字体"的小争论:有人质疑普通用户几乎不装删字体;对方承认不确定,但指出软件版本才是大头——Chrome 每两周更新、Windows 每月、GPU 驱动不定期,任何一项更新都能当场把指纹清零。
反指纹实战:目标是"混入人群",不是"独一无二"
Blend in, don't stand out评论区里最有用的一条,是纠正 EFF 测试站 coveryourtracks.eff.org 的读法——很多人一直读反了:
| 看到的结果 | 含义 | 判断 |
|---|---|---|
| Randomized fingerprint | 网站能看出你在伪造信息 | 坏 |
| Unique fingerprint (每次刷新都 unique) | 每次访问都被当成全新访客,且没被判定为可疑行为 | 好 |
| Unique → Nearly-unique | 第一次 unique,第二次变成 nearly-unique,说明两次访问被关联起来了 | 失败 |
| Non-unique fingerprint | 你的设备与无数设备无法区分 | 理想 |
但立刻有人泼冷水:这些测试并不可靠。Brave 确实会随机化一部分值,但许多值仍然静态——它照样暴露你的 GPU 型号和驱动版本,而 Fingerprint.com 在 Brave 下依然能可靠识别。
更真实的是代价。一位用 Brave 混淆多年的人说得很具体:每个带 2FA 的网站(如今几乎所有)都会把他当成新设备,每次用电脑都得把手机放在身边收验证码,相当烦;手机上用 GrapheneOS 能在 WiFi 里混淆,蜂窝网络做不到(除非轮换一堆 SIM 卡)。
现场的几组实测与争论
- 有人在原文演示里从 "Gentle Owl" 变成 "Nosy Toucan"(连 VPN + 无痕 + 不最大化窗口)——这一次文中技巧失效了。
- 另一位:Firefox + uBlock + CanvasBlocker + PiHole,每次刷新结果都不同,"没有持久化的指纹"。
- iOS + iCloud Private Relay 下三次刷新结果不同——Apple 确实做了随机化。
- 熵的争论:有人指出 iPhone 上大家系统版本、硬件高度一致,探测值强相关,"根本不可能有 30 bit 熵,我怀疑连 10 都没有";桌面 PC 才真正有描述性,Android 因机型多样也还行。反方算账:33 bits 就足以全球唯一,iOS 给 10–15 bits,配上住宅 IP 足够锁定。
- 还有一个被点名的更糟场景:原生 App 比网页更危险——一个权限提示都不弹的 App,能拿到的比特比网页更多。
挡在路上的墙:验证码
Captcha as counter-measure讨论串里一串"受害者"叙述:固定 IP 的用户被 Cloudflare 反复拦、被 Google 反复要求填验证码,有时干脆搜不了。两种解释并存——
- 网络里可能跑了住宅代理僵尸网络(新式僵尸网络会把代理捆在电视流媒体之类的小软件里,从你的住宅 IP 转发恶意流量),Cloudflare / CrowdSec 会把这类 IP 拉黑;
- 也可能纯粹是因为"没允许第三方 Cookie、没 24 小时登录 Google 账号、用 Tor"——判定服务在主动对抗反指纹行为。用 Tor 访问过之后回到普通浏览器也会被算账。
还有一条结构性问题:大学一个出口静态 IP 供几百人共用——IP 一旦静态又不共享,隐私直接归零;共享则有别的麻烦。
法律与立场:这不是"技术问题"
Law & positions- 欧盟视角:"这在 EU 已经违法。同意横幅从来不是关于 cookie,而是关于追踪本身。"一个纯登录用的 cookie 不需要横幅。
- 争论随后掉进法条细节:ePD 的"严格必要"限定于"信息社会服务"、且要求"通常以报酬提供",公共机构通常不能依赖它;GDPR 再叠一层。有人吐槽由此产生的荒谬结果——网站连"记住我拒绝 cookie"这个偏好都不许存。
- "问题不是广告,是数据买卖":广告租用网站空间本来合理,需要禁止的是围绕用户数据的采购与转售产业。
- 也有更激进的主张(彻底禁广告),随即被反问:谁有权定义"广告"、谁被信任去借此让批评者闭嘴?给出的替代方案是给内容加数字签名 + 用户显式信任,而不是给用户打指纹。
- 机器人的两难:怎么区分"只是不想被建永久档案的普通人"和"永远伪装成新访客的机器人"?有人的结论是——唯一能赢的走法就是不玩这个游戏。
Cookie 到底是不是坏东西(一场老派回忆)
有人为 cookie 辩护:它本身中性,解决的是 HTTP 无状态协议下"如何在两次请求之间维持会话状态"这个真问题,被滥用而已。随后有人回忆起 cookie 之前的做法——服务器自动给每个链接加上 PHPSESSID 参数,这也正是当年很多论坛无法被 Wayback Machine 归档的原因;附带的 RFC 2109 vs PHP 4 时间线之争属于典型 HN 风味。
读者对原文的两处纠正
Corrections- Google 三幕剧的因果被写反了:评论指出,反垄断方面的担忧源自"移除第三方 cookie"这件事,才促使 Google 去开发替代方案(Privacy Sandbox);原文把它写成了 Sandbox 引发反垄断。
- 对煽情段落的怀疑:原文那段"我不看人,我看模式……21 世纪的水晶球,卖给出价最高者"让一些人完全没有共鸣——"去标识化的模式恐惧,我实在 get 不到"。回应的问法很直接:如果每个网站永远知道是你、点了哪些链接、看了什么内容,你真的 OK 吗?
还有人怀疑演示本身
"我不太信这个魔术:没有证据说明那个哈希唯一,很多设备可能共用同一个哈希。建议加个计数器,或者让我存点数据到另一次会话里读。"——这个质疑在讨论里出现了两次,值得记着:演示的说服力不等于测量结论。
一页速览
TL;DRFour takeaways
- 指纹是真的,但没到"接管 Cookie"的程度。商业级追踪仍主要靠 IP 加稳定标识符(手机号/邮箱/用户 ID);纯配置指纹半衰期以天计,一次软件更新就能清零。
- 指纹的价值在交集,不在单项。单项都平平无奇,叠加起来才近乎唯一——33 bits 足够在全球锁定一个人,邮编+生日+性别就能拿下 60% 的美国人。
- 个人防护的目标是"混入人群"。唯一 ≠ 安全;`non-unique` 才是理想结果。装扩展往往让你更显眼,Chrome/Edge 基本等于自带身份证,Brave 也仍漏 GPU 型号与驱动版本。
- 真正的战场不在浏览器里。同意横幅、数据转售、反欺诈中的指纹、验证码惩罚——这是法律、商业与信任的问题,不是换个浏览器就能关掉的开关。