Веб и безопасность приложений

Принудительный HTTPS (HSTS)

Определение

Принудительный HTTPS (HSTS) — правило, по которому браузер, получив его в ответе по HTTPS, весь срок max-age обращается к этому узлу только по защищённому соединению. Заголовок, присланный по HTTP, такую политику не задаёт.

Также ищут: HTTP Strict Transport Security · HSTS · Strict-Transport-Security

Зачем это знать

Оно уменьшает риск перехода на HTTP и утечки cookie через случайный незашифрованный запрос, но действует только на внешней границе браузера.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. После получения корректного Strict-Transport-Security по HTTPS браузер запоминает узел и переводит будущие обращения на защищённое соединение.

    Граница применимости: Поведение браузера при HSTS.

  2. HSTS управляет обращением браузера к узлу и не доказывает TLS между прокси и исходным сервером, правильность атрибутов cookie или отсутствие XSS.

    Граница применимости: Граница HSTS и других защитных мер.

  3. В корректном заголовке Strict-Transport-Security параметр max-age обязателен и задаёт время действия политики в секундах. Параметр includeSubDomains необязателен: он распространяет политику на поддомены, а не делает это неявно для любого заголовка HSTS.

    Граница применимости: RFC 6797, 6.1.1–6.1.2; обработка политики совместимым клиентом.

  4. Клиент запоминает политику HSTS из корректного ответа, полученного по защищённому транспорту. Заголовок, присланный только по HTTP, не устанавливает такую политику.

    Граница применимости: RFC 6797, 8.1; получение политики по HTTP не равно отдельному предварительному внесению узла в клиент.

  5. При применении HSTS к известному узлу клиент меняет схему HTTP на HTTPS. Явно указанный порт 80 меняется на 443; это правило не означает замену любого явно указанного порта на 443.

    Граница применимости: RFC 6797, 8.3; обработка URI для узла, к которому применяется политика HSTS.

  6. При соединении с известным узлом HSTS совместимый клиент обязан прекращать соединение при ошибке защищённого транспорта независимо от уровня ошибки. Продолжение после обычного предупреждения о сертификате этому правилу не соответствует.

    Граница применимости: RFC 6797, 8.4: обязанность HSTS-совместимого клиента для известного узла; не правило проверки отзыва для любого TLS-приложения.

Перед спецификацией

Что проверить

  1. Получайте политику по защищённому транспорту.
  2. Задайте max-age в секундах.
  3. Выбирайте includeSubDomains с учётом всех поддоменов.
  4. Отдельно проверьте первое обращение до получения политики.
  5. Учитывайте правило преобразования явного порта 80.
  6. Исправляйте ошибки сертификата известного узла, не рассчитывая на обход предупреждения.
Открытые основания

Первоисточники

  • Стандарт3
  • Первичная спецификация
    HTTP Strict Transport Security Internet Engineering Task Force · RFC 6797, November 2012 · проверено

    Определяет browser policy, принуждающую известный HSTS host использовать secure transport и прекращать соединение при TLS errors.

    Утверждения: 01 · 02 · 03 · 04 · 05 · 06

  • Первичная спецификация
    RFC 8446: The Transport Layer Security Protocol Version 1.3 Internet Engineering Task Force · RFC 8446, August 2018 · проверено

    Определяет TLS 1.3, включая encrypted channel, PSK authentication, PSK identity и PSK+(EC)DHE modes.

    Утверждения: 02

  • Первичная спецификация
    Cookies: HTTP State Management Mechanism Internet Engineering Task Force · RFC 6265, April 2011 · проверено

    Базовый стандарт Cookie и Set-Cookie: синтаксис, атрибуты Secure, HttpOnly, Path, Domain. SameSite в нём НЕТ — он появился в 6265bis, см. ietf-6265bis-cookies.

    Утверждения: 02

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие