[英]Disabling specific weak ciphers and enforcing Perfect Forward Secrecy using JVM properties
我想通過使用JVM屬性禁用不需要的密碼來實現完美前向保密( PFS )
我想通過在java.security文件中使用Java的'jdk.tls.disabledAlgorithms'屬性來實現此目的。
當前,我將屬性設置如下jdk.tls.disabledAlgorithms = SSLv3,TLSv1,TLSv1.1,RC4,MD5,DESede,DH keySize <1024,RSA keySize <2048,並且當我使用服務器使用TestSSLServer進行測試時,得到以下信息輸出
Supported versions: TLSv1.2
Deflate compression: no
Supported cipher suites (ORDER IS NOT SIGNIFICANT):
TLSv1.2
RSA_WITH_AES_128_CBC_SHA
DHE_RSA_WITH_AES_128_CBC_SHA
RSA_WITH_AES_256_CBC_SHA
DHE_RSA_WITH_AES_256_CBC_SHA
RSA_WITH_AES_128_CBC_SHA256
RSA_WITH_AES_256_CBC_SHA256
DHE_RSA_WITH_AES_128_CBC_SHA256
DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
我仍然找不到擺脫不提供PFS的網站的機制。 例如“ TLS_RSA_WITH_AES_128_GCM_SHA256”。
我可以通過“ jdk.tls.disabledAlgorithms”完成此操作嗎? 如果不是,是否還有其他JVM級別的機制?
通過更改java.security文件中的內容,我已經能夠秘密地在Java服務器中工作:
1)在前面取消注釋(刪除#)
crypto.policy =無限
(為此,您至少需要Java 1.8.0_151)
2)將jdk.tls.disabledAlgorithms設置為
jdk.tls.disabledAlgorithms = SSLv3的,使用TLSv1,TLSv1.1,RC4,MD5,DESede,DH密鑰大小<1024,RSA密鑰大小<2048,RSA_WITH_AES_128_CBC_SHA,DHE_RSA_WITH_AES_128_CBC_SHA,RSA_WITH_AES_256_CBC_SHA,DHE_RSA_WITH_AES_256_CBC_SHA,RSA_WITH_AES_128_CBC_SHA256,RSA_WITH_AES_256_CBC_SHA256,DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384
(要獲得此列表,我在ssllabs.com上測試了我的網站,並列出了SSLLabs所說的所有弱密碼套件)
在進行此操作時,您可能還需要在啟動Java進程時考慮設置以下兩個變量,但這實際上並不需要保密才能工作:
-Djdk.tls.ephemeralDHKeySize = 2048 -Djdk.tls.rejectClientInitiatedRenegotiation = true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.