摘要

  • RFC 5197 是一份信息类适用性分析:它比较七种 MIKEY 密钥分发或协商方式,而不是为所有方式颁发同一份“安全”证明。
  • 防重放结论不仅来自报文,还依赖时钟同步、可接受偏差、缓存容量和生命周期;完整凭据还须记录实际模式、身份与证书、双方密钥贡献、TGK/TEK 范围、分叉对象和密钥就绪时间。

防重放的一半在报文之外

MIKEY 没有为每次交换使用独立的挑战—应答来判断重放,而是把时间戳与消息缓存结合起来。因此,RFC 5197 明确指出,它依赖较宽松但真实存在的时钟同步。如果无法同步,防重放机制可能无法按预期工作;缓存大小也应根据部署环境允许的时钟偏差来调整。

这段设计说明改变了审计对象。检查时间戳格式、签名或 MAC 只能证明报文内部发生了什么,不能证明接收端在当时保留了足够状态。九十秒窗口配六十秒缓存,会让一部分仍被时间策略接受的旧消息已经从记忆中消失。故障切换后缓存丢失,结论又会改变,即使软件版本和配置文件都没变。

可复核的记录至少要包含时间源、观察到的偏差、接受窗口、缓存容量、保留期限、重启代次以及本次查找命中或未命中的结果。这里不需要保存密钥明文,但必须保存做出判断的环境。否则,“防重放已开启”只是一个配置事实,不是某条消息没有被重放的运行事实。

RFC 5197 还指出,旧消息被重新接受可能使双方依赖不同的 TGK,最终无法通信。于是表面症状可能只是 SRTP 解密失败。若没有时间与缓存证据,运维人员会把它误判成编解码器、网络丢包或媒体栈问题。

七种方式不是七档强弱

RFC 5197 比较 PSK、RSA、DH-SIGN、NULL、DH-HMAC、文中讨论的 DH-SAML,以及带带内证书的 RSA-R。它们不是一条从弱到强的直线,而是对不同先决条件和场景做出的取舍。

PSK 不依赖 PKI,带宽与计算开销较低,适合小规模预置关系;但它不提供完美前向保密,密钥材料由发起方单独生成。RSA 可利用证书扩展身份体系,也能在已知响应方证书时用一个发起消息完成材料传递;它同样没有 PFS,且证书撤销状态未必能够实时取得。

DH-SIGN 让双方共同影响共享秘密并提供 PFS,但大规模身份绑定仍依赖可靠的证书体系,主要适合点到点。DH-HMAC 也有双方贡献和 PFS,并用预共享秘密保护 Diffie-Hellman;它避免了 PKI,却没有自动解决所有群组密钥场景。

RSA-R 允许响应方证书在交换中返回,适合发起方事先不知道最终接收者的分叉与重定向环境。可选 RAND 能让发起方参与,但不能强迫响应方以诚实方式使用,所以不能据此宣称真正 PFS。NULL 更直接:密钥管理本身不做加密与认证,完全依靠 TLS、IPsec 等下层。若 TLS 在代理处终止,代理可能看到明文主密钥。

把这些模式都压成 MIKEY=on,会同时抹去身份权威、长期密钥风险、双方贡献、下层终止点和群组适用性。

一个 CSB 里仍有多条密钥边界

MIKEY 可以一次为多个安全协议实例建立参数。一个 Crypto Session Bundle 中的多个 Crypto Session 可以共享 TGK 与策略参数,但分别派生 TEK。记录“CSB 成功”并不说明哪条媒体流用了哪把派生密钥,也不说明这把密钥被送到了哪些终端。

SIP 分叉把这个差别放大。代理可能把携带 MIKEY 的邀请发给多个位置。前向模式可能让多个响应方得到源自同一材料的 TEK。如果两个分支又选择相同的 32 位 SSRC,SRTP 会用相同输入派生相同会话密钥和每包初始化向量,从而形成 two-time pad 风险。

“碰撞概率很低”不是证据。凭据要列出分支身份、响应方集合、TEK 的适用范围、SSRC 选择与碰撞处理结果。群组会议同理:支持 MIKEY 并不等于所选模式适合当前群组拓扑。

密钥就绪也有自己的时钟

PSK 与 RSA 可以用一个消息把必要材料交给响应方,因而较适合早期媒体。Diffie-Hellman 类模式与 RSA-R 需要响应消息,发起方收到之前还不能得到最终密钥。媒体路径可能比经多个代理返回的信令路径短,SRTP 包会先于 SDP 应答到达。

这时,“模式已选择”“交换已开始”“密钥已安装”“首包可解密”是四个时间点。安全设计正确,并不意味着第一个媒体包到达时系统已经就绪。丢包、延迟播放或降级到其他方式都属于策略决定,不能被一个笼统成功状态遮住。

从选择到结果的最小凭据

先记录预期发起方、响应方和媒体上下文,再记录实际执行的模式与版本。把 PSK 标识、证书链、身份绑定、验证时刻、撤销证据、下层保护端点和中间节点作为先决条件保存。分别写明双方提供的随机性、是否得到 PFS,以及响应方确认是否为可选但实际缺席。

随后,用交换记录摘要连接 CSB、各 Crypto Session、TGK 标识和 TEK 派生范围;附上时间戳、时钟偏差、缓存状态、分叉分支和 SSRC 碰撞检查。最后保存密钥安装、首个加密包与首次成功解密的时刻。

这不是 RFC 5197 新增的线协议要求,而是它的适用性结论在生产环境中的自然延伸:实现、配置、选择、认证、完成、安装和可用属于不同现实层。系统可以把它们概括给人看,却不能先删除底层证据,再让概括替所有层作证。

来源

  1. RFC 5197 HTML
  2. RFC 5197 纯文本
  3. RFC 5197 信息页
  4. IETF Datatracker:RFC 5197
  5. RFC 5197 历史
  6. RFC 5197 参考文献
  7. RFC 5197 勘误
  8. RFC 3830 — MIKEY
  9. RFC 3711 — SRTP
  10. RFC 4650 — DH-HMAC
  11. RFC 4738 — RSA-R
  12. RFC 4567 — SDP/RTSP 密钥管理扩展
  13. RFC 4568 — 媒体流安全描述
  14. RFC 5027 — SDP 媒体安全前置条件
  15. RFC 4086 — 安全随机性要求
  16. RFC 4082 — TESLA
  17. RFC 4442 — TESLA 引导
  18. Heng Lu:现实层、符号权力与清晰的敌意
  19. Heng Lu:最小初始规范
  20. Heng Lu:运行代码优先