安全websocket与不安全websocket的成本

时间:2012-09-11 07:22:40

标签: websocket

我目前正在开发一款使用WebSockets的基于浏览器的多人游戏。我的最高优先级是低延迟,兼容各种平台和网络设置。

但我正在进行密码验证。我也有聊天功能,我认为我的玩家的隐私很重要。所以我认为我可以通过TLS切换到websockets来提高安全性和隐私性。我的问题是:

  1. Web套接字连接的TLS加密将如何影响性能?请注意,我经常发送非常小但非常重要的消息。
  2. 将wss://在ws://工作的任何环境中工作,还是需要回退机制?
  3. 或者我的用例在应用程序级别实现加密可能更明智吗?

2 个答案:

答案 0 :(得分:13)

由于代理和其他中介不了解或主动阻止WebSocket,WSS将在比WS更广泛的网络环境中工作。

关于TLS引入的额外延迟,我认为与无论如何从WAN连接获得的延迟(大约10-250ms RTT)相比,它是微不足道的。

关于带宽,由于TLS使用对称密码进行有效负载加密,我预计不会有开销。

TLS显然会消耗CPU周期,但考虑到今天的CPU功率,通常不会出现问题。

实现自己的加密没有意义..除非你关心端到端的隐私..但是你无论如何都无法在服务器端做任何事情(除了调度到其他客户端)。 / p>

简而言之:选择WSS。

我写了一篇关于WebSocket开销的博文(包括与TLS和非TLS的比较):http://tavendo.com/blog/post/dissecting-websocket-overhead/

答案 1 :(得分:1)

几年前我做了一项性能研究,结果表明,互联网上的SSL只比明文慢3倍。由于硬件速度的提高,我预计此后差距会缩小。

我肯定建议您在SSL已存在时实施自己的加密。您没有理由相信它会比SSL更快,您几乎肯定会引入SSL中不存在的安全漏洞。