INFO
什么是浏览器指纹,怎么防止被追踪?
FingerprintJS 指纹
浏览器指纹是指通过收集浏览器和设备的一系列信息(如浏览器版本、操作系统、屏幕分辨率、已安装字体、时区、插件、Canvas/WebGL 输出等)拼接成一个几乎唯一的标识,用于识别或追踪同一个设备/浏览器,而不需要 cookie。
指纹不是单一数据点,而是多个属性的组合。常见指纹项包括:
- 用户代理(User-Agent)
- 屏幕分辨率 / 色深
- 时区、语言/区域设置
- 已安装字体与字体渲染差异
- Canvas / WebGL 渲染输出(绘图指纹)
- 音频指纹(通过 audio context)
- 可用硬件并行度 / 核心数
- WebRTC 本地 IP(可能泄露本地地址)
把这些属性拼在一起,许多网站可以把同一浏览器标为「同一份指纹」。
浏览器指纹的特点
- 即使清除 cookie、使用私密窗口,指纹仍可把你「认出来」。
- 用于跨站追踪、广告定向、反作弊/风控、关联账户等。
- 隐私防护难度高:很多属性是浏览器或硬件层面的,被动泄露。
JA3/JA4 指纹
JA3 指纹是一种用于识别 TLS 客户端特征的技术。它通过分析 TLS 握手阶段中客户端发送的 Client Hello 报文中的字段,生成一个可唯一标识客户端实现的哈希指纹。
换句话说:每种浏览器、应用在建立 HTTPS 连接时的 TLS 参数组合不同,这些差异能形成一种「网络层指纹」。
JA3 的组成原理
JA3 从 SSL Version、Cipher Suites、Extensions、Elliptic Curves、Elliptic Curve Formats 五个字段提取数据,连接后做 MD5 哈希生成最终指纹。
JA4 是 JA3 的改进版本,对 Cipher Suites 顺序变化更稳健,并能更好区分轻微修改的实现。