Веб-сервер Apapche перенаправляет неподдерживаемые шифры на http?
Мы отключим поддержку браузеров, которые поддерживают только TLS1.0
Когда мы отключаем поддержку TLS 1.0 на нашем веб-сервере, можем ли мы перенаправить браузеры, которые не поддерживают TLS 1.1 или выше, на страницу http, объясняющую, почему у них нет доступа и что они могут с этим сделать?
У многих пользователей уже есть наш https:// в избранном, поэтому мы не можем предполагать, что они сначала зайдут на сайт http, где мы могли бы отобразить сообщение неподдерживаемым браузерам или переслать поддерживаемые браузеры на защищенный сайт.
2 ответа
Когда мы отключаем поддержку TLS 1.0 на нашем веб-сервере, можем ли мы перенаправить браузеры, которые не поддерживают TLS 1.1 или выше, на страницу http, объясняющую, почему у них нет доступа и что они могут с этим сделать?
Нет. Как только вы отключите поддержку TLS 1.0 на своем веб-сервере, ваши посетители с древними браузерами больше не смогут подключаться, поэтому вы не сможете перенаправить их.
Кроме того: если вы используете HSTS, вы, вероятно, не сможете перенаправить на обычную страницу HTTP в своем собственном домене. (Хотя, если их браузеры не поддерживают TLS 1.1 или более позднюю версию, они, вероятно, тоже не будут соблюдать HSTS, так что это не проблема.)
Вместо этого: перед отключением поддержки TLS 1.0 вы можете начать регистрировать, сколько клиентов по-прежнему используют старые шифры, и провести информированный анализ воздействия, выполнив что-то вроде:
CustomLog logs/ssl_cipher_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%{User-agent}i\""
Также / дополнительно вы можете использовать переменную среды SSL SSL_PROTOCOL
(SSLv3, TLSv1, TLSv1.1, TLSv1.2) для создания правила mod_rewrite для обнаружения старых шифров и, например, перенаправления этих запросов (не проверено):
RewriteCond %{SSL:SSL_PROTOCOL} =SSLv3 [OR]
RewriteCond %{SSL:SSL_PROTOCOL} =TLSv1
RewriteRule (.*) http://%{SERVER_NAME}/unsupported_tls_version.html [L,R=302]
Это невозможно.
HTTPS сначала создает безопасное соединение, а затем использует это безопасное соединение для отправки и получения HTTP-сообщений по этому безопасному соединению (включая перенаправления).
Отсутствие распространенной версии шифров /TLS означает отсутствие соединения и, следовательно, отсутствие HTTP-сообщений.
HTTPS не предлагает отступления, когда безопасное соединение не может быть установлено, поскольку это было бы вектором атаки, чтобы заблокировать безопасное соединение HTTPS.
С учетом этих рассуждений @Hbruijn дает хороший совет о том, как измерить и, следовательно, попытаться свести к минимуму влияние.
По мере того как удаление TLSv1 становится обычным явлением (в соответствии с требованиями PCI), все больше и больше сайтов будут отключать это, и пользователи, скорее всего, получат это сообщение много, и поэтому должны принять подсказку. Таким образом, затронутая база пользователей должна быть небольшой и очевидной.
В качестве основного эффекта (по крайней мере, для просмотра), вероятно, будет IE10, вы также можете добавить что-то вроде следующего в верхнюю часть вашей страницы, прежде чем удалять поддержку TLSv1.
<!--[if lt IE 11]>
<p class=“old-ie”>
We notice you are using an old version of Internet Explorer that is shortly due to be unsupported on this site. Please upgrade to be able to continue to use this site.
</p>
<![endif]-->
При этом используются специальные IE-теги if, а затем можно соответствующим образом оформить стиль, чтобы сделать его большим, очевидным красным предупреждением.
Старый Android - еще один вероятный кандидат (что выше не поможет), но начиная с 4.4 Chrome Webview (который поддерживает TLSv1.2) является значением по умолчанию, поэтому, надеюсь, большинство пользователей Android не пострадают.
Кроме того, для большинства западных сайтов в любом случае это обычно боты, сканеры и другие подобные инструменты, а не реальный трафик.