1. 程式人生 > >配置 Nginx SSL 避免不夠安全的加密演算法

配置 Nginx SSL 避免不夠安全的加密演算法

   如果Web服務中的SSL協議出現安全問題,攻擊者就可以擁有你所有的安全資訊。Nginx使用ssl模組配置HTTPS支援,就會遇到這個問題。

  通過命令: nmap --script ssl-cert,ssl-enum-ciphers -p 443(host),就可以看到如下部分資訊:

  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_128_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_256_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_RC4_128_SHA - broken
|       TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - weak
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - weak
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong

在上面的片段中我們看到了weak、strong欄位,weak都是40位加密的,strong應該都在128位以上。

如果在配置 Nginx 的 SSL 時不指定 ssl_ciphers,那麼預設允許使用的加密演算法和協議將會包括一些已經證實不夠安全的演算法及協議,比如對稱加密金鑰不足 128-bit 的演算法等,也就是SSL協議包含很多演算法,其中有一些128位以下的較容易被破解需要禁用。為了保證 SSL 連線足夠安全,將128位以下弱加密演算法禁用在配置時應該明確指定演算法:

ssl_ciphers HIGH:!ADH:!MD5;

編輯配置檔案nginx.conf,把這句加在 server 配置節裡就可以了,在瀏覽器使用不安全的演算法時,會自動禁止連線。