指纹 软件 C

Client Hints

1. 浏览器指纹中的 Client Hints 是什么?

Client Hints (CH) 是一种基于 HTTP 的机制,允许网站直接从客户端请求特定的设备和浏览器属性,补充(或替换)传统的User-Agent字符串解析。

自 Chrome、Firefox 和 Edge 逐步弃用完整 User-Agent 字符串以来,Client Hints 已成为主要指纹来源,暴露诸如以下数据点:

  • 设备型号与品牌 (Sec-CH-UA-Model, Sec-CH-UA-Platform)
  • 浏览器版本与供应商 (Sec-CH-UA, Sec-CH-UA-Full-Version-List)
  • 屏幕尺寸 (Sec-CH-Viewport-Width, Sec-CH-Width)
  • 首选语言与编码 (Sec-CH-Lang, Sec-CH-Prefers-Reduced-Motion)
  • 硬件状态 (Sec-CH-Save-Data, Sec-CH-DPR 用于显示像素比率)

与 User-Agent 不同,Client Hints 需要明确的服务器许可(通过 Accept-CH 标头),浏览器才会发送它们——尽管如此,许多侵犯隐私的脚本仍通过 JavaScript 或 iframe 技巧强制其发送


2. 平台如何检测并使用 Client Hints 进行指纹识别

现代反机器人和欺诈检测系统主动探测 Client Hints 以构建高熵指纹,检查诸如以下异常:

  1. 版本不一致
  • Sec-CH-UAUser-Agent 字符串不匹配
  • 不可能的浏览器/OS 组合(例如,Chrome 120 在 Windows 7 上)
  1. 标头时序攻击
  • 检测延迟或缺失的标头(伪装中间件的迹象)
  • 跨会话比较 Accept-CH 许可
  1. 硬件/软件相关性
  • Sec-CH-UA-Modelnavigator.hardwareConcurrency
  • Sec-CH-DPRwindow.devicePixelRatio
  1. 强制 Client Hints 提取
  • 使用 <iframe> 或带有 importance: 'high'fetch() 绕过隐私限制
  • 记录默认 vs. 覆盖的提示以检测 VM/容器化环境

Client Hints 对匿名性特别危险,因为它们绕过了传统的 User-Agent 伪装工具——需要深度浏览器集成才能令人信服地操纵。


3. FlashID 如何控制 Client Hints 指纹

FlashID 为用户提供对 Client Hints 标头的细粒度控制,确保每个浏览器配置文件:
✔️ 仅发送许可的提示(匹配其指纹配置文件)
✔️ 保持跨 API 一致性(例如,JS 与 HTTP 标头)
✔️ 通过许可掩码阻止强制提示提取

关键伪装功能包括:

1. Client Hints 白名单

  • 按配置文件选择暴露哪些 Sec-CH-* 标头
  • 使用 Accept-CHCritical-CH 模拟合法提示协商

2. 动态标头生成

  • 自动生成匹配浏览器版本OS设备类型Sec-CH-UA-* 字符串
  • Sec-CH-Viewport-Width 与实际窗口尺寸同步(调整大小时)

3. 反检测保护

  • 通过 JS/iframe 注入阻止强制提示提取
  • 模拟自然的标头发送延迟(~100-300ms)以规避时序检查

4. 硬件/软件对齐

  • 强制以下一致性:
    • Sec-CH-DPRdevicePixelRatio
    • Sec-CH-UA-Modelnavigator.userAgentData
    • Sec-CH-Widthscreen.width

通过在网络层精确覆盖 Client Hints,FlashID 击败下一代指纹识别,同时允许在依赖这些信号进行欺诈评分平台上安全使用多账户。


您可能还喜欢

FlashID blog avatar image
运行多个帐户,不受封禁和屏蔽
免费试用

多账户安全防护,从 FlashID 开始

通过我们的指纹技术,保持不被追踪。

多账户安全防护,从 FlashID 开始