1. Introduction (简介)
1. Introduction (简介)
本文档描述了 Secure Real-time Transport Protocol (安全实时传输协议, SRTP), 它是 Real-time Transport Protocol (实时传输协议, RTP) 的一个配置文件 (profile), 可以为 RTP 流量以及 RTP 的控制流量 RTCP (the Real-time Transport Control Protocol, 实时传输控制协议) 提供机密性、消息认证和重放保护 [RFC3350]。
SRTP 为 RTP 和 RTCP 流提供了加密和消息认证的框架 (Section 3)。SRTP 定义了一组默认的密码变换 (Sections 4 和 5), 并且允许在未来引入新的变换 (Section 6)。通过适当的密钥管理 (Sections 7 和 8), SRTP 对于单播和组播 RTP 应用 (Section 11) 是安全的 (Sections 9)。
SRTP 可以实现高吞吐量和低数据包扩展。SRTP 被证明是适合异构环境 (有线和无线网络的混合) 的保护方案。为了获得这些特性, 描述了默认变换, 它们基于用于加密的加法流密码, 基于键控散列的消息认证函数, 以及基于 RTP 序列号的 SRTP 和 Secure RTCP (SRTCP) 索引号的"隐式"索引用于排序/同步。
1.1. Notational Conventions (符号约定)
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 和 "OPTIONAL" 应按照 [RFC2119] 中的描述进行解释。术语符合 [RFC2828], 但有以下例外。为了简单起见, 我们在整个文档中使用术语 "random" 来表示随机或伪随机生成的值。大量的随机比特可能难以获得, 并且对于 SRTP 的安全性而言, 伪随机性就足够了 [RFC1750]。
按照惯例, 采用的表示是网络字节序, 即最左边的位 (八位字节) 是最高有效位。通过 XOR 我们指的是二进制字符串的按位模 2 加法, 而 || 表示连接。换句话说, 如果 C = A || B, 那么 C 的最高有效位是 A 的位, 而 C 的最低有效位等于 B 的位。十六进制数字以 0x 为前缀。
术语 "encryption" 也包括使用 NULL 算法 (实际上会使数据保持明文状态)。
稍微滥用符号, 我们使用术语 "message authentication" 和 "authentication tag" 作为常见实践, 即使在某些情况下, 例如组通信, 所提供的服务实际上只是完整性保护而不是数据源认证。