Кто не спрятался, я не виноват: Как работают технологии создания цифрового отпечатка и почему от них сложно скрыться
Неприятно, когда за вами следят. Но если вид следующего за вами по пятам человека заставит вас понервничать, то к слежке онлайн мы уже привыкли и часто сами приглашаем файлы-«шпионы» в свой ПК.
Не cookie едиными
Как только вы заходите на сайт, ваш браузер подгружает с него небольшие текстовые файлы. Они сохраняются на жёстком диске компьютера и содержат информацию о том, что вы делали на сайте, где вы находитесь, на каком языке говорите, какие товары добавили в корзину и тд. Браузер отправит эти файлы обратно на сайт, когда вы откроете его в следующий раз. «А, так это мой старый знакомый Жак из Марселя!» — подумает тот, открываясь вам на французском языке. Эти небольшие файлы называются cookies, они могут размещаться как сайтом, так и его партнёрами. Последних нетрудно узнать: это рекламные баннеры и кнопки «мне нравится» от соцсетей, их файлы-cookie называются сторонними. Рекламодатели размещают баннеры на нескольких сайтах сразу, чтобы отслеживать вашу сетевую активность и персонализировать рекламу.
Cookie можно не принимать, но они буквально напрашиваются к вам в гости. Проще и быстрее кликнуть «Принять все», чем переходить в «Больше опций» и настраивать их вручную. Вас могло это бесить, злить, но поделать ничего вы не могли.
Но времена меняются. Пользователи стали всё чаще задумываться о своей конфиденциальности, а законодатели и даже бенефициары данной технологии — техногиганты типа Google — ограничивать возможности cookies. В соответствии с европейским общим регламентом по защите данных (General Data Protection Regulation, GDPR) и директивой ePrivacy владельцы сайтов не могут использовать файлы cookie, кроме тех, которые необходимы для функционирования сайта, без согласия пользователей. Google предложил упразднить cookies и заменить их технологией Topics — попытка компании примирить интересы рекламодателей с интересами защиты конфиденциальности. Спойлер: попытка оказалось неудачной. В Европе пользователи Google рядом с кнопкой «Принять все» уже видят Reject All («Отклонить все»). Наконец, можно очистить файлы cookie на компьютере, сёрфить в интернете в режиме инкогнито, использовать браузер с автоматической блокировкой сторонних cookies, сесть на диету и отказаться есть новые «печеньки» (от англ. cookie — печенье). Так что же получается, теперь вы анонимны? Всё не так просто.
Cookies — это только верхушка айсберга, и даже если они в недалеком будущем канут в лету, то идентифицировать вас по-прежнему не составит труда. Cookies — это только часть вашего цифрового следа («digital footprint»). Надёжнее вычислить пользователя по свойствам его веб-браузера и операционной системы, то есть по его фингерпринту (от англ. fingerprint — «отпечаток пальца»). Почему надёжнее? Мы редко меняем настройки своей операционной системы. В отличие от файлов cookie, которые хранятся на устройстве, фингерпринт хранится на сервере, то есть стереть его вы не сможете, только поменять.
Следы-cookie можно «замести», а отпечаток пальца изменить если и можно, то очень сложно. Совсем как в реальной жизни.
Цифровой отпечаток: что это?
Таким образом, фингерпринтинг — это технология идентификации пользователя интернета по косвенным признакам, связанным с его «железом» (hardware), программным обеспечением (software) и их конфигурацией.
Кто и когда его «снимает»?
Ваш браузер предоставляет часть данных веб-серверу, когда вы запрашиваете адрес сайта. Сайту нужна информация о разрешении экрана, операционной системе, местоположении, языке и других настройках, чтобы правильно отобразится. Параллельно с этим различные скрипты для фингерпринтинга, (например, FingerprintJS), могут «допрашивать» ваш браузер, получая от него информацию о его свойствах и свойствах компьютера. В результате обработки этих данных получается хеш-сумма. Она представляет собой уникальное 32-битное число, например, ba4f31d70cc306fcd736y81cd6d74a7a
. Оно и будет вашим фингерпринтом.
Что входит в цифровой отпечаток
Цифровой отпечаток может очень многое рассказать о вашем браузере и компьютере. Чтобы проверить, насколько ваш отпечаток уникален, и заодно ознакомиться с полным списком данных, которые можно узнать о вашем браузере и устройстве, можно перейти на AmIUnique , Fake Vision или CoverYourTracks.
Что же это за данные?
- Данные HTTP-заголовков. HTTP-заголовок — это строки, который ваш браузер посылает на сервер при открытии сайта. Своего рода краткая биография, которую читает специальная программа, установленная на сервере, чтобы правильно отобразить сайт для вашего браузера. В него входят:
- Тип и версия браузера
- Настройки конфиденциальности
- Предпочитаемый язык
- Операционная система
- Поддерживаемые методы сжатия данных
- Поддерживаемые типы текстовых файлов
- Данные, которые можно получить при помощи различных API JavaScript
- Тип операционной системы
- Количество ядер процессора
- Включены ли cookie в браузере или нет
- Часовой пояс
- Язык интерфейса браузера
- Идентификатор сборки браузера
- Набор шрифтов
- Использование блокировщика рекламы
- Информация о предпочтении пользователя не отслеживать его действия (Do Not Track)
- Параметры интернет-соединения (например, WiFi, 4G)
- Объем памяти в гигабайтах
- Список установленных плагинов
- Список расширений
- Свойства навигатора
- Разрешение и особенности цветовой схемы экрана
- Настройки доступа к геолокации
- Использование микрофона, камеры и наушников
- Настройки оповещений и push-уведомлений
- Наличие акселерометра (датчика определения угла наклона устройства к земле)
- Наличие гироскопа (фиксирует перемещения телефона в пространстве)
- Наличия датчика приближения (используется для автоматического отключения экрана телефона)
- Поддерживаемые видео и аудио форматы
- Поддержка сенсорного ввода
- Уровень заряда батареи
- Раскладка клавиатуры (QWERTY или AZERTY)
Помимо JavaScript, информацию об установленных шрифтах, языке, разрешении экрана и системе можно получить через плагин Flash.
Даже тот факт, что ваш браузер блокирует файлы cookies, может придать вашему цифровому отпечатку уникальности. Равно как и включение функции Do Not Track.
Ок, а что если использовать несколько браузеров одновременно? Если ранее такой способ уйти от слежки можно было назвать довольно эффективным, то после появления технологии кросс-браузерного фингерпринтинга с упором на свойства ОС, ЦС и графического процессора, эффект от использования нескольких браузеров сразу снизился.
Но и это ещё не всё. Для более точного определения характеристик вашего устройства браузер могут заставить участвовать в просмотре на шоу талантов: например, отрисовать текст в 2D, картинку в 3D и беззвучно спеть. Нет, мы не шутим.
Первый тест выполняется при помощи Canvas API. Браузер получает команду отрисовать заданный текст с наложенными на него эффектами.
Особенности изображения зависят от характеристик графического процессора, видеокарты, видеодрайверов, операционной системы и установленных шрифтов. Если сравнить полученные результаты двух устройств на глаз, то разницы видно не будет. Но члены жюри (трекеры) смогут отличить одну работу от другой.
Второй тест выполняется при помощи библиотеки графики для JavaScript — WebGL. Браузер получает задачу отрисовать фигуру в формате 3D с наложенными эффектами. За результат всё также отвечает графический процессор, драйверы и видеокарта.
Третий тест выполняется при помощи AudioContext API. Веб-страница просит браузер смоделировать низкочастотный сигнал на основе аудио стека вашего устройства. Результат зависит от свойств звуковой карты и драйверов.
Результаты каждого из вышеперечисленных тестов хешируются, то есть возвращаются серверу в виде уникального набора символов, например 1ef4caaf4793b630f1f23f62a42аfв25
, по которым он будет вас впредь узнавать.
Мы привели только самые популярные технологии фингерпринтинга. На самом деле, способов снять цифровой отпечаток гораздо больше. Можно создать многочисленные CSS медиа-запросы к браузеру или собрать данные о проценте заряда батареи при помощи Battery Status API.
Цели использования: благие и не очень
Создатели технологий фингепрингинга задумывали их как средство защиты от мошенников. Среди клиентов FingerprintJS можно увидеть гиганта e-commerce Ebay и магазин Target, сервис для бронирования отелей Booking.com, оператора онлайн-платежей Checkout.com, биржу криптовалюты Coinbase, банки HomeCredit и US Bank и сервис трансграничных переводов Western Union.
Представим: злоумышленники используют бот для взлома вашего аккаунта в банке. Если бот проваливает тест Canvas, его не пустят на сервер. Более умных ботов, которые имитируют использование браузера, можно вычислить по их поведению, например, по многочисленным неудачным попыткам входа. Также технологии фингерпринтинга помогают защититься от атак с использованием украденных логинов и паролей. При попытке входа с нового устройства сайт может предложить пользователю пройти двухфакторную аутентификацию или подтвердить адрес электронной почты.
Магазины используют технологии фингерпринтинга, чтобы пресечь злоупотребление купонами, выявлять и отмечать пользователей, которые требуют возврат средств даже после получения товара/услуги. В азартной и игровой индустрии фингерпринтинг используют для предотвращения мошенничества, например, когда пользователь заводит сразу несколько аккаунтов. Также фингерпринтинг используют для того, чтобы пользователи не обошли пейволл и не получили доступ к платному контенту. По отпечатку также можно предсказать вероятность мошенничества со стороны пользователя.
Рекламодатели также используют данную технологию. Но зачем, спросите вы, им данные о расширении вашего экрана или модели видеокарты? Во-первых, онлайн магазину цифровой техники они могут понадобится, чтобы предложить вам купить новый монитор или новый графический процессор.
Во-вторых, эти данные можно обогатить информацией из баз данных и использовать для рекламы или продавать. Например, можно соотнести информацию о вашем устройстве с вашим реальным именем, маркой автомобиля, физическим и IP-адресом. Ещё в 2010 году CEO компании BlueCava, специализирующейся на фингерпринтинге, назвал технологию «будущим онлайн-рекламы». BlueCava могла идентифицировать пользователя на различных устройствах, то есть связать «отпечатки» смартфона и компьютера с одним пользователем. В 2016 году BlueCava поглотила компания Qualia, считывающая «сигналы» от пользователей о намерении что-то купить. В 2018 Qualia приобрела компания под говорящим названием IDify. Она стала частью крупного маркетингового агентства Adstra, которое сегодня продаёт огромный массив идентификационных данных о пользователях. Среди клиентов компании такие знакомые вам имена как Amazon Advertising, Snapchat, Facebook.
Также стоит отметить, что правоохранительные органы различных государств могут использовать технологии фингерпринтинга для ловли преступников, а также для цензуры и слежки за диссидентами.
Методы фингерпринтинга становятся совершеннее
Одной из последних разработок в области фингерпринтинга стала технология DrawnApart, которая работает на сайтах, использующих API WebGL. Напомним, Web Graphics Library (WebGL) — это кроссплатформенный API для рендеринга 3D-графики в браузере. WebGL реализован в основных браузерах, включая Safari, Chrome, Edge и Firefox.
Разработанный исследователями из Франции, Израиля и Австралии метод DrawnApart позволяет выявить мельчайшие различия между на первый взгляд идентичными графическими процессорами (GPU).
Предыдущие технологии идентификации GPU, о которых мы упоминали выше, имели один большой недостаток (или достоинство, зависит от того, на чьей вы стороне): они позволяли определить модель графического процессора, но не видели разницы между устройствами одной и той же модели. И неудивительно, представьте, вы встречаете на улице близнецов в одинаковой одежде, сможете ли вы сразу же понять, кто есть кто?
Исследователи утверждают, что метод Drawn Apart (название основано на игре слов: tell apart — различить, draw — нарисовать) позволяет обнаружить несущественные различия между идентичными моделями, которые возникают из-за особенностей производственного процесса.
Исследователи проанализировали работу исполнительных блоков графических процессоров одной и той же модели при запуске программы-шейдера. Они подсчитали, сколько времени требуется каждому из блоков процессора для выполнении функции рендеринга и остановки.
Каждый GPU оставил 50 «следов». А каждый «след» состоял из 176 измерений в 16 различных точках. Оказалось, что разницу между следами двух графических процессоров одного поколения можно определить даже на глаз.
При помощи Drawn Apart удалось повысить эффективность комбинированного метода идентификации FP-STALKER на 67%. Если раньше с его помощью можно было отслеживать устройство в течение 17,5 дней, то в сочетании с Drawn Apart продолжительность периода идентификации увеличилась до 28 дней.
Этот, пусть и не совсем совершенный метод, грозит далеко идущими последствиями для конфиденциальности пользователей. При использовании новой версии WebGL — WebGL 2.0, который с недавних пор поддерживается всеми основными браузерами — точность идентификации устройства составила 98%, а сам процесс стал ещё быстрее и занял меньше десятой доли секунды.
Насколько уникален ваш «цифровой отпечаток»?
Методы фингерпринтинга становятся всё более совершенными, но так ли легко вас будет вычислить? Одно дело, если таких же как у вас отпечатков ещё несколько миллионов и совсем другое, если несколько тысяч.
На данный момент было проведено несколько крупномасштабных независимых исследований уникальности отпечатка браузера.
В 2010 году EFF (Electronic Frontier Foundation, Фонд Электронных Рубежей) исследовал 470,161 «отпечатков» в рамках проекта Panopticlick. В поле зрения исследователей попало ограниченное число параметров. Это были данные об операционной системе, языке, типе и версии браузера, поддерживаемых форматах, разрешении экрана, блокировке cookie-файлов, часовом поясе, установленных плагинах, шрифтах.
Выводы были неутешительные. Около 84% браузеров, принявших участие в исследовании, удалось идентифицировать однозначно. Это означало, что среди 286,777 браузеров не нашлось тех, у которых был был один и то же отпечаток. Как говорится: я узнаю тебя из тысячи, то есть, из десятков тысяч.
Среди браузеров с поддержкой Flash и Java ситуация оказалась еще хуже — у 94,2% из них отпечаток оказался уникальным. Более того, при изменении параметров браузера, алгоритму удавалось соотнести его с предыдущей версией с точностью до 99,1%.
В 2016 году были представлены результаты исследования 118,934 отпечатков при помощи ресурса AmIUnique. 89.4% из них оказались уникальными. Причем, в отличие от исследования 2010 года, список параметров увеличился, также использовались более современные методы фингерпринтинга, в том числе Canvas и WebGL API. Добавились данные об использование блокировщика рекламы, функции Do Not Track, графическом процессоре и типе видеокарты.
Впервые была проверена уникальность отпечатка браузера мобильных устройств. Их фингерпринт определили с точностью до 81%.
В 2018 году было проведено самое масштабное на сегодняшний дней исследование уникальности отпечатка браузера под названием Hiding in the Crowd («Скрыться в толпе»). Было проанализировано 2,067,942 отпечатков, собранных на популярном французском сайте. Результат внушал оптимизм: только лишь 33,6% отпечатков были уникальными. Для ПК эта цифра составила 35.7%, а для мобильных устройств и вовсе 18.5%. Причем, набор метрик не менялся по сравнению с экспериментом 2016 года. Исследователи использовали примерно тот же набор программ для проведения более сложных тестов.
Например, они заставили браузер нарисовать абстрактную картину, изображенную ниже — шаг вперёд по сравнению со строкой символов с эмодзи.
Авторы исследования объяснили значительную разницу в результатах тем, что если в экспериментах 2010 и 2016 годов принимали участие добровольцы, которые знали, на что они идут, то посетители французского сайта были обычными пользователями. Исходя из этого, авторы «Скрыться в толпе» утверждают, что их данные более репрезентативны, так как они были собраны у рядовых пользователей, а не у одержимых приватностью гиков, у которых «был соблазн поиграть с настройками браузера».
Однако, нужно учитывать, что исследователи рассматривали относительно небольшое число параметров. А так как методов определения цифрового отпечатка становится всё больше, то и уникальность будет неизбежно расти.
То есть если вы вздохнули с облегчением, то зря. Методы создания цифрового отпечатка не стоят на месте. Разработчики популярной библиотеки для фингерпринтинга FingerprintJS утверждают, что их метод позволяет идентифицировать устройство с точностью 99,5%.
Эффективность фингерпринтинга напрямую зависит от двух параметров:
- Стабильности (persistency)
- Уникальности
Чем чаще мы меняем настройки браузера и системы, тем отпечаток становится менее стабильным, но, тем самым он может стать более уникальным! Об этом нужно помнить, чтобы в попытках скрыться от трекера не добиться противоположного эффекта. Как говориться, между Сциллой и Харибдой.
Что делать?
Наибольшее количество идентифицируемой информации содержится в списке плагинов, списке шрифтов и в хеше, получаемом в результате теста Canvas. Казалось бы, проблема решается легко отключением JavaScript — скрипт для фингерпринтинга просто не сможет обнаружить список активных плагинов или шрифтов. Но у этого подхода есть обратная сторона: многие сайты не будут работать без JavaScript. Уйти от слежки и сломать интернет — не самое привлекательное решение.
Brave Browser. Браузер Brave на базе Chromium рандомизирует параметры отпечатка по умолчанию, то есть добавляет «шум». Таким образом, каждому отдельному сайту вы, как ящерица-хамелеон, предстанете в новом облике. Эта технология позволяет защититься от межсайтового отслеживания. При желании пользователь может перейти в версию с «максимальной» защитой. В этом случае программа не просто слегка изменит ваш окрас — выдаст трекеру чуть измененные значения — а изменит ваш облик целиком, то есть отпечаток каждый раз будет состоять исключительно из случайно подобранных свойств. Последний способ чреват тем, что некоторые сайты не будут отображаться.
Tor Browser. Анонимный браузер Tor пошел ещё дальше. В нём все отпечатки пользователей выглядят одинаково. Их вид не зависит от операционной системы и других параметров устройства пользователя.
Также существует сервисы типа Genesium Browser, FingerprintSwitcher и браузер Linken Sphere, которые добавляют «шум» или заменяют отпечаток браузера на реально существующий из своей собственной базы отпечатков.
Privacy Budget. Это решение было предложено Google в рамках инициативы Privacy Sandbox. О самой «песочнице конфиденциальности» и её недостатках мы подробно рассказывали ранее. Суть предложения в том, чтобы уменьшить количество информации, которые сайт может получить от браузера. Устанавливается определенный порог (budget) для передачи данных, и когда от вашего браузера требуют передать информацию сверх него, то либо выдаётся ошибка, либо сайт получает случайное значение.
Ещё один способ — заблокировать загрузку программ для отслеживания в браузере или на мобильном устройстве. В этом случае вы не позволите программам для фингерпринтинга получить данные о вашем устройстве, однако, только тем, о существовании которых вы знаете. Соответственно, вам придется обновлять список трекеров.
AdGuard уже сейчас предотвращает работу самых популярных библиотек для фингерпринтинга. Помимо этого, даже если отпечаток создан, его нужно куда-то отправить. AdGuard блокирует все известные трекинговые домены — это означает, что созданный отпечаток невозможно будет отправить на сервер, что сильно усложнит таргетинг пользователя.