Уже несколько лет все браузеры предлагают настройки для приватного браузинга. В приватном режиме они могут не сохранять куки, историю страниц и временные файлы. Люди, ценящие приватность, полагаются на эту возможность. Но недавно был предложен ещё один способ отследить пользователя даже и в этом случае, если тот не предпримет особых мер.
Ирония в том, что работе этой системы отслеживания способствует механизм под названием HTTP Strict Transport Security. Он нужен для того, чтобы сайты могли убедиться, что пользователь работает с их серверами только по протоколу HTTPS. Если сервер добавляет в заголовки соответствующий флаг, то по правилам HSTS все соединения с сервером должны быть зашифрованы. Таким образом пользователя защищают от различных возможных атак.
Сэм Гринхальх, консультант агентства RadicalResearch придумал, как превратить эту функцию, обеспечивающую безопасность, в функцию для отслеживания пользователя. Назвал он свою концепцию HSTS Super Cookies. Как и обычные куки, суперкуки отслеживают пользователя и могут идентифицировать его, если он вернётся на сайт в будущем. Одна из возможностей суперкук – они работают даже в приватном режиме. Другая – эти куки можно прочитать с других доменных имён, а не только с того, что их поставил.
Как это работает
Для одного сайта HSTS может содержать одно бинарное значение – вкл или выкл. Для обхода этого ограничения Гринхальх составляет вместе 32 сайта, складывает все их бинарные значения и хранит результат, как одно число. В результате получается возможным создать более чем два миллиарда вариантов браузеров. Для простоты десятичное число конвертируется в base36, так что 169ze7 представляет 71009647, или lm8nsf представляет 1307145327.
Когда вы заходите на сайт хакера в обычном режиме, скрипт проверяет ваши установки HSTS для разных сайтов и высчитывает идентификатор. Уникальный идентификатор устанавливается и сохраняется, даже если потом вы включите приватный режим. Более того, другие сайты смогут прочесть идентификатор, таким образом отслеживая пользователя при посещении разных сайтов. Обычно от приватного режима люди ожидают обратного поведения. Кроме того, обычные куки можно считывать только с того домена, который их поставил.
К счастью, все, кроме пользователей Safari на iPhone или iPad, могут удалить эти флаги, использующиеся для отслеживания, удалив все куки. Обычно вместе с этой операцией браузеры обнуляют и флаги HSTS. Кроме того, если вы посетили сайт, который пытается вас отследить, только в приватном режиме, то этот флаг не будет взведён.
HSTS Super Cookies – хороший пример того, как новые возможности могут превратиться в дыры в безопасности. Весь смысл HSTS в том, чтобы браузер всегда использовал HTTPS при запросах к сайтам, которые поддерживают этот протокол. Разработчики браузеров, очевидно, хотели обеспечить повышенную безопасность для их пользователей, но теперь им придётся подумать над своим решением снова.
Примечание: после публикации статьи её рассмотрели разработчики Chrome и Firefox. Первые решили ничего не менять в попытках «соблюсти баланс между приватностью и безопасностью». Вторые же, начиная с версии 34, исключили возможность переноса настроек флагов в приватный режим.
Автор: SLY_G