Защитите свой сайт с помощью HSTS
HSTS (HTTP Strict Transport Security) - механизм, активирующий форсированное защищенное соединение протокола HTTPS. Данная политика безопасности позволяет сразу же безопасное соединение, вместо использования HTTP-протокола. Механизм использует особый заголовок HTTP Strict-Transport-Security, для переключения пользователя, зашедшего по HTTP, на HTTPS-сервер. Безопасен ли ваш сайт? Одна вещь, которую следует учитывать, - обеспечить безопасность вашего сайта с помощью HTTP Strict Transport Security (HSTS) .
Внедрение HSTS является расширением политики Always-On SSL. Для каждого веб-сайта, который вы хотите защитить с помощью HSTS, сначала необходимо установить сертификат SSL / TLS , и настроить этот веб-сайт для доступа только через HTTPS, а не через HTTP. Затем вы передаете браузерам с поддержкой HSTS, что ваш сайт доступен только с HTTPS, отправив значение заголовка HSTS. Поддержка браузеров автоматически изменяет любой HTTP-запрос для вашего веб-сайта в запрос HTTPS. Если версия HTTPS отсутствует, браузер предоставит пользователю доверительный диалог. HSTS определен в IETF RFC 6797 и развертывается в большинстве браузеров. Браузеры, которые не поддерживают HSTS, просто игнорируют значение заголовка HSTS, поэтому администраторы веб-сайтов не должны ждать полной поддержки браузера.
Смягчающие риски
HSTS поможет смягчить атаки с помощью инструмента sslstrip, который примет запрос на домен HTTPS и изменит его на запрос на аналогичный сайт с доменом HTTP. С помощью HSTS изменение имени с HTTPS на HTTP будет обнаружено браузером. HSTS также смягчит следующие проблемы безопасности:
- Пользовательские закладки или введенные вручную HTTP-адреса будут перенаправлены на HTTPS для целевого домена
- Сайт HTTPS, который непреднамеренно содержит HTTP-ссылку, будет перенаправлен на HTTPS для целевого домена
- В случае, когда атака «человек-в-середине» перенаправляет пользователя на недействительный сертификат, HSTS не разрешает пользователю переопределять неверное сообщение сертификата
«Зачем мне защищать мой сайт с помощью HTTPS, когда мы не запрашиваем какие-либо конфиденциальные данные?»
Есть два вопроса, которые следует учитывать. Во-первых, лучше всего представить свой собственный веб-сайт. Использование HTTP в некоторых местах и HTTPS в другом месте не дает последовательного представления вашим пользователям, и они не знают, чего ожидать.
Во-вторых, запрос конфиденциальных данных может не касаться конфиденциальности или безопасности. Ваш пользователь может просто захотеть, чтобы связь была обеспечена, чтобы никто из третьих лиц не узнал, что они отправились на ваш сайт.
Реализация HSTS
Для вашего веб-сайта HSTS реализован на веб-сервере, который должен обеспечить новый заголовок в соединении HTTPS. Ниже приведен пример информации, содержащейся в заголовке:
Strict-Transport-Security: max-age=15768000; includeSubDomains
Когда браузер, поддерживаемый HSTS, видит это, он понимает, что HSTS включен. Он запомнит в течение указанного периода (например, «max-age» в секундах), что к текущему домену можно обратиться только через HTTPS. Если впоследствии пользователь попытается подключиться к сайту только с HTTP, браузер по умолчанию будет использовать HTTPS. Расширение «includeSubDomains» будет применять политику HSTS для всех поддоменов в текущем домене.
Ограничения
У HSTS есть некоторые ограничения, большинство из которых рассматриваются в разделе «Вопросы безопасности» RFC 6797. HSTS также ограничен первым использованием веб-сайта или когда максимальный возраст, указанный в заголовке, истекает. Для первого использования веб-сайта браузер должен доверять принципу «первым делом» (TOFU), поскольку он ранее не получал заголовок HSTS. Проблема TOFU была решена Google для Chrome и была распространена на Firefox и Safari. Чтобы избежать проблемы с TOFU, вы должны сначала зарегистрировать свой сайт в Google и добавить домен в список предварительной загрузки HSTS .
В этом случае, когда браузер переходит на ваш сайт, он будет знать, что он должен быть защищен HTTPS за его включение в списке предварительной загрузки. Обратите внимание, что список предварительной загрузки не масштабируется для всех сайтов и доступен только для ранних пользователей. Кроме того, список предварительных загрузок не поддерживается всеми браузерами. Кроме того, предполагается, что пользователи будут повторно использовать сайт много раз. При каждом посещении сайта браузер загружает заголовок HSTS, и с этого времени будет увеличен максимальный возраст. Если пользователи не посещают сайт до истечения максимального срока, браузер не будет знать, что ваш сайт должен быть просмотрен только в HTTPS. Атака может быть смягчена, если сайт включен в список предварительной загрузки HSTS.
Поддержка браузеров
HSTS поддерживается в Chrome, Firefox, Opera, Safari, Internet Explorer 12 Вы можете посмотреть какие браузеры поддерживают HSTS в настоящее время на сайте http://caniuse.com/stricttransportsecurity - Can I use Strict Transport Security?
Как происходит переадресация на HSTS?
Большинство администраторов веб-сайтов хорошо знакомы с переадресацией, и для них естественно предложить использовать эту технику для принудительного подключения HTTP-HTTPS в качестве надежной альтернативы HSTS. К сожалению, для перенаправления требуется начальное подключение к серверу через HTTP, подверженное атаке. Противник может получить небезопасные сеансовые куки, когда браузер первоначально подключается к сайту, а также может вводить вредоносный контент, такой как поддельная страница входа, в нешифрованный ответ. Как только браузер узнает, что сайт требует HTTPS через HSTS, он более безопасен, чем простое перенаправление.
|