Метод идентификации браузера через манипуляции с кэшированием Favicon

Материал из Викиновостей, свободного источника новостей

8 февраля 2021 года

Опубликована реализация новой техники идентификации конкретного экземпляра браузера. Метод основывается на особенностях обработки изображений Favicon, при помощи которых сайт определяет пиктограммы, отображаемые в закладках, вкладках и прочих элементах интерфейса браузера. В качестве области хранения используется кэш Favicon, который выступает в роли "Supercookies".

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

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

Чем больше редиректов в цепочке, тем больше идентификаторов можно определить (число идентификаторов определяется по формуле 2^N, где N - число редиректов). Например, в два редиректа могут адресовать 4 пользователей, 3 - 8, 4 - 16, 10 - 1024, 24 - 16 млн, 32 - 4 миллиарда. Недостатком метода являются большие задержки - чем выше точность, тем больше времени требуется на редиректы перед открытием страницы. 32 редиректа позволяют сгенерировать идентификаторы для всех пользователей интернета, но приводят к возникновению задержки примерно в 6 секунды при первом входе и 3 секунды при последующих. Для миллиона идентификаторов задержка составляет около 3 секунд при первом входе и 1.5 секунд при последующих.

Метод подразумевает работу в двух режимах - записи и чтения. Режим записи осуществляет генерацию и сохранение идентификатора для пользователя впервые обратившегося к сайту. Режим чтения осуществляется чтение ранее сохранённого идентификатора. Выбор режима зависит от запроса файла Favicon для основной страницы сайта - если картинка запрошена, значит данные не прокэширования и можно предположить, что пользователь не обращался к сайту ранее. По данным исследователей, через указание HTTP-заголовка Cache-Control можно добиться нахождения Favicon в кэше сроком до одного года.

В режиме чтения при открытии сайта пользователь по цепочке перенаправляется на предопределённые страницы со своими Favicon (например, "demo.supercookie.me/t/50fd23e6:9bpZVrAwOmieUkMPkAeG"), а HTTP-сервер анализирует, какие из Favicon запрошены с сервера, а какие показаны без обращения к серверу из кэша. Наличие запроса кодируется как "0", а отсутствие, как "1". Для того, чтобы идентификатор сохранился и при будущих обращениях, в ответ на запросы Favicon выводится 404 код ошибки.

В режиме записи в цикле редиректов для страниц, кодирующих "1", выдаётся ответ с Favicon, оседающий в кэше браузера (при повторном прохождении цикла данные Favicon будут отдаваться из кэша, без обращения к серверу), а для страниц кодирующих "0" - 404 код ошибки (при повторном цикле редиректа данные страницы будут запрошены вновь).

Метод применим в Chrome, Safari, Edge и частично в Firefox. В Firefox для Linux использованию Favicon в качестве Supercookies мешает особенность, из-за которой браузер вообще не кэширует Favicon. Интересно, что авторы метода идентификации уведомили разработчиков Firefox о данной особенности около года назад, указав на наличие ошибки в работе кэша, но не упомянув о своей работе и о том, что исправление приведёт к возможности идентификации пользователей. Дополнительно можно напомнить, что начиная с Firefox 85 в браузер добавлен режим сегментирования сети (Network Partitioning), позволяющий блокировать методы отслеживания перемещений, манипулирующие извлечением информации из различных браузерных кэшей.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Метод идентификации браузера через манипуляции с кэшированием Favicon», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.