我的浏览器泄露了什么?

浏览器自动交出的每一项特征,以及每一项把你缩小到多小的范围。

为什么这比 cookie 更难摆脱

cookie 是一个文件。它有名字、有过期时间、有一个删除按钮,而清掉它是真的有用。指纹不存放在任何地方——它是在你每一次到访时,从「你的浏览器是什么」里重新算出来的。你的机器上没有什么可找、也没有什么可清,这就是为什么「我清 cookie 了」并不能回答它。

上面那些值,没有一个触发过权限提示。你的屏幕尺寸、GPU、已装字体和时区,任何页面上的任何脚本都读得到,而且早在有人想到把它们组合起来之前就读得到了。那个组合才是这项技术:单独任何一个值都识别不出你,但每一个都会把人群切一刀,而切上十几刀,通常就足以落到只剩你一个人的那一组。

识别力实际来自哪里

上面清单里的红点标出的,就是真正在干活的那些信号。大致按顺序:

  • GPU 渲染器。 那串精确的显卡芯片和驱动字符串。精准、在机器的一生中保持稳定,而且在桌面端罕见到近乎可以一锤定音。好几个浏览器如今正是为了这个原因,把它藏到了一个开关后面。
  • 已安装的字体。 没有人是刻意去装字体的——它们是随应用程序一起来的。所以这个集合其实是一份「你在跑哪些软件」的清单,而它的区分度高得惊人。
  • Canvas 渲染。 在两台机器上画同样的图形和文字,像素会不一样,因为抗锯齿和字体微调是在 GPU 驱动里实现的。把结果做个哈希,你就从一个本来是用来画图的 API 里,得到了一个稳定的、每台设备独有的值。
  • 时区。 单独看很弱——和你同一个时区的有好几亿人。它有意思的地方在于它来自操作系统,所以它是最有可能和其他一切自相矛盾的那个值。

而用户代理字符串,尽管人人都在谈论它,却是这份清单里最弱的信号之一。有好几亿人在同一个 Windows 版本上跑着同一个 Chrome 构建。真正能缩小范围的只有版本号,而浏览器们一直在稳步地把版本号冻结和截断。

人们会尝试什么,以及那管什么用

做法对上述信号的作用
清除 cookie没有作用。本页上没有任何一个值是存在 cookie 里的。
隐私 / 无痕窗口在多数浏览器上没有作用。你自己比一比哈希值——通常是一样的。
连上 VPN没有作用。它改变的是你的 IP 地址,而那不在本页上。
伪装用户代理的扩展通常更糟。 它造出一个别人都没有的组合,而且它声称的平台和真实平台之间的不一致,本身就是可以被检测到的。
Brave,或者开了 resistFingerprinting 的 Firefox有实质性削弱。canvas 被随机化或屏蔽,硬件数值被取整或干脆不给,字体被限制在一套标准集合内。
Tor 浏览器现有最强的,而且用的是另一套策略:让每一个用户看起来都一模一样,而不是与众不同。

那张表里的规律,就是全部要领。指纹追踪度量的是你与人群的偏离,所以任何让你变得与众不同的东西,都是在帮追踪者的忙——无论它出发点多么为了隐私。混进人群里是唯一能规模化的策略,这也是为什么那些认真对待这件事的浏览器,最终都收敛到「让自己的用户彼此可替换」,而不是「让他们变得稀奇」。

为什么你的哈希值在刷新后可能会变

如果本页顶端那个值每次刷新都不一样,那不是 bug。Brave 和 Firefox 的抗指纹模式都会给 canvas 的读取加入按会话变化的噪声,正是为了让得出的哈希无法被当作一个标识符。一个会变的哈希,是一个谁也追踪不了的哈希——那正是你想要的结果,也是值得刷新一次去确认的原因。

这一块和其余部分的关系

指纹追踪属于设备这一层。网络那一层是另一个问题,有另一套答案:你的 IP 地址暴露了什么,你的 DNS 查询是不是真的走在你以为的路上,以及 WebRTC 是否正在暴露一个地址——那个地址是你的代理设置永远看不见的。那些才是 VPN 真正会改变的东西。如果你想一次把两层都评估一遍,完整的隐私检查会把它们放在一起覆盖。

关于指纹追踪,大家常问什么

我的指纹有多独特?

本页不会告诉你,因为它无从知道。像「你在 280,000 个受测浏览器中是独一无二的」这样的数字,需要一个存有每一位曾做过测试的访客的数据库,也就是要存储指纹——而这恰恰是本工具刻意不做的事。给出比例的站点,是拿你和它们自己的访客池作比较,而那个池子本来就偏向注重隐私的人,并不是真正要紧的那个总体。你能从上面这张清单里判断的是:你的哪些信号不寻常——那才是可以着手处理的部分。

VPN 会改变我的浏览器指纹吗?

不会,而这是关于 VPN 最常见的误解。VPN 作用在网络层:它改变网站看到的 IP 地址,并加密传输中的流量。本页上的每一个值都来自你的设备和浏览器,而不是你的连接,所以在你连上 VPN 前后,它们全都一模一样。值得知道的是反过来的那层关系——通过一台很远的服务器连接,会在你的 IP 位置和未曾改变的时区之间制造出一处显眼的矛盾。

隐私模式或无痕模式有帮助吗?

对指纹追踪几乎毫无帮助。隐私浏览会在你关掉窗口时丢弃 cookie 和历史记录;它不会改变你的屏幕尺寸、GPU、字体、时区或 canvas 渲染结果。在隐私窗口里打开本页并比较一下哈希值——在多数浏览器上它会完全相同,因为构成它的那些信号跟存储的数据毫无关系。

我能不被指纹追踪吗?

你可以削弱它,而有效的办法与直觉相反。混进人群里胜过让自己与众不同:Tor 浏览器让每一个用户看起来都一模一样,这比把自己弄得很特别要强得多。开启 resistFingerprinting 的 Firefox,以及带随机化的 Brave,都能实质性地削弱这个信号。真正没用的是手动改用户代理字符串或者装一个伪装扩展——一组不寻常的取值组合,比你替换掉的那组普通值更能标识你,而且伪装值与真实值之间的不一致本身就是可以被检测到的。

为什么「请勿追踪」被列为可识别信号?

因为开启它的人太少了。一个只有少数人打开的设置,会把人群切得很不均匀,而处在那一小撮里,正是让你可被区分出来的原因。再加上这个标头只是建议性的、而且几乎被普遍无视,开启它让你损失一点点隐私,却什么都换不来。它很好地说明了一个普遍问题:每一处偏离默认值的地方,都是一点信息。

指纹追踪合法吗?

它是被监管而不是被禁止的。按英国和欧盟的规则,在设备上存储或读取信息通常需要征得同意,而英国信息专员办公室和欧盟监管机构都表示指纹追踪属于这个范围——尽管技术上有别,它被当作和 cookie 差不多的东西来对待。执法力度参差不齐,而这项技术在反欺诈和防机器人领域与在广告领域一样普及。毫无争议的一点是:它是隐形的——上面那张清单里,没有任何一项触发过权限提示。

The one place your VPN and your fingerprint contradict each other.

Nothing on this page changes when you connect to a VPN — it all comes from your device, not your network. What does change is your IP address, and that creates a mismatch worth knowing about: if your IP says Frankfurt while your timezone still says Asia/Karachi, a site can see both. It is not a leak and it does not undo the encryption, but it is a signal, and it is why JaguarVPN offers exit locations across enough regions to pick one near you rather than one that argues with your clock.

最后审校于 。发现有内容过时了? 告诉我们.