了解浏览器指纹识别
浏览器指纹识别是系统地收集有关 web 浏览器的信息,以便对其身份或特征进行有根据的猜测。
每个浏览器的设置和功能共同构成了“浏览器指纹”。
大多数浏览器无意中为每个用户创建一个独特的指纹,使其可在整个互联网被跟踪。
有关浏览器指纹识别的更多深度信息,请参阅 Tor 博客上的这些文章:Browser Fingerprinting: An Introduction and the Challenges Ahead 和 Tor Browser: a legacy of advancing private browsing innovation。
为什么浏览器指纹识别会威胁在线隐私?
首先,收集这些信息无需向用户请求权限。
任何在浏览器中运行的脚本,都可悄悄建立设备指纹,而用户毫不知情。
其次,如果浏览器指纹的某个属性是独特的,或者几个属性的组合是独特的,即可在线识别和追踪设备。
这意味着即使没有 Cookie,也可以通过指纹来跟踪设备。
Tor 浏览器如何抵御指纹识别
Tor 浏览器经过专门的工程设计,旨在将每个用户在各类指标上的指纹独特性降至最低。
让所有 Tor 浏览器用户看起来完全一样,这几乎不可能实现,但我们的目标在于,对于每个指标,减少用户可被区分的“类别分组”数量。
这种方法增加了精准追踪个人用户的难度。
某些属性(例如操作系统和语言)对于功能的正常运行是必不可少的,因此无法完全隐藏或伪装。
相反,Tor 浏览器减少这些属性的变化,从而降低独特性。
例如,它限制字体枚举并采用字符回退,通过黑边功能来标准化屏幕和窗口大小,同时,将请求语种限制在较小的预设范围。
Tor 浏览器反指纹识别保护的核心目标在于,最大限度增加收集足够信息以唯一识别用户的难度,以此增强用户的隐私保护,同时不损害必要的功能。
Tor 浏览器中的防指纹识别功能
黑边
为了防止基于屏幕尺寸的指纹识别,Tor 浏览器启动时,将其内容窗口调整为 200px × 100px 的倍数。
这种策略将所有用户分为几个组,更难以单独识别用户。
只要用户不对窗口大小进行调整(如最大化或全屏),这种方式就是有效的。
Tor 浏览器还针对这些情况提供了称为黑边的指纹识别防御功能,这一技术由 Mozilla 开发并于 2019 年推出。
其工作原理为:在浏览器窗口周围添加边距,使窗口尺寸尽可能接近期望值,同时用户仍可划分到几个屏幕尺寸分组中,防止通过屏幕尺寸单独识别出特定用户。
除了黑边,Tor 浏览器还采用了许多其他功能,抵御浏览器指纹识别并保护用户隐私。

用户代理和操作系统伪装
通过用户代理字符,网站可识别用户的详细信息,包括浏览器、操作系统、CPU 架构、供应商和版本。
这些信息可暴露用户所用的操作系统或设备,因此一直作为浏览器指纹识别的潜在攻击方式,可通过网站或追踪器识别特定用户。
为了应对这一问题,Tor 浏览器对用户代理进行伪装。用户并不能指定伪装为特定的操作系统,或模仿每一种可能的平台。
相反,Tor 浏览器对用户代理值进行标准化处理,降低其独特性,避免产生虚假的隐私安全感:
- 所有 Windows 均显示为 Windows 10。
- 所有 macOS 均显示为 OS X 10.15。
- 所有 Android 均显示为 Android 10。
- 所有其他操作系统,例如 Linux 各种发行版(包括 Tails 和 Qubes)、*BSD 以及其他操作系统,都将统一归类,并上报为“Linux running X11”。
- 所有其他细节(例如处理器架构)也根据不同平台进行相应的标准化处理。
在这种情况下,Tor 浏览器的指纹识别抵御策略,是通过伪装来保护用户代理的真实值,同时确保拥有一个足够庞大的用户集。
用户代理以 HTTP 标头的形式发送到网站,同时也可通过 JavaScript 的 navigator.userAgent
获取。
这些值的不一致可能触发反机器人和反欺诈系统,将 Tor 用户视为机器人,并拒绝其请求,这将影响 Tor 浏览器对于用户的可用性。
一些用户和隐私工具户建议,所有用户都显示为 Windows 系统,可提供最佳掩护。
不过,在不同浏览器环境下做到完美伪装,是不可能的。因此,常常通过主动式指纹识别技术,来推断硬件或操作系统的详细情况,其手段包括利用字体、功能、行为特征等等(无论是否使用 JavaScript)。
Tor 浏览器不允许用户选择伪装的操作系统。
这是有意为之:任何可供选择的选项都只会让用户更加独特,从而更易被指纹识别。
有限的标准化选项至关重要,可确保用户大隐隐于众,最大化每个人的隐私。
其他防指纹识别功能
除了黑边,Tor 浏览器还采用许多其他功能,来抵御浏览器指纹识别并保护用户隐私。
这些功能包括:禁用 Canvas 图像提取、集成 NoScript 以及第一方域名隔离。
如需获取完整的功能列表,请参阅 Tor 浏览器设计与实现文档。