« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9688628 建立时间:2004年12月20日 |

| |
[PKI]PCI-DSS标准之SSL Weak Encryption Algorithms解决方法(转)  文章收藏, 网上资源, 软件技术, 电脑与网络
邢红瑞 发表于 2010/8/2 16:08:09 |
PCI信用卡支付标准中弱点扫描对SSL的加密强度有要求,中级漏洞中是不能使用SSLv2级别的加密,而低级漏洞中直接报告加密强度不够。那么,该如何补救呢? 中级漏洞好补,如果系统是Apache,那就ssl中配置SSLProtocol -ALL +SSLv3 +TLSv。如果是Tomcat,最好前面加个前置Pound,在Pound中设置ssl代理,加密强度Ciphers "HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL"即可。如果是resin,等会说。 低级漏洞,如果是apache,那就SSLCipherSuite HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL即可。 接下来说Resin,可怜的Resin啊,Resin缺省支持两种SSL方式,openssl和jsse-ssl,如果用openssl,可以提高加密强度,但是(重要),但是,这样根本无法应用于生产环境,网站的速度会慢到无法忍受的地步,会被客户大量投诉。没办法,只能使用jsse-ssl,Resinjsse-ssl的配法比较复杂,下面说一下配法: 1. Resin必须是最新的professional的版本3.1.9,貌似3.1.6以上的版本才支持jsse-ssl中Ciphers的配置。 2. Java1.6的配置: Java1.6必须配置成支持256的高加密强度:下载jce-policy-6.zip和jsse-1_0_3_04-gl.zip,把jsse-1_0_3_04-gl.zip解压出来的jcert.jar jnet.jar jsse.jar放入JAVA_HOME/jre/lib/ext目录下,把jce-policy-6.zip解压出来的local_policy.jar和US_export_policy.jar放入JAVA_HOME/jre/lib/security,替换掉原来的文件。import java.io.*;import java.security.*;import javax.net.ssl.*;import java.util.regex.*;
public class h { public static void main(String[] args) { try {
SSLServerSocket sslSocket; SSLServerSocketFactory sslSrvFact = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); sslSocket =(SSLServerSocket)sslSrvFact.createServerSocket(8181); int port = sslSocket.getLocalPort();
String [] cipherSuites = sslSocket.getEnabledCipherSuites(); for(int i = 0; i < cipherSuites.length; i++){ System.out.println("Cipher Suite " + i +" = " + cipherSuites[i]); } sslSocket.close(); } catch (Exception e) { System.out.println("Exception" + e); } }}运行结果如果显示256的字样就成功了。Cipher Suite 0 = SSL_RSA_WITH_RC4_128_MD5Cipher Suite 1 = SSL_RSA_WITH_RC4_128_SHACipher Suite 2 = TLS_RSA_WITH_AES_128_CBC_SHACipher Suite 3 = TLS_RSA_WITH_AES_256_CBC_SHACipher Suite 4 = TLS_DHE_RSA_WITH_AES_128_CBC_SHACipher Suite 5 = TLS_DHE_RSA_WITH_AES_256_CBC_SHACipher Suite 6 = TLS_DHE_DSS_WITH_AES_128_CBC_SHACipher Suite 7 = TLS_DHE_DSS_WITH_AES_256_CBC_SHACipher Suite 8 = SSL_RSA_WITH_3DES_EDE_CBC_SHACipher Suite 9 = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHACipher Suite 10 = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHACipher Suite 11 = SSL_RSA_WITH_DES_CBC_SHACipher Suite 12 = SSL_DHE_RSA_WITH_DES_CBC_SHACipher Suite 13 = SSL_DHE_DSS_WITH_DES_CBC_SHACipher Suite 14 = SSL_RSA_EXPORT_WITH_RC4_40_MD5Cipher Suite 15 = SSL_RSA_EXPORT_WITH_DES40_CBC_SHACipher Suite 16 = SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHACipher Suite 17 = SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
运行openssl找出高强度加密方式对应的java ciphersopenssl ciphers -v 'HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL'DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
基本匹配的就三个:TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA 3. Resin3.1.9的配置: <http port="443"> <jsse-ssl> <key-store-type>jks</key-store-type> <key-store-file>mykey.key</key-store-file> <password>mykey</password> <cipher-suites>TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA</cipher-suites> </jsse-ssl> </http> |
|
|