8.1.1. Use of the <From, To> for re-keying (使用 <From, To> 进行重新密钥)
8.1.1. Use of the <From, To> for re-keying (使用 <From, To> 进行重新密钥)
除了使用 MKI 之外, SRTP 还定义了另一种可选的主密钥检索机制, 即 <From, To>。<From, To> 指定了 SRTP 索引 (序列号和 ROC 的配对) 的范围, 在该范围内某个主密钥有效, 并且 (在使用时) 是加密上下文的一部分。通过查看当前 SRTP 数据包的 48 位 SRTP 索引, 可以通过确定它属于哪个 From-To 区间来找到相应的主密钥。对于 SRTCP, 最近观察到/使用的 SRTP 索引 (可以从加密上下文中获得) 用于此目的, 即使 SRTCP 有自己的 (31 位) 索引 (参见下面的注意事项)。
与 MKI 相比, 此方法的优点是可以识别主密钥并定义其生命周期, 而无需向每个数据包添加额外的比特。如前所述, 这对于一些不支持添加额外比特的无线链路可能很有用。但是, 它的使用应该 (SHOULD) 限制在特定的、非常简单的场景中。我们建议当 RTP 会话是简单的单向或双向流时限制其使用。这是因为在多个流的情况下, 很难基于单个 RTP 流的 <From, To> 触发重新密钥。例如, 如果多个流共享一个主密钥, 则某个流的索引序列空间与基于 <From, To> 值的索引序列空间之间没有简单的一对一对应关系。因此, 当在流之间共享主密钥时, 必须 (MUST) 由密钥管理指定其中一个流, 其索引空间定义重新密钥点。此外, SRTCP 上的重新密钥触发基于相应的 SRTP 流, 即当 SRTP 流更改主密钥时, 相应的 SRTCP 也会更改。随着多个流的增加, 这显然会变得越来越复杂。
<From, To> 的默认值是 "从第一个观察到的数据包开始" 和 "直到另行通知"。但是, 在每个给定的主密钥/会话密钥下发送的 SRTP/SRTCP 数据包的最大限制 (Section 9.2) 绝对不能 (MUST NOT) 被超过。
如果 <From, To> 用作密钥检索, 则 MKI 不会插入到数据包中 (并且其在加密上下文中的指示符为零)。但是, 使用 MKI 并不排除同时使用 <From, To> 密钥生命周期。例如, 这可能有助于在发送方侧发出信号, 表示 MKI 在什么时间点变为活动状态。