Принудительный HTTPS (HSTS)
Определение
Принудительный HTTPS (HSTS) — правило, по которому браузер, получив его в ответе по HTTPS, весь срок max-age обращается к этому узлу только по защищённому соединению. Заголовок, присланный по HTTP, такую политику не задаёт.
Также ищут: HTTP Strict Transport Security · HSTS · Strict-Transport-Security
Зачем это знать
Оно уменьшает риск перехода на HTTP и утечки cookie через случайный незашифрованный запрос, но действует только на внешней границе браузера.
Карта понятия
Что подтверждено
После получения корректного Strict-Transport-Security по HTTPS браузер запоминает узел и переводит будущие обращения на защищённое соединение.
Граница применимости: Поведение браузера при HSTS.
HSTS управляет обращением браузера к узлу и не доказывает TLS между прокси и исходным сервером, правильность атрибутов cookie или отсутствие XSS.
Граница применимости: Граница HSTS и других защитных мер.
В корректном заголовке Strict-Transport-Security параметр max-age обязателен и задаёт время действия политики в секундах. Параметр includeSubDomains необязателен: он распространяет политику на поддомены, а не делает это неявно для любого заголовка HSTS.
Граница применимости: RFC 6797, 6.1.1–6.1.2; обработка политики совместимым клиентом.
Клиент запоминает политику HSTS из корректного ответа, полученного по защищённому транспорту. Заголовок, присланный только по HTTP, не устанавливает такую политику.
Граница применимости: RFC 6797, 8.1; получение политики по HTTP не равно отдельному предварительному внесению узла в клиент.
При применении HSTS к известному узлу клиент меняет схему HTTP на HTTPS. Явно указанный порт 80 меняется на 443; это правило не означает замену любого явно указанного порта на 443.
Граница применимости: RFC 6797, 8.3; обработка URI для узла, к которому применяется политика HSTS.
При соединении с известным узлом HSTS совместимый клиент обязан прекращать соединение при ошибке защищённого транспорта независимо от уровня ошибки. Продолжение после обычного предупреждения о сертификате этому правилу не соответствует.
Граница применимости: RFC 6797, 8.4: обязанность HSTS-совместимого клиента для известного узла; не правило проверки отзыва для любого TLS-приложения.
Что проверить
- Получайте политику по защищённому транспорту.
- Задайте max-age в секундах.
- Выбирайте includeSubDomains с учётом всех поддоменов.
- Отдельно проверьте первое обращение до получения политики.
- Учитывайте правило преобразования явного порта 80.
- Исправляйте ошибки сертификата известного узла, не рассчитывая на обход предупреждения.
Первоисточники
- RFC 8446: The Transport Layer Security Protocol Version 1.3
Определяет TLS 1.3, включая encrypted channel, PSK authentication, PSK identity и PSK+(EC)DHE modes.
Утверждения: 02
- Cookies: HTTP State Management Mechanism
Базовый стандарт Cookie и Set-Cookie: синтаксис, атрибуты Secure, HttpOnly, Path, Domain. SameSite в нём НЕТ — он появился в 6265bis, см. ietf-6265bis-cookies.
Утверждения: 02