Chrome Privacy Sandbox: что это значит для fingerprinting устройств
Chrome ограничивает userAgent, Client Hints и сторонние cookie. Как tracio.ai сохраняет точность 99,5% несмотря на эти ограничения.
Privacy Sandbox
от Google — самое значимое изменение в браузерном fingerprinting с момента появления
Canvas API
. За последние два года Chrome постепенно сокращал объём информации, доступной через navigator API, ввёл User-Agent Client Hints как замену строке user-agent и полностью отказывается от сторонних cookie.
Для провайдеров fingerprinting устройств это одновременно вызов и возможность. Вызов очевиден: меньше сигналов — меньше идентификационной силы. Возможность же в том, что вендоры, которые адаптируются, получат серьёзное конкурентное преимущество над теми, кто полагался на ныне ограниченные сигналы.
Что изменилось
Наиболее значимое изменение — сокращение строки navigator.userAgent. Chrome теперь возвращает «урезанный» user agent, в котором опущены версия ОС, модель устройства и полная версия браузера. Вместо этого информация доступна через User-Agent Client Hints — но только по явному запросу через заголовок Accept-CH и с учётом политик разрешений.
Для tracio.ai user agent никогда не был высокоразличающим сигналом. Он давал ограниченную различимость нашему отпечатку, а его ценность снижалась по мере того, как Chrome, Edge и Brave сходились к похожим форматам. Наша многоуровневая архитектура идентификации уже относила данные user-agent к «сессионному» сигналу — полезному для первичной идентификации, но не критичному для устойчивости между сессиями.
Наша стратегия адаптации
Ответ tracio.ai на Privacy Sandbox состоит из трёх частей. Во-первых, мы сместили фокус на аппаратные сигналы, которые Chrome не может ограничить, не сломав веб-совместимость: рендеринг canvas, точность шейдеров WebGL, характеристики обработки аудио и параметры GPU. Эти сигналы работают на уровне ниже механизмов приватности браузера — они зависят от физического железа, а не от конфигурации браузера.
Во-вторых, мы вложились в ML-комбинирование сигналов. Когда отдельные сигналы становятся менее различающими, комбинация множества сигналов всё ещё способна дать высокоуникальный отпечаток. Наша модель на базе AI выучивает корреляции сигналов, которые упускает простая конкатенация. Конкретная комбинация из разрешения экрана + device pixel ratio + hardware concurrency + рендерера GPU + частоты дискретизации аудио может быть почти столь же уникальной, как один только canvas-отпечаток.
В-третьих, мы расширили каталог сигналов за пределы традиционных браузерных API. CSS feature queries, метрики рендеринга шрифтов, тайминговые характеристики JavaScript-движка и поведение при компиляции WebAssembly — всё это даёт идентификационные сигналы, которые не затронуты ограничениями Privacy Sandbox.
Влияние на точность
Мы отслеживаем точность нашей идентификации по релизам Chrome, начиная с версии 110. Вот наши цифры:
Chrome 110 (до урезания): точность 99,7%. Chrome 115 (частичное урезание UA): точность 99,6%. Chrome 120 (полное урезание UA): точность 99,5%. Chrome 125 (принудительное применение Client Hints): точность 99,5%.
Падение на 0,2% приходится в основном на кросс-браузерные сценарии mobile Safari → Chrome, где различаются аппаратные сигналы. Для идентификации вернувшихся посетителей в том же браузере — нашего основного сценария — точность оставалась на уровне 99,5% на протяжении всего внедрения Privacy Sandbox.
Что дальше
Google анонсировал планы ограничить дополнительные API, в том числе снизить точность screen.width/height и ограничить перечисление расширений WebGL. Мы готовимся к этим изменениям с помощью альтернативных источников сигналов и улучшенных ML-моделей.
Фундаментальная мысль в том, что многообразие железа — основа fingerprinting устройств, и это многообразие никуда не денется. Пока разные устройства по-разному рендерят пиксели, по-разному обрабатывают аудио и по-разному исполняют код, идентификация устройств будет оставаться осуществимой с высокой точностью. Используемые нами сигналы могут меняться, но лежащий в основе принцип — каждое устройство уникально — сохраняется.