2

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

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

我的第二个问题更具体到 COTURN。“turn_secret”表中的“值”字段是什么?它在哪里/何时使用?通过使用 HMAC over(凭据、领域和用户名),iceservers 的“凭据”属性是否对应于 turnusers_lt 表中的 hmackey?在这一切中,“turn_secret”表的“值”字段在哪里?

4

1 回答 1

2

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


来自 coturn文档

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

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

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

你可以看看这个答案TURN secret usage example。

于 2016-04-08T02:27:41.980 回答