返回博客
指纹

噪声种子可重复性:使用 BotBrowser 实现确定性指纹

BotBrowser 的 --bot-noise-seed 标志如何在不同会话间产生一致、可重复的 Canvas、WebGL 和 Audio 指纹。

随机噪声的问题

向 Canvas、WebGL 和 Audio 输出添加随机噪声的隐私工具每次会话都会创建新的指纹。这破坏了会话一致性,因为变化的指纹可能比稳定的指纹更引人注目。

使用 --bot-noise-seed 实现确定性噪声

BotBrowser 通过 --bot-noise-seed 标志解决此问题。它使用固定种子驱动确定性随机数生成器,相同的种子始终产生相同的指纹输出。

chrome --bot-profile="/path/to/profile.enc" \
       --bot-noise-seed=98765 \
       --user-data-dir="$(mktemp -d)"

使用此配置:

  • Canvas 渲染每次会话返回相同的像素数据
  • WebGL 输出在重启后保持一致
  • Audio 处理每次产生相同的波形
  • 指纹哈希日复一日保持稳定

与配置文件结合

噪声种子与 --bot-profile 配合使用。配置文件定义硬件特征(屏幕分辨率、GPU 型号、平台信息),噪声种子控制渲染变化。

# 会话 1:周一
chrome --bot-profile="/profiles/windows-chrome-122.enc" \
       --bot-noise-seed=42 \
       --user-data-dir="/data/session-a"

# 会话 2:周三(相同身份)
chrome --bot-profile="/profiles/windows-chrome-122.enc" \
       --bot-noise-seed=42 \
       --user-data-dir="/data/session-a"

两个会话产生相同的指纹。

Canvas 噪声控制

使用 --bot-config-noise-canvas 独立切换 Canvas 噪声:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-noise-seed=42 \
       --bot-config-noise-canvas=true

多账户使用

为每个账户分配不同的种子以获得独特、稳定的身份:

# 账户 A
chrome --bot-profile="/profiles/profile-a.enc" \
       --bot-noise-seed=1001 \
       --user-data-dir="/data/account-a"

# 账户 B
chrome --bot-profile="/profiles/profile-b.enc" \
       --bot-noise-seed=2002 \
       --user-data-dir="/data/account-b"

每个账户都有永不漂移的一致指纹。

验证

  1. 使用配置文件和噪声种子启动 BotBrowser
  2. 访问 CreepJS 并记录 Canvas、WebGL 和 Audio 哈希
  3. 关闭并使用相同的配置文件和种子重新启动
  4. 确认哈希完全匹配

开始使用

  1. GitHub 下载 BotBrowser
  2. 配置文件仓库 选择配置文件
  3. 添加 --bot-noise-seed 加固定整数值
  4. 使用指纹测试工具验证跨会话一致性
#noise-seed#deterministic#fingerprinting#reproducibility#privacy