1. Что такое отпечаток шрифтов
Отпечаток шрифтов — это техника перечисления и идентификации списка шрифтов, доступных в системе пользователя, с помощью следующих методов:
- API
document.fonts
- Согласованность рендеринга размера/ширины шрифта (измерение времени или пикселей)
- Проверка шрифтов через Flash или CSS
- Определение поддержки шрифтов с использованием
Canvas
и измерение различий в отображении текста
Хотя этот метод не привязан к конкретному API (в отличие от WebGL или Battery), доступность шрифтов может сильно различаться на разных устройствах, что делает их слабым индикатором уникальности пользователя.
Он часто используется в сочетании с другими отпечатками (Canvas, User-Agent, ОС, язык) для повышения точности сопоставления браузеров, особенно в:
- Системах KYC и идентификации
- Обнаружении мультиаккаунтинга
- Выявлении сговора веб-сессий
2. Как платформы определяют доступность шрифтов
Антифрод- и ad-tech-системы часто используют один или несколько из следующих методов:
document.fonts.keys()
иcheck()
: Определяет, поддерживается ли шрифт и готов ли к использованию в браузере.- Рендеринг шрифтов в Canvas: Рисование текста с определенными шрифтами и измерение результата позволяет косвенно идентифицировать шрифты.
- Обнаружение внедрения системных шрифтов: Некоторые эвристики выявляют, были ли шрифты добавлены инструментами вроде Puppeteer, по названиям или доступности семейств.
- Подгрузка и время загрузки шрифтов: Время, когда шрифт становится “доступным” или “недоступным”, может использоваться для выявления следов автоматизации браузера.
- Проверка CSS
@font-face
: Системы могут загружать известные веб-шрифты и анализировать, как браузер обрабатывает их отображение или время загрузки, чтобы определить внутренние настройки.
Веб-сайты могут создавать производный профиль на основе шрифтов для усиления уникальности устройства, обнаруживая аномалии, такие как:
- “Слишком много системных шрифтов” или “Отсутствие шрифтов”
- Шрифты, не соответствующие местоположению или заявленной ОС
- Необычные или заблокированные шрифты (например, вспомогательные шрифты, используемые в спуфинге)
3. Как FlashID обеспечивает безопасность и согласованность отпечатков шрифтов
FlashID контролирует все аспекты поведения рендеринга шрифтов, чтобы профили браузеров выглядели согласованными, реалистичными и уникальными.
Вот как FlashID маскирует или имитирует шрифты:
- Изоляция списка шрифтов: Каждый профиль браузера имеет собственный список шрифтов, независимый от основной системы. Скрытые системные шрифты могут имитироваться для отражения любого региона или ОС.
- Алгоритм подмены текста в Canvas: FlashID точно изменяет ширину текста и значения fallback глифов при рендеринге Canvas, чтобы имитировать определенные списки шрифтов — даже в headless- или защищенных профилях.
- Контроль
document.fonts
:
- Симулированные сигнатуры
FontFaceSet
- Управление возвращаемыми значениями
check()
- Имитация времени загрузки / задержек шрифтов
- Обфускация названий шрифтов: FlashID может переименовывать системные шрифты (например, “Arial” в “Calibri”), чтобы избежать детерминированного сопоставления, сохраняя реалистичное распределение и поведение рендеринга.
- Имитация шрифтов других ОС: FlashID позволяет использовать списки шрифтов, имитирующие другие операционные системы, чтобы разорвать корреляции между платформой и шрифтами.
- Рандомизация порядка шрифтов: Порядок запросов шрифтов рандомизируется для каждого экземпляра браузера, чтобы избежать повторной идентификации через статистику или шаблоны доступности.
- Защита от отсутствия рисования глифов: Некоторые платформы обнаруживают автоматизацию браузера, наблюдая, происходит ли рисование глифов в фоновом режиме. FlashID эмулирует корректное поведение рисования и разрешения шрифтов в реальном времени.
Обеспечивая полный контроль над методами создания отпечатков шрифтов, FlashID гарантирует, что профили браузеров остаются защищенными от идентификации через пассивный анализ шрифтов и модели сговора на бэкенде.
Рекомендуемое Чтение