PowerScan
ZH

第三方 Cookie 之后的 Cookie、存储与追踪

指纹浏览器 · 阅读约 6 分钟 · 作者:PowerScan

图片:Unsplash

Cookie 曾是认出回访浏览器的原始方法,二十年间一直够用。浏览器对它做出的改变,解释了为什么指纹识别再次变得有意义。

第一方与第三方

第一方 Cookie 由地址栏中的网站设置,你正是靠它保持登录状态。第三方 Cookie 由页面所嵌入内容的另一个域名设置,例如广告脚本,并且在每个嵌入它的网站上都可由该域名读取。后一个特性使得跨站追踪变得轻而易举:一个广告商,一个 Cookie,所有网站。

发生了什么变化

Safari 自 2017 年起通过智能防追踪(Intelligent Tracking Prevention)默认拦截第三方 Cookie,并多次加强。Firefox 在 2019 年推出增强型跟踪保护(Enhanced Tracking Protection),随后又推出完全 Cookie 保护(Total Cookie Protection),为每个网站提供各自独立的 Cookie 罐,使某个第三方在一个网站上的 Cookie 在另一个网站上不可见。Chromium 引入了分区 Cookie(Partitioned 属性,即“CHIPS”),让嵌入内容可以按顶层网站分别保存状态;并且花了数年时间宣布、推迟,最终放弃全面移除第三方 Cookie,转而采用由用户选择的方案。

实际结果是,通过 Cookie 进行跨站追踪在 Safari 和 Firefox 中不可靠,在 Chromium 中也越来越多地被分区。这对隐私有利,同时也把追踪者推向了完全不需要存储的信号。

其他存储

localStorage、IndexedDB 和 Cache API 天然属于第一方;它们属于写入它们的源,并且在所有主流浏览器中现在都按顶层网站进行分区,因此无法像过去的第三方 Cookie 那样被用作跨站标识符。ETag 和基于缓存的追踪手法虽然存在,但很脆弱,而且已被广泛缓解。

为什么指纹识别填补了空白

指纹不需要存储。它在每次访问时都根据浏览器自身的属性重新计算,所以清除 Cookie 不会重置它,分区也无法隔离它。这是它对追踪者的吸引力所在,也是对那些以为“清除网站数据”就是一张白纸的人的危险所在。对策也不同:不是阻止存储,而是减少页面可读取内容的多样性,这正是 User-Agent 精简、Canvas 噪声和渲染器伪装的用途。

检测页面能显示什么

页面可以报告 Cookie 是否已启用,以及是否设置了 Do Not Track 头(这个信号几乎没有网站遵守,因此浏览器正在移除它,转而采用 Global Privacy Control)。页面无法读取其他网站的 Cookie,而值得信赖的检测页面自己也不会设置任何 Cookie。PowerScan 运行时没有 Cookie、没有存储、没有标识符,你可以在浏览器开发者工具中验证:扫描之后,该网站的存储面板是空的。

如今的隔离意味着什么

对需要把账号分开的人来说,Cookie 是容易的部分:不同的配置文件有不同的 Cookie 罐。困难的部分是指纹,因为同一台机器上、使用同一浏览器的两个配置文件,除非浏览器加以改变,否则共享每一个硬件和渲染信号。这就是下一篇文章的主题。

全部文章 · 开始扫描