簡體   English   中英

如何在Java中啟用SSL 3

[英]How to enable SSL 3 in Java

自Java 8 Update 31起,SSL 3協議默認由於SSL協議中的安全漏洞而被禁用(請參閱POODLE攻擊 )。

即使不推薦,如何啟用?

除非您使用SSL 3別無選擇,否則下面的鏈接將說明配置。

更新31發行說明提供了在Java中再次啟用SSL 3的信息。

就像聲明的那樣:

如果絕對需要 SSLv3,則可以通過從java.security文件中的jdk.tls.disabledAlgorithms屬性中刪除“SSLv3”或通過在初始化JSSE之前將此Security屬性動態設置為“true”來重新激活協議。

請記住,甚至可以利用TLS協議來允許使用SSL 3進行不安全的訪問,這也是POODLE漏洞的一部分。 只有出於嚴峻的原因,為Java或任何其他技術啟用此功能應該是最后的手段。

如果您必須在8u31,7u75,6u91上重新啟用SSLv3.0,您只需在JRE_HOME / lib / security / java.security中注釋掉以下行:

 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

啟用S​​SL 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

您可以在運行時設置jdk.tls.disabledAlgorithms安全屬性,如下所示。

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

我發現連接到DRAC 5卡需要進行這兩種編輯:

刪除MD5:

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

刪除SSLv3,RC4和MD5withRSA:

jdk.tls.disabledAlgorithms=DH keySize < 768

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM