news 2026/8/13 21:04:18

DTLS、ICE--用janus举例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DTLS、ICE--用janus举例

参考文章:详解 WebRTC 传输安全机制:一文读懂 DTLS 协议 - 知乎

一 DTLS:udp上的tls,传输音视频用的,用的libsrtp库。

SRTP:rtp头没有加密,payload加密了

a=setup:active:作为DTLS客户端,主动发起协商,即client hello。
a=setup:passive:作为DTLS服务端,等待协商。
a=setup:actpass:由对端决定,谁active,谁passive。

客户端的sdp是a=setup:actpass,sdp type是offer。

服务器janus的sdp是a=setup:passive,sdp type是answer,音视频一样。

客户端先发Client Hello,作为DTLS Client,主动发送协商。

二 SRTP的密钥怎么算?跟类型、Server的pubkey、Client的pubkey有关。

Server Hello中重要的字段:Cipher Suite、use_srtp的类型。

//material就是srtp密钥? SSL_export_keying_material(dtls->ssl, material, master_length*2, "EXTRACTOR-dtls_srtp", 19, NULL, 0, 0) srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&(dtls->remote_policy.rtp)); memcpy(dtls->remote_policy.key, remote_key, key_length); memcpy(dtls->remote_policy.key + key_length, remote_salt, salt_length); srtp_create(&(dtls->srtp_in), &(dtls->remote_policy));
//libsrtp主要函数: srtp_err_status_t res = srtp_create(&srtp_ctx->ctx, policy); //加密:把音视频数据拷贝到sbuf srtp_protect(rtp_forward->srtp_ctx->ctx, &rtp_forward->srtp_ctx->sbuf, &protected); srtp_unprotect(pc->dtls->srtp_in, buf, &buflen);//解密

三 ICE:Nat穿透相关。

NAT:把内网IP转换成公网IP+端口。

ICE是一个框架,整合了STUN和TRUN。分tcp和udp、host、replay。

TRUN:在STUN上,加了中继功能,即转发功能。

janus用的libnice库,mediasoup自己实现的。

sdp的ice-ufrag、ice-pwd。

nice_agent_set_remote_credentials(handle->agent, handle->stream_id,ruser,rpass)。

fingerprint判断是否相等。一个是sdp带的,

另一个是:DTLS握手中的Certificate的x.509证书。本地计算出证书的SHA256 fingerprint,再比较。

四 顺序

1 信令交换sdp、

2ICE连通检测-stun包—bind request、response、绑定ip和port。

3 在ICE已打通的udp端口进行DTLS握手:Client Hello、Server Hello等、

4 srtp包--使用绑定ip和port。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 21:04:14

OpCore-Simplify:30分钟搞定黑苹果配置的智能神器

OpCore-Simplify:30分钟搞定黑苹果配置的智能神器 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置头疼吗&#xff…

作者头像 李华
网站建设 2026/8/13 21:04:11

长沙营销型网站建设公司:如何避坑指南与流量转化秘籍

在这个数字化飞速发展的时代,做生意的逻辑早就变了。以前大家觉得开个店、挂个招牌、守株待兔就能赚钱,现在不行了。现在的客户,还没走进你的实体店之前,已经在手机上搜过你好几遍了。如果你的网站长得像二十年前的产物,打开速度像树懒在散步,用户点进去三秒钟还看不明白…

作者头像 李华
网站建设 2026/8/13 21:03:46

微信聊天记录永久保存指南:如何将碎片对话变成宝贵数字资产?

微信聊天记录永久保存指南:如何将碎片对话变成宝贵数字资产? 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_…

作者头像 李华
网站建设 2026/8/13 21:02:10

广州品牌网站建设公司揭秘:2024年如何选择一家靠谱的数字化外衣制作商与避坑指南

在当下的商业环境中,如果你问任何一个在广州打拼的生意人,或者任何一个希望把品牌打出去的企业主,他们会告诉你什么?他们大概率不会先跟你聊产品有多牛,也不会先炫耀生产线有多先进,而是会半开玩笑半认真地跟你说:“兄弟,咱们那个网站太寒酸了,连个像样的门脸都没有,…

作者头像 李华
网站建设 2026/8/13 21:02:01

网站建设需要学习什么:零基础小白逆袭实战指南与核心技能全解析

在开始这篇长文之前,我想先问大家一个很现实的问题:当你看着别人通过一个精美的网站接单赚钱,或者通过搭建个人品牌网站实现流量变现时,你的第一反应是什么?是羡慕?是焦虑?还是觉得这遥不可及,觉得自己智商不够,或者没有计算机专业背景就搞不定?我特别能理解这种心情…

作者头像 李华
网站建设 2026/8/13 21:00:57

绵阳网站建设公司揭秘:如何打造高转化率的企业官网并避开营销陷阱

在这个互联网普及率极高、信息爆炸的时代,很多绵阳的企业老板或者市场负责人都会面临一个同样的困惑:我的企业到底需不需要做一个官方网站?如果要做,为什么市面上报价从几千块到几十万不等的网站建设公司那么多?为什么有的网站看起来高大上,用户进来却转不动手点击购买或…

作者头像 李华