Nginx

使用 nginx 和 TLS 1.3 獲得完美的 SSL 實驗室分數?

  • February 6, 2022

我創建了一個僅使用 TLS v1.2 在 Qualsys SSL Labs 上獲得滿分的 nginx 配置,我想嘗試使用 TLS v1.2 和 v1.3 獲得滿分。

考慮這個 nginx.conf 版本的片段,它是 A+ 和 100% 分數的一部分:

ssl_protocols TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;

它抱怨了幾個密碼套件,但它仍然給出了完美的分數:

在此處輸入圖像描述 在此處輸入圖像描述

現在,如果我將 TLS v1.3 作為唯一的配置更改添加到組合中,則分數會發生變化。

ssl_protocols TLSv1.2 TLSv1.3;

密碼強度得分為 90%: 在此處輸入圖像描述

我認為那些弱 CBC 密碼很生氣:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   WEAK 256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   WEAK    256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b)   DH 4096 bits   FS   WEAK   256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   DH 4096 bits   FS   WEAK

沒有一個很好的方法可以完美地刪除 CBC 模式密碼,但排除 SHA1、SHA256 和 SHA384 可能會起作用。配置行變為:

ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL:!SHA1:!SHA256:!SHA384;

讓我們看看新的分數: 在此處輸入圖像描述

密碼套件強度仍為 90%。

它不再對密碼套件的強度感到生氣: 在此處輸入圖像描述

但顯然它對之前有效的握手失敗感到不滿: 在此處輸入圖像描述

這將我們帶到……舊設備/應用程序成功握手所需的相同密碼套件被列為“弱”並且僅在啟用 TLS 1.2 時通過。不知何故,啟用 TLS 1.3 會使那些在開始失敗之前通過的弱密碼。

似乎選擇是:要麼啟用 TLS 1.2以獲得完美分數,要麼也啟用 TLS 1.3 但獲得必要的密碼套件?有點像小林丸

啟用 nginx 和 TLS 1.2 和 1.3 是否可以獲得完美的 100% 分數?

關於您的實際問題,即關於Qualys SSL Labs測試工具本身的問題,我們將不得不深入研究他們的評級系統是如何工作的。

幸運的是 Qualys 發布了他們的SSL 伺服器評級指南,其中描述了他們對 SSL/TLS 配置進行評級的方法。

由於您的問題是關於為什麼您在密碼強度類別中的分數略低,而您提出的配置之一高於另一個,所以讓我們特別關注該類別:

密碼強度

為了破壞通信會話,攻擊者可以嘗試破壞用於大部分通信的對稱密碼。更強的密碼允許更強的加密,從而增加破解它所需的努力。因為伺服器可以支持不同強度的密碼,所以我們得出了一個懲罰使用弱密碼的評分系統。為了計算這個類別的分數,我們遵循這個算法:

  1. 從最強密碼的分數開始。
  2. 添加最弱密碼的分數。
  3. 將總數除以 2。

表 5. 密碼強度等級指南

Cipher strength               Score
0 bits (no encryption)        0%
< 128 bits (e.g., 40,56)      20%
< 256 bits (e.g., 128, 168)   80%
>= 256 bits (e.g., 256)       100%

回顧問題中包含的更詳細的結果,我們可以看到在 TLS1.2-only 配置中,您僅使用 256 位密碼(即使某些密碼套件不受歡迎),而在 TLS1.2 中。 2+TLS1.3 配置您使用的是 128 位和 256 位密碼的混合。

根據他們的評級系統,這解釋了為什麼您在“密碼強度”中得分降低。

現在,這幾乎突出表明,雖然這個工具是一個非常有用的資源(特別是指出實際的錯誤配置),但過分關注確切的評分而不是查看整個報告並不是一個好主意。

至於什麼才是真正合理的 TLS 設置,除非您對自己的需求有一個深刻的了解,否則我建議您查看由 Mozilla 運營安全和企業資訊安全團隊維護的伺服器端 TLS指南。

特別是他們的“中級”配置在廣泛的兼容性和安全性之間取得了很好的平衡,並且有一個用於流行的 TLS 伺服器的配置生成器,可以方便地將建議的設置轉換為實際的伺服器配置。

引用自:https://serverfault.com/questions/981397