Назад | Перейти на главную страницу

Отключение всех старых версий ssl в Apache 2 для принудительной аутентификации через TLS 1.2?

Я читаю Вот что все (более старые?) версии SSL должны быть отключены для принудительной аутентификации TLS 1.2. Как это сделать на Apache 2?

Я читал здесь, что все (старые?) Версии SSL необходимо отключить, чтобы принудительно выполнить аутентификацию TLS 1.2.

Это не то, что написано! В нем говорится, что все версии SSL должны быть отключены, чтобы принудительно использовать TLS, а не принудительно использовать TLSv1.2.

SSL / TLS существует в нескольких версиях в порядке возрастания возраста и безопасности:

  1. SSLv2
  2. SSLv3
  3. TLSv1
  4. TLSv1.1
  5. TLSv1.2

SSLv1 никогда не был общедоступным, и в настоящее время над TLSv1.3 ведутся работы.

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

Принято считать, что SSLv2 и SSLv3 теперь небезопасны из-за комбинации обнаруженных в них недостатков и увеличения вычислительной мощности, что означает, что они могут быть взломаны. Так что вы обязательно должны отключить их, используя следующее:

SSLProtocol all -SSLv2 -SSLv3

Примечание. SSLv2 обычно по умолчанию отключен, но явного вреда нет.

TLSv1 интересен. Стандарт соответствия PCI (используемый, когда вы принимаете платежи по картам на своем веб-сайте) недавно потребовал отключить TLSv1, но он по-прежнему необходим для некоторых браузеров, которые все еще используются, так что это может навредить некоторым из ваших пользователей (например, пользователям IE8 на XP - да, даже хотя XP официально удалена и не поддерживается, она все еще используется). Лично я думаю, что мы почти готовы отключить это, но еще не совсем.

TLSv1.1 - еще один интересный. TLSv1.2 вышел вскоре после этого, и почти каждый браузер, поддерживающий 1.1, также поддерживает 1.2, поэтому использование 1.1 очень мало. Поэтому, если вы хотите укрепить свою конфигурацию SSL / TLS, может быть, лучше пропустить ее и сразу перейти только к TLSv1.2, а не к обоим, что избавит вас от отключения позже, когда какая-то уязвимость будет обнаружена позже. С другой стороны, это все еще безопасно, и, возможно, это крошечное подмножество браузеров являются вашими посетителями.

Итак, если вам нужен только TLSv1.2 (с опцией TLSv1.3 в будущем), вы можете использовать эту конфигурацию:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Или, в качестве альтернативы, просто это (хотя и ограничивает вас только TLSv1.2, что бы ни случилось позже):

SSLProtocol TLSv1.2

Вы также можете измерить свое текущее использование, используя настраиваемый формат журнала, чтобы вы могли видеть, сколько ваших посетителей все еще используют TLSv1, например: http://httpd.apache.org/docs/current/mod/mod_ssl.html#logformats

Однако это еще не все, что касается надежной настройки https.

Для начала это сильно зависит от установленной вами версии OpenSSL и / или версии, с которой он был скомпилирован. Это может означать, что TLSv1.2 даже недоступен для вас - есть еще много установок OpenSSL 0.9.8!

Далее идет CipherSuite, который вы используете в этой версии SSL / TLS. Некоторые из них более безопасны, чем другие, а некоторые снижают производительность больше, чем другие. Вы также должны указать, что сервер должен указывать порядок, чтобы использовался ваш самый надежный набор. Это (на момент написания) сильное предложение с хорошей устаревшей поддержкой:

SSLHonorCipherOrder on
SSLCipherSuite "EECDH+AES128:EECDH+AES256:+SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RSA+3DES:!DSS"

Затем есть другие варианты, такие как сжатие, HSTS, CT, HPKP и OCSP Stapling, но они действительно являются специальными темами и выходят за рамки этого вопроса (написали о них в блоге здесь, если хотите продолжить чтение: https://www.tunetheweb.com/security/https/ )

Лучший вариант для тестирования вашей настройки https - это онлайн https://www.ssllabs.com/ssltest инструмент. Просто введите адрес своего веб-сайта, и через пару минут вы получите отчет о том, насколько хороши ваши настройки. ИМХО, нет веской причины не получать здесь оценку A, если вы не используете старое оборудование / программное обеспечение (в этом случае, почему вы не обновляетесь?). Если вы присматриваете за веб-сайтом, я настоятельно рекомендую повторно запускать этот тест раз в квартал, чтобы проверять любые новые разработки и изменения конфигурации, которые вам могут потребоваться, чтобы оставаться на вершине своей конфигурации.

Это неверно, использование только TLSv1.2 удалит некоторые совместимости браузера и не устранит все нарушения SSL.

Если SSL больше не используется, это потому, что было обнаружено какое-то нарушение ценных бумаг. Но это не решает всех проблем.

Чтобы быть эффективным, вам необходимо обновить версию OpenSSL и использовать конфигурацию Apache для удаления других уязвимостей.

Вот конфигурация для защиты вашего SSL, увеличения совместимости браузера без уязвимости для атак:

SSLEngine on
SSLOptions +StrictRequire
SSLProxyEngine on

# Prevent Beast attack
SSLHonorCipherOrder on

# SSL Compression (CRIME attack)
SSLCompression off

# HSTS
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; pr$

# PROTOCOL
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

После этого вы можете проверить свой уровень безопасности SSL на этом сайте. https://www.ssllabs.com/ssltest

  1. Обновите Apache 2 до последней версии.
  2. Обновите OpenSSL до последней версии 1.0.1+.
  3. Отредактируйте Apache ssl.conf или httpd.conf

Добавить

# only use TLSv1.2 and above, to have SHA-256 and GCM
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Перезагрузите Apache.