Фингерпринт по глубине цвета считывает screen.colorDepth и screen.pixelDepth — два свойства браузера, раскрывающих количество бит на пиксель, используемых дисплеем — и включает это значение в уникальный профиль браузера. Одна строка JavaScript, никаких разрешений, работает во всех браузерах с 2015 года. Посмотрите, что раскрывает ваш браузер прямо сейчас на whatsmy.fyi.
TL;DR
screen.colorDepth возвращает целое число — почти всегда 24 или 32 — описывающее, сколько бит дисплей использует для представления цвета каждого пикселя. Само по себе несёт скромную энтропию (~0,87 бит), но в сочетании с разрешением экрана, devicePixelRatio, аппаратным параллелизмом, часовым поясом и данными GPU вносит вклад в отпечаток с точностью идентификации индивидуальных устройств более 99%. В отличие от cookies, не может быть удалён, заблокирован баннерами или очищен с историей браузера.
Что такое фингерпринт по глубине цвета?
Фингерпринт по глубине цвета — одна из техник в более широкой практике fingerprinting браузера. Каждый браузер раскрывает два тесно связанных свойства в интерфейсе Screen:
screen.colorDepth— количество бит для представления одного значения цвета в буфере цвета устройства вывода (сам дисплейный модуль).screen.pixelDepth— количество бит для представления одного пикселя в видеопамяти, включая биты прозрачности. На практике всегда равноcolorDepthв современных браузерах.
Значения в реальном мире
| Значение colorDepth | Что означает | Кто возвращает |
|---|---|---|
24 | Стандартный 8-битный цвет на канал (sRGB) | Подавляющее большинство устройств |
32 | 24-битный цвет + 8-битный альфа-канал | Некоторые конфигурации Windows; исторически IE/Edge |
30 | 10-битный цвет на канал (Wide Color / HDR) | MacBook Pro с широким цветовым охватом; некоторые Windows HDR |
48 | 16-битный цвет на канал (профессиональная графика) | Редко; рабочие станции с профессиональными дисплеями |
16 или 8 | Устаревшее или удалённое рабочее место | Виртуальные машины, RDP-сессии, очень старые устройства |
Почему нестандартные значения более узнаваемы
Примерно 95% браузеров сообщает colorDepth = 24. Это создаёт большой анонимный набор — но с отрицательным следствием: любой браузер, не сообщающий 24, немедленно является необычным.
Дисплей с wide color (30-бит) на MacBook Pro с Liquid Retina XDR — значительно менее распространённая конфигурация. Устройства с глубиной 30 встречаются реже, чем одно на тысячу браузеров, немедленно сужая пул идентификации.
HDR-дисплеи и fingerprinting
По мере распространения HDR-дисплеев браузеры начинают раскрывать дополнительные сигналы через CSS-медиазапросы. Комбинация screen.colorDepth = 30 с dynamic-range: high и конкретным devicePixelRatio может очень точно идентифицировать класс устройства.
Кто использует это в реальной жизни?
Коммерческие платформы fingerprinting
Fingerprint.com, ThreatMetrix и аналогичные платформы включают colorDepthкак один из десятков сигналов в своих моделях идентификации устройств.
Обнаружение виртуальных машин
Виртуальные машины и среды RDP часто сообщают нестандартные значения глубины цвета (16-бит или меньше), поскольку виртуализированные видеодрайверы не всегда правильно имитируют аппаратный дисплей.
Как защититься?
- Tor Browser: Нормализует все значения экрана, включая глубину цвета, до стандартных значений.
- Firefox с
privacy.resistFingerprinting: Нормализуетscreen.colorDepthдо стандартного значения. - Brave Browser: Применяет Farbling ко многим свойствам экрана.
- VPN ограничения: VPN не влияет на свойства дисплея. Проверьте работу VPN на whatsmy.fyi.
Часто задаваемые вопросы
Что такое «глубина цвета»?
Глубина цвета — количество бит, используемых для представления цвета каждого пикселя на дисплее. 24-битный цвет означает 8 бит для красного, 8 для зелёного и 8 для синего (RGB 8-8-8), что даёт 16,7 миллиона возможных цветов.
Почему colorDepth важен для fingerprinting?
Сам по себе он редко бывает уникальным — большинство устройств имеет значение 24. Его ценность в том, что нестандартные значения (30, 32, 16) сигнализируют о специфической конфигурации аппаратного обеспечения, немедленно сужая пул идентификации.
Работает ли это в режиме инкогнито?
Да. Глубина цвета дисплея не меняется в режиме инкогнито — это аппаратное свойство.
Связанные статьи
- Фингерпринт экрана: разрешение и DPR идентифицируют устройство — более широкий контекст свойств экрана в fingerprinting
- Что такое отпечаток браузера? Как сайты отслеживают вас без cookies — полное руководство по всем сигналам отпечатков
- Что такое Canvas Fingerprinting? Как сайты отслеживают без cookies — как рендеринг GPU создаёт уникальный идентификатор


