Protection des empreintes WebGL : controle de l'identite GPU avec BotBrowser
Comment BotBrowser controle l'identite GPU WebGL et ses parametres via une protection d'empreinte basee sur les profils.
Le risque pour la vie privee
WebGL expose des informations detaillees sur le materiel GPU, incluant le fabricant, le renderer, les extensions supportees et les limites de capacite. Ces informations forment une empreinte distinctive pour le suivi entre sites web.
Comment BotBrowser controle l'identite WebGL
BotBrowser gere les empreintes WebGL au niveau du moteur du navigateur, assurant que toutes les valeurs WebGL forment un profil materiel coherent et realiste.
Identite GPU basee sur les profils
Lors du chargement d'un profil d'empreinte, les parametres WebGL correspondent automatiquement au GPU cible :
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Configuration WebGL explicite
Pour un controle precis, utilisez la configuration WebGL explicite :
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-webgl='{"vendor":"Google Inc.","renderer":"ANGLE (NVIDIA GeForce GTX 1660 SUPER)"}'
Controle GPU multiplateforme
Executez un profil configure pour un GPU NVIDIA sur une machine avec du materiel AMD ou Intel. BotBrowser assure que WebGL rapporte l'identite GPU du profil.
Verification
Apres le lancement, confirmez que les valeurs WebGL correspondent :
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 webgl = await page.evaluate(() => {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
const ext = gl.getExtension('WEBGL_debug_renderer_info');
return {
vendor: gl.getParameter(ext.UNMASKED_VENDOR_WEBGL),
renderer: gl.getParameter(ext.UNMASKED_RENDERER_WEBGL),
};
});
console.log('WebGL:', webgl);
await browser.close();
Pour commencer
- Telechargez BotBrowser depuis GitHub
- Chargez un profil d'empreinte avec
--bot-profile - Utilisez
--bot-config-webglpour une configuration GPU explicite - Verifiez l'identite WebGL avec le script ci-dessus