SSL_WEAK_CIPHER security protocol_error ai_generated true

TLS weak cipher suite negotiation: server allows export-grade ciphers enabling downgrade attack

ID: security/tls-weak-cipher-downgrade

Also available as: JSON · Markdown · 中文
88%Fix Rate
87%Confidence
1Evidence
2023-03-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
OpenSSL 1.1.1 active
nginx 1.20.0 active
Apache httpd 2.4.48 active

Root Cause

The TLS server supports deprecated cipher suites (e.g., EXPORT, DES, RC4) or allows protocol downgrade to TLS 1.0/1.1, enabling man-in-the-middle attackers to force weak encryption.

generic

中文

TLS服务器支持已弃用的密码套件(如EXPORT、DES、RC4)或允许协议降级至TLS 1.0/1.1,使中间人攻击者可以强制使用弱加密。

Official Documentation

https://wiki.openssl.org/index.php/TLS_Downgrade_Protection

Workarounds

  1. 95% success Disable all weak cipher suites and enforce TLS 1.2+ only. Example nginx config: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...'; ssl_prefer_server_ciphers on;
    Disable all weak cipher suites and enforce TLS 1.2+ only. Example nginx config: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...'; ssl_prefer_server_ciphers on;
  2. 90% success Use a tool like Mozilla SSL Configuration Generator to produce a hardened configuration, then test with sslyze or testssl.sh
    Use a tool like Mozilla SSL Configuration Generator to produce a hardened configuration, then test with sslyze or testssl.sh
  3. 85% success Enable TLS 1.3 support which mandates strong ciphers and provides downgrade protection via the ServerHello random value
    Enable TLS 1.3 support which mandates strong ciphers and provides downgrade protection via the ServerHello random value

中文步骤

  1. Disable all weak cipher suites and enforce TLS 1.2+ only. Example nginx config: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...'; ssl_prefer_server_ciphers on;
  2. Use a tool like Mozilla SSL Configuration Generator to produce a hardened configuration, then test with sslyze or testssl.sh
  3. Enable TLS 1.3 support which mandates strong ciphers and provides downgrade protection via the ServerHello random value

Dead Ends

Common approaches that don't work:

  1. 70% fail

    Weak ciphers like RC4 and DES are still supported in TLS 1.1 and 1.2, allowing downgrade.

  2. 90% fail

    Does not fix the server configuration; attackers can use different IPs or proxies.

  3. 60% fail

    HSTS only protects against SSL stripping, not cipher suite downgrade within the same protocol.