Рифко | RifCo™

HSTS Super Cookies

Суперкуки

У всякой медали, как известно, две стороны. Предназначенный для повышения безопасности заголовок HSTS может использоваться и совсем в других целях, для отслеживания посетителей сайта. Для этого приспособлен механизм HSTS Super Cookies.

Куки

Стандартным средством идентификации посетителя являются куки, специальные метки, оставляемые сайтом в памяти броузера посетителя. Куки используются для аутентификации пользователя, для сохранения данных сеанса, для отслеживания предпочтений пользователя и его поведения на сайте и для сбора статистики.

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

Суперкуки (HSTS Super Cookies)

С заголовком HSTS все иначе. Он предназначен для усиления безопасности, поэтому мер защиты от него не предусмотрено. Не поможет и очистка кэша. При заходе на сайт с установленным HTTP Strict Transport Security заголовком броузер запомнит бинарное значение (флаг) true (или false, если заголовок не установлен). Казалось бы, что толку с одного бита?

А если битов, допустим, 32? Это уже больше 4 миллиардов значений, достаточно для уникальной идентификации пользователей.

Как это делается?

При загрузке страницы средствами JavaScript производится 32 запроса к 32 поддоменам основного домена, на каждом из которых установлен (или нет) флаг HSTS. Броузер пользователя все эти флаги запоминает, причем даже в анонимной вкладке. Всё, идентификация осуществлена. Прочитать идентификатор — дело техники, причем same origin policy для HSTS-флагов не действует.

Есть, правда, оговорка относительно того, что поддержка HSTS-заголовка в разных броузерах (и версиях) реализована по-разному. Но это, опять же, вопрос технический. Да и идентифицировать не всех, а лишь большинство посетителей, тоже неплохо.