2014-10-20 4 views
1

Итак, у меня есть JBoss 5.1.0 GA, и я прочитал о том, как мне нужно, чтобы отключить SSLv3 здесь:ПУДЕЛЬ уязвимость, JBoss и IE

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_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?

UPDATE: Если я реализовать решение, предложенное RedHat (который, меняя sslProtocols к "TLSv1, TLSv1.1, TLSv1.2"):

  1. я получаю сообщение об ошибке при запуске JBoss говоря «TLSv1, TLSv1.1, TLSv1.2 SSLContext недоступно». Это означает, что эта строка недопустима, и я ДОЛЖЕН использовать только один из этих протоколов. Хорошо, я пойду самым безопасным: «TLS1.2»
  2. Другая проблема заключается в том, что в решении RedHat ничего не упоминается в шифрах. У меня создалось впечатление, что элемент «ciphers» больше не нужен, поэтому я удалил его из server.xml, изменил значение sslProtocols на «TLSv1.2» и отсканировал мой сервер. ЭТО ВСЕ ЕЩЕ УЯЗВИМО !.
  3. Я попытался установить TLSv1.1 и TLSv1. Это не работает. Кажется, что элемент sslProtocols не имеет никакого влияния на какие протоколы использует сервер, а это означает, что только элемент шифров имеет некоторое значение.
  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/ -> УЯЗВИМЫЕ! F ** K!
  6. Окончательное сканирование: ssllabs.com ... УЯЗВИМЫЕ!

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

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

Я только что добавил sslProtocols = "TLSv1, TLSv1.1, TLSv1.2" и удалил элемент "ciphers", все работает, как ожидалось.

ответ

0

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

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

Я просто добавил

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

и удалил элемент «ciphers», теперь все работает так, как ожидалось.

0

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

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

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

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

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

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

Смежные вопросы