跳至正文
学习

什么是设备指纹识别?

设备指纹识别是一种技术,它将浏览器或设备可观测的属性——例如 canvas 渲染、已安装字体、屏幕属性和硬件提示——组合成一个独特的标识符,从而在没有 cookie 或登录的情况下识别该浏览器或设备,并保持持久。

由于该标识符是从设备本身计算得出、而非存储在设备上,指纹识别即便在隐身模式下、在清除 cookie 之后,或跨越彼此独立的浏览会话,也能识别回访访客。这种持久性使它成为欺诈防范、机器人检测和匿名分析的基石——同时也是它招致隐私审视的原因。本指南涵盖指纹识别如何工作、它使用哪些信号、它有多稳定,以及如何负责任地应用它。

确切地说,什么是设备指纹识别?

设备指纹识别是读取设备暴露的一组属性、并将它们哈希成一个极可能对该设备唯一的标识符的过程。它是一种无状态识别:不向设备写入任何东西,因此用户无从清除。

这个术语既涵盖浏览器指纹识别——在特定机器上识别特定的浏览器实例——也涵盖更宽泛的设备指纹识别,后者跨越原生应用,并组合客户端与网络信号。在通常用法中,两者高度重叠,其底层理念是相同的:从设备本质上是什么来派生身份。

这种方法的力量来自熵。任何单个属性——比如浏览器语言——都被数以百万计的人共享。但两三打属性的联合组合,会以高概率把人群缩窄到单台设备,正如关于一个人的少数几条独立事实就能唯一地识别出他一样。

设备指纹识别如何工作?

指纹识别的工作方式是:在浏览器中收集设备属性,将它们传输到服务器,并把该组合哈希成一个可与此前见过的设备进行匹配的稳定标识符。其精妙之处在于容忍变化而不丢失身份。

收集通过普通的 web API 进行。一段脚本请求浏览器渲染图形、枚举字体、报告屏幕尺寸,并描述其音频和硬件栈。每个回答都反映那台机器上操作系统、浏览器版本、GPU、驱动和配置的特定组合,这正是让联合结果具有独特性的原因。

匹配才是幼稚实现的失败之处。设备的属性会随时间漂移——一次浏览器更新会改变版本字符串,一台新显示器会改变分辨率。精确哈希会把漂移后的设备当作全新设备。因此,稳健的指纹识别把信号分成稳定性层级并使用模糊比对,这样某个信号的小变化不会破坏由其余信号构建起来的身份。

哪些信号构成一份设备指纹?

一份设备指纹由渲染信号、硬件与显示信号、配置信号,以及——在服务器端——网络信号装配而成。最有价值的是那些高熵且高稳定性的信号。

渲染信号是主力。当浏览器绘制文本或 3D 图形时,GPU、驱动和字体光栅化器上的细微差异会产生对设备特定的像素输出,用户看不见,却可由脚本读取。这些信号既高度独特,又在多个会话间惊人地稳定。

配置与硬件信号补全画像,而服务器端网络信号——客户端无法歪曲的——则将其锚定,抵御伪造。

  • Canvas 指纹:把文本和形状渲染到 HTML5 canvas 的像素级输出,由 GPU 和字体光栅化塑造。
  • WebGL 指纹:GPU 渲染器和厂商字符串、支持的扩展,以及着色器精度。
  • 音频指纹:设备音频栈处理一段生成波形的方式上的细微差异。
  • 字体、屏幕分辨率、色深、时区、语言和硬件并发数。
  • 服务器端 TLS/JA4 指纹,以及揭示真实客户端的 HTTP 头特征。

一份设备指纹有多稳定、多唯一?

一份构建良好的指纹足够稳定,可在数月内识别同一台设备;也足够唯一,可将其与人群中几乎所有其他设备区分开——前提是实现能够容忍浏览器带来的例行漂移。

稳定性是信号之间的一道光谱。像 GPU 渲染这样源自硬件的信号,只在物理机器改变时才改变。像字体这样的软件信号偶尔改变。像 user agent 这样的会话信号,每次浏览器更新都会改变。把所有信号都当作同等永久,是经典的错误;按预期稳定性对它们加权,才能在一次更新中保持身份完好。

唯一性来自信号的组合,且它是优雅退化而非灾难性崩溃。即便两台设备恰好在若干属性上一致,额外的信号也会把它们分开。工程目标是同时保持误合并率(两台设备被看作一台)和误拆分率(一台设备被看作两台)都很低——这是一种固有的张力,而模糊匹配正是为管理它而设计的。

指纹识别与 cookie 有何不同?

cookie 是您存储在设备上的标识符;指纹是您从设备计算出的标识符。这唯一的区别解释了为什么指纹能在那些会摧毁 cookie 的操作——清除存储、进入隐身、切换到隐私浏览——中存活下来。

cookie 是站点写入、浏览器在下次访问时交回的一个令牌。它只在用户保留它时才有效,而现代浏览器和隐私工具让丢弃 cookie 变得毫不费力且往往自动。对欺诈者而言,删除 cookie 是第一也是最容易的规避。

指纹没有什么可删除的。用户必须改变底层硬件和软件才能改变它,这正是指纹对那些在每次尝试之间重置每一份存储状态的对手依然有效的原因。代价是指纹是概率性的,需要更多工程才能保持稳定,而 cookie 只是一个简单的精确令牌。

设备指纹识别有什么用途?

凡是无状态、持久的识别很重要之处,都会用到设备指纹识别:欺诈与滥用防范、机器人检测,以及尊重隐私的分析与个性化。每种应用都从不同角度依托同一种持久性属性。

在欺诈与滥用中,指纹识别揭露多账户操作、促销滥用和支付欺诈团伙背后共享的设备,并驱动设备级速率限制,使自动化登录攻击无法靠轮换 IP 逃脱。由于标识符持久存在,一台设备无法伪装成一百个全新用户。

在分析与个性化中,指纹识别识别回访访客,用于归因、频次控制和购物车挽回而无需登录——恰恰在传统追踪正在消失的后 cookie 时代里有用。在每种情形中,价值都相同:对一台设备的稳定把手,而设备无法轻易将其甩掉。

人们如何试图规避指纹识别?

规避分为两个阵营:随机化信号,让指纹每个会话都变;以及伪造信号,让一台设备冒充许多台。两者都会留下可检测的痕迹,这正是有韧性的系统监视不一致、而非信任任何单一信号的原因。

反检测浏览器和隐私扩展试图毒化高熵信号——向 canvas 输出添加噪声、伪造 WebGL 字符串,或轮换 user agent。破绽是内部不一致:一份伪造画像往往声称一种没有任何真实设备会产出的属性组合,而客户端声称与服务器观测到的现实之间的错配会将它出卖。

另一种做法是堆叠基础设施——住宅代理、虚拟机、自动化框架——让许多会话看起来彼此独立。这里,服务器端信号做了客户端信号做不到的工作,因为网络路径和 TLS 特征远比浏览器属性更难以令人信服地伪装。对两者务实的防御,都是跨众多信号的关联,这样击败其中一个并不会击败整体。

设备指纹识别合法且符合隐私合规吗?

当用于欺诈防范等合法目的时,设备指纹识别在多数司法辖区都是合法的,但像 GDPR 这样的隐私法规将其视为需要合法依据、透明度和适当保障措施的个人数据处理。合规关乎您如何部署它,而非该技术是否被允许。

监管者通常将用于广告的侵入性跨站追踪——它面临严格的同意要求——与安全和欺诈防范用途区分开来,后者往往可以依托正当利益依据。决定性因素是目的、比例性、对用户的透明度,以及数据最小化实践,例如哈希化信号和限制保留。

在实践中,合规的部署把指纹识别限定于它所服务的安全目的,记录该目的,避免把数据挪作无关的追踪,并履行适用法律的透明度义务。技术与合规并不冲突;招致风险的是粗心的使用。

对本页某个术语不熟悉?以上每个概念都在我们的 设备智能术语表中有定义。

想要一个简明定义?请在术语表中查看 浏览器指纹

常见问题

常见问题

为能在清除 cookie 后依然存活的设备做指纹识别

TRACIO 从 130+ 信号构建稳定的设备身份,其模糊匹配能在浏览器更新和隐身模式中存活。免费开始,在您自己的设备上测试它。