跳至正文
指纹识别

TLS Fingerprinting

TLS 指纹(TLS fingerprinting)是一种通过检查 TLS 握手参数(尤其是 ClientHello 消息)来识别发起 HTTPS 连接的软件的技术。由于不同的 TLS 库和客户端会以各具特征的方式声明加密套件、扩展和版本,即使没有任何应用层数据,握手过程也会暴露底层的客户端。

工作原理

TLS Fingerprinting 的工作原理

当客户端打开一个 HTTPS 连接时,它会发送一个 ClientHello,列出其所支持的 TLS 版本、有序的加密套件、所支持的扩展、椭圆曲线和签名算法。这些选择由 TLS 库及其配置决定,因此为每种客户端栈构成了一种可识别的模式。

服务端或中间盒会捕获这些字段,并将其编码为一枚紧凑的指纹,历史上采用 JA3 之类的方案,近来则采用 JA4。该指纹概括了握手过程,使得来自同一客户端软件的连接产生相同的值,而与 IP 地址或 user agent 无关。

TLS 指纹在 HTTP 层之下运作,这使得应用程序很难令人信服地伪造它。工具可以随意设置任意 user agent 字符串,但其 TLS 握手仍会反映它所使用的真实库,从而暴露所声称浏览器与实际客户端之间的不一致。

由于它捕获的是客户端栈而非设备本身,TLS 指纹在区分个体方面比浏览器指纹更为粗糙,但在对客户端类型分类和发现自动化方面表现出色。

为何重要

TLS Fingerprinting 对欺诈防护为何重要

TLS 指纹在机器人和自动化检测方面威力强大,因为脚本工具和库所具有的 TLS 签名与主流浏览器不同。当一个请求声称自己是 Chrome,却呈现出某个脚本库的 TLS 握手时,这种矛盾就是有力的欺诈指标。由于运作在网络层,它能够抵御那种可以击败更简单检查的请求头伪造。

使用 TRACIO

TRACIO 如何应对

TRACIO 将包括 TLS 握手特征在内的网络层信号,作为其服务端 Smart Signals 和机器人检测的一部分。这补充了客户端识别,能够识破那些模仿浏览器请求头、却无法复制真正浏览器 TLS 栈的自动化。结合 IP Intelligence,它有助于将真实浏览器与工具区分开来,无论所声称的 user agent 为何。

常见问题

常见问题

自信识别每一台设备

从每月 2,500 次 API 调用的免费方案开始。无需信用卡。