java - 缓解 Logjam/weakdh.org 的正确 JBoss EAP 6.0.1 密码套件配置是什么?

标签 java security ssl jboss

因为logjam和网站的关注https://weakdh.org/ (Logjam: How Diffie-Hellman Fails in Practice) 最近几天收到,我决定在我的 JBoss EAP 6.0.1 系统上加固 SSL 配置,如下所述:

13.2.5。 SSL 连接器引用:https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Administration_and_Configuration_Guide/SSL_Connector_Reference1.html

此处交叉引用:http://www.coderanch.com/t/613062/JBoss/configuring-SSL-Https-Jboss

我的 standalone.xml 的相关部分包含在下面的混淆形式中:

     <connector name="https" protocol="HTTP/1.1" scheme="https" 
    socket-binding="https" secure="true">  
    <ssl  
     key-alias="**********"  
     password="**********"  
     certificate-key-file="/var/**********/**********.jks"  
     protocol="TLSv1.2"  
     cipher-suite="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_SHA,TLS_ECDHE_RSA_WITH_AE_256_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_128_SHA,TLS_DHE_DSS_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_256_SHA256,TLS_DHE_DSS_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_256_SHA"  
     />  
    </connector> 

The protocol restriction is working but the cipher-suite attribute has, as far as I can tell, no effect. I have reduced the list down to just two suites but the list returned by JBoss on port 8443 is always the same. I have tested the system against Qualys SSL Labs and the list of cipher suites returned includes numerous weak of ciphers not included in my list.

 Cipher Suites (sorted by strength; the server has no preference)
 TLS_RSA_WITH_RC4_128_MD5 (0x4)   WEAK     128
 TLS_RSA_WITH_RC4_128_SHA (0x5)   WEAK     128
 TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)     128
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33)   DH 768 bits (p: 96, g: 96, Ys: 96)   FS   INSECURE     128
 TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011)   WEAK     128
 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   ECDH 571 bits (eq. 15360 bits RSA)   FS     128
 TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)     112
 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (0x16)   DH 768 bits (p: 96, g: 96, Ys: 96)   FS   INSECURE     112
 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (0xc012)   ECDH 571 bits (eq. 15360 bits RSA)   FS     112

更新: 我尝试通过 CLI 调整配置,希望它能做一些不同的事情:

 /subsystem=web/connector=https/ssl=configuration/:write-attribute(name=cipher-suite, value="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA")

然后输出(也对应于新的 standalone.xml):

 [standalone@localhost:9999 /] /subsystem=web/connector=https/ssl=configuration/:read-resource(recursive=true,proxies=false,include-runtime=true,include-defaults=true)
 {
      "outcome" => "success",
      "result" => {
           "ca-certificate-file" => undefined,
           "ca-certificate-password" => undefined,
           "ca-revocation-url" => undefined,
           "certificate-file" => undefined,
           "certificate-key-file" => "/var/xxxx/xxxx-xx/xxxx.jks",
           "cipher-suite" => "TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA",
           "key-alias" => "xxxx",
           "keystore-type" => undefined,
           "name" => undefined,
           "password" => "****",
           "protocol" => "TLSv1.2",
           "session-cache-size" => undefined,
           "session-timeout" => undefined,
           "truststore-type" => undefined,
           "verify-client" => "false",
           "verify-depth" => undefined
      },
      "response-headers" => {"process-state" => "reload-required"}
 }

但是 nmap 使用这个命令:

 nmap -p 8443 -A --script ssh-hostkey,ssh2-enum-algos,sshv1,ssl-cert,ssl-date,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2 xxxx.de

坚持认为其他密码套件仍然有效:

 Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-31 09:41 W. Europe Daylight Time

 Nmap scan report for xxxx.de (x.x.x.x)
 Host is up (0.031s latency).

 PORT     STATE SERVICE  VERSION
 8443/tcp open  ssl/http Apache Tomcat/Coyote JSP engine 1.1

 | ssl-cert: Subject: commonName=xxxx.de
 | Issuer: commonName=COMODO RSA Domain Validation Secure Server CA/organizationName=COMODO CA Limited/stateOrProvinceName=Greater Manchester/countryName=GB
 | Public Key type: rsa
 | Public Key bits: 2048
 | Not valid before: 2015-05-27T23:00:00+00:00
 | Not valid after:  2016-05-21T22:59:59+00:00
 | MD5:   7ac1 b1a9 4fd8 c438 0bce 0e82 bb2a 5e06
 |_SHA-1: 9b6e 185c 8598 aec6 7949 e7b1 3183 fc87 637f e86b
 | ssl-enum-ciphers: 
 |   TLSv1.0: No supported ciphers found
 |   TLSv1.2: 
 |     ciphers: 
 |       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
 |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - strong
 |       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
 |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
 |       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
 |       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
 |       TLS_RSA_WITH_AES_128_CBC_SHA - stron
 |       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
 |       TLS_RSA_WITH_RC4_128_MD5 - strong
 |       TLS_RSA_WITH_RC4_128_SHA - strong
 |     compressors: 
 |       NULL
 |_  least strength: strong
 | ssl-google-cert-catalog: 
 |_  No DB entry

 Nmap done: 1 IP address (1 host up) scanned in 55.74 seconds
 - See more at: https://developer.jboss.org/message/931697#sthash.3ZJZG9PV.dpuf

显然,这里有一些关于这个主题的指导: https://access.redhat.com/solutions/661193 (在 EAP 6 中禁用弱 SSL 密码) las,我无权访问它,因为 RedHat 的政策似乎将应用程序服务器和 Internet 的安全性置于付费专区之后。叹。

任何人都可以确认这个问题,更好的是,提供解决方案的建议。没有将它放在反向代理(我的计划 B)后面,有人有工作配置吗?谢谢。

引用:https://developer.jboss.org/message/931697

最佳答案

由于 JBoss 邮件列表和 Stackoverflow 工作人员都没有任何反馈,我将其归因于该 JBoss 版本中的错误。我已经通过升级到 Wildfly 8.2 并按照提供的说明进行配置来解决它,它按预期工作。

我想这是公认的旧版本服务器中的错误。对于后代,这是 wildfly 的 SSL 监听器的配置:

 <https-listener name="https" socket-binding="https" security-
  realm="SSLRealm"      
  enabled-protocols="TLSv1.2"     
  enabled-cipher-suites="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, etc."/>

相应的安全领域可能如下所示:

<security-realm name="SSLRealm"> 
    <server-identities> 
      <ssl > 
        <keystore
     path="/var/mysite/ssl/mysite.jks"
     keystore-password="******"
     alias="mysite"
     /> 
      </ssl> 
    </server-identities> 
  </security-realm> 

关于java - 缓解 Logjam/weakdh.org 的正确 JBoss EAP 6.0.1 密码套件配置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532836/

相关文章:

java - mysql 中的登录表单

java - 使用JavaFX在Eclipse中执行 "Hello Word"程序时出错

security - Cakephp 2 安全组件和 ajax 调用

linux - 如何在 Linux 上定义要求用户使用注册设备登录的其他安全级别?

java - 如何配置 Tomcat 以在出站连接中使用 TLS v1.2

ruby-on-rails - 设置 SSL 时出现问题,不断收到 "no valid, non-passphrase-protected keys given"错误

java - 运行 Maven 测试时 Cucumber 测试未执行

java - jsp中的回显指令

database - Secure Database For Mac OS Xdevelopment(特别是核心数据)有哪些选项?

node.js - 如何访问 OpenShift 通配符 SSL 证书和私钥