返回博客
指纹

BotBrowser 性能计时保护:一致的硬件信号

BotBrowser 如何控制性能计时、硬件并发数和设备内存,保持一致的指纹信号。

隐私风险

JavaScript 执行速度和硬件报告 API(如 navigator.hardwareConcurrencynavigator.deviceMemory)因设备而异。这些差异可以作为追踪信号。BotBrowser 通过指纹配置文件控制所有性能相关值。

基于配置文件的硬件控制

加载配置文件会在任何页面代码运行之前应用一致的硬件值:

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

navigator.hardwareConcurrencynavigator.deviceMemory 报告配置文件中的值,而不是宿主机器的实际硬件。

性能计时缩放

BotBrowser 可以调整计时特征以匹配配置文件的目标硬件:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-time-scale=1.2

--bot-time-scale 标志缩放性能计时信号,使 JavaScript 基准测试产生与配置设备类型一致的结果。

确定性配置

将计时控制与其他确定性标志结合以实现完全一致性:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-time-scale=1.0 \
       --bot-noise-seed=42 \
       --bot-stack-seed=profile \
       --user-data-dir="$(mktemp -d)"

帧率一致性

requestAnimationFrame 计时与配置文件的显示配置对齐,保持帧率行为与报告的硬件一致。

验证

加载配置文件后:

console.log('Cores:', navigator.hardwareConcurrency);
console.log('Memory:', navigator.deviceMemory);

const start = performance.now();
for (let i = 0; i < 100000; i++) Math.sqrt(i);
console.log('Timing:', performance.now() - start);

硬件值应与配置文件匹配。

开始使用

  1. GitHub 下载 BotBrowser
  2. 使用 --bot-profile 加载配置文件
  3. 使用 --bot-time-scale 控制计时特征
  4. 在指纹检测网站验证硬件值
#performance#timing#fingerprinting#privacy#cpu