当前位置: 首页 > news >正文

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。

http://www.cnnetsun.cn/news/4007990.html

相关文章:

  • OpCore-Simplify:30分钟搞定黑苹果配置的智能神器
  • 长沙营销型网站建设公司:如何避坑指南与流量转化秘籍
  • 微信聊天记录永久保存指南:如何将碎片对话变成宝贵数字资产?
  • 广州品牌网站建设公司揭秘:2024年如何选择一家靠谱的数字化外衣制作商与避坑指南
  • 网站建设需要学习什么:零基础小白逆袭实战指南与核心技能全解析
  • 绵阳网站建设公司揭秘:如何打造高转化率的企业官网并避开营销陷阱
  • 花都网站建设公司哪家强?揭秘本地专业团队如何帮企业打造高转化官网
  • 个人网站建设教程:从零开始打造你的专属网络名片与流量阵地
  • 专业公司网站建设方案书定制与企业数字化转型指南:从策划到上线的全链路解析
  • 成都php网站建设如何选择靠谱的开发团队与构建高效稳定系统的深度避坑指南
  • 济南网站建设工作室如何选择靠谱团队避坑指南与实战经验全解析
  • 福州网站建设公司哪家好?避坑指南与深度测评让你少走弯路
  • 咸宁网站建设公司如何帮你在本地市场脱颖而出:一份来自一线从业者的真心话
  • 上海网站建设哪家便宜且靠谱?揭秘行业底价与避坑指南,老板必看!
  • 第6章:移动端开发:01-移动开发体检预约
  • 政务网站建设方案详解:打造透明高效的服务型政府数字名片
  • 自己人网站建设怎么选:从源码解析到落地交付的避坑指南
  • 揭秘郑州网站建设专家背后的真实逻辑与未来趋势
  • 安徽高端网站建设如何实现品牌差异化与流量转化的双重突破
  • 大麦网抢票脚本逆向工程:从零构建自动化购票系统的完整指南
  • 合肥手机网站建设:如何让您的企业在移动端流量红利中精准获客并转化
  • 从零开始掌握网站建设学习资料:普通开发者的逆袭指南与实战心法
  • 深耕移动互联时代,深圳手机网站建设公司如何助力企业实现数字化转型与流量突破
  • 深入解析网站建设合同英文版:从避坑指南到核心条款的全方位实战指南
  • 东莞网站建设多少钱,资深老哥掏心窝子告诉你底价与避坑指南
  • 吉安市网站建设:从本地中小企业的数字化转型看网站优化的未来走向
  • 签证网站建设:中小企业如何用低成本打造高转化率的官方门户指南
  • 揭秘网站建设推广人员如何在互联网红海中杀出一条血路并实现价值最大化
  • 上海嘉定网站建设:从0到1的实战避坑指南,老板必看的企业数字化转型之路
  • 上海html5网站建设如何实现企业品牌价值的最大化提升