使用 webrtc 时可以关闭 SRTP
Posted
技术标签:
【中文标题】使用 webrtc 时可以关闭 SRTP【英文标题】:Can I turn off SRTP when use webrtc 【发布时间】:2014-06-30 17:19:16 【问题描述】:现在我测试 webrtc 与 SIP Client(sx20) 的通信
我使用 webrtc sdp 发送邀请消息。但是 sip 客户端的回答没有指纹,并且
sip 客户端的回答不是 SRTP,只是 RTP。
所以我需要在 WEBRTC 中关闭 SRTP。可以吗?
还有一个问题......我认为,指纹是加密密钥, 那么,发送者和接收者需要每个密钥吗?我们需要两把钥匙?发送者的密钥,接收者的密钥? 或者我们只需要发送者的密钥?
【问题讨论】:
【参考方案1】:您无法关闭 SRTP。它是标准的一部分,可能永远不会被删除。
密钥在DTLS key exchange 中交换,并且会在一段时间内保持这种状态,因为 Mozilla 和 Chrome 一致认为这是交换媒体的最佳和最安全的方式。
该指纹不是密钥本身,密钥是通过 DTLS 交换的,如果您在其中一台机器上使用 wireshark 监听,您实际上可以看到 DTLS 交换,这样您就可以看到交换发生了什么。
您需要实现一个断路器来与 webrtc 客户端和 SIP 客户端交互。 SIPML5 already has a breaker in play.
【讨论】:
有一些流量,比如游戏位置更新,会受到加密开销的影响。他们不需要加密。每个数据通道都应该能够打开或关闭加密。【参考方案2】:出于测试目的,Chrome Canary 和 Chrome Developer 都有一个允许您关闭 SRTP 的标志,例如:
cd /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/
./Google\ Chrome\ Canary --disable-webrtc-encryption
那么带有 RTP 设置的 SDP 看起来更像:
m=audio 17032 RTP/AVPF 111 126
代替:
m=audio 17254 UDP/TLS/RTP/SAVPF 111 126
【讨论】:
有什么想法可以在 Firefox 中禁用相同功能吗?以上是关于使用 webrtc 时可以关闭 SRTP的主要内容,如果未能解决你的问题,请参考以下文章