Человека можно с очень высокой точностью идентифицировать по отпечатку пальца — и по отпечатку браузера. И если первой технологией пользуются, например, криминалисты и производители смартфонов, то второй — всевозможные интернет-сервисы. Причем иногда это делается в ваших интересах, а иногда — скорее против.
Юлиан Фиткау (Julian Fietkau) и команда сотрудников Университета бундесвера в Мюнхене разработали плагин для браузера, который позволяет отслеживать, какие сайты собирают ваши отпечатки браузера и как они это делают. Также Юлиан и ко проанализировали 10 тысяч популярных сайтов на предмет того, какую именно информацию они собирают, — и рассказали обо всем этом в своем докладе на Remote Chaos Communication Congress (RC3).
Что такое отпечаток браузера
Отпечатком браузера (browser fingerprint, иногда на русском тоже говорят слово «фингерпринт») обычно называют совокупность данных, которые сайт может получить о вашем компьютере и браузере, запросив эту информацию при загрузке веб-страницы. В отпечаток входят десятки разных параметров — от языка, который вы используете, и временной зоны, в которой находитесь, до списка расширений и версии вашего браузера. Сюда же может входить информация об операционной системе, об объеме оперативной памяти, разрешении экрана устройства, параметрах шрифтов и многом другом.
Различные сайты собирают разное количество этой информации. На ее основе они потом генерируют ваш уникальный идентификатор, по которому будут определять, что это именно вы. При этом отпечаток браузера — это не куки (cookies), хотя их и можно использовать похожим образом. Но если на использование cookies вы должны дать согласие (наверняка вы уже замучились закрывать различные всплывающие уведомления «Наш сайт использует cookies»), то на снятие вашего отпечатка браузера никакого согласия формально вроде как не требуется.
Более того, от снятия отпечатка браузера не спасает и режим «Инкогнито», поскольку почти все параметры браузера и устройства остаются прежними и по ним можно идентифицировать, что вы — это вы.
Как используют отпечатки браузера (и почему это не всегда хорошо)
Отпечатки браузера чаще всего используют в одной из двух целей. Цель первая — убедиться в том, что пользователь тот, за кого себя выдает, не заставляя его совершать дополнительных действий. Это, например, используют банки в своих онлайн-сервисах: если по отпечатку браузера они понимают, что это именно вы совершили транзакцию, то они не будут присылать вам код 3DSecure на телефон, чтобы лишний раз вас не дергать. А если в личный кабинет зашел кто-то с непривычным отпечатком браузера, то банк может прислать вам уведомление. В этом случае отпечатки браузера служат вашему удобству, с одной стороны, и безопасности — с другой, так что их использование вполне оправданно.
Цель вторая — показывать вам таргетированную рекламу. Некий высокопосещаемый сайт может снять ваш отпечаток и передать его рекламной сети. Предположим, на этом сайте вы прочитали гид по выбору утюга. И когда вы зайдете на другой сайт, где размещается эта же рекламная сеть, она поймет, что это вы, и покажет вам рекламу утюгов. По сути, это слежка, причем без спроса, — и можно понять, почему такой вариант использования отпечатков браузера может вам не нравиться.
При этом на самом деле ваши отпечатки собирают и анализируют множество сайтов, в которые встроены компоненты различных рекламных сетей и аналитических сервисов.
Как понять, что сайт снимает ваш отпечаток браузера?
Чтобы получить информацию для составления отпечатка браузера, сайт должен отправить несколько запросов, на которые браузер даст ответы, и совокупность таких ответов в результате и превратится в отпечаток вашего браузера. Эти запросы браузер получает в виде встроенного в веб-страницы кода, написанного на языке JavaScript.
Фиткау и его коллеги проанализировали наиболее популярные библиотеки такого JavaScript-кода, составив в результате список из 115 различных приемов, которые чаще всего используются для работы с отпечатками браузеров. Затем они сделали расширение для браузера под названием FPMON, которое анализирует веб-страницы на предмет использования этих приемов и сообщает пользователю, какие именно данные пытается собрать тот или иной сайт для составления отпечатка браузера.
Если у пользователя установлен FPMON, то при загрузке сайта он увидит уведомление, что этот сайт запросил у браузера такую-то и такую-то информацию. Причем Фиткау и ко разделили типы собираемой информации на две категории: деликатная (sensitive) и агрессивная (aggressive).
К первой категории относится та информация, которую сайт вполне может хотеть знать по легитимным причинам: например, информация о языке браузера нужна, чтобы отобразить сайт на подходящем вам языке, а сведения о временной зоне — чтобы показать вам правильное время. Тем не менее это все еще информация, которая может что-то о вас сказать.
К агрессивной относится информация, которая сайту совершенно ни к чему, она не может быть использована ни для чего, кроме как для составления отпечатка браузера, — например, такая как объем памяти или список плагинов, установленных в браузере.
Насколько агрессивно сайты собирают отпечатки браузеров?
FPMON позволяет обнаруживать запросы на 40 типов различной информации. При этом почти все сайты запрашивают хотя бы какую-то информацию о браузере или устройстве. Вопрос в том, начиная с какого количества стоит считать, что сайт действительно пытается составить отпечаток. То есть если сайт собирает меньше типов информации, чем это количество, то можно особо не беспокоиться, а если больше, это уже значит, что, скорее всего, за вами пытаются следить.
Для оценки этого исследователи воспользовались уже существующими сайтами вроде сделанного EFF проекта Panopticlick (он же Cover Your Tracks), созданного для демонстрации того, как работает снятие отпечатков браузера. Panopticlick требует для своей работы 23 различных параметра и с вероятностью более 90% позволяет с их помощью однозначно идентифицировать пользователя. Фиткау и команда решили принять за некую отметку, что 23 параметра — это как раз то значение, начиная с которого можно считать, что сайт следит за пользователем.
Исследователи прошлись по 10 тысячам самых популярных сайтов (по данным рейтинга Alexa) и посмотрели, как много информации собирает каждый из них. Оказалось, что большая часть сайтов (почти 57%) запрашивает от 7 до 15 параметров, а медианное значение по всей выборке — 11 параметров. Примерно 5% сайтов вообще не собирают ни одного параметра, при этом максимальное количество собираемых параметров — 38 из 40, но из всех 10 тысяч изученных сайтов такое количество собирают только три.
Сайты из этой подборки используют более сотни разных скриптов для сбора этих данных. При этом скриптов, которые собирают много информации из категории «агрессивная», очень мало, зато используются они на очень посещаемых сайтах.
Как защититься от снятия отпечатков
Для того чтобы скрипты на сайте не смогли собрать отпечаток вашего браузера, можно использовать два подхода: либо блокировать их при запуске, либо отдавать им неполную или неправильную информацию. Различные программы для обеспечения приватности используют либо один, либо другой метод. Так, браузер Safari с недавних пор отдает только основную обезличенную информацию, защищая пользователей от слежки при помощи фингерпринтинга.
А, например, Privacy Badger, плагин для защиты приватности, разработанный EFF, пытается блокировать скрипты, хотя и не все. Некоторые данные, которые могут быть использованы при составлении отпечатка и которые запрашивают те или иные скрипты, могут быть нужны для корректного отображения страницы или работы каких-то ее функций. Такие скрипты Privacy Badger не трогает.
Этот же подход мы используем и в нашем расширении для браузера Kaspersky Protection, не позволяя собирать слишком много информации о пользователе и тем самым снимать его отпечаток. Kaspersky Protection входит в состав наших основных защитных решений, нужно просто не забыть его включить.