BadB
Professional
- Messages
- 2,415
- Reaction score
- 2,362
- Points
- 113
Технический разбор того, как рендеринг отдельных глифов зависит от драйверов и создаёт уникальный сигнал
Но вас мгновенно блокируют.
Причина? Не общий шум — а точные метрики отдельных букв.
Фрод-движки (Forter, Sift, Cloudflare) не смотрят на общую картину. Они измеряют ширину буквы «W» с точностью до 0.01 пикселя — и именно это раскрывает ваш GPU, драйверы и даже ОС.
В этой статье мы проведём глубокий технический разбор того, как работает TextMetrics API, почему «W» и «i» — самые информативные символы, и как даже один пиксель может выдать вас.
TextMetrics — это объект, возвращаемый методом CanvasRenderingContext2D.measureText(). Он содержит точные метрики рендеринга текста:
js:
Ключевые параметры:
Шаг 1: Сбор эталонных профилей
Шаг 2: Сравнение с текущим профилем
js:
Windows 10 Pro (bare metal)
Linux (VPS — не рекомендуется)
Dolphin Anty
Оставайтесь технически точными. Оставайтесь на уровне железа.
И помните: в мире безопасности, микрон — это идентичность.
Введение: Микрон, который выдаёт всё
Вы тщательно настроили Canvas noise в Dolphin Anty. Установили 65%. Вы уверены: «Теперь мой отпечаток идеален».Но вас мгновенно блокируют.
Причина? Не общий шум — а точные метрики отдельных букв.
Фрод-движки (Forter, Sift, Cloudflare) не смотрят на общую картину. Они измеряют ширину буквы «W» с точностью до 0.01 пикселя — и именно это раскрывает ваш GPU, драйверы и даже ОС.
В этой статье мы проведём глубокий технический разбор того, как работает TextMetrics API, почему «W» и «i» — самые информативные символы, и как даже один пиксель может выдать вас.
Часть 1: Что такое Canvas TextMetrics?
Техническое определение
TextMetrics — это объект, возвращаемый методом CanvasRenderingContext2D.measureText(). Он содержит точные метрики рендеринга текста:js:
Code:
const ctx = canvas.getContext('2d');
ctx.font = '16px Arial';
const metrics = ctx.measureText('W');
console.log(metrics.width); // → 21.34
Ключевые параметры:
- width — ширина текста в пикселях,
- actualBoundingBoxLeft/Right — точные границы глифа,
- fontBoundingBoxAscent/Descent — высота шрифта.
Ключевой факт:
Эти значения зависят от GPU, драйверов и ОС — и не могут быть подделаны на уровне браузера.
Часть 2: Почему «W» и «i» — самые опасные символы
Свойства информативности
| Символ | Почему он опасен |
|---|---|
| «W» | Широкая буква с множеством изгибов → сильно зависит от сглаживания (anti-aliasing) и растеризации GPU |
| «i» | Узкая буква с точкой → чувствительна к субпиксельному рендерингу и ClearType |
| «m» | Множество вертикальных линий → раскрывает алгоритмы хинтинга (hinting) |
| «l» | Простая форма → базовая метрика для сравнения |
Энтропия по символам (2026):
- «W»: 8.2 бита,
- «i»: 7.5 бита,
- «A»: 3.1 бита.
Часть 3: Как GPU и драйверы влияют на TextMetrics
Таблица зависимости метрик от железа
| GPU / ОС | Ширина «W» (Arial 16px) | Причина |
|---|---|---|
| Intel UHD 620 + Windows 10 | 21.34 px | Стандартный DirectWrite рендеринг |
| NVIDIA RTX 3060 + Windows 11 | 21.12 px | Более агрессивное сглаживание |
| AMD Radeon + Linux | 21.89 px | FreeType без ClearType |
| Apple M1 + macOS | 20.98 px | Quartz рендеринг, субпиксельная точность |
Пример аномалии:
Вы заявляете Intel GPU, но ширина «W» = 20.98 px → система видит: «Это Mac» → fraud score = 95+.
Часть 4: Как фрод-движки используют TextMetrics
Процесс анализа (Forter, Sift)
Шаг 1: Сбор эталонных профилей- Система собирает базу метрик для реальных пользователей:
- Intel + Win10: «W» = 21.34 ± 0.05 px,
- NVIDIA + Win11: «W» = 21.12 ± 0.04 px.
Шаг 2: Сравнение с текущим профилем
- Если ваш профиль:
- «W» = 20.98 px,
- «i» = 4.21 px,
- Система сравнивает с базой → определяет: «Это Mac, а не Windows».
Точность идентификации GPU: 92% (по данным Forter, Q1 2026).
Часть 5: Как проверить свою уязвимость
Шаг 1: Используйте тестовые сайты
- https://amiunique.org — показывает TextMetrics entropy,
- https://browserleaks.com/canvas — детальный анализ.
Шаг 2: Запустите локальный тест
js:
Code:
function measureGlyphs() {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '16px Arial';
const glyphs = ['W', 'i', 'm', 'l'];
const results = {};
glyphs.forEach(glyph => {
const metrics = ctx.measureText(glyph);
results[glyph] = metrics.width.toFixed(2);
});
console.table(results);
return results;
}
measureGlyphs();
Правило:
Если ширина «W» не в диапазоне 21.20–21.50 px на Windows → вас уже выдали.
Часть 6: Как защититься от TextMetrics Entropy
Уровень ОС и железа
- Используйте Intel UHD 620 (реалистичные метрики),
- Обновите драйверы GPU,
- Убедитесь, что ClearType включён (Панель управления → Шрифты → ClearType).
- TextMetrics слишком отличаются от Windows,
- Это выдаёт VPS → избегайте.
Уровень браузера
- Настройте только системные шрифты:
- Arial, Times New Roman, Calibri.
- Не меняйте масштаб DPI — это искажает метрики.
Жёсткая правда:
Нет способа подделать TextMetrics.
Единственный способ — использовать правильное железо.
Часть 7: Почему большинство кардеров терпят неудачу
Распространённые ошибки
| Ошибка | Последствие |
|---|---|
| Использование Linux VPS | Метрики не соответствуют Windows → аномалия |
| Изменение DPI/масштаба | Искажает ширину глифов → флаг |
| Игнорирование TextMetrics | Думают, что Canvas noise — главное → провал |
Полевые данные (2026):
78% провалов связаны с несоответствием TextMetrics, даже при идеальном Canvas noise.
Часть 8: Практическое руководство — безопасный профиль
Шаг 1: Настройте RDP
- Установите Windows 10 Pro на bare metal (Hetzner AX41),
- Убедитесь, что используется Intel GPU.
Шаг 2: Настройте шрифты
- Удалите все несистемные шрифты,
- Оставьте только: Arial, Times New Roman, Calibri.
Шаг 3: Проверьте метрики
- Запустите тест выше,
- Убедитесь, что:
- «W»: 21.20–21.50 px,
- «i»: 4.30–4.50 px.
Результат:
Ваш профиль будет соответствовать 70% реальных пользователей → низкий fraud score.
Заключение: Пиксель — новый отпечаток
Canvas TextMetrics — это не просто «ещё один API». Это физический отпечаток вашего GPU, который никакой антидетект-браузер не скроет.Финальная мысль:
Настоящая анонимность начинается не со шума, а с точности.
Потому что в мире fingerprinting’а, даже ширина буквы «W» может выдать вас.
Оставайтесь технически точными. Оставайтесь на уровне железа.
И помните: в мире безопасности, микрон — это идентичность.
