2016-04-18 18 views
1

在之前版本的Java RC4被啓用的時候,我的應用程序運行良好,但在Java 8 U 77更新之後,它不再使用以下需要使用以下密碼之一的密碼我的舊服務器。Java 8更新後的RC4相關問題

TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 
TLS_ECDHE_RSA_WITH_RC4_128_SHA 
SSL_RSA_WITH_RC4_128_SHA 
TLS_ECDH_ECDSA_WITH_RC4_128_SHA 
TLS_ECDH_RSA_WITH_RC4_128_SHA 
SSL_RSA_WITH_RC4_128_MD5 

我修改了java.security和殘疾人算法部分類似於下,

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

我仍然不能得到上述工作的套房。使他們的任何想法,我也試過在提前運行應用程序時添加它們,

java -Djavax.net.debug=all -Djavax.net.debug=ssl:handshake:verbose -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5" <myApp> 

仍然沒有運氣,謝謝。

+0

攻擊者喜歡RC4! – zaph

回答

3

release notes of Oracle JRE 8u51提及到RC4已添加名爲jdk.tls.legacyAlgorithms新的安全特性:

RC4現在被認爲是一個弱密碼。服務器不應選擇RC4,除非客戶端請求的密碼套件中沒有其他更強大的候選者。添加了一個新的安全屬性jdk.tls.legacyAlgorithms,以定義Oracle JSSE實現中的遺留算法。將RC4相關算法添加到遺留算法列表中。

我假定您已經從java.security文件中的屬性列表中刪除RC4_40,以使其再次可用。

1

爲了解決這個問題,我們必須做的是重新啓用RC4和MD5(兩者現在都被視爲受損算法)。這需要通過修改「java.security」配置(通過從jdk.tls.disabledAlgorithms,jdk.certpath.disabledAlgorithms中移除RC4和MD5)並使用「SSLSocket /」添加上述「缺席密碼套件」 SSLEngine.setEnabledCipherSuites()」。有關重新添加RC4相關密碼的更多信息,請參閱Java 8發行版的高亮部分(https://java.com/en/download/faq/release_changes.xml)和以下參考(http://bugs.java.com/view_bug.do?bug_id=8076221)的Java 8 Update 60(8u60)部分