最近我一直在我的项目中实现WebRTC,并希望为这对夫妇增加安全性和隐私性。然后我决定搜索并找到一些东西
如果确实有必要强加安全性,则应该在应用程序级别进行。
我不记得我是否在 API 或安全站点中阅读过此内容..
好吧,我用AES和RSA加密流量(答案、提议、候选人..)。
我注意到我的系统的工作大大降低了效率,它减慢了连接的时间,这很明显,因为一次有很多进程。
考虑到所有这些,我的问题是:
我做得对吗?
真的有必要全部加密吗?,可能不仅仅是答案和提议?
还有什么我应该知道的吗?
最近我一直在我的项目中实现WebRTC,并希望为这对夫妇增加安全性和隐私性。然后我决定搜索并找到一些东西
如果确实有必要强加安全性,则应该在应用程序级别进行。
我不记得我是否在 API 或安全站点中阅读过此内容..
好吧,我用AES和RSA加密流量(答案、提议、候选人..)。
我注意到我的系统的工作大大降低了效率,它减慢了连接的时间,这很明显,因为一次有很多进程。
考虑到所有这些,我的问题是:
我做得对吗?
真的有必要全部加密吗?,可能不仅仅是答案和提议?
还有什么我应该知道的吗?
从技术上讲,加密总是会对性能产生影响,在今天的机器中它可以忽略不计。为了获得最佳结果,您可以执行以下操作:
不要重新发明轮子,但如果您有 Opera、Chrome 或 FF 等浏览器,则可以使用Datagram Transport Layer Security或ZRTP。
从本质上讲,WebRTC 创建了一个新的通信渠道,加密取决于您。您加密的内容(提供,回答,...)基本上基于信息的敏感程度,但是一旦设置了通道(即:共享 AES 密钥),您也可以加密所有内容;再次 - 您将对现代系统的性能影响最小。
webRTC 中的加密是强制性的,因此您不必自己实现它。请参阅WebRTC P2P SSL - 密钥在哪里生成?有关如何交换密钥的更多信息。
对等点将在信令过程中交换他们的公钥。然后他们将通过 P2P 通道加密他们的通信。这是强制性的,因此您别无选择。
留给您的是信令服务器。
因此,首先,如果信令服务器不是您的并且您不信任它,那么它可以在中间人进行通信,并且您根本没有安全保证。
然后,如果它是您信任的服务器(例如,您正在运行自己的信令服务器),您需要确保对等方和服务器之间的通信是安全的。没有关于如何执行信令的义务。它可以通过 HTTP 或 Websocket(WS) 完成,但无论您使用什么,都应该使用它们各自的加密版本 HTTPS 和 Secure Web Socket (WSS)。
总之,不要加密自己,WebRTC 默认加密,只需确保在对等方和信令服务器之间使用 SSL(并确保您信任信令服务器本身)。