Однако несмотря на его поддержку рядом популярных сайтов, распространенность технологии в целом остается довольно низкой.
Механизм HTTP Strict Transport Security (HSTS) позволяет сайтам осуществлять обмен информацией только по протоколу HTTPS (HTTP Secure). Технология эта разрабатывалась, для того чтобы запретить хакерам устанавливать соединения с пользователями по протоколу HTTP и использовать ошибки в реализациях HTTPS для нарушения целостности контента.
Организация Internet Engineering Task Force, отвечающая за разработку и продвижение стандартов Интернета, опубликовала спецификации HSTS в официальном документе RFC 6797. Рабочая группа IETF Web Security Working Group занималась разработкой спецификаций HSTS начиная с 2010 года, после того как Джефф Ходжес из PayPal, Коллин Джексон из университета Карнеги-Меллона и Адам Барт из Google первыми предложили придать этой технологии статус стандарта.
HSTS предотвращает осложнения, которые связаны с так называемым смешанным контентом и отрицательно отражаются на целостности и безопасности сайтов HTTPS. Проблемы со смешанным контентом возникают, когда скрипты или другие ресурсы, интегрированные в сайты с поддержкой HTTPS, загружаются с внешних независимых источников через небезопасное соединение. Такая ситуация может возникать как в случае ошибки разработчиков, так и в результате умышленных действий.
При загрузке небезопасного ресурса браузер, направляя запрос через обычный интерфейс HTTP, дополняет его данными cookies пользовательского сеанса. В этом случае атакующий, перехватив запрос с использованием методов прослушивания, с помощью cookies может получить доступ к учетной записи пользователя.
Механизм HSTS предотвращает также атаки типа «человек посередине» (man-in-the-middle), когда злоумышленник вклинивается в соединение между пользователем и веб-сайтом и заставляет браузер обращаться к сайту по протоколу HTTP вместо HTTPS. Эта техника известна как HTTPS, или SSL stripping, и существуют инструменты, позволяющие автоматизировать выполнение всех предусмотренных в ней операций.
Когда браузер подключается к сайту, поддерживающему HSTS, по протоколу HTTPS, принимающая сторона фиксирует и сохраняет на определенное время политику усиления безопасности транспортного протокола. Пока этот срок не истечет, браузер будет отвергать все попытки установления небезопасного соединения с сайтом.
Политика HSTS указывается в поле Strict-Transport-Security заголовка ответного пакета HTTP. Такой же заголовок может быть использован и для обновления политики.
«Стандарт HSTS – один из лучших способов принудительного использования технологии SSL, позволяющий устранить недостатки протокола, разработанного 18 лет назад, – отметил директор компании Qualys по разработкам Иван Ристич. – Кроме того, в нем учтены те изменения, которые произошли в браузерах за прошедший период».
В свое время разработчики допустили серьезную ошибку, решив положиться на предупреждения сертификата. Дело в том, что пользователи давно привыкли игнорировать все предупреждения. В большинстве случаев ничего страшного при этом не происходит, но 1% ситуаций все же таит в себе опасность.
HSTS предупреждениями сертификатов не ограничивается. Если возникшее осложнение связано с реализацией HTTPS, браузер просто разорвет соединение, не позволяя пользователю изменить это решение.
Но даже при наличии на сайте средств поддержки HSTS незначительный шанс для проведения атаки остается в те моменты, когда браузер посещает сайт в первый раз, и политика HSTS еще не сохранена. Перехватив запрос, атакующий блокирует обращение к версии HTTPS и принудительно устанавливает соединение с использованием протокола HTTP.
Чтобы исключить возникновение такой ситуации, браузеры Chrome и Firefox поставляются с уже загруженными списками популярных сайтов, на которых поддержка HSTS инициирована по умолчанию.
По данным организации SSL Pulse, отслеживающей наличие средства поддержки HTTPS на наиболее посещаемых в мире сайтах, в настоящее время механизм HSTS включен только на 1700 из 180 тыс. ведущих сайтов, поддерживающих HTTPS.
«Помимо того что темпы внедрения HSTS оставляют желать лучшего, некоторые сайты, уже поддерживающие эту функцию, испытывают определенные трудности с ее реализацией, – указал Ристич. – Часть из них, например, определила для своих политик HSTS очень короткий срок действия. А чтобы извлечь из HSTS ощутимую пользу, сохраненные записи должны оставаться актуальными на протяжении нескольких дней, если не месяцев».
По мнению Ристича, даже после получения HSTS статуса официального стандарта вряд ли следует ждать резкого роста числа желающих внедрить у себя эту технологию. Операторы сайтов традиционно думают лишь о своей выгоде и внедряют обычно только то, что нужно им. И неважно, является соответствующая технология стандартом или нет.
«Думаю, что главная причина недостаточно широкого распространения технологии HSTS связана с недостаточной осведомленностью ее потенциальных пользователей, – подчеркнул он. – Людям нужно изучать существующие решения».
К популярным ресурсам, поддерживающим HSTS уже сегодня, относятся сайты PayPal, Twitter и различные сервисы Google. Компания Facebook в настоящее время переходит на постоянное использование на своем сайте протокола HTTPS, но до поддержки HSTS дело здесь пока еще не дошло.