标签:Sweet32 OpenSSH Apache Subversion Edge EAP
最近安全扫描时发现OpenSSL 1.0的这个问题,从编号可以看出这是2016年发现的老问题。生日攻击这个术语来源于生日问题:在一个教室中最少应有多少学生才使得至少有两个学生的生日在同一天的概率不小于1/2?答案是23。如60人以上,概率大于99%,如70人以上,概率大于99.9%。OpenSSL 1.0编译时,可禁用DES:
# ./config --prefix=/usr --no-des --shared
# make
# make install
查看OpenSSL支持的算法:
openssl ciphers -v
下面是一些常用服务的解决方法:
目前OpenSSH仅支持OpenSSL 1.0,且编译时要用到DES算法。因此通常做法是在配置文件ssh_config/sshd_config中设定Ciphers:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
查看ssh支持的算法:
ssh -Q cipher
编辑ssl.conf,禁用老的协议,配置SSLCipherSuite:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH
Subversion Edge使用了jetty服务器,编辑appserver/etc/svnedge-ssl.xml,排除DES算法:
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg>
<New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="ExcludeProtocols">
<Array type="java.lang.String">
<Item>TLSv1</Item>
<Item>SSLv2</Item>
<Item>SSLv3</Item>
</Array>
</Set>
<Set name="ExcludeCipherSuites">
<Array type="java.lang.String">
<Item>.*DES.*</Item>
</Array>
</Set>
</New>
</Arg>
...
</New>
配置Connector的ciphers项:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="${user.home}/.keystore" keystorePass="changeit" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"/>
ciphers支持两种语法:JSSE和OpenSSL,Tomcat 9默认值为:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="https" ... cipher-suite="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"/>
</connector>
cipher-suite支持两种语法:JSSE和OpenSSL,默认值是HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true" enabled-protocols="TLSv1.2"
enabled-cipher-suites="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"/>
enabled-cipher-suites支持两种语法:JSSE和OpenSSL,默认是JVM的默认值。
JDK 1.7.0_75以后的版本,java.security配置文件中提供了jdk.tls.disabledAlgorithms参数,可以配置禁用的算法:
jdk.tls.disabledAlgorithms=SSLv3,DESede,DES
OpenSSL
OpenSSH
The SWEET32 Issue, CVE-2016-2183
Jboss EAP 6.4 Securing the Server and Its Interfaces
Jboss EAP 7.1 Securing the Server and Its Interfaces
CVE-2016-2183 OpenSSL Sweet32生日攻击
标签:Sweet32 OpenSSH Apache Subversion Edge EAP
原文地址:http://blog.51cto.com/7308310/2116845