【问题标题】:Tomcat 7 Ciphers For High Security用于高安全性的 Tomcat 7 密码
【发布时间】:2013-10-17 11:52:58
【问题描述】:

我正在迁移到 Tomcat 7,并认为现在是查看我用于 SSL 连接的密码的好时机。我意识到我大约在 5 年前设置了这些,从那以后就再也没有想过它们。

我的列表是否缺少任何重要的密码?是否包含我不应该包含的内容?

我的 Web 应用程序的安全性很重要,因此最好谨慎行事。需要对 IE8 的支持,国际用户也是如此(但不是朝鲜)。

ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, 
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"

【问题讨论】:

    标签: tomcat ssl tomcat7 tomcat6


    【解决方案1】:

    简短版:

    • 添加 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

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 2012-12-11
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多