浏览器指纹是从远程设备系统地收集信息,旨在唯一识别和跟踪其用户的技术。此技术背后的主要动机是用户数据的货币化,通常用于个性化广告(advertising)活动和用户画像分析。
与Cookie等传统跟踪方法不同,指纹识别静默运行且持久性强得多。它在技术文献中被描述为“无Cookie怪兽”,因为它不需要在用户设备上存储任何文件,且对用户完全透明。
| 特性 | Cookie | 浏览器指纹 |
|---|---|---|
| 存储方式 | 在用户计算机上存储小型文件。 | 不在用户计算机上存储任何文件(“无Cookie”)。 |
| 用户可见性与控制权 | 用户可通过浏览器设置查看、阻止或删除。 | 透明运行。用户无法直接知晓其发生或进行阻止。 |
| 持久性 | 可被用户删除。 | 高度持久。甚至可用于恢复用户已删除的Cookie,重新关联其身份。 |
现在我们已经了解了什么是浏览器指纹以及它为何比Cookie更具持久性,接下来让我们探讨用于创建这些唯一数字标识符的具体技术。
指纹的唯一性源于多种不同信息的组合,其中一些是简单的浏览器特征,而另一些则是高度先进和复杂的。
这些是可通过浏览器收集的基本特征,用于开始构建设备档案。每一条信息与其他信息结合后,都有助于缩小设备身份的范围。
这些方法利用现代Web技术从设备中提取细微但高度可识别的细节。
此技术使用HTML5 Canvas元素绘制隐藏图像或文本。由于显卡、驱动程序和操作系统的差异,每个设备的渲染方式略有不同,因此生成的图像数据可转换为哈希值(一串唯一字符),用作强大的标识符。
作为Canvas指纹识别的一种变体,此方法多次生成相同文本字符串的图像,每次使用预定义列表中的不同字体。各种字体间的细微渲染差异使得可以从生成的图像中提取指标,从而为浏览器创建唯一标识符。
此技术使用WebRTC API(一种实时通信技术)来发现设备的真实本地IP地址,即使设备位于网络地址转换(NAT)路由器之后。将此本地IP与公共IP地址相结合,可创建一个非常稳定且一致的识别因素。
此方法使用AudioContext API处理标准的计算机生成音频信号(如正弦波)。它不会监听设备的麦克风。由于设备独特的硬件和软件堆栈,最终处理后的音频信号会有细微变化。然后对该输出进行哈希处理,以创建唯一标识符。
| 技术 | 工作原理(简化版) | 为何对识别有效 |
|---|---|---|
| Canvas(画布) | 绘制隐藏图像并分析设备间细微的渲染差异。 | 图形硬件、驱动程序和字体的差异使最终图像具有设备唯一性。 |
| Canvas Font(画布字体) | 使用多种不同字体渲染相同文本,以测量渲染不一致性。 | 已安装字体的特定组合及其渲染方式会创建高度独特的环境。 |
| WebRTC | 使用通信API来获取设备的本地网络IP地址。 | 结合本地IP地址和公网IP地址可唯一识别网络中的设备。 |
| AudioContext(音频上下文) | 处理标准音频信号以检测设备音频栈的差异。 | 每台设备上的音频处理硬件和软件会产生略有不同的输出。 |
虽然这些技术中的每一种都能收集到拼图的一部分,但指纹识别的真正力量来自于将它们结合起来;下一节将解释我们如何科学地衡量这种识别能力。
衡量一段信息所提供的唯一识别程度的科学方法称为信息熵,以“比特”为单位。熵值越高,意味着唯一性越强。
一个简单的类比是六面骰子。单次投掷有六种可能的结果,提供约2.58比特的信息。如果一个事件只有两种结果(如抛硬币),则只提供1比特的信息。可能的结果越多,熵值就越高,结果所提供的“信息”也就越多。
当网站收集浏览器特征时,它会减少关于你身份的不确定性(熵)。据估计,从全球75亿人口中唯一识别一个人大约需要33比特的熵。
Panopticlick研究项目清晰地展示了不同的浏览器属性如何贡献识别信息的比特数。
示例:识别信息比特数
| 浏览器特征 | 识别信息比特数 | 识别意义 |
|---|---|---|
| 浏览器插件详情 | 9.14 比特 | 数值越高表明该特征越罕见,对识别唯一性的贡献越大。 |
| 用户代理 | 7.68 比特 | 浏览器与操作系统的这种组合相当少见,具有显著的识别能力。 |
| 画布指纹哈希 | 6.62 比特 | 设备渲染图形的方式是一种强标识符。 |
| 系统字体 | 6.5 比特 | 设备上特定的字体列表具有高度区分性。 |
| 时区 | 2.7 比特 | 虽然本身不具备唯一性,但能显著缩小可能性范围。 |
在Panopticlick测试中,这些值与其他值的组合产生了至少20.37位的识别信息,使得该浏览器在超过1,357,000个受测浏览器中具有唯一性。类似的项目AmIUnique.org也通过向用户展示其浏览器指纹与大型数据库中其他指纹的对比来证明这一点,通常会发现其具有唯一性。
了解到指纹识别是一门可衡量的、降低匿名性的科学后,我们现在可以评估防范它的策略。
对用户而言,最重要的防御原则很简单:设备越接近通用或默认配置,就越难被唯一识别。
许多常见的隐私工具对高级指纹识别无效。
一项分析不同缓解措施效率的研究发现了一个明显的赢家。
其他可能有效但有时不切实际的措施包括:
考虑到这些防御策略,让我们总结这些笔记中的最关键要点。