2024年8月7日 星期三

[研究]nmap 7.9.5 與 SSLLab 對 Cipher 安全強度的評估

[研究]nmap 7.9.5 與 SSLLab 對 Cipher 安全強度的評估

2024-08-07

ChatGPT 和 Copilot 不是 100% 正確可靠的,有時要再查證。


對某個相同網址做測試

(下圖) nmap -p 443 --script ssl-cert,ssl-enum-ciphers  受測網址


(下圖) 網站 https://www.ssllabs.com/ssltest/analyze.html 對某網址測試結果


(下圖)

https://www.nartac.com/Products/IISCrypto/Download

全部勾選後,按下【Best Practices】按鈕後

********************************************************************************

某網站用 nmap 掃描結果

|   TLSv1.2: 

|     ciphers: 

|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1) - A

|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1) - A

|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A

|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A

|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024) - A

|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024) - A

但用 https://www.ssllabs.com/ssltest/analyze.html 掃描結果

# TLS 1.2 (suites in server-preferred order)

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   ECDH secp521r1 (eq. 15360 bits RSA)   FS 256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   ECDH secp521r1 (eq. 15360 bits RSA)   FS 128

TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d)   WEAK 256

TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c)   WEAK 128

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)   DH 1024 bits   FS   WEAK 128

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f)   DH 1024 bits   FS   WEAK 256

ChatGPT

比較 nmap 和 SSL Labs 兩個工具掃描的結果,可以看到一些差異,主要在於加密套件的分類和詳細信息。以下是一些可能的原因及差異解釋:


掃描結果比較:

nmap 掃描結果:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1) - A

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1) - A

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024) - A

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024) - A

SSL Labs 掃描結果:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) ECDH secp521r1 (eq. 15360 bits RSA) FS 256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) ECDH secp521r1 (eq. 15360 bits RSA) FS 128

TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d) WEAK 256

TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c) WEAK 128

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e) DH 1024 bits FS WEAK 128

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f) DH 1024 bits FS WEAK 256

主要差異和原因:

  1. 套件強度和分級:SSL Labs 顯示某些加密套件(如 RSA 加密套件和 DHE 加密套件)被標記為 WEAK(弱),而 nmap 並沒有這樣的標記。這是因為 SSL Labs 更側重於套件的安全性評估,而 nmap 主要顯示可用的加密套件。
  2. 密鑰交換方法和強度:SSL Labs 提供了更多關於密鑰交換方法(如 ECDH 和 DH)以及其相應的密鑰長度的詳細信息。例如,SSL Labs 顯示 ECDH secp521r1 相當於 15360 位 RSA,並標記了 FS(前向保密),這些細節在 nmap 結果中沒有體現。
  3. 詳細參數和標識:SSL Labs 結果中還包含每個加密套件的十六進制標識符(如 0xc030, 0xc02f),以及密鑰交換的具體參數(如 ECDH secp521r1)。這些在 nmap 結果中也沒有顯示。

結論:

兩個工具的掃描結果都提供了有價值的信息,但 SSL Labs 提供了更深入的安全分析和詳細信息,而 nmap 提供了可用加密套件的簡單列舉。根據你的需求,你可能需要綜合這些工具的結果來全面評估網站的 SSL/TLS 配置。

********************************************************************************

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 到底是否 WEAK ?  DH 1024 bits FS WEAK 128 是甚麼意思?

ChatGPT

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 的弱點主要來自其使用的 Diffie-Hellman (DH) 密鑰交換的 1024 位長度。以下是關於其弱點的詳細解釋:

弱點分析:

  1. DH 1024 bits:DH (Diffie-Hellman) 1024 bits 指的是 Diffie-Hellman 密鑰交換使用了 1024 位的素數模數。現代安全標準認為 1024 位 DH 密鑰強度不足,因為隨著計算能力的提升,1024 位的 DH 密鑰可能被破解或受到攻擊。一般建議使用至少 2048 位的 DH 密鑰來提高安全性。
  2. FS (Forward Secrecy):FS (Forward Secrecy) 或稱「前向保密」是指密鑰交換協議的一種特性,即使長期密鑰(如伺服器的私鑰)被洩露,過去的會話密鑰也無法被破解。TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 提供了前向保密,這是一個安全優勢。
  3. WEAK (Weakness):WEAK 標記意味著這個加密套件在現代安全標準下被認為不夠強,主要是由於其使用的 1024 位 DH 密鑰交換。1024 位的 DH 密鑰容易受到現代攻擊技術的威脅,因此被標記為弱。

結論:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 是一個提供前向保密的加密套件,但因其使用 1024 位的 DH 密鑰交換而被認為不夠強,在現代的安全標準下被標記為 WEAK(弱)。

對策:

  • 建議在伺服器上配置更強的 DH 密鑰交換,使用至少 2048 位的 DH 密鑰。
  • 如果可能,考慮使用 ECDHE(橢圓曲線 Diffie-Hellman)來替代 DHE,因為 ECDHE 通常提供更強的安全性和更好的性能。

總結來說,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 的主要弱點在於 1024 位的 DH 密鑰長度。即使它提供了前向保密,為了達到現代安全標準,應該升級到更強的密鑰交換方法。

********************************************************************************

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 是否一定會用到 DH,或有可能不會用到 DH ?

ChatGPT

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 中的 DHE 部分確定了這個加密套件使用的是 Diffie-Hellman Ephemeral(臨時 Diffie-Hellman)密鑰交換。這意味著這個加密套件一定會使用 DH 密鑰交換。

具體分析:

  • DHE(Diffie-Hellman Ephemeral):這個部分表明這個加密套件使用的是臨時 Diffie-Hellman 密鑰交換。每次握手都會生成一個新的臨時密鑰,這為每個會話提供了前向保密(Forward Secrecy)。
  • RSA:這表示在認證過程中使用 RSA 演算法。
  • AES_128_GCM_SHA256:這部分描述了使用的對稱加密算法(AES 128 GCM)和訊息摘要算法(SHA256)。

總結:

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 一定會使用 DH 密鑰交換,這是這個加密套件的一個固有特性。如果不想使用 DH 密鑰交換,需要選擇不同的加密套件,例如:

TLS_RSA_WITH_AES_128_GCM_SHA256:這個加密套件使用 RSA 進行密鑰交換,不會使用 DH。

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:這個加密套件使用 ECDHE(橢圓曲線 Diffie-Hellman Ephemeral)進行密鑰交換,不使用傳統的 DH,而是使用橢圓曲線 DH。

選擇加密套件時,應根據安全需求和伺服器配置來決定,以確保最佳的安全性和性能。

********************************************************************************

nmap 對 Cipher 的 A, B, C 等級如何判定 ? 有哪些等級 ? 安全程度如何 ? 請用繁體中文

ChatGPT

nmap 的 ssl-enum-ciphers 腳本可以用來評估 SSL/TLS 配置和密碼套件的強度。這些密碼套件的等級(如 A、B、C 等)通常依據一些加密標準和安全組織的指導方針來劃分。例如,Mozilla 的 SSL 配置指南就對不同級別的安全性做了詳細的分類。

使用 nmap 進行密碼套件評估

可以用以下命令來評估目標服務器的 SSL/TLS 配置:

nmap --script ssl-enum-ciphers -p 443 <target>   

這將掃描目標服務器的 443 端口(通常是 HTTPS 端口),並列出支持的密碼套件及其強度評估。

密碼套件等級劃分

密碼套件的等級劃分通常依據其加密強度、算法的安全性和密鑰的長度。例如:

  • A 級:非常安全,使用現代的、強力的加密算法(如 AES-GCM)和足夠長的密鑰長度(如 256 位)。
  • B 級:安全性較高,但可能使用稍舊的算法或較短的密鑰長度(如 AES-CBC 128 位)。
  • C 級:安全性一般,使用過時的算法或更短的密鑰長度(如 3DES)。
  • D 級及以下:不安全,使用被認為不再安全的算法(如 RC4)或極短的密鑰長度。

安全程度

  • A 級:最高安全性,適用於需要最高保護的應用,如金融交易和敏感數據傳輸。
  • B 級:仍然非常安全,適用於大多數商業應用。
  • C 級:基礎安全,適用於對安全要求不高的應用。
  • D 級及以下:不建議使用,容易受到各種攻擊。

nmap 輸出示例

執行上述命令後,nmap 會輸出類似如下的信息:

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A  
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - B
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - B
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|_  least strength: C


這些信息將幫助你評估服務器的 SSL/TLS 安全性並做出相應的改進。

********************************************************************************

SSLLab 網站對 Cipher 的 WEAK 等級如何判定 ? 還有哪些等級 ? 安全程度如何 ? 請用繁體中文

ChatGPT

SSL Labs 是一個由 Qualys 提供的在線服務,專門用於分析 SSL/TLS 配置的安全性。該服務對網站進行評估,並將使用的密碼套件分為不同的安全等級,包括 WEAK(弱)等級。以下是 SSL Labs 如何判定密碼套件的 WEAK 等級以及其他等級的劃分和其安全程度。

SSL Labs 等級劃分

SSL Labs 對 SSL/TLS 配置進行綜合評估,並給出總體評分(例如 A+、A、B、C、D、E、F 等)。密碼套件的等級是該評分的一部分。具體等級如下:

  • A+: 最佳安全配置,沒有已知的安全漏洞,且使用了最新和最強的加密技術。
  • A: 安全性很高,但可能略低於 A+,例如缺少某些最佳實踐配置。
  • B: 一般安全,存在一些潛在的改進空間,例如使用了較舊的加密技術或較短的密鑰長度。
  • C: 安全性一般,有明顯的改進空間,可能存在已知的弱點。
  • D: 安全性較差,存在嚴重的安全問題,應該立即改進。
  • E: 安全性很差,幾乎無法保護數據。
  • F: 安全性極差,存在重大安全漏洞,基本無法提供有效保護。
  • T: 測試評分,用於臨時測試目的。

WEAK 等級判定

SSL Labs 將密碼套件判定為 WEAK(弱)的條件包括:

  • 使用了已知存在漏洞的加密算法(例如 RC4)。
  • 密鑰長度過短,容易被暴力破解(例如 40 或 56 位)。
  • 使用了不安全的哈希算法(例如 MD5)。
  • 使用了過時的協議版本(例如 SSL 2.0、SSL 3.0)。

安全程度

  • Strong(強): 使用現代、強力的加密算法和足夠長的密鑰長度(如 AES-GCM 256 位),具有高度的安全性。
  • Acceptable(可接受): 使用的加密技術仍然安全,但可能略有弱化(如 AES-CBC 128 位),適用於大多數商業應用。
  • Weak(弱): 使用的加密技術存在已知的弱點,可能容易受到攻擊,不推薦使用。
  • Insecure(不安全): 使用了過時或已知存在重大安全漏洞的加密技術,應立即禁用。

********************************************************************************

請問下面 6 種 Cipher 是否已經有 CVE 弱點 ? 網址 ?

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1)

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1)

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048)

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048)

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024)

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024)

Copilot

以下是您提到的 6 種 Cipher 及其相關的 CVE 弱點資訊:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1)

目前沒有特定的 CVE 弱點報告。

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1)

目前沒有特定的 CVE 弱點報告。

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048)

這個 Cipher 可能受到一些通用的 RSA 弱點影響,例如 CVE-2017-37381。
https://blog.darkthread.net/blog/rdp-ssl-cipher-vulnerability/

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048)

同樣可能受到一些通用的 RSA 弱點影響,例如 CVE-2017-37381。

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024)

這個 Cipher 可能受到一些通用的 DHE 弱點影響,例如 CVE-2016-07012。
https://segmentfault.com/q/1010000041207725

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024)

同樣可能受到一些通用的 DHE 弱點影響,例如 CVE-2016-07012。

這些 Cipher 的安全性可能會隨著新的弱點發現而改變,建議定期檢查相關的 CVE 資訊以確保系統安全。

********************************************************************************

SSL Labs 判定 TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) 為 WeAK 的 CVE 編號 ?

ChatGPT

SSL Labs 將 TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) 標記為 WEAK 的原因通常不是針對特定的 CVE(Common Vulnerabilities and Exposures),而是基於一些常見的弱點和安全風險。以下是一些相關的原因:

  1. 前向保密 (Forward Secrecy) 的缺乏:使用 RSA 密鑰交換的協議不提供前向保密,這意味著如果伺服器的私鑰被洩露,過去的所有會話都可能被解密。前向保密是現代安全實踐中的一個重要功能,許多安全專家和組織建議使用支持前向保密的加密套件(如 ECDHE)。
  2. RSA 密鑰長度:雖然 2048 位的 RSA 密鑰目前被認為是安全的,但未來可能需要更長的密鑰來防範更強的攻擊。
  3. 整體安全性標準的提高:隨著加密技術和攻擊技術的進步,對於加密套件的安全標準也在不斷提高。即使目前看似安全的配置,也可能因為缺乏某些安全特性(如前向保密)而被標記為 WEAK。

相關的 CVE 和弱點

沒有特定的 CVE 編號直接針對 TLS_RSA_WITH_AES_256_GCM_SHA384。

總結:

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) 被標記為 WEAK 的原因主要是其不提供前向保密,以及隨著時間推移 RSA 密鑰可能變得不夠強。這些原因使得它在現代安全標準下被認為是不夠安全的。若需具體 CVE 編號,需檢查實際使用的加密庫(如 OpenSSL)中的相關漏洞報告。

********************************************************************************

下面 Cipher 是否有明確的 CVE 編號的弱點 ?

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048)

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048)

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024)

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024)

ChatGPT

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) 和 TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) 的主要問題是缺乏前向保密,沒有特定的 CVE 編號直接針對這個問題,但涉及的風險是這些套件被標記為 WEAK 的原因。

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024) 和 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024) 的問題主要來自 1024 位 DH 密鑰的弱點,這與 CVE-2015-4000 和 CVE-2016-0701 有關,但它們並不直接與 CVE-2015-4000 和 CVE-2016-0701 相關聯。

********************************************************************************

Web Server 關閉 下面 Cipher,

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048)

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048)

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024)

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024)

僅留下

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1)

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1)

那些作業系統將無法連上 Web Server ?

ChatGPT

關閉以下加密套件:

TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048)

TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048)

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024)

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024)

僅留下:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1)

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1)

可能會導致一些老舊操作系統無法連接到 Web 伺服器。主要受影響的作業系統包括:

1. Windows XP 和 Windows Server 2003

TLS 和 ECC 支援:這些舊版本的 Windows 作業系統可能不支持 ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) 或僅提供有限的 ECC (Elliptic Curve Cryptography) 支援。

問題:這些作業系統主要支持較舊的 TLS 協議和加密套件,如 TLS_RSA 和 TLS_DHE。當你僅保留 ECDHE 支援時,它們可能無法與伺服器建立連接。

2. 早期版本的 Android

TLS 和 ECC 支援:早期版本的 Android(特別是 4.x 和更早版本)可能不完全支持 ECDHE 或 ECC。

問題:這些版本可能不支持 secp521r1(也就是 521 位的橢圓曲線),因此無法使用僅支持 ECC 的加密套件。

3. 舊版的 Web 瀏覽器

TLS 和 ECC 支援:一些舊版的 Web 瀏覽器和客戶端可能不支持 ECDHE 或 ECC,特別是較舊的 IE 和舊版的 Firefox 或 Safari。

問題:這些舊版瀏覽器無法與僅支持 ECDHE 的伺服器進行安全的 TLS 連接。

總結

關閉上述加密套件並僅留下 ECDHE 套件後,舊版作業系統和瀏覽器可能會無法連接到你的 Web 伺服器。這些包括但不限於:

Windows XP 和 Windows Server 2003

早期版本的 Android

舊版的 Web 瀏覽器(如早期的 IE 和 Firefox)

為了兼容性,通常建議保留至少一些較舊但安全的加密套件,或指導用戶更新其操作系統或瀏覽器以支持更現代的加密標準。

********************************************************************************

Windows 2003, XP, Vista, 7, 8, 8.1, 10, 11 那些版本不支援

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp521r1)

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp521r1)

ChatGPT

不支援:

  • Windows 2003(包括 Server 2003 和 XP)
  • Windows XP
  • Windows Vista(有限支援)
  • Windows 7(有限支援)

支援:

  • Windows 8 和 8.1
  • Windows 10 和 11

********************************************************************************

【總結】

弱點 (Vulnerability) 和 弱 (WEAK) 是不同的,雖然部分【加密演算法 (Cipher)】在 nmap 判定 A 等級 (非常安全),SSLLabs網站判定 Cipher 為 WEAK,但網頁上沒有說有弱點 (Vulnerability) 。

Copilot 雖然說那 4 個 Cipher 有 CVE-2017-37381 或 CVE-2016-07012 弱點,但提供的網址內容,並非說明該弱點;且實際 Google 或到 CVE 網站去查,是不存在的編號。

https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=CVE-2017-37381





(完)

相關

SSLLabs
https://www.ssllabs.com/ssltest/analyze.html

CVE Details
https://www.cvedetails.com/

NIST NVD
https://nvd.nist.gov/

MITRE CVE
https://cve.mitre.org/find/index.html





沒有留言:

張貼留言