浏览器指纹包含哪些参数
浏览器指纹是网站用来识别用户设备的一组特征集合。平台通过比对这些参数,判断多个账号是否来自同一设备或同一运营者。理解指纹的完整组成,是做好防关联的基础。
一、基础环境参数
这些参数可以直接通过 JavaScript 的 navigator 和 screen 对象获取:
| 参数 | 说明 | 防关联意义 |
|---|---|---|
| User-Agent | 浏览器类型、版本、操作系统 | 高,是最基础的识别字段 |
| 屏幕分辨率 | screen.width / screen.height | 高,标识显示器规格 |
| 可用屏幕尺寸 | screen.availWidth / availHeight | 中,排除任务栏后的可用区域 |
| 色彩深度 | screen.colorDepth | 中,通常为 24 或 30 |
| 时区 | Intl.DateTimeFormat().timeZone | 高,标识用户地理位置 |
| 系统语言 | navigator.language / languages | 中,标识用户语言偏好 |
| 平台 | navigator.platform | 中,Win32 / MacIntel / Linux x86_64 |
| Cookie 启用状态 | navigator.cookieEnabled | 低 |
| 在线状态 | navigator.onLine | 低 |
| 触摸支持 | navigator.maxTouchPoints | 中,区分触控/非触控设备 |
| 设备内存 | navigator.deviceMemory | 中,通常为 2/4/8 |
| CPU 核心数 | navigator.hardwareConcurrency | 中,通常为 2/4/8/16 |
二、渲染特征参数
这些参数通过 Canvas 和 WebGL 的渲染差异生成,唯一性极高。
Canvas 指纹
- 绘制文本的像素级渲染差异
- 不同显卡、驱动、浏览器会产生不同的抗锯齿效果
- 同一设备不同浏览器的结果也可能不同
WebGL 指纹
- GPU 型号(通过
UNMASKED_VENDOR_WEBGL/UNMASKED_RENDERER_WEBGL) - WebGL 参数:最大纹理尺寸、最大顶点属性数、精度格式
- 支持的扩展列表
三、硬件信息参数
| 参数 | 采集方式 | 防关联意义 |
|---|---|---|
| 安装字体列表 | Canvas 测量文本宽度 | 高,每台电脑的字体组合几乎唯一 |
| WebAudio 指纹 | AudioContext 处理差异 | 中,不同声卡/驱动产生不同结果 |
| Client Rects | getClientRects 测量差异 | 中,与字体和渲染相关 |
| 蓝牙信息 | navigator.bluetooth | 低,需用户授权 |
| 电池状态 | navigator.getBattery() | 低,现代浏览器已限制 |
四、网络特征参数
| 参数 | 说明 | 防关联意义 |
|---|---|---|
| IP 地址 | 网络出口地址 | 极高,平台最核心的关联维度 |
| WebRTC 本地 IP | STUN 协议可能泄漏本地 IP | 高,需特别注意 |
| DNS 解析方式 | 是否通过代理解析 | 中,可能导致 DNS 泄漏 |
| TLS / JA3 / JA4 指纹 | TLS 握手特征 | 高,可标识浏览器和网络栈 |
五、行为特征参数
行为特征通常由服务端记录,JavaScript 端也能采集部分:
- 鼠标移动轨迹(速度、加速度、点击位置)
- 键盘输入节奏(按键间隔、误触率)
- 页面滚动模式(滚动速度、停顿位置)
- 触控手势(移动端滑动方向、力度)
参数重要性分级
极高:IP 地址
高:User-Agent、时区、Canvas 指纹、WebGL GPU 信息、字体列表、WebRTC 本地 IP
中:屏幕分辨率、语言、平台、触摸支持、CPU 核心数、内存、TLS 指纹
低:Cookie 状态、在线状态、蓝牙、电池
风险边界
- 参数修改需一致:如果修改了时区为美国但语言保持中文,参数之间的不一致反而会被标记为异常
- 行为特征难以伪造:鼠标轨迹和输入节奏是长期形成的习惯,短期难以改变
- 服务端交叉验证:平台通常同时检测多个维度,单一参数修改不足以避免关联
- 指纹参数≠唯一标识:高唯一性参数组合在一起才具有强识别能力
与 EasyBR 的关系
EasyBR 指纹浏览器支持修改上述大部分参数:
- 基础环境:User-Agent、时区、语言、屏幕参数
- 渲染特征:Canvas、WebGL、字体列表
- 硬件信息:CPU 核心数、内存大小
- 网络特征:通过代理配置实现 IP 隔离,禁用 WebRTC 防止本地 IP 泄漏
了解 JS 如何获取这些参数 | 查看 EasyBR 指纹隔离原理
FAQ
Q: 修改哪些指纹参数对防关联最有效?
A: 优先级排序:IP 地址 > Canvas/WebGL 指纹 > User-Agent > 时区/语言 > 字体列表。IP 地址是平台最核心也最敏感的维度。
Q: 为什么 Canvas 指纹这么重要?
A: 因为 Canvas 渲染结果受显卡驱动、操作系统、浏览器版本多重因素影响,同一硬件在不同浏览器下的结果差异极大,因此唯一性非常高。
Q: 移动端指纹和桌面端有什么区别?
A: 移动端通常缺少部分 WebGL 扩展,字体列表更有限,触摸参数(maxTouchPoints)通常为 5,整体指纹熵值略低于桌面端但仍然足够唯一。
Q: 指纹参数修改后需要保持一致吗?
A: 是的。时区、语言、IP 地理位置应当逻辑一致。例如使用美国 IP 时,时区应设为美国时区,语言可设为 en-US。
Q: 行为特征能被指纹浏览器修改吗?
A: 不能。行为特征由真人操作产生,指纹浏览器无法模拟。建议通过自动化工具(如 EasyBR RPA)或培养不同的操作习惯来降低风险。
延伸阅读
先试 EasyBR,再决定是否扩团队或做更深的定制项目
标准版适合先验证多账号环境、代理和数据迁移;如果你需要更深的业务能力,我们也支持浏览器外包、Chromium 定制、贴牌浏览器与 Android 指纹浏览器开发。