什么是浏览器指纹
只要删除 ,网站就不会再知道你是同一个用户。
这种想法并不充分。网站并不是只靠 Cookie 来区分用户。浏览器类型、操作系统、屏幕大小、语言、时区、支持的字体、Canvas 和 WebGL 的绘制结果、扩展功能等,也都会成为环境特征。
把这些特征组合起来,推测是否像是同一个浏览器环境,这种思路就是浏览器指纹(browser fingerprint)。
本文整理浏览器指纹的基本概念,以及它对匿名性的影响。更详细的内容会在“浏览器指纹识别基础”中说明。
指纹的基本概念
浏览器指纹,是把浏览器和设备的特征组合起来,作为识别材料的思路。
它不同于 Cookie 那样重新发送已保存识别符的方法,材料来自浏览器为了显示页面而展示出来的信息。
| 信息 | 表示什么 | 匿名性中的注意点 |
|---|---|---|
| User-Agent | 浏览器和操作系统的类型 | 成为使用环境的大致特征 |
| 屏幕大小 | 设备或显示环境 | 可能显示出同一环境的特征 |
| 语言设置 | 首选语言 | 地区或用户属性的线索 |
| 时区 | 设备的时间设置 | 与日常活动范围和活动时间关联 |
| 字体 | 操作系统或安装环境 | 少见的组合会显眼 |
| Canvas/WebGL | 绘制结果 | 会出现 GPU 或浏览器差异 |
每一项单独来看都是较弱的信息。
但是,组合起来就会成为特征。在匿名性中,问题就在于这种“组合”。
与 Cookie 的区别
Cookie 是保存在浏览器中的数据。
网站使用 Cookie 处理登录状态和再次访问。删除 Cookie 后,可以清除这些保存的信息。
另一方面,指纹把浏览器环境的可见方式作为材料。
| 项目 | Cookie | 指纹 |
|---|---|---|
| 材料 | 已保存的识别符 | 浏览器和设备的特征 |
| 用户的认知 | 容易删除 | 难以知道哪些东西被当作材料 |
| 更改方法 | 删除 Cookie | 更改环境或设置 |
| 对匿名性的影响 | 同一网站内的再次识别 | 即使没有 Cookie,也会残留同一环境的相似性 |
| 注意点 | 与登录状态关联 | 自定义设置有时会显眼 |
Cookie 对策和指纹对策是不同的。
即使删除了 Cookie,只要浏览器特征相同,关联的材料仍会留下。
自定义设置为什么会显眼
为了提高匿名性,人们有时会想细致地自定义浏览器。
广告拦截、特殊字体设置、少见的扩展功能、细致的 JavaScript 控制。这些在某些场景下也有用。但是,当组合变得少见时,就会成为只有该环境才有的特征。
| 设置 | 有用的一面 | 显眼的理由 |
|---|---|---|
| 大量扩展功能 | 减少跟踪和广告 | 组合变得少见 |
| 特殊屏幕大小 | 便于工作 | 成为不同于其他用户的特征 |
| 添加字体 | 改善显示效果 | 安装环境会被看见 |
| 细致的拦截设置 | 减少不必要的通信 | 每个网站上的反应会成为特征 |
| 自定义 User-Agent | 原本想隐藏信息 | 反而可能显得不自然 |
在匿名性中,增加看起来很强的设置并不总是正确答案。
在某些场景下,更重要的是让可见方式与许多其他用户保持一致。
与 Browser 的关系
Tor Browser 不只是使用 Tor 网络,也具有统一浏览器可见方式的设计。
这是为了减少用户之间的差异,使其不容易被指纹识别。
使用 Tor Browser 时,如果添加扩展功能,或者大幅改变屏幕大小和设置,可能会偏离标准状态而变得显眼。
| 行为 | 影响 | 注意点 |
|---|---|---|
| 使用标准设置 | 与其他用户的可见方式接近 | 基本原则不要破坏 |
| 安装扩展功能 | 出现自定义特征 | 匿名性变弱 |
| 以自定义方式改变屏幕大小 | 可能出现屏幕特征 | 理解 Tor Browser 的行为 |
| 登录实名账号 | 通过账号关联 | 这是通信路径之前的问题 |
| 与普通浏览器混用 | Cookie 和历史记录会混在一起 | 需要环境分离 |
Tor Browser 很强大,但效果会因使用方式而减弱。
应该怎么做
指纹对策并不是增加细碎设置。
首先,要分开实名使用和匿名使用。基本原则是不要重复使用同一个浏览器、同一组扩展功能、同一批 Cookie、同一个登录状态。
| 确认项目 | 理由 |
|---|---|
| 是否分开了实名用和匿名用 | 不混合浏览器特征和 Cookie |
| 是否增加了过多扩展功能 | 避免成为少见的环境 |
| 屏幕大小和语言设置是否显眼 | 不强化环境特征 |
| 是否没有破坏 Tor Browser 的标准设置 | 让可见方式与其他用户保持一致 |
| 是否残留登录状态 | 避免通过账号被关联 |
与其试图完全消除指纹,更现实的是把 Cookie、登录、IP、发布内容也放在一起,减少关联。
本文涵盖的范围
本文涵盖的是浏览器指纹的概要。
不涵盖单个网站的跟踪技术、Canvas 和 WebGL 的详细测量方法,以及每个扩展功能的行为。
重要的是理解,浏览器自动展示的信息也与匿名性有关。不只是输入的信息,环境本身也会成为线索。
失败例
指纹造成的失败,并不只会由特殊攻击引起。
直接使用平时的浏览器。在匿名用浏览器中安装与实名用相同的扩展功能。屏幕大小、语言设置、字体、登录状态与实名使用相同。这些积累起来,就会显示出同一环境的特征。
| 失败 | 会发生什么 | 对策 |
|---|---|---|
| 使用实名用浏览器 | 历史记录和保存状态混在一起 | 使用专用环境 |
| 统一扩展功能 | 显示出同一环境的特征 | 匿名用保持最小限度 |
| 增加自定义设置 | 成为少见的环境 | 不要过度破坏标准设置 |
| 登录实名账号 | 通过账号关联 | 不登录 |
| 在同一设备上长期运行 | 特征会积累 | 定期重新检查环境 |
总结
浏览器指纹,是把浏览器和设备的特征组合起来,推测是否像是同一个环境的思路。
即使删除 Cookie,屏幕大小、语言、时区、字体、Canvas、WebGL、扩展功能等特征仍会留下。
在匿名性中,增加自定义设置并不总是安全。
相反,环境变得少见时,有时会因此显眼。
指纹本身并不会单独决定匿名性的全部。但是,当它与 IP、Cookie、登录状态、发布内容、时间组合起来时,会成为很强的线索。
相关工具
WhatIsMyIP
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
BrowserLeaks WebRTC
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
BrowserLeaks Fingerprint
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
EFF Cover Your Tracks
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
Proton VPN
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
URL : https://protonvpn.com/
Mullvad VPN
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
URL : https://mullvad.net/
Tails
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
URL : https://tails.net/
Whonix
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
URL : https://www.whonix.org/
Qubes OS
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。