1

所以,我有 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_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_SHATLS_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_SHATLS_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_SHATLS_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_SHATLS_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 特定的密码,然后我会在那里添加它,从而紧紧保护我的服务器。我从https://www.openssl.org/docs/apps/ciphers.html链接中指定的列表中添加了所有 TLSv1.2 密码。扫描我的服务器,得到一个“绿色复选标记”,一切正常且安全......试图通过任何浏览器访问我的服务器......“无法打开页面”。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 ... 易受攻击!

我在这里失去理智......请帮助!

UPDATE2:经过 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" 元素,一切都按预期工作。

4

2 回答 2

0

两天后试图找出问题所在......

RedHat 建议的修复包含元素 sslProtocol s而不是 sslProtocol (注意最后没有's'),我正在使用它,并且在官方 JbossWeb 文档http://docs.jboss.org中有描述/jbossweb/2.1.x/config/http.html

我刚刚添加

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

并删除了“密码”元素,现在一切都按预期工作。

于 2014-10-22T10:23:44.527 回答
0

您只需将 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 ...)。

您可以查看 Mozilla 服务器端 ssl 配置建议以了解您可以使用的密码:https ://wiki.mozilla.org/Security/Server_Side_TLS 。

要了解您的服务器的安全级别以及它将能够支持哪个浏览器,您可以使用ssllabs 测试

PS:你用的是哪个版本的IE。它是 6,这是合乎逻辑的,因为默认情况下它只支持 ssl3。您可以启用 tls1.0(Internet 选项 > 高级;最后有支持的 ssl/tls 列表,您可以选中 tls 1.0 并取消选中 ssl 3.0 以提高安全性)。如果您需要在默认情况下访问 IE 6 并防止 POODLE ......抱歉,没有安全的方法(RC4 密码将与 ssl3 一起使用并且不易受到 POODLE 的攻击,但由于其他原因它们不安全)。这真是一个 IE6 杀手,没有办法使用 IE6 默认配置进行安全 ssl 连接。

于 2014-10-20T15:44:41.323 回答