Уязвимость POODLE, JBoss и IE

Итак, у меня есть JBoss 5.1.0 GA, и я прочитал о том, как мне нужно отключить SSLv3 здесь:

https://access.redhat.com/solutions/1232233

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

https://www.tinfoilsecurity.com/poodle

в основном это подтверждение того, что я защитил свой сервер и SSLv3 больше не поддерживается, но теперь я не могу получить доступ к своему веб-сайту с помощью IE (все версии IE). Поскольку в моем списке шифров в конфигурации server.xml было только 4 шифра, я стремился найти больше шифров для добавления в этот список, чтобы заставить IE работать. Я добавил более 50 шифров, но IE по-прежнему не загружает мой сайт. Вот список всех шифров, которые я использовал до сих пор (я получил список здесь ( https://www.openssl.org/docs/apps/ciphers.html):

TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, TLS_DH_DSS_WITH_SEED_CBC_SHA, TLS_DH_RSA_WITH_SEED_CBC_SHA, TLS_DHE_DSS_WITH_SEED_CBC_SHA, TLS_DHE_RSA_WITH_SEED_CBC_SHA, TLS_RSA_WITH_NULL_MD5, TLS_RSA_WITH_NULL_SHA, TLS_RSA_EXPORT_WITH_RC4_40_MD5, TLS_RSA_WITH_RC4_128_MD5, TLS_RSA_WITH_RC4_128_SHA, TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, TLS_RSA_WITH_IDEA_CBC_SHA, TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_DES_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, TLS_DH_DSS_WITH_DES_CBC_SHA, TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA, TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_DH_RSA_WITH_DES_CBC_SHA, TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DHE_DSS_EXPORT_WITH_DES40_SS_S_D_HDHTSHDHTSHSHTSHSHTSHS TH_3DES_EDE_CBC_SHA, TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_DHE_RSA_WITH_DES_CBC_SHA, TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DH_DSS_WITH_AES_128_CBC_SHA, TLS_DH_DSS_WITH_AES_256_CBC_SHA, TLS_DH_RSA_WITH_AES_128_CBC_SHA, TLS_DH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_RC4_128_SHA

Ни один из этих шифров не работает с IE, это означает, что когда я подхожу к своему серверу с IE, я получаю "Эта страница не может быть отображена".

Может кто-то помочь мне с этим? Могу ли я использовать шифр, который не откроет SSLv3 на моем сервере, а также будет работать с IE?

ОБНОВЛЕНИЕ: Если я реализую решение, предложенное RedHat (то есть, изменяя sslProtocols на "TLSv1,TLSv1.1,TLSv1.2"):

  1. Я получаю сообщение об ошибке при запуске JBoss: "TLSv1, TLSv1.1, TLSv1.2 SSLContext недоступен". Это означает, что эта строка недействительна, и я ДОЛЖЕН использовать только один из этих протоколов. Хорошо, я пойду с самым безопасным: "TLS1.2"
  2. Другая проблема заключается в том, что в решении RedHat ничего не упоминается в шифрах. У меня сложилось впечатление, что элемент "шифры" больше не нужен, поэтому я удалил его из server.xml, изменил значение sslProtocols на "TLSv1.2" и просканировал мой сервер. ЭТО ЕЩЕ Уязвимо!.
  3. Я попытался установить TLSv1.1 и TLSv1. Это не работает. Кажется, что элемент sslProtocols не оказывает никакого влияния на то, какие протоколы использует сервер, а это означает, что только элемент ciphers имеет некоторое значение.
  4. Хорошо, тогда я сказал... Я найду некоторые специальные шифры TLSv1.2 и добавлю их туда, таким образом, надежно защитив свой сервер. Я добавил ВСЕ шифры TLSv1.2 из списка, указанного в https://www.openssl.org/docs/apps/ciphers.html. Сканировал мой сервер, получил "зеленую галочку", все в порядке и защищен... Попытался подойти к моему серверу через любой браузер... "Невозможно открыть страницу". Chrome: ERR_SSL_VERSION_OR_CIPHER_MISMATCH Firefox: ssl_error_no_cypher_overlap IE: невозможно открыть страницу (без любезности сообщить мне, почему) Что за черт?! Что мне теперь делать?
  5. Хорошо, я начну добавлять шифры снизу вверх из списка https://www.openssl.org/docs/apps/ciphers.html, пропуская SSLv3. Я попал в этот (очень короткий) список: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, (IE работает только с этим шифром) TLS_DHE_RSA_WITH_AES_128_CBC_SHA, (FF, Chrome и Safari работают с этим шифром), работают SFS, FFS, FF, ChF, FES, FF, ChF_HF, FF, Chrome, Safari, FHF, WF), TLS_DHE, FHF, FAR, EN), TLS_DHE, FF, FAR, ESH, FF, WF), TLS_DHF, EF. все выглядит хорошо. https://www.tinfoilsecurity.com/poodle -> Зеленая галочка, все хорошо! Давайте попробуем еще несколько онлайн-сканеров, просто чтобы быть в безопасности... https://www.expeditedssl.com/poodle -> Не уязвимо. ОТЛИЧНЫЙ! https://www.poodlescan.com/ -> Уязвимые! F**K!
  6. Окончательное сканирование: ssllabs.com ... Уязвимо!

Я схожу с ума здесь... пожалуйста, помогите!

ОБНОВЛЕНИЕ 2 : После 2 потерянных дней, пытаясь выяснить, в чем проблема... Предлагаемое исправление от RedHat содержало элемент sslProtocol***s***, в отличие от sslProtocol (обратите внимание, что в конце нет 's'), который я использовал и который описан в официальной документации JbossWeb http://docs.jboss.org/jbossweb/2.1.x/config/http.html

Я просто добавил sslProtocols = "TLSv1,TLSv1.1,TLSv1.2" и удалил элемент "шифры", все работает как положено.

2 ответа

Решение

После 2 потерянных дней, пытаясь выяснить, в чем проблема...

Предлагаемое исправление от RedHat содержало элемент sslProtocol в отличие от sslProtocol (обратите внимание, что в конце нет 's'), который я использовал и который описан в официальной документации JbossWeb http://docs.jboss.org/jbossweb/2.1.x/config/http.html

Я только добавил

sslProtocols = "TLSv1,TLSv1.1,TLSv1.2"

и убрал элемент "шифры", теперь все работает как положено.

Вам нужно только установить sslProtocols на tls 1.0, 1.1 и 1.2, чтобы предотвратить атаку POODLE, как описано в документе RedHat https://access.redhat.com/solutions/1232233 (кажется, теперь все в порядке, они обновили его пару раз, так как стоимость имущества не была правильной).

Фактически, шифры ssl3.0 и tls1.0 и tls1.1 в основном одинаковы, поэтому удаление шифра ssl3.0 приведет к деактивации только 1,2 новых шифров (GMC). Атака POODLE действительно специфична для комбинации использования ssl3 и CBC-шифров, отключения ssl3 достаточно для предотвращения проблем.

Список введенных вами шифров содержит очень плохой список (export, rc2 ...).

Вы можете ознакомиться с рекомендациями по конфигурации ssl на стороне сервера Mozilla, чтобы получить представление о шифре, который вы можете использовать: https://wiki.mozilla.org/Security/Server_Side_TLS.

Чтобы получить представление об уровне безопасности вашего сервера и о том, какой браузер будет на нем работать, вы можете использовать тест ssllabs.

PS: какую версию IE вы используете. Это 6, это логично, так как по умолчанию он поддерживает только ssl3. Вы можете включить tls1.0 ("Свойства обозревателя"> "Дополнительно"; в конце приведен список поддерживаемых ssl/tls, вы можете проверить tls 1.0 и снять флажок ssl 3.0 для повышения безопасности). Если вам необходим доступ по умолчанию IE 6 и предотвращение POODLE... извините, что безопасного пути нет (шифр RC4 будет работать с ssl3 и не будет уязвим для POODLE, но по другой причине не безопасен). Это действительно убийца IE6, нет никакого способа иметь безопасное соединение ssl с конфигурацией IE6 по умолчанию.

Другие вопросы по тегам