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

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 8 Feb 2021.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,345
    Likes Received:
    6,512
    Reputations:
    693
    Опубликована реализация новой техники идентификации конкретного экземпляра браузера. Метод основывается на особенностях обработки изображений Favicon, при помощи которых сайт определяет пиктограммы, отображаемые в закладках, вкладках и прочих элементах интерфейса браузера. В качестве области хранения используется кэш Favicon, который выступает в роли "Supercookie".

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

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

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

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

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

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

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

     
    seostock and erwerr2321 like this.
Loading...