Skip to main content

14. Security Considerations (安全性考虑)

RTP 遭受与底层协议相同的安全漏洞。例如, 冒名顶替者可以伪造源或目标网络地址, 或更改头部或有效载荷。在 RTCP 中, CNAME 和 NAME 信息可用于冒充其他参与者。此外, RTP 可以通过 IP 组播发送, 这不为发送者提供直接方法来了解所发送数据的所有接收者, 因此也没有隐私保护措施。

无论正确与否, 用户可能对音频和视频通信的隐私问题比对更传统的网络通信形式更敏感。因此, 在 RTP 中使用安全机制很重要。这些机制在 Section 9 中讨论。

14.1 主要安全问题

RTP 的主要安全考虑包括:

机密性 (Confidentiality)

RTP 有效载荷可以被加密以防止窃听。加密方法在 Section 9.1 中定义。然而, RTP 头部不加密以允许混音器和转换器进行必要的处理。

认证和完整性 (Authentication and Integrity)

认证和消息完整性服务未在 RTP 协议级别定义, 因为期望由较低层协议提供这些服务。建议使用 IPsec 或其他安全协议来提供这些服务。

重放攻击 (Replay Attacks)

序列号可用于检测和防止重放攻击, 但需要在应用层实现适当的机制。

拒绝服务 (Denial of Service)

RTP 本身不提供防止拒绝服务攻击的保护。这些保护应该由较低层协议或应用级机制提供。

14.2 源地址欺骗

在 IP 组播中, 源地址欺骗特别令人关注, 因为攻击者可以向组播组发送虚假数据包, 这些数据包将被所有参与者接收。SSRC 标识符的随机选择有助于减少某些类型的攻击, 但不能提供完全的保护。

14.3 RTCP 的安全性

RTCP 数据包携带控制信息, 包括参与者标识和接收质量反馈。这些信息也可能敏感, 因此也应考虑 RTCP 的安全性。如果 RTP 数据被加密, 建议 RTCP 数据包也被加密。

14.4 防火墙和 RTP

RTP 级别的转换器或混音器可用于允许 RTP 流量到达防火墙后面的主机。应遵循适当的防火墙安全原则和实践 (超出本文档的范围) 来设计和安装这些设备, 以及允许在防火墙后面使用 RTP 应用程序。

14.5 建议

建议 RTP 实现:

  • 使用强加密算法 (如 Triple-DES 或 AES) 代替默认算法
  • 实现 IPsec 或类似的安全协议以提供认证和完整性保护
  • 使用安全的密钥分发机制
  • 在组播环境中谨慎处理敏感信息
  • 实现适当的访问控制和授权机制

有关更多详细信息, 请参见 Section 9 (Security)。