PowerScan
ZH

浏览器配置文件与隔离:分离账号到底意味着什么

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

图片:Unsplash

“隔离”是人人都在用来描述分开浏览器身份的词,但它涵盖了好几件不同的事。本文把它们分开讲,因为容易做到的那件,并不是最要紧的那件。

存储隔离

浏览器配置文件有自己的 Cookie、本地存储、缓存、历史记录、保存的密码和扩展。两个配置文件看不到对方的 Cookie,因此网站无法通过存储把它们关联起来。所有主流浏览器都支持多个配置文件,这一层隔离已经是成熟的。如果网站能看到的仅此而已,那么分开账号不过就是点一下“新建配置文件”。

网络隔离

使用同一个地址的两个配置文件,来自同一个地方。网站如果看到同一个住宅地址同时登录了两个账号,就已经了解到了一些信息;如果时区和语言也一致,了解的就更多。网络隔离意味着每个配置文件都有自己的路由,通常是一个代理,并且这条路由承载一切:HTTP、WebRTC,以及在可能的情况下还有 DNS。代理只覆盖 HTTP 的配置文件,是纸面上的隔离,实际上仍然相连。

指纹隔离

这是最难的一层。同一台机器上、使用同一浏览器版本的两个配置文件,会产生相同的 Canvas 哈希、相同的音频哈希、相同的渲染器字符串、相同的线程数、相同的屏幕几何参数和相同的字体列表。在网站看来,它们是一台机器带着两个 Cookie 罐。要让它们看起来像两台机器,浏览器就必须为这些属性报告不同的值,而且是按配置文件保持一致地报告。

失败往往就出在一致性上。这些数值必须描述一台真实存在的机器:一个操作系统、与之配套的 GPU、相互匹配的屏幕尺寸和像素比、彼此吻合的 User-Agent、Client Hints 和 navigator.platform,以及属于该操作系统的字体。它们必须在多次访问之间保持不变,因为每天都在变的指纹本身就是一个信号。它们还必须经得起网站在不同来源之间所做的比对:User-Agent 对照渲染器,时区对照地址,WebRTC 候选对照请求。

“隐藏”错在哪里

屏蔽一切并不是隔离,而是另一种指纹。对 Canvas、音频、WebGL 和 WebRTC 都返回“不可用”的浏览器,看起来像一款隐私工具,而这是一个很小而且很容易辨认的群体。一个可用的配置文件,目标恰恰相反:看起来像一台普通、乏味的机器,所有信号完全可读,且彼此一致。成功的标准不是检测页面什么都没显示,而是它显示出一台可信的机器,并且没有任何不匹配。

如何检查配置文件

在配置文件中打开一个检测页面,像网站那样去读它。渲染器与操作系统匹配吗?时区与地址匹配吗?WebRTC 只暴露代理的地址,还是什么都不暴露?刷新一下:哈希保持不变吗?然后打开第二个配置文件,确认其数值与第一个不同。像 PowerScan 这样的页面会把这些并排显示,标出有差异的比对项,并且不存储任何内容,因此这个检查可以重复进行,且不留痕迹。

关于本站不声称什么的说明

PowerScan 不给真实度打分,不检测代理,也不判断某个浏览器是否是机器人。这些判断需要页面脚本所没有的数据,为它们显示一个数字就是在猜测。它所做的,是读取网站会读取的同一批信号,并指出它们在哪里不一致。这才是你可以据以行动的部分。

全部文章 · 开始扫描