返回博客
指纹

BotBrowser 的 WebAuthn 指纹保护

BotBrowser 如何通过基于配置文件的指纹保护控制 WebAuthn 和 FIDO API 信号。

隐私风险

WebAuthn API 无需用户许可即可暴露设备和平台信息。这些信号与其他数据点结合后,可用于浏览器指纹追踪。

BotBrowser 如何控制 WebAuthn 信号

BotBrowser 在浏览器引擎层面管理 WebAuthn 相关信号。当通过 --bot-profile 加载配置文件时,浏览器的 WebAuthn 能力会匹配配置文件的目标平台。

chrome --bot-profile="/profiles/windows-chrome-122.enc" \
       --user-data-dir="$(mktemp -d)"

配置文件控制平台认证器可用性、算法支持、扩展支持和传输类型行为。所有值均从真实设备采集,确保内部一致性。

跨平台一致性

在 Linux 上运行 Windows 配置文件,BotBrowser 确保 WebAuthn 信号匹配配置文件的平台,而非宿主机。

有头/无头模式一致性

BotBrowser 在有头和无头模式下保持一致的 WebAuthn 行为。

验证

启动后,验证 WebAuthn 信号是否匹配预期平台:

const { chromium } = require('playwright-core');

const browser = await chromium.launch({
  executablePath: '/path/to/botbrowser/chrome',
  args: ['--bot-profile=/profiles/macos-chrome-122.enc'],
  headless: true,
});

const page = await (await browser.newContext()).newPage();
const webauthnInfo = await page.evaluate(async () => {
  const results = {};
  results.platformAuth = await PublicKeyCredential
    .isUserVerifyingPlatformAuthenticatorAvailable();
  results.conditionalUI = await PublicKeyCredential
    .isConditionalMediationAvailable();
  return results;
});
console.log('WebAuthn signals:', webauthnInfo);
await browser.close();

结果应匹配加载的配置文件所指示的平台。

开始使用

  1. GitHub 下载 BotBrowser
  2. 配置文件仓库 选择配置文件
  3. 使用 --bot-profile 启动以应用包括 WebAuthn 在内的所有指纹保护
  4. 使用上述脚本验证信号是否匹配配置文件的平台
#webauthn#fido#fingerprinting#authentication#privacy