简短版本:
- 添加 TLS_RSA_WITH_AES_128_CBC_SHA256
- 添加 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- 添加 TLS_DHE_DSS_WITH_AES_128_CBC_SHA25
- 如果您没有任何 XP 客户端,请放弃 3DES 密码套件。
更长的解释:
支持的密码套件因 JVM 主要版本和主要版本以及供应商而异。检查您的 JVM 文档以获取受支持的密码套件列表,或使用这些行中的内容来列出它们。
package org.apache.markt;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.util.Set;
import javax.crypto.Cipher;
import javax.net.ssl.SSLServerSocketFactory;
public class CryptoInfo {
public static void main(String[] args) {
try {
Set<String> algorithms = Security.getAlgorithms("Cipher");
for(String algorithm: algorithms) {
int max;
max = Cipher.getMaxAllowedKeyLength(algorithm);
System.out.printf("%-22s: %dbit%n", algorithm,
Integer.valueOf(max));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
SSLServerSocketFactory f =
(SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
String[] cs = f.getSupportedCipherSuites();
for (String c : cs) {
System.out.println(c);
}
}
}
您可能不想要任何 KRB5 密码套件,因此请删除它们。如果存在,您还可以删除 TLS_EMPTY_RENEGOTIATION_INFO_SCSV(用于指示是否支持安全重新协商的虚拟密码套件)。删除任何提及 NULL、anon、export 或 DES 为不安全的内容。RC4 有一些问题,所以您可能也想删除这些问题。IE8 不支持 ECDH,所以删除它们。XP 上的 IE8 不支持 ECDHE,因此您可能希望放弃这些。
留下您上面的列表加上: TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
您可能也应该考虑从列表中删除 3DES 密码。XP 上的 IE8 不支持 AES 的问题(Vista 上的 IE8 支持)。所以你可能无法做到这一点。
您可能会发现这些参考资料很有用:
http://www.g-sec.lu/sslharden/SSL_comp_report2011.pdf
https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.3.pdf