首页  > 百科热搜  > WebRTC音视频协议-SRTP

WebRTC音视频协议-SRTP

发布时间:2023-06-19 13:03:04     作者:互联网收集     浏览量:422    

srtp

1.1 SRTP简介

STRP它是 思科的开源安全 RTP 库。RTP 是实时传输协议,一种用于传输实时数据(如电话、音频和视频)的 IETF 标准,由RFC 3550定义。SRTP用于为 RTP 数据提供机密性以及对 RTP 标头和有效负载进行身份验证。SRTP 是 IETF 标准,在RFC 3711中定义,该库支持 SRTP 的所有强制功能。

srtp

1.2 环境搭建

srtp

安装openssl加密库

安装libsrtp库

V 2bits 版本号,版本2

P 1bit 填充位,当负载的长度不够32bits的整数倍时,需要填充位

X 1bit 扩展位,若为1,则固定的包头后增加一个32bits的扩展(rtp extension)

CC 4bits CSRC的数目

M 1bit 允许在比特流中标记重要的事件

PT 7bits 负载类型

seq16bits 每发送一个RTP数据包,序列号加1,根据此来判断序列号的顺序

时间戳 32bits

SSRC标识符 32bits synchronizating source identifier 识别同步源

CSRC标识符 n个32bits contributing source identifiers 识别负载重的有效贡献源

可选存在的RTP extension

加密的数据(末尾可能包含RTP padding和RTP pad count)

包尾是SRTP MKI(可选),master key identifier,是用来生成session加密密钥的随机位串标识符。

认证标签(Authentication tag)

C++音视频开发学习资料:点击领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

3.1 SRTP协商

SRTP加密之前双方需要进行加密算法和秘钥的协商,可以采用sip的协商方式进行协商。主要是在sip中增加:a=crypto字段用于存放加密类型和秘钥。那么问题来了秘钥这里是否需要进行加密,答案很显然需要进行秘钥的加密,不然就透明了你的秘钥第三方也可以获取秘钥进行解密操作。

3.2 SRTP数据传输

srtp协商已经获取了双方的秘钥这时候可以利用秘钥进行加密操作,对方也可以利用秘钥对加密数据进行还原。

4.1 加密过程

4.2 解密过程

收藏文章

收藏

文章标签: 音视频     WebRTC     SRTP    
上一篇:运放之比较器基础知识-入门必会 下一篇:什么是CCD相机?它真的适合你吗?一篇文章讲清楚!