[研究]nmap 7.9.5 與 SSLLab 對 Cipher 安全強度的評估
2024-08-07
ChatGPT 和 Copilot 不是 100% 正確可靠的,有時要再查證。
對某個相同網址做測試
(下圖) nmap -p 443 --script ssl-cert,ssl-enum-ciphers 受測網址
(下圖)
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
主要差異和原因:
- 套件強度和分級:SSL Labs 顯示某些加密套件(如 RSA 加密套件和 DHE 加密套件)被標記為 WEAK(弱),而 nmap 並沒有這樣的標記。這是因為 SSL Labs 更側重於套件的安全性評估,而 nmap 主要顯示可用的加密套件。
- 密鑰交換方法和強度:SSL Labs 提供了更多關於密鑰交換方法(如 ECDH 和 DH)以及其相應的密鑰長度的詳細信息。例如,SSL Labs 顯示 ECDH secp521r1 相當於 15360 位 RSA,並標記了 FS(前向保密),這些細節在 nmap 結果中沒有體現。
- 詳細參數和標識: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 位長度。以下是關於其弱點的詳細解釋:
弱點分析:
- DH 1024 bits:DH (Diffie-Hellman) 1024 bits 指的是 Diffie-Hellman 密鑰交換使用了 1024 位的素數模數。現代安全標準認為 1024 位 DH 密鑰強度不足,因為隨著計算能力的提升,1024 位的 DH 密鑰可能被破解或受到攻擊。一般建議使用至少 2048 位的 DH 密鑰來提高安全性。
- FS (Forward Secrecy):FS (Forward Secrecy) 或稱「前向保密」是指密鑰交換協議的一種特性,即使長期密鑰(如伺服器的私鑰)被洩露,過去的會話密鑰也無法被破解。TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 提供了前向保密,這是一個安全優勢。
- 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),而是基於一些常見的弱點和安全風險。以下是一些相關的原因:
- 前向保密 (Forward Secrecy) 的缺乏:使用 RSA 密鑰交換的協議不提供前向保密,這意味著如果伺服器的私鑰被洩露,過去的所有會話都可能被解密。前向保密是現代安全實踐中的一個重要功能,許多安全專家和組織建議使用支持前向保密的加密套件(如 ECDHE)。
- RSA 密鑰長度:雖然 2048 位的 RSA 密鑰目前被認為是安全的,但未來可能需要更長的密鑰來防範更強的攻擊。
- 整體安全性標準的提高:隨著加密技術和攻擊技術的進步,對於加密套件的安全標準也在不斷提高。即使目前看似安全的配置,也可能因為缺乏某些安全特性(如前向保密)而被標記為 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
沒有留言:
張貼留言