Какие данные браузера используются для фингерпринтинга?

Cloned Boy

Professional
Messages
876
Reaction score
698
Points
93
Фингерпринтинг браузера — это технология идентификации устройств на основе уникальной комбинации параметров. Вот полный список данных, которые могут собираться для создания цифрового отпечатка:

1. Основные параметры браузера​

КатегорияКонкретные данныеПример значения
User AgentБраузер, версия, ОС, тип устройства.Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
ЯзыкПредпочитаемый язык системы.ru-RU, en-US
Временная зонаЧасовой пояс.Europe/Moscow
Разрешение экранаШирина × высота (включая внутреннее окно браузера).1920×1080 → 1848×984 (с учётом масштабирования).

2. Расширенные параметры​

2.1. Графические и аппаратные данные​

  • WebGL:
    • Рендеринг графики (характеристики GPU, модель видеокарты).
    • Пример: ANGLE (NVIDIA GeForce RTX 3080 Direct3D11 vs_5_0 ps_5_0).
  • Canvas:
    • Скрытое изображение, отображаемое с небольшими различиями на разных устройствах.
    • Пример хэша Canvas: a1b2c3d4e5....
  • WebGL Vendor/Renderer: Производитель GPU и драйверов (Intel Inc. vs NVIDIA Corporation).

2.2. Шрифты​

  • Список установленных шрифтов (через document.fonts).
  • Пример: Arial, Times New Roman, Calibri, ... (до 50+ шрифтов).

2.3. Аудиоконтекст​

  • Анализ обработки звука (AudioContext.getOutputTimestamp()).
  • Даже одинаковые устройства могут давать микроскопические различия.

3. Сетевые и протокольные данные​

ПараметрКак используется
IP-адресНе всегда уникален (NAT, VPN), но важен для геолокации.
HTTP-заголовкиAccept-Language, Sec-CH-UA (User Agent Client Hints).
Куки и хранилищеНаличие/отсутствие localStorage, sessionStorage.

4. Поведенческие метрики​

  • Тайминги: Скорость выполнения JavaScript-кода.
  • Паттерны скролла/кликов: Как пользователь взаимодействует с страницей.
  • Мышь/тачскрин: Ускорение движения курсора, сила нажатия.

5. Пример кода для сбора данных (легальный)​

JavaScript:
// Проверка WebGL
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
console.log(gl.getParameter(gl.VENDOR));  // "NVIDIA Corporation"

// Список шрифтов (не все браузеры разрешают)
const fontList = [];
for (const font of document.fonts) {
fontList.push(font.family);
}
console.log(fontList);

// Canvas fingerprinting
const canvasFingerprint = () => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.fillText('Hello, Fingerprint!', 10, 10);
return canvas.toDataURL();
};
console.log(canvasFingerprint());

6. Как защититься от фингерпринтинга?​

Для пользователей:​

  • Браузеры с защитой:
    • Firefox (включить resistFingerprinting в about:config).
    • Brave (блокирует Canvas API по умолчанию).
  • Расширения:
    • CanvasBlocker (подмена Canvas-данных).
    • Chameleon (маскировка User Agent).

Для разработчиков:​

  • Используйте User Agent Client Hints вместо navigator.userAgent.
  • Минимизируйте сбор данных (соответствие GDPR).

7. Как сайты используют эти данные?​

  1. Антифрод (банки, платежи):
    • Если у пользователя резко меняется WebGL или Canvas → подозрение.
  2. Персонализация рекламы:
    • Таргетинг без куки (Google FLoC, теперь Topics API).
  3. Борьба с ботами:
    • Боты не могут точно эмулировать аппаратные параметры.

Вывод​

Фингерпринтинг включает десятки параметров — от User Agent до поведения мыши. Полностью избежать его невозможно, но защитные инструменты снижают точность идентификации.

Для глубокого изучения:

Хотите разобрать конкретный метод (например, как работает AudioContext в отпечатке)? Или интересуют легальные альтернативы для анонимности?
 
Top