Insecure TLS Ciphers supported
支持不安全的TLS密码套件
描述
传输层安全(Transport Layer Security,TLS)从客户端请求安全连接并提供支持的密码套件(cipher suites)列表开始。
密码套件是身份验证、加密、消息认证码(MAC)和密钥交换算法的列表。在协议协商期间,每种算法都发挥着特定的作用。例如,使用弱算法可能会对整个通道的安全性产生严重影响。
经确认,该端点支持已知存在加密弱点的密码套件和安全套接字层 / 传输层安全(SSL/TLS)协议的组合。因此,不应依赖它们来实现有效的传输层安全。能够窃听该连接的攻击者可以影响或解密经过的流量。
已证实以下所有配置都存在加密弱点:
- 支持已弃用的SSL协议(v2或v3)
- 支持提供小于128位密钥的密码套件
- 支持提供结合低于1.1版本且容易受到BEAST攻击的TLS协议的
CBC模式的密码套件 - 在TLS中使用容易受到CRIME攻击的压缩
- 支持将
RC4作为密码的密码套件 - 支持将
DES作为密码的密码套件 - 支持将
MD5作为签名算法的密码套件
建议
推荐的TLS配置应强制执行以下建议:
- 限制为
TLSv1及以上,首选TLS1.2 - 如果需要
SSLv3,建议实施TLS Fallback SCSV功能以防止协议降级(downgrade)攻击 - 禁用匿名Diffie-Hellman(
ADH) - 禁用
aNULL和eNull密码套件 - 禁用导出(Export)密钥交换套件
- 删除
RC4支持 - 删除
DES支持 - 删除
MD5支持 - 首选
SHA256而不是SHA1 - 首选
AES128而不是AES256,因为256提供的安全优势很小,而且对时序攻击(timing attacks)的防御能力较弱 - 禁用客户端发起的重新协商
- 禁用TLS压缩
- 仅提供密钥长度大于128位的密码
- 提供具有完美前向保密(Perfect-Forward Secrecy)协议属性(
DHE,ECDHE)的密码套件 - 使用自定义Diffie-Hellman组来防范Logjam攻击
- 实施HTTP Strict Transport Security(HSTS)标头字段
- 实施
OSCP stapling
使用Mozilla SSL Configuration Generator生成的Nginx安全TLS配置示例:
server {
listen 443 ssl;
# 将 SERVER HELLO 中发送给客户端的证书拼接在 ssl_certificate 中
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# DHE 密码套件的 Diffie-Hellman 参数,推荐 2048 位
ssl_dhparam /path/to/dhparam.pem;
# 现代配置。可根据需求进行调整。
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_prefer_server_ciphers on;
# HSTS (需要 ngx_http_headers_module) (15768000 秒 = 6 个月)
add_header Strict-Transport-Security max-age=15768000;
# OCSP 装订 ---
# 从 ssl_certificate 中的 URL 获取 OCSP 记录并缓存它们
ssl_stapling on;
ssl_stapling_verify on;
## 使用根 CA 和中间证书验证 OCSP 响应的信任链
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver <IP DNS resolver>;
....
}
链接
标准
- OWASP_ASVS_L2:
- V6_2_3
- OWASP_ASVS_L3:
- V6_2_3
- PCI_STANDARDS:
- REQ_2_2
- REQ_4_2
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_11_3
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_7
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213