我们将 coturn 与 Matrix Synapse 和 Riot 客户端一起使用。我们是否需要在 coturn 配置中使用 cert 和 pkey 或者 WebRTC 已经完全完成了加密?
1 回答
从coturn Github 页面上的这个对话来看,只要你的信令层是安全的,就不需要强制 DTLS。媒体已经加密,加密密钥在信令层共享:
不,即使与 TURN 服务器的连接未加密,WebRTC 数据也不会受到损害。WebRTC 中的密钥交换是在不同的层(通常称为信令层)上完成的,它是需要加密和安全的信令层,以防止窥探或 MITM 攻击。TURN 服务器只是一个中继,它不了解或洞察 WebRTC 对等点之间来回发送的数据;它所看到的只是来自客户端 A 的需要发送到客户端 B 的数据包。如果有人能够嗅探 TURN 流量,那么 IP/会话数据可能会泄漏,但老实说,如果参与者能够这样做的话,他们无论如何都将能够看到所有流量的源 IP 和目标 IP,因此加密 TURN 流量不会给你任何东西。在我的经验中,由于特定客户端网络上的代理/防火墙规则,而不是因为 TURN 服务器存在 MITM 风险,因此需要到 TURN 服务器的加密连接。如果您的配置在没有 (D)TLS 到 TURN 服务器的情况下工作,那么没有理由强制执行它。TL;DR 使您的信令层加密且安全,除非您确实需要,否则不要在 TURN 服务器上使用 (D)TLS。
还参考了 WebRTC 规范 ( https://www.w3.org/TR/webrtc/#privacy-and-security-considerations )。