Retour au Blog
Empreinte

Protection des empreintes WebAuthn avec BotBrowser

Comment BotBrowser controle les signaux WebAuthn et FIDO API via une protection d'empreinte basee sur les profils.

Le risque pour la vie privee

Les APIs WebAuthn peuvent reveler des informations sur l'appareil et la plateforme sans permission de l'utilisateur. Ces signaux contribuent a l'empreinte du navigateur lorsqu'ils sont combines avec d'autres donnees.

Comment BotBrowser controle les signaux WebAuthn

BotBrowser gere les signaux WebAuthn au niveau du moteur du navigateur. Lorsqu'un profil est charge avec --bot-profile, les capacites WebAuthn du navigateur correspondent a la plateforme cible du profil.

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

Le profil controle la disponibilite de l'authentificateur de plateforme, le support des algorithmes, le support des extensions et le comportement des types de transport. Toutes les valeurs sont capturees depuis de vrais appareils, assurant la coherence interne.

Coherence multiplateforme

Executez un profil Windows sur Linux. BotBrowser assure que les signaux WebAuthn correspondent a la plateforme du profil, pas a la machine hote.

Coherence avec et sans interface graphique

BotBrowser maintient un comportement WebAuthn coherent en mode avec interface et headless.

Verification

Apres le lancement avec un profil, verifiez que les signaux WebAuthn correspondent a la plateforme attendue :

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();

Les resultats doivent correspondre a la plateforme indiquee par le profil charge.

Pour commencer

  1. Telechargez BotBrowser depuis GitHub
  2. Choisissez un profil du depot de profils
  3. Lancez avec --bot-profile pour appliquer la protection WebAuthn avec tous les autres signaux
  4. Verifiez avec le script ci-dessus que les signaux correspondent a la plateforme du profil
#webauthn#fido#fingerprinting#authentication#privacy