Уязвимость 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_EXPOR T_WITH_DES40_CBC_SHA, TLS_DHE_DSS_WITH_DES_CBC_SHA, TLS_DHE_DSS_WITH_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 работают с этим шифром) TLS_DHE_RSA_WITH_AES_256_CBC_SHA, (FF, Chrome и Safari работают с этим шифром) Все браузеры работают с этим шифром, все выглядит нормально. https://www.tinfoilsecurity.com/poodle -> Зеленая галочка, все хорошо! На всякий случай попробуем еще несколько онлайн-сканеров... https://www.expeditedssl.com/poodle -> Неуязвим. ОТЛИЧНЫЙ! https://www.poodlescan.com/ -> УЯЗВИМ! Б** К!
  6. Окончательное сканирование: ssllabs.com ... УЯЗВИМО!

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

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

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


person Zoran Trifunovski    schedule 20.10.2014    source источник


Ответы (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 достаточно, чтобы предотвратить проблемы.

В приведенном вами списке шифров есть какой-то очень-очень плохой (экспорт, 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 по умолчанию.

person Kazaag    schedule 20.10.2014

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

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

я только что добавил

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

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

person Zoran Trifunovski    schedule 22.10.2014