安全websocket与不安全websocket的成本

安全websocket与不安全websocket的成本,websocket,Websocket,我目前正在开发一款基于浏览器的多人游戏,它使用WebSocket。我最优先考虑的是低延迟以及与各种平台和网络设置的兼容性 但是我在做密码验证。我也有聊天功能,我认为我的球员的隐私是重要的。所以我想我可以通过切换到WebSocket而不是TLS来提高安全性和隐私性。我的问题是: web套接字连接的TLS加密将如何影响性能?请注意,我经常发送非常小但非常重要的消息 wss://会在ws://工作的任何环境中工作吗?还是我需要一个回退机制 或者,我的用例在应用程序级别实现加密可能更明智吗?几年前我做了

我目前正在开发一款基于浏览器的多人游戏,它使用WebSocket。我最优先考虑的是低延迟以及与各种平台和网络设置的兼容性

但是我在做密码验证。我也有聊天功能,我认为我的球员的隐私是重要的。所以我想我可以通过切换到WebSocket而不是TLS来提高安全性和隐私性。我的问题是:

  • web套接字连接的TLS加密将如何影响性能?请注意,我经常发送非常小但非常重要的消息
  • wss://会在ws://工作的任何环境中工作吗?还是我需要一个回退机制

  • 或者,我的用例在应用程序级别实现加密可能更明智吗?

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


    当SSL已经存在时,我当然不建议您实现自己的加密。您没有理由相信它会比SSL快,并且几乎肯定会引入SSL中不存在的安全缺陷。

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

    关于TLS带来的额外延迟,我认为与WAN连接带来的延迟(大约10-250ms RTT)相比,它是微不足道的

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

    TLS显然会消耗CPU周期,但考虑到当今的CPU能力,这通常不是问题

    实现自己的加密没有意义。。除非你关心端到端的隐私。。但是,无论如何,您将无法在服务器端执行任何操作(除了发送到其他客户端)

    简言之:使用WSS


    我写了一篇关于WebSocket开销的博文(包括与TLS和非TLS的比较):

    带宽或延迟慢3倍?带宽对我来说并不重要,但延迟对我来说很重要。最初的SSL握手是您测量的一部分吗?时间对我来说并不重要,因为它在登录时只执行一次。@Philipp吞吐量(字节/秒)。握手包括在内,并且在传输过程中以随机间隔重复。我的经验还表明,wss比ws慢3倍,这适用于ping和常规消息