跳转至

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
  • 禁用aNULLeNull密码套件
  • 禁用导出(Export)密钥交换套件
  • 删除RC4支持
  • 删除DES支持
  • 删除MD5支持
  • 首选SHA256而不是SHA1
  • 首选AES128而不是AES256,因为256提供的安全优势很小,而且对时序攻击(timing attacks)的防御能力较弱
  • 禁用客户端发起的重新协商
  • 禁用TLS压缩
  • 仅提供密钥长度大于128位的密码
  • 提供具有完美前向保密(Perfect-Forward Secrecy)协议属性(DHEECDHE)的密码套件
  • 使用自定义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