安全实时传输协议(SRTP-RFC3711)翻译

本文翻译了RFC3711,介绍了安全实时传输协议SRTP,用于为RTP和RTCP提供加密、消息认证和重放保护。SRTP在RTP与传输层之间工作,确保在有线和无线网络环境中提供合适的安全保护。内容涵盖了SRTP的目标、特征、框架、包处理、加密上下文和预定义变换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近工作上需要理解srtp协议,学习协议最好的方式就是阅读RFC文档,但英文文档读起来有点费劲,网上也找不到对应的中文翻译,所以便决定把RFC3711翻译成中文,一来是逼迫自己读懂每一段每一句,二来希望对从事音视频开发的程序员有帮助。

rtp(实时传输协议)用于传输实时音视频数据;rtcp(实时传输控制协议)是rtp的配套协议,用于实时数据传输的监控和反馈、保证服务质量;srtp是rtp的profile,工作于rtp与传输层(例如udp)之间,为rtp提供数据加密、消息认证和重放保护,srtcp为rtcp提供类似功能。

1 序言

本文描述安全实时传输协议(SRTP),实时传输协议(RTP)的profile,它为RTP传输和RTP控制传输(RTCP)提供加密、消息认证、重放保护。

SRTP为RTP和RTCP流的加密、消息认证、重放保护提供一个框架。SRTP定义了一个加密变化的集合,并支持新的加密变化在未来被引入进来。同适合的key管理一道,为单播和多播RTP应用程序提供安全性。

SRTP可以实现高的吞吐和低的包膨胀,SRTP被证明能为异构环境(有无线混合)提供合适的保护。为获得这些特征,描述默认的变换,基于额外的流密文实现加密,基于带key的散列函数用于消息认证,和基于RTP顺序号的一个隐式的索引实现顺序化和同步,和为了SRTCP的索引号。

2 目标和特征

srtp的安全目标是为了

  1. 为rtp、rtcp的负载(payload)提供加密,保证机密性。

  2. 为rtp、rtcp整个包提供完整性保护。

  3. 为rtp、rtcp提供包重放保护。

上述安全服务是可选的、且相互独立,只有srtcp的完整性保护是必选的。

另外,功能上,协议的目标是:

  • 支持升级新变化算法的框架

  • 低带宽消耗,例如,框架支持rtp头部的高效压缩

并且,预定义变换支持:

  • 低计算消耗

  • 为支持节省带宽,限制包膨胀

  • 独立于被RTP使用的底层传输、网络、和物理层,高容错丢包和乱序

这些特征确保srtp无论在有线还是无线网络环境下,都是rtp/rtcp的合适的安全保护方案。

2.1 特征

  1. 单独的master key,为srtp流和对应的srtcp流提供用于加密和完整性保护的key素材。这是通过一个key派生函数实现的,key派生函数从master key派生出session keys,用于各自的安全操作。

  2. key派生可以被配置成周期性刷新session keys,限制每个session key产生的密文数,从而用于对抗对手的解密分析。

  3. salting keys用于防范预计算和时间-空间置换攻击。

3 SRTP框架

srtp存在于rtp应用和网络传输层之间,在发送端,srtp拦截rtp包,并将它转换为srtp包;在接收端,srtp拦截srtp包,并将对应rtp包传递给rtp应用。

3.1 安全RTP

srtp包格式

        0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值