Фингерпринтинг конкретного ПК с точностью 99,24%: не спасает даже смена браузера

20a506a2f66c43258d8a11e5a689e331.jpg
Задачи рендеринга на клиентской стороне с целью фингерпринтинга

Практика смены браузера, чтобы сменить личность в интернете, является популярным советом от экспертов и специалистов по безопасности. Согласно опросу, около 70% пользователей установили и регулярно используют по меньшей мере два браузера. Так они надеются избежать слежки и нежелательного распознавания на сайтах.

Группа американских исследователей опубликовала научную работу с описанием более продвинутых техник фингерпринтинга, которые не учитывают версию браузера, но всё равно распознают конкретный ПК с высокой точностью.
Фингерпринтинг — спорная техника идентификации пользователей в интернете в качестве альтернативы обычным кукам и «вечным» кукам. Если пользователь удаляет куки или у него установлены программы для блокировки следящих трекеров, с помощью фингерпринтинга его всё равно можно узнать.

Противники этой техники говорят, что использование фингерпринтинга неэтично, если пользователь явно запретил себя идентифицировать и активно удаляет куки. С другой стороны, некоторые веб-разработчики не видят ничего плохого в том, чтобы распознавать повторных посетителей, если не делать ничего незаконного. Мол, это же для их собственного удобства. Распознавание пользователей (трекинг) тем или иным способом осуществляет более 90% самых популярных сайтов интернета. Фингерпринтинг — самая надёжная техника. Она подразумевает создание уникального «отпечатка» пользовательского компьютера с учётом всех открытых параметров: версии ОС, версии браузера, набора плагинов и расширений к браузеру, списка установленных шрифтов, разрешения экрана и т.д.

До последнего времени при фингерпринтинге всегда учитывалась версия браузера пользователя, но сейчас исследователи пробуют преодолеть это ограничение — и распознавать конкретные ПК независимо от браузера.

В работе группы американских исследователей новая техника именуется CBF, то есть кросс-браузерный фингерпринтинг (Cross-Browser Fingerprinting). Она учитывает характеристики компьютерной системы, которые проявляют себя независимо от версии браузера при рендеринге и обработке графики.

518299a64007432da646a3d7f34baccc.png

Исследователи замеряют время выполнения различных графических операций и используют эту информацию для профилирования конкретного ПК. Например, нанесение растрового изображения на грань куба средствами WebGL с аппаратным видеоускорением выполняется с одинаковой скоростью независимо от браузера.

Вот список некоторых параметров, которые можно использовать для кросс-браузерного фингерпринтинга.

Разрешение экрана. Как выяснилось, если задействовать зуммирование, то можно получить надёжный результат независимо от версии браузера.

Количество ядер процессора. Браузерный параметр hardwareConcurrency выдаёт максимальный порог для конкретного компьютера в операциях Web Worker. Даже если браузер пытается изменить этот параметр (например, Safari делит его на два), можно легко вычислить истинное значение.

AudioContext. Набор задач по обработке звука в операционной системе и звуковой карте. Фингерпринтинг осуществляется путём замера времени выполнения этих операций.

Список шрифтов. Стандартная техника фингерпринтинга, которую исследователи адаптировали для кросс-браузерного варианта. Список установленных шрифтов можно определить по рендерингу глифов в браузере.

Линии, кривые и антиалиасинг. Рендеринг линий, прямых и антиалиасинг в HTML5 Canvas и WebGL выполняется средствами GPU.

Vertex Shader. Ещё один элемент, который рендерится графической подсистемой и графическим драйвером. Он используется при создании теней и освещения в 3D-объектах и задействуется в WebGL.

Fragment Shader. Отслеживается таким же способом, как и Vertex Shader.

Прозрачность в альфа-канале. Выдача этих графических элементов зависит от GPU и драйвера и является одинаковой во всех браузерах.

Установленные письменности (языки). Некоторые письменности вроде китайской, корейской и арабской, требуют установки специальных библиотек.

Моделирование. Рендеринг 3D-моделей.

Освещение и построение теней (Lighting and Shadow Mapping). Ещё одна особенность 3D-графики, связанная с обработкой света и теней.

Камера. Имеется в виду не установленная на компьютере веб-камера, а другая техника, специфичная для 3D-моделирования. Она производит построение 2D-представлений для 3D-объектов.

Отсечение плоскостей (Clipping Planes). Операция WebGL, связанная с вычислением координат 3D-объектов с ограниченной видимостью.

Все перечисленные техники в совокупности позволяют составить довольно надёжный и точный профиль конкретного компьютера. В таблице ниже перечислена надёжность и энтропия, которую обеспечивает каждый метод и все они вместе.

d8ab6bae95664669923661f38e5385f9.png

В совокупности, техники CBF позволяют точно идентифицировать около 99,24% всех компьютеров. Исследователи проводили тесты с использованием браузеров Chrome, Firefox, Edge, IE, Opera, Safari, Maxthon, UC Browser и Coconut.

Техника работает довольно надёжно и отсутствие какого-нибудь одного из параметров в профиле практически не оказывает влияния на результат.

Для анонимной работы в интернете авторы научной работы рекомендуют использовать браузер Tor, который нормализует браузерную выдачу и не даёт возможности осуществить фингерпринтинг такого рода. Правда, и у него есть небольшой грешок: он тоже оставляет пару параметров открытыми, в том числе ширину экрана и AudioContext. Исследователи выразили надежду, что разработчики Tor нормализуют выдачу по этим параметрам тоже.

© Geektimes