Назад к блогу
Отпечатки

Защита синтеза речи в BotBrowser: согласованные списки голосов для платформы

Как BotBrowser контролирует списки голосов SpeechSynthesis для соответствия целевой платформе загруженного профиля.

Риск для конфиденциальности

API SpeechSynthesis раскрывает список доступных голосов синтеза речи, который различается в зависимости от операционной системы, версии браузера и установленных языковых пакетов. Это создает потенциальный сигнал отслеживания. BotBrowser выравнивает вывод списка голосов с целевой платформой загруженного профиля.

Списки голосов, контролируемые профилем

Загрузка профиля автоматически настраивает правильный список голосов:

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

Если профиль представляет систему Windows, список голосов будет содержать голоса, ожидаемые для этой версии Windows, независимо от реальной операционной системы хоста.

Кроссплатформенная согласованность

Именно здесь защита списка голосов наиболее важна. Запуск профиля Windows на сервере Linux обычно раскрывает нативные голоса платформы, выдавая реальную среду хоста. BotBrowser обеспечивает соответствие списка голосов профилю, поддерживая согласованность идентичности платформы.

Выравнивание с другими сигналами

Данные списка голосов являются частью общей картины идентичности. Профили BotBrowser выравнивают списки голосов с navigator.platform, User-Agent и другими индикаторами уровня ОС, обеспечивая согласованность всех сигналов.

Проверка

После загрузки профиля проверьте список голосов в консоли:

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}`)
);

Количество голосов, названия и языки должны соответствовать целевой платформе профиля.

Начало работы

  1. Скачайте BotBrowser с GitHub
  2. Загрузите профиль с --bot-profile
  3. Проверьте speechSynthesis.getVoices() в консоли для подтверждения выравнивания
  4. Сравните с другими сигналами отпечатка для проверки кроссплатформенной согласованности
#speech-synthesis#fingerprinting#privacy#tts#voice