webrtc-dtls、sctp、srtp

article/2025/10/13 10:55:28

Webrtc通道协议总览图
在这里插入图片描述
WebRtc媒体建立流程图

SCTP:
当我们在网上搜索SCTP时,会看到相关的描述,将SCTP介绍为与UDP,TCP同一层次的传输层协议。最早STCP是把窄带7号信令的可靠性传输机制引入到IP协议、优化TCP协议的不能分帧传输的局限性提出来的,不过后来应用不是很广泛。在WebRTC中实现数据通道使用的SCTP是基于改良剪切版的,有两个草案描述了该改良版本《draft-ietf-rtcweb-data-channel-13》、《draft-ietf-rtcweb-data-protocol-09》(此处描述来源于webrtc数据通道之SCTP over DTLS简介)。WebRTC要求使用SCTP必须开启DTLS,协议的分层图如上图:可以得知WebRTC中的SCTP实际上是基于UDP在应用层提供的相关实现,而非常规意义上的OSI模型中的传输层。

DTLS:
DTLS(Datagram Transport Layer Security) 的作用:给数据通道数据加密(保证数据安全性)、增加链路证书校验机制(防止网络攻击),提供了 UDP 传输场景下的安全机制,能防止窃听、篡改、冒充等问题。在 WebRTC中使用 DTLS 的地方包括两部分:
1、datachannel数据通道,在datachannel数据通道中,webrtc完全使用dtls来进行协商和加解密
2、MediaChannel媒体通道,在媒体通道中,webrtc使用srtp来进行数据的加解密,dtls的作用仅仅用来做密钥交换,RTP/RTCP的书为了与历史设备兼容性考虑,完全通过SRTP来实现
dtls交互流程如下:
在这里插入图片描述
Webrtc 中DTLS的参数
WebRTC 中的 DTLS 参数需要通过 SDP 信息来设置和传递,而且只需要两种 a line 表示:

a=setup
a=fingerprint
a=setup 表示 DTLS 的协商过程中角色,有三个可能值:
a=setup:actpass 既可以是 client 角色,也可以是 server 角色
a=setup:active client 角色
a=setup:passive server 角色
根据 RFC5763,SDP请求的 a=setup 属性必须是 actpass,由应答方决定谁是 DTLS client,谁是 DTLS server。
a=fingerprint 的内容是证书的摘要签名,用于验证证书的有效性,防止冒充。

SRTP:
通过 DTLS 协商后,RTC 通信的双方完成 MasterKey 和 MasterSalt 的协商。接下来,我们继续分析在 WebRTC 中,如何使用交换的密钥,来对 RTP 和 RTCP 进行加密,实现数据的安全传输。
RTP/RTCP 协议并没有对它的负载数据进行任何保护。因此,如果攻击者通过抓包工具,如 Wireshark,将音视频数据抓取到后,通过该工具就可以直接将音视频流播放出来,这是非常恐怖的事情。
在 WebRTC 中,为了防止这类事情发生,没有直接使用 RTP/RTCP 协议,而是使用了 SRTP/SRTCP 协议 ,即安全的 RTP/RTCP 协议。WebRTC 使用了非常有名的 libsrtp 库将原来的 RTP/RTCP 协议数据转换成 SRTP/SRTCP 协议数据。
SRTP 要解决的问题:
・对 RTP/RTCP 的负载 (payload) 进行加密,保证数据安全;
・保证 RTP/RTCP 包的完整性,同时防重放攻击。
SRTP/SRTCP 结构
SRTP结构:在这里插入图片描述**
从 SRTP 结构图中可以看到:

  1. 加密部分 Encrypted Portion,由 payload, RTP padding 和 RTP pad count 部分组成。也就是我们通常所说的仅对 RTP 负载数据加密。
  2. 需要校验部分 Authenticated Portion,由 RTP Header, RTP Header extension 和 Encrypted Portion 部分组成。
    通常情况下只需要对 RTP 负载数据进行加密,如果需要对 RTP header extension 进行加密,RFC6904 给出了详细方案,在 libsrtp 中也完成了实现。

SRTCP 结构在这里插入图片描述
文中部分引用来源:
https://blog.csdn.net/aggresss/article/details/108019570
https://blog.csdn.net/alitech2017/article/details/118089200


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

相关文章

RTP/RTCP 和 SRTP/SRTCP协议

此文章为转载,如有侵权,通知删除 原地址:https://blog.csdn.net/swallow_he/article/details/74202104 RTP/RTCP 和 SRTP/SRTCP协议 1 RTP RTP 协议(Real TimeProtocol)提供具有实时特征的、端到端的数据传送服务,可用来传送声音…

【网络通信 -- 直播】网络通信协议简介 -- SRTP/SRTCP

【网络通信 -- 直播】网络通信协议简介 -- SRTP/SRTCP 【0】简介 安全实时传输协议 (Secure Real-time Transport Protocol,SRTP) 是在实时传输协议 (Real-time Transport Protocol,RTP) 基础上定义的一个协议,旨在为单播和多播应用程序中的…

RFC4568规范:SDP协商SRTP密钥

SDP协商SRTP密钥 RFC4568中关于媒体流加密说明时&#xff0c;在SDP中新增了"crypto"字段用于描述加密信息&#xff0c;格式如下&#xff1a; acrypto:<tag> <crypto-suite> <key-params> [<session-params>] 其中&#xff1a; <…

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、逻辑设计 将现实世界的概念数据模型设计…