Установка HTTPS сертификата — это первый шаг в процессе защиты сайта, но для полной безопасности этого недостаточно. Злоумышленники могут перехватить процесс перехода пользователя на HTTPS и вернуть соединение на HTTP, тем самым украв данные. Эта атака называется SSL stripping и для защиты от неё создана технология HSTS (HTTP Strict Transport Security). В этой статье мы подробно рассмотрим как правильно настроить HSTS и процесс добавления в preload список.
Как работает технология HSTS
HSTS — это специальный HTTP заголовок отправляемый сервером браузеру, который даёт команду "впредь всегда открывать этот домен только через HTTPS". Получив эту команду, браузер в течение времени указанного в параметре max-age не отправляет никаких HTTP запросов на этот домен. Даже если пользователь вручную введёт адрес с http://, браузер автоматически преобразует его в HTTPS. Это делает downgrade-атаку злоумышленника невозможной.
Настройка заголовка HSTS
Для включения HSTS на сервере нужно добавить следующий заголовок: Strict-Transport-Security: max-age=63072000; includeSubDomains; preload. Здесь max-age равен 2 годам в секундах, includeSubDomains применяет правило ко всем поддоменам, а preload даёт разрешение для preload списка. В Apache это настраивается в .htaccess или virtual host конфигурации, в Nginx — в блоке server.
Что такое preload список
В обычной работе HSTS есть один недостаток — пользователь зашедший на сайт впервые ещё не получил HSTS заголовок и во время этого первого соединения может подвергнуться атаке. Для решения этой проблемы Google создал preload список. Все домены из этого списка "хардкодятся" в код браузера и браузер никогда не отправляет HTTP запросы на эти домены, даже при первом посещении.
Процесс добавления в preload список
Вы можете проверить свой домен на сайте hstspreload.org и отправить заявку. Требования строгие: HTTPS на всех поддоменах, в HSTS заголовке max-age минимум 31536000 (1 год), обязательные флаги includeSubDomains и preload. После одобрения заявки домен добавляется в Chrome, Firefox, Safari, Edge и Opera в следующем обновлении версии. Этот процесс обычно занимает 6-12 недель.
Сложность выхода из preload списка
Попасть в preload список легко, а выйти из него очень сложно. Если вы захотите вернуться с HTTPS на HTTP или продать домен другому владельцу, запрос на удаление из preload списка занимает 6-12 месяцев. Поэтому перед добавлением в preload нужно хорошо подумать. Убедитесь что работа сайта по HTTPS 100% стабильна.
Практика Sayt.uz
У 18% клиентов Sayt.uz включён HSTS, из них 6% находятся в preload списке. Мы рекомендуем включение HSTS на каждом сайте, но добавление в preload советуем только для стабильных проектов. Услуга настройки HSTS 60 000 сум разово, подготовка заявки в preload 150 000 сум. 99,4% наших клиентов полностью защищены от атак связанных с сертификатами после включения HSTS.