【问题标题】:How to enable SSL 3 in Java如何在 Java 中启用 SSL 3
【发布时间】:2015-01-30 12:35:55
【问题描述】:

自 Java 8 Update 31 起,由于 SSL 协议中的安全漏洞,默认情况下禁用 SSL 3 协议(请参阅POODLE attack)。

即使不推荐,又如何启用?

【问题讨论】:

    标签: java ssl poodle-attack


    【解决方案1】:

    除非您别无选择,只能使用 SSL 3,否则下面的链接会解释配置。

    release notes for the update 31 提供了在 Java 中再次启用 SSL 3 的信息。

    如前所述:

    如果 SSLv3 绝对需要,则可以通过以下方式重新激活该协议 从 jdk.tls.disabledAlgorithms 属性中删除“SSLv3” java.security 文件或通过将此 Security 属性动态设置为 在 JSSE 初始化之前为“true”。

    请记住,即使是 TLS 协议也可以被利用来允许使用 SSL 3 进行不安全的访问,这也是 POODLE 缺陷的一部分。仅出于关键原因才为 Java 或任何其他技术启用此功能应该是最后的手段。

    【讨论】:

    • 需要将哪个属性设置为true.."通过在初始化JSSE之前将此Security属性动态设置为"true"。"
    • 既然它说“动态”,我认为这意味着以编程方式使用代码。
    【解决方案2】:

    如果您必须在 8u31、7u75、6u91 上重新启用 SSLv3.0,您只需注释掉 JRE_HOME/lib/security/java.security 中的以下行: p>

     jdk.tls.disabledAlgorithms=SSLv3
    

    代码:

    import javax.net.ssl.*;
    
    public class SocketProtocols {
    
      public static void main(String[] args) throws Exception {
    
        SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
        SSLSocket soc = (SSLSocket) factory.createSocket();
    
        // Returns the names of the protocol versions which are
        // currently enabled for use on this connection.
        String[] protocols = soc.getEnabledProtocols();
    
        System.out.println("Enabled protocols:");
        for (String s : protocols) {
          System.out.println(s);
        }
    
      }
    } 
    

    输出:

    启用 SSL 3.0 之前

    $ /jdk1.8.0_31/bin/java SocketProtocols
    Enabled protocols:
    TLSv1
    TLSv1.1
    TLSv1.2
    

    启用 SSL 3.0 后

    $ /jdk1.8.0_31/bin/java SocketProtocols
    Enabled protocols:
    SSLv3
    TLSv1
    TLSv1.1
    TLSv1.2
    

    学分/来源:http://javablogx.blogspot.de/2015/02/enabling-ssl-v30-in-java-8.html

    【讨论】:

      【解决方案3】:

      您可以像这样在运行时设置jdk.tls.disabledAlgorithms 安全属性。

      static {
          Security.setProperty("jdk.tls.disabledAlgorithms", "");
      }
      

      【讨论】:

        【解决方案4】:

        我发现要连接到 DRAC 5 卡,需要进行这两项编辑:

        删除 MD5:

        jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
        

        删除 SSLv3、RC4 和 MD5withRSA:

        jdk.tls.disabledAlgorithms=DH keySize < 768
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-13
          • 2011-07-01
          • 2014-03-30
          • 2021-06-06
          • 2017-02-28
          • 2010-10-02
          相关资源
          最近更新 更多