美文网首页
SRTP是如何工作的

SRTP是如何工作的

作者: 安安爸Chris | 来源:发表于2021-04-21 18:16 被阅读0次

    什么是SRTP

    SRTP wiki

    参考RFC 3711 - The Secure Real-time Transport Protocol
    参考RFC 7201 - Options for Securing RTP Sessions

    RTP是实时传输协议,用于媒体通信;SRTP就是加密的实时传输协议。

    工作原理很简单,即在RTP开始前,双方先协商约定好加密的cipher suite和key,然后把媒体加密后传输。


    加密方式

    默认的加密方式使用的是AES, 定义了两种mode

    • (1) AES in Counter Mode
    • (2) AES in f8-mode


      RFC 3711

    这两种mode是什么区别请参考RFC 3711

    支持的Cipher Suite

    每一种SRTP设备可能支持的Cipher Suite可能各不相同,需要查看响应的文档。

    比如我们常见的Freeswitch支持的SRTP Cipher Suite如下,

    AEAD_AES_256_GCM_8
    AEAD_AES_128_GCM_8
    AES_CM_256_HMAC_SHA1_80
    AES_CM_192_HMAC_SHA1_80
    AES_CM_128_HMAC_SHA1_80
    AES_CM_256_HMAC_SHA1_32
    AES_CM_192_HMAC_SHA1_32
    AES_CM_128_HMAC_SHA1_32
    AES_CM_128_NULL_AUTH
    

    具体可以参考这里

    KEY的管理

    在开始加密传输前,双方应该以什么样的方式来协商加密方式呢?

    RFC 7201给了几种可供参考的选择

    1. Session Description Protocol (SDP) security descriptions

    Refer RFC 4566 - SDP: Session Description Protocol

    1. Datagram Transport Layer Security Extension for SRTP (DTLS-SRTP)

    Refer RFC 5763 - Framework for Establishing a Secure Real-time Transport Protocol (SRTP)
    Security Context Using Datagram Transport Layer Security (DTLS)

    1. The Multimedia Internet Keying (MIKEY) protocol

    Refer RFC 3830 - MIKEY: Multimedia Internet KEYing

    SRTP with SDP

    比较常用的方式是SRTP with SDP,

    SDP的offer/answer协商模式这里不在讨论,不清楚的可以参考RFC文档。下面举一个最简单的例子

    OFFER/ANSWER
    1. client 发起INVITE携带SDP, SDP中包含client支持的cipher suites和对应的key


      offer
    2. server answer的时候带的SDP,这里就是协商过的加密信息 answer

    注意事项

    VOIP部署的情况下,一般采用的是SRTP WITH SDP.但是这里的key都是明文传输,所以光有SRTP还是等于裸奔,一般SRTP会配套TLS使用

    相关文章

      网友评论

          本文标题:SRTP是如何工作的

          本文链接:https://www.haomeiwen.com/subject/bxbzlltx.html