HSTS


HSTS (сокр. от англ. HTTP Strict Transport Security) — механизм, принудительно активирующий защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP (http://). Механизм описан в RFC6797 в ноябре 2012 года.

HSTS помогает предотвратить часть атак, направленных на перехват соединения между пользователем и веб-сайтом, в частности атаку с понижением степени защиты и угон куки (cookie).

Дополнительную защиту https-соединений предоставляют методы Certificate pinning (хранение списка разрешенных для домена сертификатов или CA в исходных текстах браузера) и HTTP Public Key Pinning. Они предотвращают множество возможностей подмены tls-сертификатов https-сервера.

Спецификация была разработана и предложена Джеффом Оджом (=JeffH, Paypal), Адамом Бартом (Университет Беркли), Колином Джексоном (Университет Карнеги — Меллон). После обсуждения в рабочей группе IETF WebSec спецификация была принята в качестве RFC 19 ноября 2012 года.

Сервер сообщает о политиках HSTS с помощью специального заголовка при подключении через шифрованный HTTPS (заголовок HSTS при подключении по нешифрованному HTTP игнорируется)[1]. Например, сервера Википедии посылают заголовок HSTS со сроком действия 1 год, распространяющийся на все поддомены (Поле max-age указывает срок действия в секундах, величина 31536000 приблизительно соответствует одному году): Strict-Transport-Security: max-age=31536000; includeSubDomains; preload.

Когда сайт применяет политику HSTS, пользовательские браузеры, корректно воспринимающие заголовок HSTS, должны[2]: