密码套件 · 0x56,0x00

TLS_FALLBACK_SCSV

TLS_FALLBACK_SCSV(0x56,0x00)是信令值(SCSV),不是真正的密码套件:客户端把它放进 ClientHello 用来表明某种能力,它永远不会被协商选中。

仅信令数据更新于

详细信息

IANA 名称
TLS_FALLBACK_SCSV
十六进制码
0x56,0x00 (22016)
OpenSSL
OpenSSL 3.5 不支持
GnuTLS
GnuTLS 未实现
密钥交换
-
身份认证
-
加密算法
-
消息认证(MAC)
-
TLS 版本
–
IANA“Recommended”
N:未评估或不推荐 · DTLS-OK: Y
规范
RFC 7507

各组成部分说明

TLS_FALLBACK_SCSV(0x56,0x00)是一个信号,而不是真正的密码套件。客户端在握手失败、改用更低协议版本重试时,把它加进套件列表;如果服务器其实支持比本次更高的版本,就会以 inappropriate_fallback 告警中止握手。RFC 7507(2015 年)引入它,是因为 POODLE 利用了这种不安全的回退,把连接压到 SSL 3.0。如今 RFC 索引显示 RFC 7507 已被弃用 TLS 1.0 和 1.1 的 RFC 8996(2021 年)废止;TLS 1.3 服务器改为在 ServerHello.random 的最后 8 个字节里标记降级。

评级理由

ssl.sh 评级:仅信令。理由:

  • 只是信令值,不包含任何算法,也不会被协商选中。

ssl.sh 如何给密码套件评级

历史与标准状态

TLS_FALLBACK_SCSV(0x56,0x00)在 IANA TLS 密码套件注册表中登记,规范文档为 RFC 7507《TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks》(2015 年 4 月,标准轨道)。RFC 7507 后来已被 RFC 8996(2021 年) 废止(obsoleted)。

如何测试服务器是否接受它

检查服务器是否拒绝不安全的回退:向支持 TLS 1.3 的服务器以 TLS 1.2 加回退信号发起握手,正确的服务器会以 inappropriate fallback 告警中止:

openssl s_client -connect example.com:443 -tls1_2 -fallback_scsv </dev/null

想解析套件名称或十六进制编号,可以用密码套件查询;SSL 检测会显示线上服务器接受哪些协议版本以及实际协商出的密码套件。

常见问题

TLS_FALLBACK_SCSV 是真正的密码套件吗?

不是。它是信令套件值(SCSV):不包含任何算法,服务器永远不会选中它,它只是让客户端向服务器传递一个信息。所以 ssl.sh 不给它评级。

需要在 Nginx 或 Apache 里配置 TLS_FALLBACK_SCSV 吗?

不需要。客户端会自动加上它,基于 OpenSSL 的服务器(如 Nginx、Apache httpd)无需任何指令就能识别;它也不会出现在 ssl_ciphers 或 SSLCipherSuite 列表里。

TLS 1.3 下 TLS_FALLBACK_SCSV 还有用吗?

作用已经不如从前。TLS 1.3 在 ServerHello.random 中内置了降级保护,TLS 1.0 和 1.1 又已被弃用,几乎没有可回退的版本;不再用旧版本重试的客户端也就不会发送它。

更好的替代

资料来源

  1. IANA — TLS Cipher Suites registry
  2. OpenSSL 3.5 — openssl-ciphers(1)
  3. GnuTLS — lib/algorithms/ciphersuites.c
  4. RFC Editor — RFC index