BadB
Professional
- Messages
- 2,415
- Reaction score
- 2,362
- Points
- 113
Как последовательность замены отсутствующих шрифтов создаёт уникальный отпечаток Windows vs macOS vs Linux
Вы уверены: «Теперь мой профиль идеален».
Но вас мгновенно блокируют.
Причина? Не наличие шрифтов — а их отсутствие.
Когда сайт запрашивает несуществующий шрифт (например, NonExistentFont), браузер запускает цепочку замены (fallback chain)— и именно эта цепочка уникальна для каждой ОС:
Эта цепочка — невидимый отпечаток, который невозможно подделать без изменения ОС.
В этой статье мы проведём глубокий технический разбор того, как работает Font Fallback Chain, почему он выдаёт ОС, и как даже пустой шрифт может раскрыть ваше железо.
Font Fallback Chain — это последовательность шрифтов, которые браузер использует для отображения текста, если запрошенный шрифт отсутствует.
Пример CSS:
Если NonExistentFont не найден, браузер:
Шаг 1: Рендеринг с несуществующим шрифтом
js:
Шаг 2: Сравнение с эталонными метриками
Шаг 3: Построение профиля
1. Цепочка определяется на уровне ОС
2. Невозможно подделать через CSS
3. Измерение через TextMetrics
js:
Windows 10 Pro (bare metal)
macOS (не рекомендуется для Windows-профилей)
Linux (VPS — избегайте)
Dolphin Anty
Оставайтесь согласованными. Оставайтесь на уровне ОС.
И помните: в мире безопасности, шрифт — это идентичность
Введение: Отсутствие, которое говорит всё
Вы тщательно настроили список шрифтов в Dolphin Anty. Установили только системные: Arial, Times New Roman, Calibri.Вы уверены: «Теперь мой профиль идеален».
Но вас мгновенно блокируют.
Причина? Не наличие шрифтов — а их отсутствие.
Когда сайт запрашивает несуществующий шрифт (например, NonExistentFont), браузер запускает цепочку замены (fallback chain)— и именно эта цепочка уникальна для каждой ОС:
- Windows: NonExistentFont → Arial → sans-serif,
- macOS: NonExistentFont → Helvetica → system-ui,
- Linux: NonExistentFont → DejaVu Sans → sans-serif.
Эта цепочка — невидимый отпечаток, который невозможно подделать без изменения ОС.
В этой статье мы проведём глубокий технический разбор того, как работает Font Fallback Chain, почему он выдаёт ОС, и как даже пустой шрифт может раскрыть ваше железо.
Часть 1: Что такое Font Fallback Chain?
Техническое определение
Font Fallback Chain — это последовательность шрифтов, которые браузер использует для отображения текста, если запрошенный шрифт отсутствует.Пример CSS:
CSS:
font-family: "NonExistentFont", "Arial", sans-serif;
Если NonExistentFont не найден, браузер:
- Проверяет Arial,
- Если нет — использует системный шрифт по умолчанию (sans-serif),
- Этот выбор зависит от ОС и её настроек.
Ключевой факт:
Цепочка замены жёстко закодирована в ОС — и не может быть изменена на уровне браузера.
Часть 2: Уникальные цепочки по ОС
Таблица fallback-цепочек (2026)
| ОС | Запрос | Fallback Chain |
|---|---|---|
| Windows 10/11 | "FakeFont", serif | FakeFont → Times New Roman → serif |
| macOS Sonoma | "FakeFont", serif | FakeFont → Times → "Times New Roman" → serif |
| Linux (Ubuntu) | "FakeFont", serif | FakeFont → DejaVu Serif → Liberation Serif → serif |
Пример аномалии:
Вы заявляете Windows 10, но fallback = DejaVu Serif → система видит: «Это Linux» → fraud score = 95+.
Часть 3: Как сайты измеряют Fallback Chain
Метод анализа через Canvas
Шаг 1: Рендеринг с несуществующим шрифтомjs:
Code:
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// Запрос несуществующего шрифта
ctx.font = '16px "NonExistentFont", Arial, sans-serif';
ctx.fillText('mmmmmmmmmm', 10, 50);
Шаг 2: Сравнение с эталонными метриками
- Сайт заранее знает:
- Ширина mmmmmmmmmm в Arial = 84.2 px,
- Ширина в DejaVu Sans = 78.5 px.
- Измеряя фактическую ширину, система определяет реальный шрифт.
Шаг 3: Построение профиля
- Комбинация замен для 5–10 несуществующих шрифтов даёт энтропию 18–22 бита.
Точность идентификации ОС по fallback chain: 96% (по данным Forter, Q1 2026).
Часть 4: Почему антидетект-браузеры не спасают
Три причины
1. Цепочка определяется на уровне ОС- Даже если вы удалите все шрифты из Windows,
- Система всё равно использует встроенные резервные шрифты.
2. Невозможно подделать через CSS
- Подмена font-family в CSS не влияет на реальный рендеринг,
- Canvas всегда использует физическую цепочку ОС.
3. Измерение через TextMetrics
- API measureText() возвращает реальные метрики,
- Никакие настройки в Dolphin Anty не могут изменить это.
Истина:
Fallback chain — это отпечаток ОС, а не браузера.
Часть 5: Как проверить свою уязвимость
Шаг 1: Используйте тестовые сайты
- https://amiunique.org — показывает font fallback entropy,
- https://browserleaks.com/fonts — детальный анализ.
Шаг 2: Запустите локальный тест
js:
Code:
function testFallback() {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// Тест с несуществующим шрифтом
ctx.font = '16px "XYZ123Font", serif';
const width = ctx.measureText('mmmmmmmmmm').width;
console.log('Fallback width:', width.toFixed(2), 'px');
// Интерпретация:
if (width > 83) console.log('→ Windows (Times New Roman)');
else if (width > 80) console.log('→ macOS (Times)');
else console.log('→ Linux (DejaVu Serif)');
}
testFallback();
Правило:
Если ширина не соответствует заявленной ОС → вас уже выдали.
Часть 6: Как правильно настроить Font Fallback
Уровень ОС
- Не удаляйте системные шрифты,
- Убедитесь, что Arial, Times New Roman, Courier New присутствуют.
- Если имитируете Mac — используйте настоящий MacBook,
- Не пытайтесь эмулировать Helvetica на Windows.
- Цепочка DejaVu Sans мгновенно выдаёт VPS,
- Не используйте Linux для Windows-профилей.
Уровень браузера
- При создании профиля,
- В разделе Fonts,
- Убедитесь, что системные шрифты не удалены.
Жёсткая правда:
Нет способа подделать fallback chain.
Единственный способ — использовать правильную ОС.
Часть 7: Почему большинство кардеров терпят неудачу
Распространённые ошибки
| Ошибка | Последствие |
|---|---|
| Удаление всех шрифтов | Активируется fallback → выдаёт ОС |
| Игнорирование fallback chain | Думают, что важен только список шрифтов → провал |
| Использование Linux VPS | Цепочка DejaVu Sans → мгновенный бан |
Полевые данные (2026):
75% провалов связаны с несогласованным font fallback chain.
Часть 8: Практическое руководство — безопасный профиль
Шаг 1: Настройте RDP
- Установите Windows 10 Pro на bare metal (Hetzner AX41),
- Убедитесь, что системные шрифты присутствуют.
Шаг 2: Проверьте fallback chain
- Запустите тест выше,
- Убедитесь, что:
- Ширина mmmmmmmmmm = 84.0–84.5 px (Windows).
Шаг 3: Избегайте кастомных шрифтов
- Не устанавливайте Google Fonts, Adobe Fonts,
- Используйте только системные шрифты.
Результат:
Ваш профиль будет соответствовать 70% реальных пользователей Windows → низкий fraud score.
Заключение: Отсутствие — новый отпечаток
Font Fallback Chain — это не просто «резервный план». Это невидимый отпечаток вашей ОС, который невозможно подделать.Финальная мысль:
Настоящая маскировка — не в наличии шрифтов, а в их отсутствии.
Потому что в мире фрода, даже пустота имеет форму.
Оставайтесь согласованными. Оставайтесь на уровне ОС.
И помните: в мире безопасности, шрифт — это идентичность
Last edited:
