RFC4568规范:SDP协商SRTP密钥

article/2025/10/13 11:59:17
  1. 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属性中的加密信息指示的本端发送的码

流的加密信息


http://chatgpt.dhexx.cn/article/mBU2xgMa.shtml

相关文章

srtp的致命错误

文章目录 javaweb使用了ajax技术依然刷新页面法一法二法三 javaweb后台servlet不能重定向问题javaweb失败加载xxx&#xff0c;因为没有框架当用户一台设备打开多个网页访问我的窗口时验证码错误的实质session的实质浏览器和服务器之间的session关联的技术内幕实验验证 javaweb使…

Janus dtlssrtp 流程图

1 init 2 create bio接口和pre 秘钥 各个部分说明: 绑定ssl和bio;SSL_set_bio(dtls->ssl, dtls->read_bio, dtls->filter_bio);//init dtls:SSL_new--使用BIO那么就可以和SSL、非加密的网络以及文件IO进行透明的连接;BIO可以连接在一起成为一个BIO链//读写bio就等于读…

TLS-SRTP协议详解

当webrtc通过tls握手完成,会把key和加密算法给srtp,由srtp进行数据的加密和解密。 srtp使用的是对称的加解密算法。而dtls握手协议使用的是非对称的加解密算法。 对称加密算法需要同一个密钥。此时通过tls握手,a给b自己的密钥,b给a自己的密钥,a用自己的密钥加密,b用a给的…

SRTP RFC 3711

目录 1 SRTP session key 2 RTP 加密 2.1 RTP body加密 2.1.1 计算IV 2.1.2 计算AAD 1 SRTP session key K

WebRTC 传输安全机制:深入显出 SRTP 协议

简介&#xff1a;SRTP&#xff1a;安全传输协议&#xff08;Secure Real-time Transport&#xff09; 通过 DTLS 协商后&#xff0c;RTC 通信的双方完成 MasterKey 和 MasterSalt 的协商。接下来&#xff0c;我们继续分析在 WebRTC 中&#xff0c;如何使用交换的密钥&#xff0…

视频码流传输协议srtp/srtcp详细介绍

RTP/RTCP 协议并没有对它的负载数据进行任何保护。因此&#xff0c;如果攻击者通过抓包工具&#xff0c;如 Wireshark&#xff0c;将音视频数据抓取到后&#xff0c;通过该工具就可以直接将音视频流播放出来&#xff0c;这是非常恐怖的事情&#xff0c;这里可以通过srtp/srtcp协…

计算机专业srtp项目选题,我都大二了,才知道什么是SRTP

原标题:我都大二了,才知道什么是SRTP 大二下学期一开始,陆陆续续有同学问我: “哎,你报名SRTP了吗?” “你SRTP找了哪个老师了?” “我们SRTP组队吧!” 这时的我,一脸懵逼: 啥??? 惊讶的目光顿时向我扫来, “你连SRTP都不知道? 我一入学学长学姐就告诉我了!” …

WebRTC 传输安全机制:DTLS 和 SRTP

在 WebRTC 中&#xff0c;为了保证媒体传输的安全性&#xff0c;引入了 DTLS 和 SRTP 来对通信过程进行加密。DTLS 的作用、原理与 SSL/TLS 类似&#xff0c;都是为了使通信过程变得更安全。 常用加密方法 加密技术 1. 对称加密 对称加密&#xff08;Symmetric Cryptograph…

DTLS-SRTP协议学习

1.DTLS-SRTP&#xff1a; WEBRTC中真正使用的协议&#xff0c;会使用DTLS握手协议后交换证书key&#xff0c;交换完成将key和加密算法交给SRTP进行数据加解密。 2.DTLS要解决的问题&#xff1a; 2.1.交互密钥 SRTP是真正加解密的&#xff0c;使用的是对称的加密算法。DTLS使…

SRTP是如何工作的

什么是SRTP 参考RFC 3711 - The Secure Real-time Transport Protocol 参考RFC 7201 - Options for Securing RTP Sessions RTP是实时传输协议&#xff0c;用于媒体通信&#xff1b;SRTP就是加密的实时传输协议。 工作原理很简单&#xff0c;即在RTP开始前&#xff0c;双方先协…

SRTP/SRTCP协议

SRTP(Secure Real Time Protocol)安全实时传输协议&#xff0c;SRTCP(Secure Real Time Controle Protocol)安全实时传输控制协议。了解这个两个协议之前&#xff0c;首先需要了解RTP和RTCP协议&#xff0c;SRTP和SRTCP是在RTP和RTCP传输的基础上&#xff0c;对数据进行了加密和…

VoIP之SRTP

互联网已经渗透到生活的方方面面,用户对于网络信息安全的要求非常高。在VoIP领域中&#xff0c;使用SRTP对音频、视频数据进行加密&#xff0c;保证数据安全。 SRTP的作用如下&#xff1a; 1. 保证RTP包中负载&#xff08;音视频数据&#xff09;的机密性 2. RTP包完整性确认&…

音视频协议-SRTP

1 SRTP环境搭建 1.1 SRTP简介 STRP它是 思科的开源安全 RTP 库。RTP 是实时传输协议&#xff0c;一种用于传输实时数据&#xff08;如电话、音频和视频&#xff09;的 IETF 标准&#xff0c;由RFC 3550定义。SRTP用于为 RTP 数据提供机密性以及对 RTP 标头和有效负载进行身份…

关系型数据库设计

目录 一、本章目标 二、为什么需要设计数据库 三、设计数据库的步骤 四、数据库设计E-R图 4.1为什么使用E-R图 4.2绘制E-R图 4.3实体间的映射关系 五、数据库设计模型转换 5.1关系型数据库设计分类 5.2各模型之间的元素对应关系 5.3基本转换原理 5.4将实体关系转化为表…

个人博客数据库设计

前言 最近要做数据库大作业&#xff0c;在思考了很久之后&#xff0c;还是设计一个简单的个人博客数据库&#xff0c;数据库采用的时MySQL5.7。 数据库下载&#xff08;提取码: s2f9&#xff09; 一、 概述及分析 1.1 项目背景 随着互联网的发展&#xff0c;越来越多的人拥…

[数据库设计]如何合理和有效的进行数据库设计

#前言 通常情况下&#xff0c;可以从两个方面来判断数据库设计的是否规范: 1)一是看看是否拥有大量的窄表 窄表往往对于OLTP比较合适&#xff0c;符合范式设计原则 2)宽表的数量是否足够的少。 所谓的宽表就是字段比较多的表&#xff0c;包含的维度层次比较多&#xff0c;造成冗…

数据库设计实战(一):数据库设计规范

一、数据库设计流程 1、需求分析 确定用户对数据库系统的使用要求和各种约束条件&#xff0c;形成用户需求规约 2、概念设计 对用户要求描述的现实世界&#xff0c;通过对其分类、聚集和概括&#xff0c;建立抽象的概念数据模型 3、逻辑设计 将现实世界的概念数据模型设计…

详解数据库设计的四个阶段

一、系统需求分析阶段 数据库设计的第一步&#xff0c;就是了解与分析用户需求&#xff0c;确定系统边界信息需求、处理需求、安全性和完整性需求&#xff0c;然后编写系统分析报告。 系统分析报告的内容主要包括&#xff1a; 随系统分析报告需提供的附件还有&#xff1a; …

MySQL数据库设计-案例

大家好&#xff0c;我是忘鱼。分享一下数据库设计&#xff08;案例&#xff09; 目录 一、案例 二、代码 三、总结 一、案例 如下进行数据库设计。这是黑马上的一道练习题。 二、代码 drop table if EXISTS music; drop table if EXISTS song; drop table if EXI…

数据库设计流程

数据库设计的步骤 数据库设计的流程总共有三步&#xff1a; 现实世界的实体模型通过建模转换为信息世界的概念模型&#xff08;即 E-R 模型&#xff09;概念模型经过模型转化&#xff0c;得到数据库使用的数据模型&#xff08;在关系数据库设计中为关系模型&#xff09;数据模…