WebRTC SDP 信息中 fingerprint 的作用

786 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情

在去年 SDP 解析学习笔记 有看到过 fingerprint 信息,当时就很就对 dtls 协商发生在什么阶段比较疑惑,fingerprint 的具体用途也不是很清楚,前两天面试被问到这个问题也是一脸懵逼,回来后查资料大致有了了解。

fingerprint 作用

fingerprint 是用来建立 DTLS 连接的自签名证书的 SHA-265 散列。

dtls 协商发生的阶段

看 WebRTC 权威指南上面说明,密匙协商发生在 ICE 打洞之后。

image.png

抓包验证

开始一个 WebRTC 的视频会议,抓包进行分析。

链接: pan.baidu.com/s/1LBLqTPay…

提取码: 4n6n

复制这段内容后打开百度网盘手机App,操作更方便哦

看 WireShark 抓包的结果,DTLS 的确是在 STUN 之后。

image.png

信令消息中,local 的 fingerprint 信息如下

a=fingerprint:sha-256 C9:BE:40:C7:BB:BA:F7:8D:81:81:60:82:E7:A9:D9:72:5E:D9:F4:E8:B1:C0:55:8E:D0:27:68:0B:D5:69:94:AC

remote 的 fingerprint 信息

a=fingerprint:sha-256 D4:1B:F4:6B:84:0A:60:C4:6D:66:4B:93:90:38:4C:61:9D:7D:0A:38:B3:68:A9:15:7A:93:9D:F4:6B:79:6D:53

参考 详解 WebRTC 传输安全机制:一文读懂 DTLS 协议 一文进行解析 DTSL 消息,没看懂这个 fingerprint 是如何使用的。