SRTP RFC4568

本文介绍了在电话业务转向云服务的过程中,如何通过SIP over TLS和SRTP确保数据安全。重点解析了RFC4568在SDP中协商媒体加密参数的作用,以及`a=crypto`属性的使用,详细阐述了如何从inline类型的key中提取master key和salt进行AES加密和完整性验证,确保SRTP包的安全传输。

在传统电话业务中 SIP 信令 以及语音数据,在传输层大都使用UDP,随着电话业务的运营由运营商(移动,电信,联通)扩展到公司,到如今的云电话服务。 被服务的公司或个人越来越注重数据的安全,可选择的运营公司比较多,导致各个运营商开始实施安全的SIP 信令和语音。

SIP/TLS or sips

Voice / SRTP

 

RFC 4568 就描述了怎么在SDP中协商 媒体加密参数。因为SDP 是随着SIP 信令传输的,那么就要求SIP 信令必须是安全的

SIP over TLS 是比较常用的case。

 

RFC 4568 为SDP 新增加了一个attribute:

a=crypto:<tag> <crypto-suite> <key-params> [<session-params>]

example:

a=crypto:1 AES_CM_128_HMAC_SHA1_80
inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:32

 

RFC 4568 只定义了inline 类型的key 方式,在这种方式下 后面的key字符串是一个字节串(不一定是字符串,可能有些字节不是可现实字符)。这个字节串包含了master key 和 salt

"inline:" <key||salt> ["|" lifetime] ["|" MKI ":" length]

 

 

A 端 发送数据使用 A端的key, B端使用A的key 解密

上面的例子中首先将PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR base64 解密

得到原始的master key 和salt。 根据AES_CM_128_HMAC_SHA1_80的定义,16个字节为master key ,剩余14个字节为salt值。

有了这两个值,通信双方也就知道了加解密的密码了(AES 对称加密)

对明文使用AES 加密后生成密文,为保持数据的完整性,要对密文和RTP 头 做签名操作,算法为SHA1, 生成Authentication tag(80 bit)

 

到此SRTP 包中所有的元素已经可以通过SDP的协商参数生成了,接下来看看SRTP 包的结构。

SRTP的定义在RFC 3711

SRTP协议的数据报文结构
   认证区
0123
01234567012345670123456701234567
VPXCC(4bit)MPT(7bit)Sequence Number(16bit)
时间戳(32bit)
SSRC标识符(32bit)
CSRC标识符(n个32bit)
RTP extension(可选)
加密的payload(末尾可能包含RTP padding和RTP pad count) 加密区
SRTP MKI(可选),master key identifier,是用来生成session加密密钥的随机位串标识符
认证标签(Authentication tag)
说明:
V:版本号,目前是2
P:填充位,当负载的长度不够32bit的整数倍时,需要填充
X:扩展位,若为1,则固定的包头后增加一个32bits的扩展
CC:CSRC的数目
M:标志,允许在比特流中标记重要的事件
PT:负载的格式
序列号:每发送一个RTP数据包,序列号加1
时间戳:
SSRC标识符:synchronizating source identifier 识别同步源
CSRC标识符:contributing source identifiers 识别负载重的有效贡献源

与RTP包的主要区别是负载加密、SRTP MKI(主密钥标识符,由密钥管理协议决定)、认证标签

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值