簡體   English   中英

禁用特定的弱密碼並使用JVM屬性強制執行完全正向保密

[英]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.

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