浏览器指纹识别:工作原理与测试方法

浏览器指纹识别:工作原理与测试方法

浏览器指纹识别是网站和跟踪公司在线识别您的最持久方式之一。与Cookie不同,它不需要在您的设备上存储任何内容。相反,它会悄悄收集有关您的浏览器、操作系统和硬件的数十个普通细节,组合成一个可能惊人独特的配置文件。本文解释了指纹识别的工作原理、背后的技术、隐私权衡,以及如何测试自己的浏览器以了解跟踪者所见。

什么是浏览器指纹识别?

浏览器指纹识别:工作原理与测试方法 - 什么是浏览器指纹识别?

浏览器指纹识别:工作原理与测试方法 - 什么是浏览器指纹识别?.

浏览器指纹识别是为了识别目的而系统性地收集有关远程浏览器或设备的信息。当您访问网站时,脚本可以读取各种属性:您的浏览器类型和版本、操作系统、屏幕分辨率、已安装字体、时区、语言设置等。单独来看,每个信号都很弱。但组合起来,它们通常能形成一个足够独特的标识符,将您与数百万其他访客区分开来。

结果有时被称为“数字指纹”或“设备指纹”。它在浏览会话中保持相对稳定,即使在隐身模式下、清除Cookie后或阻止第三方Cookie时也能工作。这种持久性使得指纹识别对欺诈预防平台具有吸引力,同时也让隐私倡导者感到担忧。

浏览器指纹识别的工作原理

浏览器指纹识别:工作原理与测试方法 - 浏览器指纹识别的工作原理

浏览器指纹识别:工作原理与测试方法 - 浏览器指纹识别的工作原理.

指纹识别基于两个原则:熵和持久性。

  • 熵衡量一组信号包含的识别信息量。单个数据点如“Windows上的Chrome”被数百万人共享。但加上您的确切浏览器版本、屏幕尺寸、已安装字体、显卡渲染行为和键盘布局,会大大缩小范围。
  • 持久性意味着标识符应能承受小的变化。一个好的指纹识别系统会根据信号的持久性来权衡。如果您更新了一种字体,但保持相同的硬件和时区,指纹仍应能识别您。

脚本在页面加载时在后台运行。它们不会改变您的体验,也不需要权限。收集的属性被哈希成访客ID,可以在访问之间进行比较,在某些情况下还可以跨网站进行比较。

常见的浏览器指纹识别技术

浏览器指纹识别:工作原理与测试方法 - 常见的浏览器指纹识别技术

浏览器指纹识别:工作原理与测试方法 - 常见的浏览器指纹识别技术.

有几种技术被广泛用于收集高熵信号。理解它们有助于解释指纹测试的结果。

1. Canvas指纹识别

Canvas指纹识别使用HTML5 canvas元素绘制隐藏图像或文本字符串,然后读回渲染的像素。由于渲染取决于显卡、GPU驱动程序、操作系统和浏览器,不同机器之间的输出会有细微差异。生成的哈希是一个与硬件相关的强信号。

2. WebGL指纹识别

WebGL暴露有关GPU及其驱动程序的信息。脚本可以查询渲染器和供应商字符串,然后运行类似于Canvas指纹识别的渲染测试。这种技术通常能揭示确切的图形硬件型号和驱动程序版本。

3. 字体检测

您系统上安装的字体具有惊人的识别性。脚本可以检查数百种常见和不常见字体是否存在。可用字体的组合在用户之间差异足够大,可以作为可靠的指纹组件。

4. AudioContext指纹识别

音频指纹识别通过浏览器的音频堆栈处理听不见的声音,并测量硬件和软件如何改变波形。声卡、驱动程序和浏览器实现的差异会产生独特的签名。

5. 屏幕和窗口属性

屏幕分辨率、颜色深度、设备像素比以及浏览器窗口的大小都有助于指纹识别。在移动设备上,这些值通常与特定型号紧密相关。

6. API和头部分析

HTTP头部如User-Agent、Accept-Language和Accept-Encoding会揭示浏览器和区域设置。JavaScript API暴露额外信息,包括时区、平台、触摸支持和已安装插件。客户端提示是一种较新的机制,允许服务器直接请求特定设备详细信息。

指纹识别与Cookie的对比

浏览器指纹识别:工作原理与测试方法 - 指纹识别与Cookie的对比

浏览器指纹识别:工作原理与测试方法 - 指纹识别与Cookie的对比.

Cookie和指纹识别以不同方式解决相同问题。

特性 Cookie 浏览器指纹识别
存储位置 存储在用户设备上 无需存储
用户控制 可以轻松阻止或清除 难以阻止或清除
在隐身模式下工作 通常不 是
持久性 清除后丢失 能经受大多数清理
同意可见性 通常在Cookie横幅中显示 通常对用户不可见

Cookie是显式的:一个小文件被放置在您的浏览器中,您可以检查或删除它。指纹是隐式的:它们是从您加载页面时暴露的属性计算出来的。这就是为什么即使指纹识别用于合法的安全目的,也感觉更具侵入性。

网站为何使用浏览器指纹识别

指纹识别不仅是跟踪工具。它支撑着许多欺诈预防和安全系统。

  • 账户接管预防: 如果登录尝试来自从未与该账户关联的浏览器指纹,系统可以要求额外验证。
  • 支付欺诈检测: 电子商务平台使用指纹识别来识别清除Cookie或切换账户的重复欺诈者。
  • 机器人和爬虫缓解: 自动化流量通常具有不一致或缺失的浏览器信号。指纹识别有助于区分机器人和人类。
  • 会话一致性: 某些服务使用指纹识别来检测会话劫持,即Cookie被盗并从不同浏览器使用。

根据GDPR和CCPA等法规,将指纹识别用于安全和欺诈预防可能符合合法利益。将其用于广告定向或跨站点行为分析通常需要同意和披露。

浏览器指纹识别的隐私风险

阻止欺诈的同一技术也可能用于监视。由于指纹不需要同意横幅或存储文件,用户通常不知道自己被指纹识别。当指纹通过常见的跟踪脚本在多个网站间共享时,它就成为跨站点标识符,跟随您在网上移动。

这引发了几个担忧:

  • 隐形跟踪: 用户无法像清除Cookie那样轻松查看或删除指纹。
  • 跨站点分析: 稳定的指纹让数据经纪人能够将您在不同无关网站的访问联系起来。
  • 匿名性降低: 即使是VPN等隐私工具也无法隐藏浏览器指纹。VPN会更改您的IP地址,但您的指纹可能保持不变,使跟踪者能够重新连接您的会话。
  • 歧视性做法: 指纹可用于价格歧视、定向诈骗或排除某些设备类型访问内容。

注重隐私的浏览器如Tor和Brave包含内置对策。Tor标准化许多浏览器属性,使所有用户看起来相似,而Brave阻止已知的指纹识别脚本并提供指纹保护模式。

如何测试您的浏览器指纹

测试是了解您暴露程度的第一步。一个好的指纹测试会显示哪些信号可见、它们有多独特,以及您的隐私工具是否有效。

免费测试工具如EFF的Cover Your Tracks和学术项目AmIUnique会分析您的浏览器并报告您的指纹在其数据集中是否独特。这些测试对于一次性检查很有用,但并非总能显示VPN用户或测试特定泄漏向量的完整情况。

对于更完整的诊断,BrowserScan提供了一套免费的基于浏览器的隐私测试。其浏览器指纹分析验证您的指纹看起来有多真实和独特,而其DNS和WebRTC泄漏测试检查您的VPN是否意外暴露了您的真实IP地址。该平台还包括带地理位置和代理检测的IP查找、端口扫描器和用户代理解析器。由于一切都在浏览器中运行,无需安装,这是在更改隐私设置前后审计您的配置的实用方法。

运行指纹测试时,注意三件事:

  1. 唯一性: 工具是否说您的指纹是独特的还是与许多其他人共享?
  2. 稳定性: 您的指纹在访问之间是否保持不变,还是不可预测地变化?
  3. 泄漏信号: 尽管使用VPN或代理,您的真实IP、时区或语言是否暴露?

如何减少浏览器指纹识别

完全指纹保护很困难,因为浏览器必须暴露一些信息才能正常工作。但是,您可以减少唯一性并使跟踪不那么可靠。

使用隐私强化浏览器

Tor浏览器是最强大的选择,因为它故意让所有用户看起来尽可能相似。Brave和Firefox在严格隐私设置下也能阻止许多指纹识别脚本并随机化某些信号。

安装指纹阻止扩展

诸如注重隐私的内容拦截器等扩展可以阻止已知的指纹识别脚本加载。一些浏览器附加组件还会伪造或随机化Canvas、WebGL和字体数据。请注意,激进的伪造可能会破坏网站,并且本身可能被检测到。

保持浏览器更新

更新会修补已知的指纹识别绕过并改进内置保护。过时的浏览器通常具有更独特的指纹,因为它与当前主流版本不同。

限制已安装字体和插件

每个额外的字体或插件都会增加熵。删除不常用的字体并禁用不必要的插件可以减少跟踪器可以收集的信号数量。

结合VPN——并验证它

VPN隐藏您的IP地址,但不会改变您的浏览器指纹。为了防止跟踪者关联您的会话,您需要网络级隐私和浏览器级指纹保护。连接VPN后,运行DNS和WebRTC泄漏测试以确认您的真实IP未暴露。在不同VPN服务器之间保持相同的指纹仍可用于识别您。

每次更改后测试

隐私设置以不可预测的方式交互。更改浏览器、安装扩展或调整VPN设置后,再次运行指纹测试。比较结果,看看您的唯一性是否降低,或者新设置是否引入了泄漏。

有关组合这些措施的分步方法,请参阅我们关于构建现实数字隐私计划的指南。

浏览器指纹识别与设备指纹识别

尽管这些术语经常互换使用,但它们指的是不同范围。

  • 浏览器指纹识别识别特定的浏览器安装。同一设备如果运行Chrome、Firefox和Edge,可以有多个浏览器指纹。
  • 设备指纹识别旨在识别物理设备,无论使用哪个浏览器或应用。这在移动应用中更常见,因为硬件标识符、传感器数据和操作系统级属性等信号可用。

设备指纹识别通常更具侵入性,因为它可以经受浏览器更改和应用重新安装。浏览器指纹识别在开放网络上更常见,因为它只需要JavaScript和HTTP头部。

相关阅读

常见问题解答

浏览器指纹识别合法吗?

在大多数司法管辖区,指纹识别本身并不违法。重要的是如何使用它。根据GDPR和CCPA,将指纹用于安全和欺诈预防可能被允许作为合法利益,而将其用于广告跟踪或分析通常需要同意和披露。

VPN能防止浏览器指纹识别吗?

不能。VPN隐藏您的IP地址并加密您的流量,但您的浏览器仍会暴露相同的指纹信号。坚定的跟踪者可以使用您的指纹在不同IP地址之间关联您的会话。将VPN与减少指纹的浏览器设置结合使用。

隐身或私密浏览模式能阻止指纹识别吗?

不能。私密浏览防止本地存储(如Cookie和历史记录)持久化,但不会阻止指纹识别脚本。隐身模式下的指纹通常与正常浏览时的指纹几乎相同。

浏览器指纹识别有多准确?

准确性取决于收集的信号数量和质量。AmIUnique等研究项目发现,绝大多数浏览器具有独特或接近独特的指纹。结合机器学习的商业系统可以实现非常高的识别率,尤其是在随时间跟踪指纹时。

我能完全阻止浏览器指纹识别吗?

完全阻止很困难,因为浏览器必须揭示一些信息才能正确渲染网页。最有效的方法是使用Tor等隐私强化浏览器、限制已安装字体和插件,并阻止已知的指纹识别脚本,从而减少唯一性。即便如此,仍会留下一些残余信号。

Canvas和WebGL指纹识别有什么区别?

两者都是基于渲染的技术。Canvas指纹识别绘制2D内容并读回像素,而WebGL指纹识别使用3D图形渲染,还可以查询GPU供应商和渲染器字符串。WebGL通常揭示更具体的硬件信息。

结论

浏览器指纹识别是一把双刃剑。它支持欺诈预防、账户安全和机器人检测,但也使大多数用户从未注意到的隐形跨站点跟踪成为可能。由于指纹不依赖Cookie,它们能经受隐身模式、Cookie清除甚至VPN连接。

最实际的回应不是恐慌,而是测量。运行指纹测试,看看您的浏览器有多独特,然后进行有针对性的更改:切换到隐私强化浏览器、限制字体和插件,并验证您的VPN没有泄漏识别数据。像BrowserScan这样的工具通过在一个基于浏览器的平台中结合指纹分析、DNS和WebRTC泄漏测试以及IP诊断,使这变得容易。有关指纹识别背后技术的更深入背景,Fingerprint博客提供了有用的技术概述。

指纹识别不太可能消失,但知情的用户可以减少暴露。了解跟踪者所见是控制它的第一步。