WebSockets 安全性



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

拒绝服务攻击

拒绝服务 (DoS) 攻击试图使机器或网络资源无法为请求它的用户提供服务。假设有人以极短的时间间隔向 Web 服务器发出无限数量的请求。服务器无法处理每个连接,要么停止响应,要么响应速度过慢。这可以称为拒绝服务攻击。

拒绝服务攻击对最终用户非常令人沮丧,他们甚至无法加载网页。

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

中间人攻击

让我们通过一个例子来理解这一点。

假设一个人 A 通过即时通讯客户端与他的朋友 B 聊天。一些第三方想要查看你们交换的消息。因此,他分别与两人建立连接。他还向 A 和他的朋友 B 发送消息,作为你们通信中隐形的中间人。这被称为中间人攻击。

对于未加密的连接,中间人攻击更容易进行,因为入侵者可以直接读取数据包。当连接加密时,攻击者必须解密信息,这可能非常困难。

从技术角度来看,攻击者拦截公钥消息交换并发送消息,同时用自己的密钥替换请求的密钥。显然,使攻击者难以进行攻击的有效策略是将 SSH 与 WebSockets 一起使用。

在交换关键数据时,最好使用安全的 WSS 连接而不是未加密的 WS 连接。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

跨站脚本攻击 (XSS)

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

WebSocket 本地防御机制

默认情况下,WebSocket 协议的设计是安全的。在现实世界中,用户可能会遇到由于浏览器实现不当而导致的各种问题。随着时间的推移,浏览器厂商会立即修复任何问题。

当使用通过 SSH(或 TLS)的安全的 WebSocket 连接时,会添加额外的安全层。

在 WebSocket 世界中,主要关注的是安全连接的性能。尽管顶部仍然存在额外的 TLS 层,但协议本身包含对此类使用的优化,此外,WSS 通过代理的工作更加流畅。

客户端到服务器的掩码

在 WebSocket 服务器和 WebSocket 客户端之间传输的每条消息都包含一个名为掩码密钥的特定密钥,该密钥允许任何符合 WebSocket 标准的中间体取消掩码并检查消息。如果中间体不符合 WebSocket 标准,则消息不会受到影响。实现 WebSocket 协议的浏览器处理掩码。

安全工具箱

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

浏览器开发者工具

就开发者支持而言,Chrome、Firefox 和 Opera 都是优秀的浏览器。它们的内置工具可以帮助我们确定客户端交互和资源的几乎任何方面。这对安全目的起着重要作用。

广告