Идентификация через анализ внешних обработчиков протоколов в браузере

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
16-Май-2021 01:30

Разработчики библиотеки fingerprintjs, позволяющей генерировать идентификаторы браузера в пассивном режиме на основе косвенных признаков, таких как разрешение экрана, особенностей WebGL, списки установленных плагинов и шрифтов, представили новый метод идентификации, основанный на оценке установленных у пользователя типовых приложений и работающий через проверку поддержки в браузере дополнительных обработчиков протоколов. Код скрипта с реализацией метода опубликован под лицензий MIT.
Проверка осуществляется на основе анализа привязки обработчиков к 32 популярным приложениями. Например, определив наличие в браузере обработчиков схем URL telegram://, slack:// и skype:// можно сделать вывод о наличии в системе приложений telegram, slack и skype, и использовать данную информацию в качестве признака при генерации идентификатора системы. Так как список обработчиков одинаков для всех браузеров в системе идентификатор не меняется при смене браузера и может применяться в Chrome, Firefox, Safari, Brave, Yandex Browser, Edge и даже в Tor Browser.
Метод позволяет генерировать 32-битные идентификаторы, т.е. по-отдельности не позволяет добиться большой точности, но имеет смысл как дополнительный признак в сочетании с другими параметрами. Ощутимым минусом метода является заметность попытки идентификации для пользователя - при генерации идентификатора на предложенной демонстрационной странице в правом нижнем углу открывается небольшое, но явно заметное окно в котором достаточно долго перебираются обработчики. Данный минус не проявляется в Tor Browser, в котором идентификатор может быть вычислен незаметно.
Для определения наличия приложения скрипт пытается открыть во всплывающем окне ссылку, связанную с внешним обработчиком, после чего браузер выводит диалог с предложением открыть содержимое в связанном приложении, если проверяемое приложение присутствует, или выдаёт страницу с ошибкой, если приложения нет в системе. Через последовательный перебор типовых внешних обработчиков и анализ возвращения ошибки можно сделать вывод о наличии в системе проверяемых программ.
В Chrome 90 для Linux метод не сработал и браузер на все попытки проверки обработчика вывел типовой диалог подтверждение операции (в Chromе для Windows и macOS метод работает). В Firefox 88 для Linux, как в обычном режиме, так и в режиме инкогнито, скрипт определил наличие установленных дополнительных приложений из списка, а точность идентификации оценена в 99.87% (35 подобных совпадений из 26 тысяч проведённых тестов). В запущенном на той же системе Tor Browser был сгенерирован идентификатор, совпадающий с тестом в Firefox.
Интересно, что дополнительная защита в
Tor Browser сыграла злую шутку и обернулась возможностью провести идентификацию незаметно для пользователя. Из-за отключения в Tor Browser диалогов подтверждения использования внешних обработчиков проверочные запросы оказалось можно открывать в iframe, а не в popup-окне (для разделения наличия и отсутствия обработчиков используется то, что правила same-origin блокируют доступ к страницам с ошибкой и разрешают к страницам about:blank). Из-за защиты от флуда проверка в Tor Browser занимает заметно дольше времени (10 секунд на приложение).
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_fingerprint, #_browser
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 16:58
Часовой пояс: UTC + 5