Proteccion de temporizado en BotBrowser: Senales de hardware consistentes
Como BotBrowser controla el temporizado de rendimiento, concurrencia de hardware y memoria del dispositivo para mantener senales de huella digital consistentes.
El riesgo de privacidad
La velocidad de ejecucion de JavaScript y las APIs de reporte de hardware como navigator.hardwareConcurrency y navigator.deviceMemory varian segun el dispositivo. Estas diferencias pueden servir como senal de rastreo. BotBrowser controla todos los valores relacionados con el rendimiento a traves del perfil de huella digital.
Control de hardware basado en perfil
Cargar un perfil aplica valores de hardware consistentes antes de que se ejecute cualquier codigo:
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
navigator.hardwareConcurrency y navigator.deviceMemory reportan los valores del perfil, no el hardware real de la maquina host.
Escala de temporizado de rendimiento
BotBrowser puede ajustar las caracteristicas de temporizado para coincidir con el hardware objetivo del perfil:
chrome --bot-profile="/path/to/profile.enc" \
--bot-time-scale=1.2
El flag --bot-time-scale escala las senales de temporizado para que los benchmarks JavaScript produzcan resultados consistentes con la clase de dispositivo del perfil.
Configuracion deterministica
Combina el control de temporizado con otros flags deterministicos para consistencia total:
chrome --bot-profile="/path/to/profile.enc" \
--bot-time-scale=1.0 \
--bot-noise-seed=42 \
--bot-stack-seed=profile \
--user-data-dir="$(mktemp -d)"
Consistencia de frame rate
El temporizado de requestAnimationFrame se alinea con la configuracion de pantalla del perfil, manteniendo el comportamiento del frame rate consistente con el hardware reportado.
Verificacion
Despues de cargar un perfil:
console.log('Cores:', navigator.hardwareConcurrency);
console.log('Memory:', navigator.deviceMemory);
const start = performance.now();
for (let i = 0; i < 100000; i++) Math.sqrt(i);
console.log('Timing:', performance.now() - start);
Los valores de hardware deben coincidir con la configuracion del perfil.
Primeros pasos
- Descarga BotBrowser desde GitHub
- Carga un perfil con
--bot-profile - Usa
--bot-time-scalepara controlar las caracteristicas de temporizado - Verifica los valores de hardware en sitios de prueba de huellas digitales