RFC4568规范:SDP协商SRTP密钥
- SDP协商SRTP密钥
RFC4568中关于媒体流加密说明时,在SDP中新增了"crypto"字段用于描述加密信息,格式如下:
a=crypto:<tag> <crypto-suite> <key-params> [<session-params>]
其中:
<tag>为十进制数字,用于标记后面所述的加密属性,该数字内容不能为0,在offer/answer的协商模式下,tag用以区分各组备选信息。
<crypto-suite>用于描述加密和认证算法,在offer/answer模式下,本字段参数可协商。
<key-params>反馈crypto-suite字段对应的密钥信息
举例:
crypto:1 AES_CM_128_HMAC_SHA1_80 inline:NHomSmlnXy4qRCwhVi9ANVcwZ3Q3cXVaLykzJ1Rf|2^31|1:1
这里
tag =1
crypto-suite = AES_CM_128_HMAC_SHA1_80 ,支持AES128加密和SHA1_80的Hash
key-params = inline:NHomSmlnXy4qRCwhVi9ANVcwZ3Q3cXVaLykzJ1Rf|2^31|1:1
下面重点介绍下key-params
key-params = <key-method> ":" <key-info>
key-method参数现在只提供一种方式,即“inline”,指示实际密钥信息在key-info字段提供;key-info定义一串字符串,包含Master key、Master salt,可选包含Master key存活时长、Master key索引及长度;在offer/answer协商模式,密钥参数对外公开。
密钥生成规则如下图所示:
例如:AES_CM_128_HMAC_SHA1_80算法套件
Master key:128位(16字节)随机生成;
Master salt :112位(14字节)随机生成 ;
通信双方使用的AES密钥key=base64编码(Master key+ Master salt);
Master key存活时长:一般没有意义,因为默认值很长
MKI:形式为mki_length:mki_value,mki_length是指后面mki_value的实际长度,mki_value用于插入srtp报文中,防破解。
如果没有协商出MKI,则SRTP报文格式如下:
加密报文 |
Hash值 |
如果协商出MKI,则SRTP报文格式如下:
加密报文 |
MKI_VALUE |
Hash值 |
其中MKI_VALUE占的字节数就是MKI_LENGTH
最后加密协商是不对称的,所以本端发出的crypto属性中的加密信息指示的本端发送的码
流的加密信息
RFC4568规范:SDP协商SRTP密钥相关推荐
- 翻译-pjsip开发者指南(十一)SDP协商框架
Chapter 11:SDP Offer/Answer Framework SDP offer/answer框架是基于 RFC 3264 "An Offer/Answer Model wit ...
- 【网络通信 -- WebRTC】项目实战记录 -- WebRTC Native SDP 协商没有 H264 载荷问题
[网络通信 -- WebRTC]项目实战记录 -- WebRTC Native SDP 协商没有 H264 载荷问题 [1]原因分析 webrtc h264 的 supportedHwCodecPro ...
- WebRTC 之 PeerConnection: 细说对等连接建立流程一
WebRTC 是一套基于 Web 的实时通信解决方案,通过浏览器内置的 API 来支持音视频通道的搭建. 简而言之,先在信令通道协商出彼此的媒体和通信参数, 再通过媒体通道来传输音视频媒体数据. Ja ...
- 密钥协商(密钥交换)机制的讲解
国标文件涉及密钥协商算法的函数 生成密钥协商参数并输出 计算会话密钥 产生协商数据并且计算会话密钥 密钥协商(交换)算法及其原理 密钥交换/协商目的 "密钥协商机制"是:(在身份认 ...
- RSA加密算法和DH密钥协商的比较
最近在知乎上看到一篇关于RSA和DH的比较,简单明了,以此记录一下. 问题1: RSA做密钥协商(密钥交换)时,是否可以防范中间人攻击? 答:单就RSA本身而言,是无法防范中间人攻击的. 和其它加密 ...
- mbedtls学习(8)ECDH密钥协商
ECDH密钥协商 ECDH密钥协商算法基于椭圆曲线密码系统(ECC),使用较短的密钥长度可提供与RSA或DH算法同等的安全等级,密钥长度位160 ~ 256比特的椭圆曲线算法与密钥长度位1024 ~ ...
- dh密钥协商算法c语言实现,Diffie-Hellman密钥协商算法-python实现
Boblee人工智能硕士毕业,擅长及爱好python,基于python研究人工智能.群体智能.区块链等技术,并使用python开发前后端.爬虫等. 1.Diffie-Hellman密钥协商算法 Dif ...
- 简单介绍一下SDP规范
在现实世界中,我们知道寄快递,你首先知道对方和标识发送方的地址,姓名,联系方式等,这些快递才能寄出去,那么在webrtc的世界中,双方或者 多方通信是怎么联系的呢?就是通过SDP这样的一个东西,他里面 ...
- WebRTC 传输安全机制:DTLS 和 SRTP
在 WebRTC 中,为了保证媒体传输的安全性,引入了 DTLS 和 SRTP 来对通信过程进行加密.DTLS 的作用.原理与 SSL/TLS 类似,都是为了使通信过程变得更安全. 常用加密方法 加密 ...
- webRTC——SDP(Session Description Protocal)
SDP(Session Description Protocal),说直白点就是用文本描述的各端(PC 端.Mac 端.Android 端.iOS 端等)的能力. 这里的能力指的是各端所支持的音频编解 ...
最新文章
- Quick BI:降低使用门槛,大东鞋业8000家门店的数据导航
- 爸爸我爱您(之十二)
- C# 中的 null 包容运算符 “!” —— 概念、由来、用法和注意事项
- java format 补足空格_11 个简单的 Java 性能调优技巧
- godaddy mysql 连接 设置 2014_GoDaddy主机数据库远程访问设置的方法
- u2020 华为_顶级标压U加持轻薄本!华为MateBook 13 2020锐龙版评测
- 视频通信系统的关键技术与挑战
- 报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x93 in position 1721: illegal multibyte sequen
- Android 10.0去掉后台启动Service的限制
- mac 视频转文字工具
- 现代公关无需遮遮掩掩,明火执仗开干就行
- 公众号怎么设置滑动文字_微信公众号滑动文字怎么制作内容呢?
- html使用thymeleaf模板时,获取数据库中字符串值,拆分为list根据下标获取对应的值的方法
- altium designer原理图生成pcb
- lamp-linux2
- 安卓技术实战01 第一个安卓APP案例
- Hadoop基础部分-2
- 永信至诚助中国航信2015年信息安全技能竞赛圆满举行
- 轻量的web框架Bottle
- access 数据修复记