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

Защита отпечатков WebGPU: контроль идентичности GPU с BotBrowser

Как BotBrowser контролирует информацию адаптера WebGPU, функции и ограничения через защиту отпечатков на основе профилей.

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

WebGPU, преемник WebGL, раскрывает детали адаптера GPU, наборы функций и аппаратные ограничения. Эти значения могут использоваться для отслеживания по отпечаткам.

Как BotBrowser контролирует идентичность WebGPU

BotBrowser управляет сигналами WebGPU на уровне движка браузера, обеспечивая согласованность значений WebGPU с загруженным профилем.

Контроль WebGPU на основе профилей

При загрузке профиля информация адаптера WebGPU, функции и ограничения автоматически совпадают:

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

Явная конфигурация WebGPU

Используйте флаг --bot-config-webgpu для точного контроля:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-webgpu='{"vendor":"nvidia","architecture":"ampere","device":"geforce rtx 3080"}' \
       --user-data-dir="$(mktemp -d)"

Согласованность WebGL и WebGPU

BotBrowser обеспечивает согласованность идентичности GPU между API WebGL и WebGPU.

Кроссплатформенный контроль GPU

Запустите профиль с дискретным NVIDIA GPU на машине с интегрированной графикой Intel. BotBrowser обеспечивает отчет обоих API об идентичности GPU профиля.

Проверка

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

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

const page = await (await browser.newContext()).newPage();
const gpuInfo = await page.evaluate(async () => {
  const adapter = await navigator.gpu.requestAdapter();
  const info = await adapter.requestAdapterInfo();
  return {
    vendor: info.vendor,
    architecture: info.architecture,
    device: info.device,
    features: [...adapter.features],
    canvasFormat: navigator.gpu.getPreferredCanvasFormat(),
  };
});
console.log('WebGPU:', gpuInfo);
await browser.close();

Начало работы

  1. Скачайте BotBrowser с GitHub
  2. Загрузите профиль с --bot-profile
  3. Используйте --bot-config-webgpu для явной конфигурации WebGPU
  4. Проверьте согласованность идентичности GPU между WebGL и WebGPU
#webgpu#fingerprinting#gpu#privacy#graphics