DTLS、ICE--用janus举例
参考文章详解 WebRTC 传输安全机制一文读懂 DTLS 协议 - 知乎一 DTLSudp上的tls传输音视频用的用的libsrtp库。SRTPrtp头没有加密payload加密了。asetup:active作为DTLS客户端主动发起协商即client hello。asetup:passive作为DTLS服务端等待协商。asetup:actpass由对端决定谁active谁passive。客户端的sdp是asetup:actpasssdp type是offer。服务器janus的sdp是asetup:passivesdp 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);//解密三 ICENat穿透相关。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。

相关新闻

不为人知的开源硬件控制工具:告别后台弹窗,把游戏本还给自己

不为人知的开源硬件控制工具:告别后台弹窗,把游戏本还给自己

不为人知的开源硬件控制工具:告别后台弹窗,把游戏本还给自己 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuper…

2026/8/13 21:04:26 阅读更多 →
vue中使用腾讯API地图,实现搜索关键词获取经纬度和地址并显示地图

vue中使用腾讯API地图,实现搜索关键词获取经纬度和地址并显示地图

vue中使用腾讯API地图,实现搜索关键词获取经纬度和地址并显示地图 调用腾讯地图api前需要先去注册并申请key在vue项目中的/public文件夹中的index.html的head中写入安装lodash:npm install --save lodash安装jsonp: npm install vue-jsonp -…

2026/8/13 21:04:26 阅读更多 →
微信聊天记录永久保存:你的数字记忆保险箱

微信聊天记录永久保存:你的数字记忆保险箱

微信聊天记录永久保存:你的数字记忆保险箱 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg 你…

2026/8/13 21:04:26 阅读更多 →

最新新闻

JavaScript保留两位小数:toFixed、Math函数与高精度库实战指南

JavaScript保留两位小数:toFixed、Math函数与高精度库实战指南

1. 项目概述:为什么“保留两位小数”是个技术活? 刚入行那会儿,我也觉得处理数字显示,特别是保留两位小数,不就是调个函数的事儿吗? toFixed(2) 一用,页面上的价格、金额、百分比立马整整齐齐…

2026/8/13 22:03:59 阅读更多 →
国赛Word模板核心功能解析与高效写作流程指南

国赛Word模板核心功能解析与高效写作流程指南

1. 先搞清楚国赛Word模板到底解决什么问题 每年国赛,很多队伍在模型和代码上下了大功夫,最后却因为论文格式不规范、排版混乱、图表编号错误、公式格式不对而丢分,非常可惜。一个标准的Word写作模板,核心价值不是让你“写”得更好…

2026/8/13 22:03:59 阅读更多 →
HttpAsyncClient长连接Connection reset问题排查与优化

HttpAsyncClient长连接Connection reset问题排查与优化

1. 问题现象与背景分析 最近在项目中遇到一个棘手的问题:使用HttpAsyncClient与服务端建立长连接时,频繁出现"Connection reset by peer"错误。这个问题在高峰期尤其明显,导致部分请求失败,影响了系统稳定性。 HttpAsy…

2026/8/13 22:03:59 阅读更多 →
AI能否成为爱因斯坦?从预测模型到科学发现引擎的工程化探索

AI能否成为爱因斯坦?从预测模型到科学发现引擎的工程化探索

最近看到一个问题,挺有意思:如果把1905年之前人类所有的知识都交给一个AI,它能像当年的爱因斯坦一样,推导出相对论吗? 这个问题乍一听,像是一个关于AI能力的科幻猜想。但仔细一想,它其实戳中了…

2026/8/13 22:03:59 阅读更多 →
5个理由让你立刻爱上DyberPet:打造专属桌面伙伴的终极指南

5个理由让你立刻爱上DyberPet:打造专属桌面伙伴的终极指南

5个理由让你立刻爱上DyberPet:打造专属桌面伙伴的终极指南 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否曾经幻想过拥有一个真正的桌面伙伴?一个会…

2026/8/13 22:03:59 阅读更多 →
30分钟搭建智能微信机器人:实现多平台AI助手与群聊管理

30分钟搭建智能微信机器人:实现多平台AI助手与群聊管理

30分钟搭建智能微信机器人:实现多平台AI助手与群聊管理 【免费下载链接】wechat-bot 🤖 Multi-platform IM AI Agent for Telegram, WhatsApp, Lark, and WeChat. Connects ChatGPT / Claude / Kimi / DeepSeek / Ollama / Pi for auto-replies, communi…

2026/8/13 22:02:59 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →