保护Websockets

时间:2011-08-06 22:17:03

标签: javascript security encryption websocket

现在我们的应用程序旨在促进初始加载后通过websockets进行的所有通信。

我们正试图找出一种通过此传输安全传递敏感数据的解决方案。

到目前为止,我们正在考虑以下几点:

  1. 通过传回一个唯一的身份验证websocket传输 存储在初始加载时通过SSL传递的会话cookie中的哈希值。
  2. 使用类似javascript bcrypt的客户端加密 实现在传输之前对所有内容进行加密。

  3. 通过SSL即可通过普通帖子传递所有敏感数据 虽然我们不想。

  4. 像1号这样的东西将是最好的结果,但是我们不知道即使在认证之后,webokets也容易受到中间人类攻击等事物的攻击。<​​/ p>

    任何有助于解决可能的安全问题的帮助,或任何其他关于如何通过websockets获得真正安全性的想法都将非常感激!

2 个答案:

答案 0 :(得分:38)

连接到wss:// WebSocket URL而不是ws://将使用浏览器的标准TLS / SSL加密连接到服务器。它相当于HTTPS与HTTP。如果您信任浏览器的SSL / TLS实现,那么您可以信任WebSocket wss://连接,因为它们使用相同的引擎。您需要使用websocket服务器配置已签名的SSL证书,但无论如何都非常需要。

答案 1 :(得分:1)

关于cookie,可能值得考虑的是,(目前),WebSockets协议规范不要求浏览器提供所有,甚至任何由Web服务器最初提供用于打开与该服务器的WebSockets连接的JavaScript。

有关Firefox行为的描述(来自FF开发人员),请参阅here