2

根据 WebRTC 标准,所有连接都应通过 DTLS 加密。这很棒。但是,除非应用程序验证对等方的真实性,否则连接很容易受到中间人 (MITM) 攻击。

问题是如何在 Objective C 接口中使用 libWebRTC ( http://www.webrtc.org/native-code ) 来做到这一点。理想情况下,我希望能够为 WebRTC 连接指定我自己的证书。在这种情况下,我将能够通过我的特定于应用程序的安全通道对其进行验证。如果这是不可能的,那么建议的方法是什么?我将不胜感激任何提示。

4

1 回答 1

1

WebRTC 规范不包括信令层,即指纹、ICE 候选者等如何在对等点之间交换。这意味着在几乎所有 WebRTC 应用程序中,都有一个信令套接字来快速发送与服务的连接,该服务在两个对等方之间交换信息。

与其提供您自己的证书或指纹,不如对发送这些证书或指纹的信号进行身份验证。

您的信令服务器实际上中间人,尤其是在使用 MCU 或 SFU 的情况下。它应该验证交换信令信息的客户端的身份,并确保信令信息在相互同意的对等点之间交换(即通过地址相互呼叫,或加入一个公共“房间”)。

所以答案是:使用安全的 websockets,并对发送/接收 WebRTC 提议/答案信息的客户端进行身份验证。如果你这样做,除了任何其他 HTTPS+WSS 应用程序的风险之外,没有中间人攻击的风险。

于 2017-05-25T14:44:38.837 回答