清空 cookie、打开无痕窗口、甚至换一个浏览器,追踪者往往仍然能认出你的设备。Canvas 指纹识别就是让这一切成为可能的隐秘技术之一,而且它无需在你的设备上存储任何东西就能奏效。
什么是 Canvas 哈希?
网页浏览器使用 HTML canvas 元素来渲染图形和文本。每一种浏览器、操作系统和硬件配置渲染这些 canvas 元素的方式都会略有不同。这些细微的差异可以被网站捕获,用来为你的浏览器生成一个唯一标识符。
这个标识符的生成方式是:指示浏览器在一个隐藏的 canvas 元素上绘制特定的图像或文本,然后将得到的像素数据转换成一个哈希值。这个值就被称为 canvas 哈希。
出于指纹识别目的而在这些 canvas 上渲染的「图像」通常包含以下几种元素的组合:
- 使用特定字体和抗锯齿处理的文本
- 颜色与渐变
- 几何图形
- 表情符号(emoji)
这些元素中每一个的渲染结果,都会因浏览器版本、操作系统、已安装字体、图形硬件等因素而产生极其细微的差异。生成的 canvas 哈希随后可以作为浏览器指纹的一个组成部分,用来跨不同网站追踪用户,甚至可能绕过无痕模式或删除 cookie 之类的隐私措施。
我该如何防范 Canvas 指纹识别?
好消息是,你可以借助现成的工具和方法,采取一些措施来保护自己免受 canvas 哈希指纹识别。以下是几种方法:
1. 使用浏览器扩展
Privacy Badger 和 Ghostery 之类的浏览器扩展可以帮助缓解 canvas 指纹识别。这些扩展通常通过干扰用于读取 canvas 数据的 JavaScript API 来工作,例如向图像数据中添加噪声,或者返回一个固定的伪造值。这些扩展一般采用两种主要策略之一:在每次请求时随机化 canvas 哈希,或者提供一个固定但通用的哈希。你通常可以通过刷新本页面来判断某个扩展采用的是哪种方式。如果显示的 canvas 哈希(在桌面端位于右侧,在移动端则可能位于顶部)在每次刷新时都发生变化,那么该扩展很可能在随机化它。如果它保持不变,那么它很可能提供的是一个固定哈希。
随机化哈希的目的是让你的浏览器在每次访问时都显得独一无二,从而扰乱追踪。不过,有些网站可能会检测到这种随机化,进而限制功能或将其标记为可疑。
使用固定、通用的哈希则能让你的浏览器与其他采用相同策略的用户混为一体。许多采用这种方法的扩展还允许你在需要更改指纹时,轻松生成一个新的固定哈希。
2. 修改浏览器设置或使用注重隐私的配置
一些专门的浏览器(比如 Incogniton)或高级浏览器配置,允许你修改或禁用支持 canvas 指纹识别的那些 API。这通常通过高级隐私设置来管理。请注意,完全禁用 canvas 渲染能力可能会破坏那些正当使用 canvas 来实现图形或其他功能(而非用于指纹识别)的网站。
3. 使用注重隐私的浏览器
注重隐私的浏览器专门设计了各种功能来对抗 canvas 指纹识别之类的追踪技术。例如 Incogniton 和 Tor Browser。这些浏览器往往在 canvas 指纹识别防御之外,还整合了多层隐私保护。
以 Incogniton 为例,它专为管理多个浏览器配置文件而设计,每个配置文件都拥有独特且固定的 canvas 哈希,从而实现相互隔离的在线身份。它还提供了修改 canvas 读取值的选项,以进一步增强隐私保护。
结语
Canvas 哈希是一种用于在线追踪的高级技术。不过,通过使用浏览器扩展、调整浏览器设置或改用以隐私为核心的浏览器,你可以显著增强对这类指纹识别的防护,更好地掌控自己的数字隐私。