1. DTLS-SRTP 双层加密,DTLS handshake 派生 SRTP key 的工程价值何在?
请说明 WebRTC 中 DTLS-SRTP 双层加密机制,即 DTLS handshake 如何派生 SRTP key,其工程价值是什么?
- DTLS 握手与 SRTP 密钥派生
- SRTP 的实时媒体加密
- DTLS 负责协商密钥、SRTP 负责高效加密媒体的职责分工
WebRTC 的媒体面(RTP)使用 SRTP 加密,而 SRTP 的密钥由 DTLS 握手派生。具体流程:双方通过 DTLS(DTLS-SRTP 扩展)完成握手,在 DTLS handshake 中协商出主密钥,再按 RFC 5764 的 keying material 派生规则生成 SRTP 的加密密钥与认证密钥。DTLS 握手本身提供证书验证与密钥交换,保证密钥协商的安全与防篡改;SRTP 则负责对实时媒体流做低开销的对称加密与认证。工程价值在于"双层加密"各司其职:DTLS 不直接加密媒体(DTLS 是可靠字节流,不适合实时媒体),而只负责安全地派生/交换媒体密钥;SRTP 高效地保护 RTP 包的机密性与完整性。两者结合,既保证密钥分发安全,又满足实时音视频的低延迟加密需求。
关键在职责分工:DTLS 负责"安全地协商密钥",SRTP 负责"高效地加密媒体"。DTLS 不是直接加密媒体面,而是为 SRTP 提供密钥,避免手工密钥分发的不安全。