关于WebRTC中TURN服务器的问题

时间:2016-04-07 12:20:31

标签: webrtc turn coturn

我已经通过RFC 5766详细解释了TURN协议。但是,在下载和安装COTURN开源TURN服务器后,我有一些基本问题无法解决。

TURN服务器的客户端是什么?它是第一个启动WebRTC呼叫的浏览器吗? TURN服务器为客户端创建分配,针对特定对等体。现在在WebRTC中,我们谈论点对点通信。在RFC中,它讨论了客户端 - 服务器 - 对等通信。客户端和服务器之间的所有请求/响应都是TURN驱动的,而对等服务器和TURN服务器之间的请求/响应只是通过客户端中继的UDP数据消息。

我的第二个问题更具体针对COTURN。什么是"价值" " turn_secret"表和何时/何时使用?是"凭证" iceservers的属性通过使用HMAC over(凭证,域和用户名)对应于turnusers_lt表中的hmackey? "值"领域" turn_secret"所有这一切的表格?

1 个答案:

答案 0 :(得分:2)

tl; dr:TURN secret用于限制TURN凭证的泄漏,它是使用REST api进行TURN身份验证的一部分(doc

来自coturn docs

  

在WebRTC中,浏览器从Web服务器获取TURN连接信息。此信息是安全信息 - 因为它包含必要的TURN凭据。由于这些凭证是通过公共网络传输的,因此我们存在潜在的安全问题。

     

如果我们必须通过公共网络传输有价值的信息,那么这些信息必须具有有限的生命周期。然后,未经许可获得此信息的人将只能执行有限的伤害。

     

这就是出现限时TURN凭证的想法。此安全机制基于长期凭证机制。主要思想是Web服务器向客户端提供凭据,但这些凭据只能由必须创建TURN服务器连接的应用程序使用。

您可以查看此answer TURN秘密使用示例。