需要 WebRTC 的 coturn 证书和 pkey 吗?

Posted

技术标签:

【中文标题】需要 WebRTC 的 coturn 证书和 pkey 吗?【英文标题】:coturn cert and pkey for WebRTC required? 【发布时间】:2020-02-01 15:45:19 【问题描述】:

我们将 coturn 与 Matrix Synapse 和 Riot 客户端一起使用。我们是否需要在 coturn 配置中使用 cert 和 pkey 或者 WebRTC 已经完全完成了加密?

【问题讨论】:

您有任何现有的配置/信息可以提供吗?你已经尝试过什么? 一切都很好。我们只是不知道我们的配置是否正确加密了 VoIP。这些行在turnserver.conf中被注释掉了: #Cert = /usr/local/etc/turn_server_cert.pem #Pkey = /usr/local/etc/turn_server_pkey.pem 在这种情况下我们必须注册证书吗?看来通过 TURN 的 WebRTC 通信使用 DTLS,而在 turnserver.conf 中没有证书。 【参考方案1】:

来自 coturn Github 页面上的 this 对话,只要您的信号层是安全的,就不需要强制 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) 的参考。

【讨论】:

以上是关于需要 WebRTC 的 coturn 证书和 pkey 吗?的主要内容,如果未能解决你的问题,请参考以下文章

[webrtc 入门系列] centos搭建coturn服务器

MQTT作为WebRTC信令

ubuntu16.04下安装配置coturn

使用WebRTC搭建turn服务编译报错openssl路径找不到问题排查

如何在未经用户同意的情况下在ICS上安装(x509 / pk12)证书?

华为云CentOS7 部署STUN/TURN服务 Coturn