问题
检测到弱密码:并非所有密码套件均支持完全前向保密(弱密码套件 - ROBOT 攻击:服务器支持易受攻击的密码套件)
背景介绍
HTTP 协议自身没有加密机制,但可以通过与 TLS (Transport Layer Security) / SSL (Secure Socket Layer) 组合使用,加密 HTTP 的通信内容,借助 TLS / SSL 提供的信息加密功能、完整性校验功能、身份验证功能保障网络通信的安全,与 TLS / SSL 组合使用的 HTTP 被称为 HTTPS(HTTPSecure),可以说 HTTPS 相当于身披 SSL / TLS 外壳的 HTTP。
传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
漏洞分析
-
漏洞前提:此问题在HTTPS环境下出现
-
弱密码套件 - ROBOT 攻击:服务器支持易受攻击的密码套件,原因:使用了过期的TLS/SSL协议,部分TLS/SSL协议由于过于老旧,已经被各类操作系统及浏览器弃用(SSL所有版本、TLSv1.0、TLSv1.1)
-
并非所有密码套件均支持完全前向保密,原因:使用了不支持前向加密的密码套件'ssl_ciphers',目前支持前向加密的密码套件第二部分必须为DHE、ECDHE,其他套件均不符合要求。
密码套件组成「TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」
密钥协商算法使用 ECDHE;
签名算法使用 RSA;
握手后的通信使用 AES 对称算法,密钥长度 256 位,分组模式是 GCM;
摘要算法使用 SHA384;
所谓前向加密是指:每一次通信过程的私钥都是临时的,即使某一次通信过程的私钥被破解或者泄露、 其他通信过程的私钥仍然是安全的,因为每个通信过程的私钥都是没有任何关系的,都是独立的,这样 就保证了「前向安全」。
整改方案
-
弃用各类过期的协议:SSL所有版本、TLSv1.0、TLSv1.1
-
使用当前时效期内推荐的套件协议(套件不是一层不变的,需要随着操作系统、浏览器以及套件本身未来发展变化适时改变)
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;