HTTP Strict Transport Security (HSTS)
Что такое HTTP Strict Transport Security (HSTS)?
HTTP Strict Transport Security (HSTS)Политика веб-безопасности, передаваемая HTTP-заголовком и указывающая браузеру обращаться к домену в течение заданного срока только по HTTPS.
HSTS, определённый в RFC 6797, передаётся через заголовок ответа Strict-Transport-Security. Получив этот заголовок по HTTPS, совместимый браузер запоминает политику на объявленный max-age и автоматически переводит все последующие запросы к этому хосту (и при желании к его поддоменам) на HTTPS, отказываясь подключаться при сбое TLS-рукопожатия или проверки сертификата. Это нейтрализует атаки SSL Stripping (утилита sslstrip Мокси Марлинспайка, 2009 год) и подмену cookie по открытому каналу.
У HSTS есть структурная слабость — доверие при первом использовании (trust-on-first-use). Пока браузер ни разу не видел заголовок, именно этот первый запрос может быть перехвачен и понижен. Список предзагрузки (preload list) — жёстко вшитый набор в Chromium, Firefox, Safari и Edge — закрывает эту брешь, поставляя политику вместе с браузером, так что даже первый визит принудительно идёт по HTTPS. Для подачи требуются max-age не менее 31536000 (один год), includeSubDomains и директива preload, через hstspreload.org. Google Registry внёс в предзагрузку целые gTLD, такие как .dev и .app, поэтому любой домен под ними по умолчанию доступен только по HTTPS. Важно: удаление из списка предзагрузки распространяется медленно, поэтому включайте preload лишь тогда, когда готовы поддерживать HTTPS повсеместно на длительный срок.
flowchart TD
A[Браузер: первый визит] -->|политики ещё нет| B{В списке preload?}
B -->|да| C[Немедленно принудить HTTPS]
B -->|нет| D[Возможен запрос по открытому каналу - риск TOFU]
D --> E[Сервер отправляет заголовок Strict-Transport-Security]
E --> F[Браузер кэширует политику на max-age]
F --> G[Все будущие запросы автоматически на HTTPS]
G -->|недействительный сертификат| H[Жёсткий отказ, без обхода]● Примеры
- 01
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- 02
Банк подаёт корневой домен в список HSTS preload браузера Chromium.
● Частые вопросы
Что такое HTTP Strict Transport Security (HSTS)?
Политика веб-безопасности, передаваемая HTTP-заголовком и указывающая браузеру обращаться к домену в течение заданного срока только по HTTPS. Относится к категории Сетевая безопасность в кибербезопасности.
Что означает HTTP Strict Transport Security (HSTS)?
Политика веб-безопасности, передаваемая HTTP-заголовком и указывающая браузеру обращаться к домену в течение заданного срока только по HTTPS.
Как защититься от HTTP Strict Transport Security (HSTS)?
Защита от HTTP Strict Transport Security (HSTS) обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия HTTP Strict Transport Security (HSTS)?
Распространённые альтернативные названия: Strict-Transport-Security, Заголовок HSTS.