Skip to content

webrtc 安全机制

WebRTC使用了两个已经存在的协议 DTLS 和 SRTP

DTLS 类似 TLS,区别是DTLS是基于UDP的而不是基于TCP,因此DTLS协议需要自己处理可靠性问题
首先会用DTLS来握手,DTLS消息收发基于ICE建立的连接基础之上。
DTLS协议一端做为client,另一端做为server。

SRTP 协议的设计只是为了收发媒体数据。
SRTP session 开始时,会使用DTLS交换的密钥来进行初始化。

DTLS 握手状态机

image

DTLS握手主要的功能是Client和Server交换了一组可以用的key

DTLS握手完成后可以生成一组传输数据使用的加密key给SRTP协议使用
这个RFC中定义了生成算法: https://tools.ietf.org/html/rfc5705

Candidate如果发生变化,是否需要重新进行DTLS握手,并更新SRTP密钥呢

参考

https://webrtcforthecurious.com/docs/04-securing/
https://rtcweb-wg.github.io/security-arch/

Related Posts

  1. sigslots