如何解決 Apache 上網站弱點掃描的 Weak SSL Cipher 問題?

介紹

傳輸層安全性協定 (TLS) 和安全通訊端層 (SSL) 協議提供了一種機制來幫助保護客戶端和 Web 服務器之間傳輸的數據的真實性、機密性和完整性。這種保護機制的強度由身份驗證、加密和雜湊演算法決定。這些統稱為密碼套件 – 選擇用於通過 TLS/SSL 通道傳輸敏感信息。大多數網絡服務器都支持一系列不同強度的密碼套件(Cipher Suite)。例如,使用弱密碼或長度不足的加密密鑰可以使攻擊者破壞保護機制並竊取或修改敏感信息。

解決方法

可參考 Apache 官方文章:https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html

Apache 的伺服器架設可以根據此篇文章

以下解決方法可能會根據架設環境的不同,有不同的修改方式,但是步驟上基本上是一樣。

可參考 Apache 官方文章:https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html

在伺服器上禁用對弱密碼的支持。弱密碼通常定義為:(以下為弱掃文件提供)

  • Any cipher with key length less than 128 bits
  • Export-class cipher suites
  • NULL ciphers
  • Ciphers that support unauthenticated modes
  • Ciphers assessed at security strengths below 112 bits
  • All RC4 ciphers
  • All CBC mode ciphers due to POODLE, Zombie POODLE, GOLDENDOODLE, 0-Length OpenSSL, and Sleeping POODLE vulnerabilities
  • All 64-bit block ciphers
  • All ciphers using MD5 and SHA1 for cryptographic hash functions

1. 修改 default-ssl.conf

default-ssl.conf 檔案位於 /etc/apache2/sites-enabled/ 資料夾底下,可以在終端機下指令打開檔案

$ sudo nano /etc/apache2/sites-enabled/default-ssl.conf

在 default-ssl.conf 檔案中新增以下指令,指令為弱掃文件建議,可能會依據弱掃軟體而有不同

SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!NULL:!RC4:!RC2:!DES:!3DES:!SHA:!SHA256:!SHA384:!MD5+HIGH:+MEDIUM
SSLHonorCipherOrder on
SSLCompression      off
SSLSessionTickets   off		 

這需要在< VirtualHost >標籤內配置中完成,如下圖。(在此也有對 Weak SSL Protocol 做處理,可以參考此篇文章

重啟 Apache 伺服器

sudo systemctl restart apache2

2. 驗證

可以使用 Nmap 工具:https://nmap.org/

Nmap 是個指令列檢測工具,檢查憑證與弱加密方式的測試指令如下:

nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 www.google.com

測試結果如下

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *