Фингерпринт шрифтов: установленные шрифты вас отслеживают
Браузер и устройство

Фингерпринт шрифтов: установленные шрифты вас отслеживают

Фингерпринт шрифтов обнаруживает установленные шрифты через JavaScript — без cookies, без разрешений. Сочетание шрифтов уникально для каждого устройства.

7 мин чтения·

Фингерпринт шрифтов — техника отслеживания в браузере, которая незаметно считывает список шрифтов, установленных на вашем устройстве, с помощью JavaScript — без cookies, без хранения данных, без возможности удалить следы. Ваша комбинация установленных шрифтов удивительно уникальна, и сайты используют её для идентификации вас между сессиями и на разных сайтах. Посмотрите, какие сигналы раскрывает ваш браузер прямо сейчас на whatsmy.fyi.

TL;DR

Фингерпринт шрифтов работает путём измерения того, как ваш браузер рендерит текст в сотнях различных шрифтов. Если шрифт установлен, текст рендерится с определённой шириной; если нет — браузер возвращается к шрифту по умолчанию с другими размерами. Зондируя 300–700 названий шрифтов за миллисекунды, скрипт может составить детальную карту установленных шрифтов — комбинацию настолько характерную, что она может добавить 10–15 бит энтропии к отпечатку.

Что такое фингерпринт шрифтов?

Фингерпринт шрифтов эксплуатирует тот факт, что каждое устройство поставляется с разным набором шрифтов. Шрифты зависят от вашей ОС, установленных приложений, добавления пользовательских шрифтов и системного языка. Свежая установка macOS поставляется со встроенными гарнитурами Apple. На машине с Windows — свой набор. Пользователь Linux с дизайнерским пакетом может иметь сотни дополнительных шрифтов. Каждая комбинация фактически является отпечатком.

В отличие от cookies, фингерпринт шрифтов не оставляет ничего на устройстве. Он не пишет в локальное хранилище, не устанавливает трекер и не запрашивает разрешение. Он просто считывает данные, уже доступные через стандартные API рендеринга шрифтов браузера. Инструмент Cover Your Tracks от EFF стабильно определяет перечисление шрифтов как значимый вклад в энтропию общего отпечатка браузера.

Как работает фингерпринт шрифтов?

На практике используются два различных технических метода. Оба достигают одной цели — обнаружить, какие шрифты присутствуют — но через разные API браузера.

Метод 1 — Измерение текста CSS (measureText)

Наиболее распространённый подход использует метод measureText() Canvas API для измерения пиксельной ширины строки, отрендеренной в конкретном шрифте. Скрипт рендерит одну и ту же строку трижды: в известном резервном шрифте, в serif и в запрашиваемом шрифте. Если ширина запрошенного шрифта точно совпадает с резервным, шрифт не установлен. Если ширина отличается — шрифт присутствует.

Метод 2 — Пиксельный рендеринг Canvas

Более точный вариант рисует текст на скрытом элементе canvas в целевом шрифте, извлекает пиксельные данные с помощью canvas.toDataURL() и сравнивает пиксельный вывод с выводом известного резервного шрифта. Этот метод сложнее подделать, поскольку фиксирует тонкие различия рендеринга.

// Упрощённый фингерпринт шрифтов через measureText
function detectInstalledFonts(fontList) {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  const testString = 'mmmmmmmmmmlli';
  const baseFonts = ['monospace', 'sans-serif', 'serif'];
  const testSize = '72px';

  const baseWidths = {};
  for (const base of baseFonts) {
    ctx.font = `${testSize} ${base}`;
    baseWidths[base] = ctx.measureText(testString).width;
  }

  const detected = [];
  for (const font of fontList) {
    for (const base of baseFonts) {
      ctx.font = `${testSize} '${font}', ${base}`;
      const width = ctx.measureText(testString).width;
      if (width !== baseWidths[base]) {
        detected.push(font);
        break;
      }
    }
  }
  return detected; // Массив установленных шрифтов
}

Насколько уникален фингерпринт шрифтов?

НаходкаЗначениеИсточник
Энтропия только от списка шрифтов10–15 битИсследование EFF Panopticlick
Среднее количество установленных шрифтов на ПК50–200BrowserLeaks / полевые исследования
Шрифтов, проверяемых типичным скриптом fingerprinting300–700BrowserLeaks Font Test
Время полного сканирования шрифтов< 100 мсBrowserScan / полевые измерения
Сайты из топ-10 000, использующие обнаружение шрифтов~38%Browser Fingerprinting Survey (arXiv)
Пользователи, уникально идентифицированные по шрифтам + 4 другим сигналам> 99%Коммерческие платформы fingerprinting

Кто использует фингерпринт шрифтов в реальной жизни?

Рекламные сети и межсайтовое отслеживание

Платформы рекламных технологий встраивают скрипты обнаружения шрифтов в сторонние рекламные теги и пиксели отслеживания. По мере отказа от сторонних cookies в Chrome, Safari и Firefox фингерпринт шрифтов стал более важным стабильным идентификатором между сессиями.

Обнаружение мошенничества и оценка рисков

Платформы безопасности используют фингерпринты шрифтов для обнаружения захватов аккаунтов. Если список шрифтов возвращающегося пользователя резко отличается от сохранённого профиля — например, потому что злоумышленник использует свежую виртуальную машину с минимальным набором шрифтов — это поднимает сигнал риска.

Законно ли это?

По GDPR фингерпринт шрифтов является обработкой персональных данных. CNIL Франции явно классифицировал fingerprinting браузера — включая перечисление шрифтов — как требующий информированного согласия. По российскому Федеральному закону № 152-ФЗ подобные идентификаторы также могут требовать согласия.

Как защититься от фингерпринта шрифтов?

  • Tor Browser (наиболее сильная защита): Tor ограничивает страницы фиксированным набором шрифтов, поставляемых с браузером. Каждый пользователь Tor представляет идентичный список шрифтов.
  • Brave Browser (рекомендуется для ежедневного использования): Brave рандомизирует список шрифтов, возвращая перемешанное и обрезанное подмножество, которое меняется для каждого сайта и сессии.
  • Firefox с privacy.resistFingerprinting: Firefox ограничивает доступ к шрифтам стандартным набором ОС — пользовательские и установленные приложениями шрифты скрыты.
  • Избегайте установки необычных шрифтов: Каждый дополнительный нестандартный шрифт увеличивает уникальность вашего фингерпринта шрифтов. Дизайнеры и типографы особенно уязвимы.
  • VPN — но понимайте его ограничения: VPN не влияет на список шрифтов браузера. Проверьте работу VPN на whatsmy.fyi.

Часто задаваемые вопросы

Работает ли фингерпринт шрифтов в режиме инкогнито?

Да. Режим инкогнито предотвращает сохранение истории, cookies и данных сессии — но не меняет установленные шрифты. Фингерпринт шрифтов идентичен в приватном окне и обычном.

Сколько шрифтов проверяет скрипт fingerprinting?

Типичные скрипты проверяют от 300 до 700 названий шрифтов. Список включает системные шрифты (Arial, Times New Roman), шрифты, специфичные для ОС (San Francisco в macOS, Segoe UI в Windows), шрифты от Adobe Creative Cloud, Microsoft Office, а также шрифты для русского, китайского, арабского и других языков. Яндекс Браузер, как и другие браузеры, может иметь специфические системные шрифты.

Удаляет ли очистка cookies мой фингерпринт шрифтов?

Нет. Фингерпринт шрифтов получается из реестра шрифтов ОС, а не из данных, хранимых в браузере. Очистка cookies, удаление локального хранилища или переустановка браузера не влияет на список шрифтов.

Связанные статьи

Проверьте свой IP-адрес, местоположение и оценку конфиденциальности — мгновенно.

Без логов. Без слежки. Без внешних API.

Запустить проверку →

Похожие статьи

Фингерпринт шрифтов: установленные шрифты вас отслеживают | whatsmy.fyi