Retour au Blog
Empreinte

Protection des types MIME et codecs avec BotBrowser

Comment BotBrowser controle les reponses de capacites multimedia a travers les profils d'empreinte pour des signaux de codecs et types MIME coherents.

Le risque pour la vie privee

Les navigateurs supportent differents ensembles de formats multimedia, types MIME et codecs selon la version du navigateur, le systeme d'exploitation et le materiel. Ces capacites peuvent etre interrogees sans permissions via des APIs comme MediaSource.isTypeSupported() et canPlayType(), creant un signal de suivi.

La solution BotBrowser

BotBrowser gere les reponses de capacites multimedia au niveau du moteur du navigateur, assurant qu'elles correspondent au profil d'empreinte charge.

Capacites multimedia basees sur le profil

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

Le profil definit quels codecs sont supportes, ce que canPlayType() retourne pour chaque format et si l'acceleration materielle est rapportee. Toutes les requetes de capacites multimedia retournent des resultats coherents avec la plateforme cible du profil.

Coherence entre les signaux

BotBrowser assure que les capacites multimedia s'alignent avec les autres signaux du profil :

  • Le support des codecs correspond au systeme d'exploitation du profil
  • Les indicateurs d'acceleration materielle s'alignent avec le GPU du profil
  • Le support des types MIME correspond a la version du navigateur du profil

Reponses realistes

Plutot que de desactiver les requetes de capacites multimedia (ce qui est detectable), BotBrowser retourne des reponses realistes qui correspondent a une configuration de navigateur reelle.

Verification

Apres avoir charge un profil, verifiez les capacites multimedia :

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 mediaInfo = await page.evaluate(() => {
  const codecs = [
    'video/mp4; codecs="avc1.42E01E"',
    'video/webm; codecs="vp9"',
    'video/mp4; codecs="av01.0.01M.08"',
    'audio/mp4; codecs="mp4a.40.2"',
    'audio/webm; codecs="opus"',
  ];

  const video = document.createElement('video');
  return codecs.map(c => ({
    codec: c,
    isTypeSupported: typeof MediaSource !== 'undefined'
      ? MediaSource.isTypeSupported(c) : null,
    canPlayType: video.canPlayType(c),
  }));
});

console.log('Capacites multimedia:', JSON.stringify(mediaInfo, null, 2));

Verifications cles :

  1. Les resultats de MediaSource.isTypeSupported() correspondent a la plateforme cible
  2. Les valeurs de retour de canPlayType() sont appropriees pour la plateforme
  3. Les resultats sont coherents apres rechargement de la page

Pour commencer

  1. Telechargez BotBrowser depuis GitHub
  2. Chargez un profil d'empreinte avec --bot-profile
  3. La protection des capacites multimedia est geree automatiquement par le profil
  4. Verifiez que le support des codecs correspond a la plateforme cible du profil
#mime#codec#media#fingerprinting#privacy