Как включить TLS 1.1 и 1.2 с OpenSSL и Apache

33

В свете растущего числа проблем безопасности, таких как недавно анонсированный Browser Exploit Against SSL / TLS (BEAST), мне было любопытно, как мы могли бы включить TLS 1.1 и 1.2 с OpenSSL и Apache, чтобы гарантировать, что мы не будем уязвимы к таким векторам угрозы.

Джон
источник

Ответы:

25

TLS1.2 теперь доступен для Apache, чтобы добавить TLSs1.2, вам просто нужно добавить конфигурацию виртуального хоста https:

SSLProtocol -all +TLSv1.2

-all удаляет другой протокол ssl (SSL 1,2,3 TLS1)

+TLSv1.2 добавляет TLS 1.2

для большей совместимости браузера вы можете использовать

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

кстати, вы также можете увеличить набор Cipher, используя:

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-GC$

Вы можете проверить безопасность своего веб-сайта https с помощью онлайн-сканера, например: https://www.ssllabs.com/ssltest/index.html.

Froggiz
источник
2
Я не уверен, почему этот пост помечен как "устаревший". Я использовал рекомендованное решение, и сайт моего клиента перешел с рейтинга «C» в Qualsys SSL Labs на «A».
Михаил Собчак,
Привет, я удалил устаревшее предупреждение, чтобы избежать недоразумений, это была ссылка на старый правильный ответ. Я рад, что ваша безопасность возросла;)
Фроггиз
В sites-available / 000-default.conf я добавил к виртуальному хосту 'SSLProtocol -all + TLSv1.2' и получил: AH00526: Синтаксическая ошибка в строке 31 файла /etc/apache2/sites-enabled/000-default.conf : Неверная команда 'SSLProtocol', возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера. Действие 'configtest' не выполнено.
Элия ​​Вайс,
Вы включили mod_ssl? (команда: a2enmod ssl)
Фроггиз
«SSLProtocol: недопустимый протокол« TLSv1.2 »» (OS X 10.10.5)
Майкл,
10

Согласно журналу изменений OpenSSL , поддержка TLS 1.2 была добавлена ​​в ветку разработки OpenSSL 1.0.1, но эта версия еще не выпущена. Возможно, в коде mod_ssl также потребуются некоторые изменения, чтобы фактически включить TLS 1.2 для Apache.

Другая широко используемая библиотека SSL / TLS - это NSS ; он используется менее известным модулем Apache mod_nss ; К сожалению, текущие выпуски NSS также не поддерживают TLS 1.2.

Еще одна библиотека SSL / TLS - это GnuTLS , и она претендует на поддержку TLS 1.2 уже в своем текущем выпуске. Существует модуль Apache, использующий GnuTLS: mod_gnutls , который также утверждает, что поддерживает TLS 1.2. Однако этот модуль кажется довольно новым и может быть не очень стабильным; Я никогда не пытался использовать это.

Сергей Власов
источник
1
@ Сергей, спасибо за ссылки и информацию. Я все еще опечален тем, что мы не можем использовать эти стандарты, учитывая их возраст. Мне кажется странным, что мы должны быть защитниками наших систем и наших сетей, но мы не можем использовать инструменты, которые помогли бы улучшить нашу безопасность. Кроме того, кажется, что у пользователей веб-браузера есть способы помочь в поддержке этих стандартов в дополнение к серверам, таким как Apache и, возможно, IIS.
Джон
2
Является ли этот ответ еще точным, год спустя?
Бен Вальтер
2
@BenWalther OpenSSL 1.0.1 был выпущен в марте 2012 года с поддержкой TLS 1.2. Последняя версия на данный момент - 1.0.1c. Я не уверен, сколько остальной части сообщения все еще в силе.
Бурхан Али
6

Вы не можете, OpenSSL пока не предлагает релиз для TLS 1.1.

Один соответствующий комментарий на. по этому вопросу:

Не могли бы вы объяснить немытым массам, как бы вы реализовали поддержку TLS 1.1 и 1.2 в мире, где доминирующая библиотека OpenSSL еще не поддерживает ни один из протоколов в своих стабильных выпусках? Конечно, вы можете использовать GnuTLS и mod_gnutls, и я попробовал это, но в этом не было никакого смысла, поскольку никакой браузер, кроме Opera, не поддерживал его, и в модуле были некоторые странные сбои. IE 8/9 должен был поддерживать их в Vista и 7, но не смог получить доступ к сайту, обслуживаемому mod_gnutls, когда 1.1 и 1.2 были включены на стороне клиента. Вчера я попробовал это заново просто из любопытства, и теперь даже Opera 11.51 задыхается на TLS 1.1 и 1.2. Так что. Ничто не поддерживает протоколы. Нужно дождаться OpenSSL 1.0.1 для TLS 1.1, и никто не знает, когда это произойдет.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890

Стив-О
источник
1
@ Steve-o, спасибо за информацию. Это отчасти разочаровывает, что TLS 1.1 вышел с апреля 2006 года, а TLS 1.2 вышел с августа 2008 года с обновлениями в марте 2011 года, и у нас до сих пор нет возможности их использовать.
Джон
4

Адам Лэнгли, инженер Google Chrome, отмечает, что TLS 1.1 не решил бы эту проблему из-за проблемы с реализацией SSLv3, с которой все должны обходиться: браузеры должны перейти на SSLv3 для поддержки ошибочных серверов, и злоумышленник может инициировать это понижаем.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html

CJC
источник
3

Gnu_tls работает как шарм и также реализует SNI (идентификацию имени сервера), что очень удобно для виртуального хостинга ....

Нет проблем также найти пакеты bin для mod_gnutls в дистрибутивах Linux, я использую его с 2 лет и никаких проблем, он также более производительный, чем openssl imho.

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

rastrano
источник
@ Растрано - есть ли у вас какие-либо предложения или ссылки на то, как это реализовать? Спасибо за информацию, и очень жаль, что «современные» браузеры пока не поддерживают ее.
Джон