Что такое HSTS и как он защищает HTTPS от хакеров?

Возможно, вы убедились, что на ваших веб-сайтах включена поддержка SSL, и красивый замок безопасности в вашем браузере горит зеленым. Однако вы, возможно, забыли о маленьком специалисте по безопасности HTTP, HTTP Strict Transport Security (HSTS).

Что такое HSTS и как он может помочь обеспечить безопасность вашего сайта?

Что такое HTTPS?

HTTPS опирается на HSTS

Hyper Text Transfer Protocol Secure (HTTPS) — это защищенная версия веб-сайта (HTTP). Шифрование включается с использованием протокола Secure Sockets Layer (SSL) и проверяется сертификатом SSL. При подключении к веб-сайту HTTPS информация, передаваемая между веб-сайтом и пользователем, шифруется.

Это шифрование помогает защитить вас от кражи данных посредством атак типа «человек посередине» (MITM). Добавленный уровень безопасности также немного помогает улучшить репутацию вашего сайта

, На самом деле, добавить сертификат SSL так просто, что многие веб-хосты добавят его на ваш сайт по умолчанию бесплатно! Тем не менее, HTTPS по-прежнему имеет некоторые недостатки, которые HSTS может помочь исправить.

Что такое HSTS?

HSTS — это заголовок ответа, который сообщает браузеру, что доступ к веб-сайтам возможен только через HTTPS. Это заставляет ваш браузер иметь доступ только к HTTPS-версии веб-сайта и любым ресурсам на нем.

Вы можете не знать, что, даже если вы правильно настроили SSL-сертификат и включили HTTPS для своего веб-сайта, версия HTTP все еще доступна. Это верно даже в том случае, если вы настроили переадресацию с помощью перманентного перенаправления 301.

Несмотря на то, что политика HSTS существует уже некоторое время, она была официально введена Google в июле 2016 года. Возможно, поэтому вы еще мало о ней слышали.

Включение HSTS остановит атаки по протоколу SSL и захват файлов cookie,

две дополнительные уязвимости на сайтах с поддержкой SSL. И в дополнение к тому, чтобы сделать сайт более безопасным, HSTS ускорит загрузку сайтов, удалив шаг в процедуре загрузки.

Что такое зачистка SSL?

Хотя HTTPS является огромным улучшением по сравнению с HTTP, он не уязвим для взлома. Разбор SSL — это очень распространенный взлом MITM для веб-сайтов, использующих перенаправление для отправки пользователей с HTTP на HTTPS-версию их веб-сайта.

301 (постоянный) и 302 (временный) перенаправление в основном работает так:

  1. Пользовательские типы google.com в адресной строке браузера.
  2. Браузер изначально пытается загрузить http://google.com по умолчанию.
  3. «Google.com» настроен с 301 постоянным перенаправлением на https://google.com.
  4. Браузер видит редирект и загружает https://google.com вместо.

С разбором SSL хакер может использовать время между этапами 3 и 4, чтобы заблокировать запрос на перенаправление и запретить браузеру загружать защищенную (HTTPS) версию веб-сайта. Поскольку вы затем получаете доступ к незашифрованной версии сайта, любые введенные вами данные могут быть украдены.

Хакер также может перенаправить вас на копию веб-сайта, к которому вы пытаетесь получить доступ, и захватить все ваши данные при их вводе, даже если они выглядят безопасными.

Google реализовал шаги в Chrome, чтобы остановить некоторые типы перенаправления. Однако с этого момента включение HSTS должно выполняться по умолчанию для всех ваших сайтов.

Как включение HSTS останавливает разбор SSL?

Включение HSTS заставляет браузер загружать защищенную версию веб-сайта и игнорирует любые перенаправления и любые другие вызовы для открытия HTTP-соединения. Это закрывает уязвимость перенаправления, существующую с перенаправлением 301 и 302.

У HSTS есть и отрицательная сторона: браузер пользователя должен хотя бы один раз увидеть заголовок HSTS, прежде чем он сможет использовать его для будущих посещений. Это означает, что им придется хотя бы один раз проходить процесс HTTP> HTTPS, что делает их уязвимыми при первом посещении веб-сайта с поддержкой HSTS.

Для этого Chrome предварительно загружает список веб-сайтов, на которых включен HSTS. Пользователи могут отправлять веб-сайты с поддержкой HSTS в список предварительной загрузки, если они соответствуют требуемым (простым) критериям.

Проверка предварительной нагрузки HSTS

Веб-сайты, добавленные в этот список, будут жестко закодированы в будущих версиях обновлений Chrome. Это гарантирует, что все, кто посещает ваши сайты с поддержкой HSTS в обновленных версиях Chrome, будут оставаться в безопасности.

Firefox, Opera, Safari и Internet Explorer имеют собственный список предварительной загрузки HSTS, но они основаны на списке Chrome на hstspreload.org.

Как включить HSTS на вашем сайте

Чтобы включить HSTS на вашем сайте, вам сначала нужно иметь действительный сертификат SSL

, Если вы включите HSTS без такового, ваш сайт будет недоступен для любого посетителя, поэтому перед продолжением убедитесь, что ваш сайт и любые субдомены работают по HTTPS.

Включить HSTS довольно просто. Вам просто нужно добавить заголовок к файлу .htaccess на вашем сайте. Нужно добавить заголовок:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Это добавляет файл cookie с максимальным возрастом доступа в один год (что такое файл cookie?

), который включает в себя ваш сайт и любые субдомены. После того как браузер получил доступ к веб-сайту, он не сможет получить доступ к незащищенной HTTP-версии веб-сайта в течение года. Убедитесь, что все субдомены в этом домене включены в сертификат SSL и имеют включенный HTTPS. Если вы забудете об этом, субдомены не будут доступны после сохранения файла .htaccess.

Сайты, на которых отсутствует IncludeSubdomains опция может подвергать посетителей утечкам конфиденциальности, позволяя поддоменам манипулировать файлами cookie. С IncludeSubdomains При включении эти атаки, связанные с файлами cookie, невозможны.

Замечания: Прежде чем добавить максимальный возраст в один год, сначала протестируйте весь веб-сайт с максимальным возрастом в пять минут, используя: макс возраста = 300;

Google даже рекомендует протестировать свой веб-сайт и его производительность (трафик) с недельным значением и значением в один месяц, а также до достижения максимального возраста в два года.

Five minutes: Strict-Transport-Security: max-age=300; includeSubDomains
One week: Strict-Transport-Security: max-age=604800; includeSubDomains
One month: Strict-Transport-Security: max-age=2592000; includeSubDomains

Составление списка предварительной загрузки HSTS

К настоящему времени вы должны быть знакомы с HSTS и почему для вашего сайта важно использовать его. Обеспечение безопасности посетителей вашего сайта в Интернете должно быть ключевым элементом плана вашего сайта.

Чтобы иметь право на использование списка предзагрузки HSTS, используемого Chrome и другими браузерами, ваш веб-сайт должен соответствовать следующим требованиям:

  1. Подать действительный сертификат SSL.
  2. Перенаправьте с HTTP на HTTPS на том же хосте, если вы прослушиваете порт 80.
  3. Обслуживать все субдомены по HTTPS. В частности, вы должны поддерживать HTTPS для www.subdomain если DNS-запись для этого субдомена существует.
  4. Обслуживайте заголовок HSTS в базовом домене для запросов HTTPS:
    • Максимальный возраст должен быть не менее 31536000 секунд (1 год).
    • Директива includeSubDomains должна быть указана.
    • Директива предварительной нагрузки должна быть указана.
    • Если вы обслуживаете дополнительную переадресацию с вашего сайта HTTPS, эта переадресация должна все еще иметь заголовок HSTS (а не страницу, на которую он перенаправляет).

Если вы хотите добавить свой сайт в список предварительной загрузки HSTS, убедитесь, что вы добавили необходимые предварительная нагрузка тег. Параметр «Предварительная загрузка» означает, что вы хотите, чтобы ваш сайт был добавлен в список предварительной загрузки Chrome HSTS. Заголовок ответа в .htaccess должен выглядеть следующим образом:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Мы рекомендуем вам добавить свой сайт на hstspreload.org. Требования довольно просты, и они помогут защитить посетителей вашего сайта и потенциально улучшить рейтинг вашего сайта в поисковых системах.

,

Ссылка на основную публикацию
Adblock
detector