【问题标题】:WebRTC encryption mechanism of SRTPSRTP的WebRTC加密机制
【发布时间】:2020-03-08 18:01:15
【问题描述】:

WebRTC 使用 DTLS 对 SCTP(数据)进行加密。此外,它使用 DTLS 进行 SRTP(媒体)的密钥交换。但我不太明白,它是否也使用 DTLS 对 SRTP 进行加密。所以我的问题是:WebRTC 是仅将 DTLS 用于密钥交换 (DTLS-SRTP),还是在其内部加密机制的基础上额外加密 SRTP(至少是可选的)?

我为什么要问:
RFC 6904RFC 3711 声明 SRTP 提供 RTP 数据包标头的身份验证,但不提供加密。所以只有SRTP的payload被设计加密了。

让我感到困惑的是:
许多消息来源声称 WebRTC 是完全端到端加密的。

我对gstreamer中WebRTC的实现特别感兴趣。

【问题讨论】:

  • "所以只有 SRTP 的负载是设计加密的。"这就是端到端加密。 RTP 有效负载是包含媒体的内容,并且它们是加密的。

标签: webrtc gstreamer rtp


【解决方案1】:

DTLS 用于握手,但随后会提取密钥并初始化 SRTP 上下文。

我不熟悉 GStreamer,但在 Pion WebRTC 中,我们通过 DTLS here 连接。 WebRTC客户端通过SDP协商哪一方是DTLS Server,哪一方是DTLS Client。

DTLS 握手完成后,您可以导出密钥材料,您可以看到 here

如果您有兴趣了解 SRTP 的工作原理,可以查看pion/srtp。不过这很简单,它只是 AES,然后您生成一个身份验证标签。大家可以看到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多