Proteccion de sintesis de voz en BotBrowser: Listas de voces consistentes con la plataforma
Como BotBrowser controla las listas de voces de SpeechSynthesis para coincidir con la plataforma objetivo del perfil cargado.
El riesgo de privacidad
La API SpeechSynthesis expone una lista de voces de texto a voz disponibles que varia segun el sistema operativo, version del navegador y paquetes de idioma instalados. Esto crea una potencial senal de rastreo. BotBrowser alinea la salida de la lista de voces con la plataforma objetivo del perfil cargado.
Listas de voces controladas por perfil
Cargar un perfil configura automaticamente la lista de voces correcta:
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Si el perfil representa un sistema Windows, la lista de voces contendra las voces esperadas para esa version de Windows, independientemente del sistema operativo host real.
Consistencia multiplataforma
Aqui es donde la proteccion de lista de voces importa mas. Ejecutar un perfil Windows en un servidor Linux normalmente expondria voces nativas de la plataforma, revelando el entorno host real. BotBrowser asegura que la lista de voces coincida con el perfil, manteniendo la identidad de plataforma consistente.
Alineacion con otras senales
Los datos de lista de voces son parte de un panorama de identidad mas amplio. Los perfiles de BotBrowser alinean las listas de voces con navigator.platform, User-Agent y otros indicadores a nivel de SO, para que todas las senales sean consistentes.
Verificacion
Despues de cargar un perfil, verifica la lista de voces en la consola:
function getVoices() {
return new Promise((resolve) => {
const voices = speechSynthesis.getVoices();
if (voices.length > 0) return resolve(voices);
speechSynthesis.onvoiceschanged = () =>
resolve(speechSynthesis.getVoices());
});
}
const voices = await getVoices();
console.log(`Voice count: ${voices.length}`);
voices.forEach(v =>
console.log(`${v.name} (${v.lang}) local: ${v.localService}`)
);
La cantidad de voces, nombres e idiomas deben coincidir con la plataforma objetivo del perfil.
Primeros pasos
- Descarga BotBrowser desde GitHub
- Carga un perfil con
--bot-profile - Verifica
speechSynthesis.getVoices()en la consola para confirmar la alineacion - Compara con otras senales de huella digital para verificar la consistencia multiplataforma