摘要
- 双向模式中,客户端把服务器的挑战值和自己刚生成的随机值一并签名。服务器最后也对这两个值签名,但还加入第三个值,因为客户端在选择自己的随机值之前,已经知道服务器的首个挑战。
- 第三个值让服务器的响应绑定到新的随机输入,却没有把机制变成安全信道:RFC 3163 不提供完整性或机密性,并明确说主动攻击仍可能成功。
看似多余的第三个数
RFC 3163 的交互乍看像重复校验:服务器发送一个随机挑战,客户端签署包含它的交互记录;随后服务器也签署一份包含同一挑战的记录。服务器的最终令牌为何还要带第三个随机值?
2001 年 8 月发布的实验性 RFC 3163《ISO/IEC 9798-3 Authentication SASL Mechanism》把答案放在参与方作出选择的先后顺序里。关键不是消息有几条,而是谁在生成自己的随机值之前看到了对方的挑战。这个顺序决定签名究竟能够证明交互中的哪些联系。
该 RFC 定义两类 SASL 机制名。9798-U-<algorithm> 用于客户端向服务器的单向认证;9798-M-<algorithm> 则增加双向实体认证:客户端签署服务器的挑战,服务器再签署客户端的挑战。两者都以公钥数字签名和 X.509 证书为基础,认证步骤要求处理证书路径。
签名覆盖的先后关系
在两种模式下,服务器先生成随机值 R_B。随后客户端产生 R_A,并发送 TokenAB。其中有客户端证书资料,以及对 R_A 和 R_B 的签名;客户端还可以放入服务器标识。服务器需要验证签名、确认返回的 R_B 与先前发出的挑战一致,并在有标识时核对服务器身份。
单向模式的核心交互到这里就结束。双向模式还需要服务器答复:TokenBA2 携带服务器证书,并对 R_A、R_B 和一个新值 R_C 签名。客户端验证服务器证书与签名,再确认前两个随机值分别对应此前的交互,并检查可选的客户端标识。
第 7 节解释了第三个值的理由。客户端签名覆盖 R_A,因此服务器不能在机制开始前先挑好数据,再取得客户端对那批数据的签名。但反向情形并不对称:客户端是在已知 R_B 后才选择 R_A。服务器签名中包含 R_B 是必要的,客户端据此核对交互记录;然而,R_B 单独无法给服务器提供同等的保护。因此 RFC 3163 又把 R_C 放进服务器签署的 TokenBA2。
这只是 RFC 对特定签名设计的解释,不能扩大成“任何中间人、重放或主动攻击都已被解决”。随机值必须由密码学安全的随机数生成器产生;如果可预测,机制就可能受到攻击。第三个值回应的是文本描述的顺序差异,不是对其他未覆盖安全属性的修补。
认证并不等于保护会话
RFC 3163 明确限定:该机制只提供认证,不负责后续协议消息的完整性,也不隐藏消息内容。安全章节称它只能防范被动窃听;主动攻击仍可发生,包括会话劫持。IESG 的附注批评得更直接:机制承担了 PKI 的复杂性,却舍弃每次传输的完整性;TLS 能提供相近功能并保留完整性收益。
证书字段也不会把几个决策合成一步。TokenAB 中的 authID 可以表示与证书签名者不同、供访问控制使用的身份。证书路径是否被信任、机制是否认证成功、身份如何映射、应用允许该身份做什么,仍是不同问题。有效签名只能证明某把密钥签署了所覆盖的数据,并不能替应用作授权决定。
RFC 的 IMAP 示例也不是双向模式的实例。它展示的是 9798-U 客户端认证,并说明 Base64 编码及响应前的 + 符号来自 IMAP 配置文件,而非 SASL 机制本身。因此这段示例不能证明双向运行、部署普及或互操作结果。
Lu Heng 的 Note 20 在此仅作为分析视角:把协议实际核验的证据,与关于身份、权力或权限的更大主张分开。随机值对应关系及签名验证属于交互记录;信道保护和应用权限要由其他控制承担。这不是 RFC 3163 作者提出的论点。
来源
- RFC 3163 — ISO/IEC 9798-3 Authentication SASL Mechanism
- RFC Editor 的 RFC 3163 条目
- RFC 2222 — Simple Authentication and Security Layer
- RFC 4422 — Simple Authentication and Security Layer (SASL)
- RFC 2459 — Internet X.509 Public Key Infrastructure Certificate and CRL Profile
- RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and CRL Profile
- RFC 2630 — Cryptographic Message Syntax
- RFC 8017 — PKCS #1: RSA Cryptography Specifications
- RFC 2060 — Internet Message Access Protocol, Version 4rev1
- RFC 2195 — IMAP/POP AUTHorize Extension for Simple Challenge/Response
- IANA SASL 机制注册表
- NIST FIPS PUB 196 — Entity Authentication Using Public Key Cryptography
- Lu Heng,Note 20 — On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
