Защитите свой сайт с помощью HSTS
Представьте, если хотите, что вы находитесь в своем любимом ресторане или просто возвращаетесь в свой гостиничный номер с этой конференции, и вы хотите использовать их бесплатный Wi-Fi. Вы когда-нибудь замечали, что их пароли Wi-Fi напечатаны на бумаге и никогда не менялись? Злой хакер забронировал номер в этом же отеле. Они прослушивают все соединения, проходящие через эту небезопасную беспроводную сеть. В снопе злодеяний хакера есть нечто, называемое «перехватчик пакетов». Анализатор пакетов - это сетевая утилита, которая анализирует и может вводить задачи в поток данных, проходящий по целевой сети. Этот хакер может перехватить ваш сетевой трафик по HTTP для любого веб-сайта, который использует только 301 перенаправления для переключения с HTTP на HTTPS. Этот метод предоставляет хакеру возможность получить доступ к вашему SSL-шифрованию и украсть ценные данные или, что еще хуже, представить поддельную страницу портала для входа. Вот почему ваш сайт должен использовать HTTP Strict Transport Security только через HTTPS.
Что такое HSTS?
HTTP Strict Transport Security (HSTS) - это директива веб-сервера, которая сообщает пользовательским агентам и веб-браузерам, как обрабатывать свое соединение через заголовок ответа, отправляемый в самом начале и обратно в браузер. Это устанавливает параметр поля политики Strict-Transport-Security. Это заставляет использовать соединения через HTTPS-шифрование, игнорируя вызов любого скрипта для загрузки любого ресурса в этом домене через HTTP. HSTS - это всего лишь одна стрелка в связке настроек безопасности для вашего веб-сервера или службы веб-хостинга.
Проект HSTS был впервые разработан еще в 2009 году. Google официально представила политику безопасности HSTS 29 июля 2016 года.
Почему нужно внедрять HSTS?
Настройка перенаправления 301 с http: // на https: // недостаточно для полной защиты вашего доменного имени. Окно возможностей все еще существует в небезопасном перенаправлении HTTP.
$ curl --head http://www.facebook.com HTTP/1.1 301 Moved Permanently Location: https://www.facebook.com/
Хакеры могут перехватить файлы cookie сайта, идентификатор сеанса, обычно отправляемый в качестве параметра URL или принудительно перенаправлять на свой фишинговый сайт, который выглядит точно так же, как ваш сайт. Установив заголовок Strict-Transport-Security, злоумышленники практически не смогут собрать какую-либо информацию
$ curl --head https://www.facebook.com HTTP/1.1 200 OK Strict-Transport-Security: max-age=15552000; preload
Как внедрить HSTS для вашего сайта
Если вы используете субдомены в своей структуре контента, вам потребуется SSL сертификат Wildcard, или вы будете в полной безопасности с любым SSL-сертификатом, любого уровня: подтвержденным доменом, организацией или расширенной проверкой. Убедитесь, что сертификат SSL установлен и работает правильно. Перенаправьте все HTTP-ссылки на HTTPS с помощью перманентного перенаправления 301.
На начальных этапах будут проверены ваши веб-приложения, вход в систему и управление сеансами. Срок действия HSTS истекает каждые 5 минут. Продолжайте тестирование в течение одной недели и одного месяца. Исправьте любые проблемы, которые могут возникнуть в вашем развертывании. Изменить max-age = xxx. Одна неделя = 604800; Один месяц = 2592000. Максимальный возраст должен быть не менее 10886400 секунд или 18 недель. Добавьте предварительную нагрузку после завершения тестов.
Если вы убедились, что HSTS без проблем работает с вашими веб-приложениями, измените max-age на 63072000. Это будет два года. Это то, что Chromium Project хочет увидеть в вашей предварительной загрузке!
Установка HSTS для веб-сервера Apache
Добавить запись в файл .htaccess в корневой папке документа верхнего уровня
# Use HTTP Strict Transport Security to force client to use secure connections only Header always set Strict-Transport-Security "max-age=300; includeSubDomains; preload"
Установка HSTS для NGINX
Добавить запись в site.conf
add_header Strict-Transport-Security 'max-age=300; includeSubDomains; preload; always;'
In the course of my research for NGIX settings, I discovered a government website giving out incorrect information and provided the necessary code change that forces HSTS no matter what the HTTP response code returns.
HSTS Установка для lighttpd
Добавить запись в конфигурационный файл Lighttpd /etc/lighttpd/lighttpd.conf
server.modules += ( "mod_setenv" ) $HTTP["scheme"] == "https" { setenv.add-response-header = ("Strict-Transport-Security" => "max-age=300; includeSubDomains; preload") }
HSTS Installation for IIS Servers
protected void Application_BeginRequest(Object sender, EventArgs e) { switch (Request.Url.Scheme) { case "https": Response.AddHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload"); break; case "http": var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery; Response.Status = "301 Moved Permanently"; Response.AddHeader("Location", path); break; } }
Once you have installed my recommendations, go to HSTS Preloading Application Form and get your website listed in the preload list. It will take time for your domain to be included in that list.
После внесения измененеий в указанные файлы перейдите к Форме заявки на предварительную загрузку HSTS и внесите свой веб-сайт в список предварительной загрузки. Включение вашего домена в этот список займет некоторое время.
Что такое предварительная загрузка HSTS?
Предварительная загрузка HSTS - это встроенная в браузер функция, посредством которой глобальный список хостов обеспечивает использование HTTPS только на их сайте. Этот список составлен Chromium Project и используется Chrome, Firefox и Safari. Эти сайты не зависят от выдачи заголовков ответов HSTS для применения политики. Вместо этого браузер уже знает, что доменное имя требует ТОЛЬКО HTTPS, и выдвигает HSTS до того, как произойдет какое-либо соединение или связь. Это устраняет возможность перехвата и подделки перенаправления по HTTP для злоумышленника . Заголовок ответа HSTS все еще необходим в этом сценарии и должен быть оставлен на месте для тех браузеров, которые не используют предварительно загруженные списки HSTS.
|