📜  WebSockets-安全

📅  最后修改于: 2020-10-17 05:57:46             🧑  作者: Mango


出于安全原因,应设计协议。 WebSocket是一种全新的协议,并非所有的Web浏览器都能正确实现。例如,尽管规范暗示了相反的情况,但是其中一些仍然允许HTTP和WS的混合。在本章中,我们将讨论用户应注意的一些常见安全攻击。

拒绝服务

拒绝服务(DoS)攻击试图使计算机或网络资源对于请求它的用户不可用。假设某人以无间隔或极短的间隔向Web服务器发出无数个请求。服务器无法处理每个连接,并且将停止响应或保持响应速度太慢。这可以称为拒绝服务攻击。

最终用户甚至无法加载网页,因此拒绝服务非常令人沮丧。

DoS攻击甚至可以应用于对等通信,从而迫使P2P网络的客户端同时连接到受害Web服务器。

中间人

让我们借助示例了解这一点。

假设某人A通过IM客户端与他的朋友B聊天。某些第三方想要查看您交换的消息。因此,他与两个人建立了独立的联系。他还将消息发送给人A和他的朋友B ,作为您通信中的隐形中间物。这就是所谓的中间人攻击。

对于未加密的连接,中间人攻击更容易,因为入侵者可以直接读取软件包。加密连接后,攻击者必须解密信息,这可能太困难了。

从技术角度来看,攻击者拦截公共密钥消息交换并发送消息,同时用自己的密钥替换请求的密钥。显然,使攻击者的工作变得困难的可靠策略是将SSH与WebSockets结合使用。

通常,在交换关键数据时,首选WSS安全连接,而不是未加密的WS。

XSS

跨站点脚本(XSS)是使攻击者能够将客户端脚本注入到网页或应用程序中的漏洞。攻击者可以使用您的应用程序中心发送HTML或Javascript代码,并让此代码在客户端计算机上执行。

WebSocket本机防御机制

默认情况下,WebSocket协议被设计为安全的。在现实世界中,用户可能会遇到由于不良浏览器实现而可能发生的各种问题。随着时间的流逝,浏览器供应商会立即解决所有问题。

当使用通过SSH(或TLS)的安全WebSocket连接时,将增加一层额外的安全性。

在WebSocket领域,主要关注的是安全连接的性能。尽管顶部仍然有一个额外的TLS层,但协议本身包含针对此类使用的优化,此外,WSS可以通过代理更流畅地工作。

客户端到服务器屏蔽

在WebSocket服务器和WebSocket客户端之间传输的每条消息都包含一个特定的密钥,称为“屏蔽密钥”,该密钥允许任何与WebSocket兼容的中介程序取消屏蔽和检查该消息。如果中介不符合WebSocket,则该消息不会受到影响。实现WebSocket协议的浏览器处理屏蔽。

安全工具箱

最后,可以提供有用的工具来调查WebSocket客户端和服务器之间的信息流,分析交换的数据并确定可能的风险。

浏览器开发人员工具

就开发人员支持而言,Chrome,Firefox和Opera是出色的浏览器。他们内置的工具可帮助我们确定客户端交互和资源的几乎所有方面。它在安全方面起着重要作用。