Protection de l'empreinte de polices avec BotBrowser
Comment BotBrowser controle les listes de polices et les metriques de texte au niveau du moteur du navigateur pour des signaux de polices coherents entre les plateformes.
Le risque pour la vie privee
Les polices installees et les metriques de rendu de texte creent un signal de suivi. La combinaison des polices disponibles varie selon le systeme d'exploitation, les applications installees et les packs de langue. Les APIs de mesure de texte produisent egalement des resultats specifiques a la plateforme en raison des differences dans les moteurs de rendu de polices.
La solution BotBrowser
BotBrowser controle les signaux lies aux polices au niveau du moteur du navigateur, pas par injection JavaScript ou blocage d'API.
Listes de polices coherentes avec la plateforme
Quand un profil cible une plateforme specifique, BotBrowser rapporte les polices appropriees independamment du systeme d'exploitation hote :
chrome --bot-profile="/path/to/windows-profile.enc" \
--user-data-dir="$(mktemp -d)"
Les requetes d'enumeration de polices retournent le jeu de polices correct pour la plateforme cible.
Alignement des metriques de polices
Les APIs de mesure de texte retournent des metriques coherentes avec le moteur de rendu de polices de la plateforme cible :
- Resultats de
measureText() - Dimensions de decalage des elements avec des polices specifiques
- Mesures de boite englobante des polices
Pas de blocage necessaire
Contrairement aux extensions qui bloquent l'acces aux polices (ce qui est en soi detectable), BotBrowser permet l'utilisation normale des APIs de polices tout en controlant les resultats. Les sites web fonctionnent normalement, mais les signaux correspondent au profil.
Verification
Apres avoir charge un profil, verifiez la coherence des polices :
const { chromium } = require('playwright-core');
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/windows-profile.enc',
],
headless: true,
});
const page = await (await browser.newContext()).newPage();
const fontCheck = await page.evaluate(() => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '72px monospace';
const fallbackWidth = ctx.measureText('mmmmm').width;
ctx.font = '72px Arial, monospace';
const arialWidth = ctx.measureText('mmmmm').width;
return {
arialAvailable: arialWidth !== fallbackWidth,
arialWidth,
fallbackWidth,
};
});
console.log('Verification des polices:', fontCheck);
Verifications cles :
- La disponibilite des polices correspond a la plateforme cible
- Les metriques de texte ne revelent pas le systeme d'exploitation hote reel
- Pas d'avertissements "font access blocked"
Pour commencer
- Telechargez BotBrowser depuis GitHub
- Chargez un profil correspondant a votre plateforme souhaitee avec
--bot-profile - Testez la coherence des polices avec des outils de test d'empreinte
- Lisez le guide des polices pour plus de details