Назад к блогу
Отпечатки

Защита отпечатков WebAuthn с BotBrowser

Как BotBrowser контролирует сигналы WebAuthn и FIDO API через защиту отпечатков на основе профилей.

Риск для конфиденциальности

API WebAuthn могут раскрывать информацию об устройстве и платформе без разрешения пользователя. Эти сигналы способствуют снятию отпечатков браузера при сочетании с другими данными.

Как BotBrowser контролирует сигналы WebAuthn

BotBrowser управляет сигналами WebAuthn на уровне движка браузера. При загрузке профиля через --bot-profile возможности WebAuthn браузера соответствуют целевой платформе профиля.

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

Профиль контролирует доступность аутентификатора платформы, поддержку алгоритмов, поддержку расширений и поведение типов транспорта. Все значения получены с реальных устройств, обеспечивая внутреннюю согласованность.

Кроссплатформенная согласованность

Запустите профиль Windows на Linux. BotBrowser обеспечивает соответствие сигналов WebAuthn платформе профиля, а не хост-машине.

Согласованность с интерфейсом и без

BotBrowser поддерживает согласованное поведение WebAuthn как в обычном, так и в headless-режиме.

Проверка

После запуска с профилем убедитесь, что сигналы 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. Скачайте BotBrowser с GitHub
  2. Выберите профиль из репозитория профилей
  3. Запустите с --bot-profile для применения защиты WebAuthn вместе со всеми остальными сигналами
  4. Проверьте скриптом выше, что сигналы соответствуют платформе профиля
#webauthn#fido#fingerprinting#authentication#privacy