浏览器指纹实验室
TLS 指纹
在建立 HTTPS 连接的第一个数据包(ClientHello)里,浏览器就已经把自己支持的加密套件、扩展和椭圆曲线告诉了服务器。把这些字段做成哈希就是 JA3 / JA4;HTTP/2 连接开头的 SETTINGS 帧同样能做成指纹。这一切发生在任何 JavaScript 运行之前,改 UA 改不掉。
检测中…
结果
详细信息
- JA4
- JA3 哈希
- JA3 字符串
- HTTP/2 指纹
- TLS 版本
- 来源
- 观测端点
- 服务器识别的浏览器
- 本站出现次数
- 首次出现
- 同一 JA4 的观测数
- 同类浏览器占比
- 共享此 JA4 的浏览器
这意味着什么
JA3(Salesforce,2017)把 TLS 版本、密码套件、扩展、椭圆曲线和点格式按原顺序拼起来做 MD5,顺序一变哈希就变——Chrome 从 110 起每次连接都随机打乱扩展顺序,所以同一台 Chrome 的 JA3 几乎次次不同。JA4(FoxIO,2023)改为先排序再做截断的 SHA-256,并把 TLS 版本、SNI、ALPN 等写进可读的前缀(如 t13d1516h2),因此同一浏览器家族的 JA4 非常稳定:Chrome、Edge、Brave 等所有 Chromium 浏览器共用一个,Firefox 和 Safari 各有自己的。网站把 JA4 和 UA 对照——UA 说自己是 Firefox,握手却长得像 Chrome,就是换了 UA 的自动化工具或反检测浏览器;本站用自己积累的“JA4 ↔ 浏览器家族”统计做同样的判断。要看到这个指纹,服务器必须亲自终止 TLS:经过 Cloudflare 橙云代理的域名,握手发生在 Cloudflare 边缘,源站只能看到 Cloudflare 自己的指纹(Cloudflare 仅对 Enterprise 客户开放 JA4)。所以本站把 fingerproxy 部署在一个 DNS-only(灰云)的独立主机名上,浏览器跨域请求它一次;端点不可用时退回到第三方 check.ja3.zone,它只能给出 JA3。