返回

浏览器指纹识别简介

avatar
2025年12月6 分钟 阅读
分享给
  • 复制链接

1. 什么是浏览器指纹(Browser Fingerprinting)

浏览器指纹是从远程设备系统地收集信息,旨在唯一识别和跟踪其用户的技术。此技术背后的主要动机是用户数据的货币化,通常用于个性化广告(advertising)活动和用户画像分析。

与Cookie等传统跟踪方法不同,指纹识别静默运行且持久性强得多。它在技术文献中被描述为“无Cookie怪兽”,因为它不需要在用户设备上存储任何文件,且对用户完全透明。

特性 Cookie 浏览器指纹
存储方式 在用户计算机上存储小型文件。 不在用户计算机上存储任何文件(“无Cookie”)。
用户可见性与控制权 用户可通过浏览器设置查看、阻止或删除。 透明运行。用户无法直接知晓其发生或进行阻止。
持久性 可被用户删除。 高度持久。甚至可用于恢复用户已删除的Cookie,重新关联其身份。

现在我们已经了解了什么是浏览器指纹以及它为何比Cookie更具持久性,接下来让我们探讨用于创建这些唯一数字标识符的具体技术。

2. 数字指纹的构成:关键技术

指纹的唯一性源于多种不同信息的组合,其中一些是简单的浏览器特征,而另一些则是高度先进和复杂的。

核心信息来源

这些是可通过浏览器收集的基本特征,用于开始构建设备档案。每一条信息与其他信息结合后,都有助于缩小设备身份的范围。

  • 用户代理(User Agent): 一个文本字符串,用于标识浏览器、其版本以及底层操作系统。
  • 插件列表(List of Plugins): 显示已安装的浏览器扩展(如Adobe Flash或PDF查看器),这可能是一个高度独特的组合。
  • 时区(Time Zone): 指示设备的地理位置或配置的时间设置。
  • 屏幕分辨率和颜色深度(Screen Resolution & Color Depth): 提供有关设备显示硬件的详细信息。
  • 系统字体(System Fonts): 操作系统上安装的字体列表可能出奇地独特。

高级指纹识别技术

这些方法利用现代Web技术从设备中提取细微但高度可识别的细节。

Canvas Fingerprinting

此技术使用HTML5 Canvas元素绘制隐藏图像或文本。由于显卡、驱动程序和操作系统的差异,每个设备的渲染方式略有不同,因此生成的图像数据可转换为哈希值(一串唯一字符),用作强大的标识符。

Canvas字体指纹识别

作为Canvas指纹识别的一种变体,此方法多次生成相同文本字符串的图像,每次使用预定义列表中的不同字体。各种字体间的细微渲染差异使得可以从生成的图像中提取指标,从而为浏览器创建唯一标识符。

WebRTC指纹识别

此技术使用WebRTC API(一种实时通信技术)来发现设备的真实本地IP地址,即使设备位于网络地址转换(NAT)路由器之后。将此本地IP与公共IP地址相结合,可创建一个非常稳定且一致的识别因素。

AudioContext指纹识别

此方法使用AudioContext API处理标准的计算机生成音频信号(如正弦波)。它不会监听设备的麦克风。由于设备独特的硬件和软件堆栈,最终处理后的音频信号会有细微变化。然后对该输出进行哈希处理,以创建唯一标识符。

技术 工作原理(简化版 为何对识别有效
Canvas(画布) 绘制隐藏图像并分析设备间细微的渲染差异。 图形硬件、驱动程序和字体的差异使最终图像具有设备唯一性。
Canvas Font(画布字体) 使用多种不同字体渲染相同文本,以测量渲染不一致性。 已安装字体的特定组合及其渲染方式会创建高度独特的环境。
WebRTC 使用通信API来获取设备的本地网络IP地址。 结合本地IP地址和公网IP地址可唯一识别网络中的设备。
AudioContext(音频上下文) 处理标准音频信号以检测设备音频栈的差异。 每台设备上的音频处理硬件和软件会产生略有不同的输出。

虽然这些技术中的每一种都能收集到拼图的一部分,但指纹识别的真正力量来自于将它们结合起来;下一节将解释我们如何科学地衡量这种识别能力。

3. 用信息熵量化唯一性

衡量一段信息所提供的唯一识别程度的科学方法称为信息熵,以“比特”为单位。熵值越高,意味着唯一性越强。

一个简单的类比是六面骰子。单次投掷有六种可能的结果,提供约2.58比特的信息。如果一个事件只有两种结果(如抛硬币),则只提供1比特的信息。可能的结果越多,熵值就越高,结果所提供的“信息”也就越多。

当网站收集浏览器特征时,它会减少关于你身份的不确定性(熵)。据估计,从全球75亿人口中唯一识别一个人大约需要33比特的熵

Panopticlick研究项目清晰地展示了不同的浏览器属性如何贡献识别信息的比特数。

示例:识别信息比特数

浏览器特征 识别信息比特数 识别意义
浏览器插件详情 9.14 比特 数值越高表明该特征越罕见,对识别唯一性的贡献越大。
用户代理 7.68 比特 浏览器与操作系统的这种组合相当少见,具有显著的识别能力。
画布指纹哈希 6.62 比特 设备渲染图形的方式是一种强标识符。
系统字体 6.5 比特 设备上特定的字体列表具有高度区分性。
时区 2.7 比特 虽然本身不具备唯一性,但能显著缩小可能性范围。

在Panopticlick测试中,这些值与其他值的组合产生了至少20.37位的识别信息,使得该浏览器在超过1,357,000个受测浏览器中具有唯一性。类似的项目AmIUnique.org也通过向用户展示其浏览器指纹与大型数据库中其他指纹的对比来证明这一点,通常会发现其具有唯一性。

了解到指纹识别是一门可衡量的、降低匿名性的科学后,我们现在可以评估防范它的策略。

4. 防御与缓解策略

对用户而言,最重要的防御原则很简单:设备越接近通用或默认配置,就越难被唯一识别。

常见但无效的措施

许多常见的隐私工具对高级指纹识别无效。

  • 隐私或隐身浏览:此模式仅阻止浏览器为该会话保存本地数据,如历史记录、Cookie 和表单信息。它不会更改浏览器的底层特征(如字体或图形渲染),因此对指纹识别脚本是透明的。它给人一种虚假的安全感。
  • 使用 VPN 或匿名网络:虽然这些工具能有效隐藏您的公网 IP 地址,但它们无法阻止服务器收集构成指纹的所有其他设备和浏览器特征。

更有效的措施

一项分析不同缓解措施效率的研究发现了一个明显的赢家。

  • 浏览器扩展程序(拦截工具): 研究得出结论,增强隐私的浏览器扩展程序在减少指纹识别方面比浏览器内置的隐私设置(如“不跟踪”或阻止第三方Cookie)显著更有效。这些扩展程序通过从源头阻止跟踪脚本运行来发挥作用。例如,研究发现“不跟踪”(DNT)等浏览器设置在很大程度上被忽略;在Canvas指纹识别方面,超过96%检测到活跃DNT请求的网站仍然继续进行指纹识别,直接无视用户表达的偏好。
  • 该研究强调GhosteryuBlock Origin是特别高效的拦截工具。

其他可能有效但有时不切实际的措施包括:

  • 完全禁用JavaScript(这可能会导致许多网站无法正常运行)。
  • 使用TOR浏览器,其设计目的是标准化用户配置,使其独特性降低。
  • 对于高级用户,通过具有不同配置的虚拟机访问互联网。

考虑到这些防御策略,让我们总结这些笔记中的最关键要点。

5. 核心要点

  1. 浏览器指纹是一种强大的被动跟踪方法。 它无需 Cookie,通过收集设备的独特配置细节来工作。由于对用户不可见且不易清除,因此它比传统 Cookie 更持久且更难阻止。
  2. 唯一性通过组合构建并通过熵值衡量。 指纹是通过组合数十个数据点创建的,从屏幕分辨率等简单数据点到 Canvas 渲染等高级数据点。这种唯一性通过“信息熵位”进行科学衡量。
  3. 标准隐私工具并不足够;拦截器是最佳防御手段。 隐身模式和 VPN 等常见工具对指纹识别的保护作用甚微。对于普通用户而言,最有效的防御措施是安装信誉良好的浏览器扩展程序(如 uBlock Origin 或 Ghostery),这些扩展程序能主动拦截负责收集指纹的跟踪脚本。
相关文章