功能简介
安全实时传输协议 (SRTP) 在 VoIP 电话通话期间加密音频流,以避免拦截和窃听。参与通话的各方必须同时启用 SRTP 功能。当双方话机都启用此功能时,话机会协商会话中使用的加密类型。此协商过程符合 RFC 4568。
当你在启用了 SRTP 的话机上拨打电话时,话机会将 RTP/RTCP 加密算法的 INVITE 消息发送到目标话机。正如 RFC 3711 中所述,RTP/RTCP 流可以使用 AES(高级加密标准)算法进行加密。
以下是 INVITE 消息的 SDP 中携带的 RTP 加密算法示例:
m=audio 11780 RTP/SAVP 0 8 18 9 101
a=crypto:1 AES_CM_128_HMAC_SHA1_80 > inline:NzFlNTUwZDk2OGVlOTc3YzNkYTkwZWVkMTM1YWFj
a=crypto:2 AES_CM_128_HMAC_SHA1_32 > inline:NzkyM2FjNzQ2ZDgxYjg0MzQwMGVmMGUxMzdmNWFm
a=crypto:3 F8_128_HMAC_SHA1_80 inline:NDliMWIzZGE1ZTAwZjA5ZGFhNjQ5YmEANTMzYzA0
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:9 G722/8000
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=ptime:20
a=sendrecv
被叫方收到携带 RTP 加密算法的 INVITE 消息,然后通过响应 200 OK 消息并携带协商后的 RTP 加密算法来应答通话。
以下是 200 OK 消息的 SDP 中携带的 RTP 加密算法示例:
m=audio 11780 RTP/SAVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:NGY4OGViMDYzZjQzYTNiOTNkOWRiYzRlMjM0Yzcz
a=sendrecv
a=ptime:20
a=fmtp:101 0-15
当双方话机都启用 SRTP 时,RTP 流将被加密,并且在成功协商后,每部话机的 LCD 屏幕上会出现一个锁定图标。
如果你启用 SRTP,那么你也应该启用 TLS。这确保了 SRTP 加密的安全性。有关 TLS 的更多信息,请参阅 传输层安全 (TLS)。你可以通过“account.X.srtp.unencrypted_rtp.enable”/“account.X.srtp.unencrypted_rtcp.enable”将话机配置为在 SDP offers 中包括未加密的 RTP /RTCP 流。
网页配置
在网页用户界面,选择:账号 > 高级设置 > RTP 加密模式。
image.png
参数配置
account.X.srtp_encryption
account.X.srtp.cipher_list
参数 允许值 默认值 描述
account.X.srtp_encryption[1] 0-禁用1-可选,话机会与另一部话机协商会话中使用的加密类型。2-强制,话机在通话期间必须使用 SRTP。 0 配置是否使用音频加密服务。
account.X.srtp.cipher_list[1] 512个字符 空 用于配置 SRTP 算法列表。如果同时配置多个值,则需要用逗号分隔。 示例 SM4_CM_128_HMAC_SM3_80,SM4_CM_128_HMAC_SM3_32,AES_256_CM_HMAC_SHA1_80,AES_256_CM_HMAC_SHA1_32,AES_CM_128_HMAC_SHA1_80,AES_CM_128_HMAC_SHA1_32
[1]X表示账户ID。