根据WebRTC标准,所有连接都应通过DTLS加密。这很棒。但是,除非应用程序验证对等方的真实性,否则连接容易受到中间人(MITM)攻击的影响。
问题是如何使用libWebRTC(http://www.webrtc.org/native-code)专门在Objective C接口中执行此操作。理想情况下,我希望能够为WebRTC连接指定自己的证书。在这种情况下,我将能够通过我的应用程序特定的安全通道进行验证。如果这是不可能的,那么建议的方法是什么?我会很感激任何提示。
答案 0 :(得分:1)
WebRTC规范不包括信令层,即指纹如何在对等体之间交换指纹,ICE候选等。这意味着在几乎所有的WebRTC应用程序中,都有一个信令插槽,用于快速通知在两个对等体之间交换信息的服务的连接。
您不想提供自己的证书或指纹,而是要对发送这些证书或指纹的信令进行身份验证。
您的信令服务器 是中间人,尤其是在使用MCU或SFU的情况下。它应该验证客户端的身份,交换信令信息,并确保信令信息在相互同意的对等体之间交换(即,通过地址相互呼叫,或加入公共"房间")。
所以答案是:使用安全的websockets,并验证发送/接收WebRTC提供/回答信息的客户端。如果您这样做,那么就不存在中间人攻击的风险,超出任何其他HTTPS + WSS应用程序的风险。