安全实时传输协议(SRTP)与覆盖无关族的深度解析
SRTP协议详解
1. 会话密钥推导
会话密钥推导过程可能会执行多轮AES加密。每一轮AES加密都需要一个独立的X值。具体操作是,将X值左移16位,并通过计数器进行递增。每一轮AES加密的输出块会进行拼接,直到达到合适的(会话)密钥长度。每一次会话密钥的生成都具备前后向保密性,这意味着在给定主密钥的情况下,攻击者无法从一个被泄露的会话密钥推导出之前或未来的会话密钥。
2. 密钥流生成
SRTP通过拼接AES计数器模式的128位输出块来生成随机比特流,即密钥流。每个块会对连续的整数进行加密,以确保每个块的唯一性。密钥流与明文进行异或运算来加密RTP有效负载,这种方式被称为加法密码或流密码,具有高效的空间利用率。但需要注意的是,为避免密钥重用,每个明文块都需要一个唯一的密钥流。密钥流的概念定义如下:
[KS = AES(k_{Session}, IV \bmod 2^{128})\parallel AES(k_{Session}, (IV + 1) \bmod 2^{128})\parallel \cdots]
其中,IV是一个128位的常量值,其最低16位为0,这些位作为AES计数器模式的计数器。IV由会话盐、RTP报头中的SSRC和隐式索引通过异或运算得到:
[IV = (SSRC \ll 64) \oplus (salt \ll 16) \oplus (index \ll 16)]
由于为计数器保留了16位,一个隐式索引最多可以加密65,536个AES块,即1兆字节的数据。
3. 安全服务
SRTP提供了以下安全服务
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



