Websocket安全性

應該出於安全原因設計協議。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在開發人員支持方面都是出色的流覽器。他們的內置工具可幫助我們確定客戶端交互和資源的所有方面。它在安全方面起著重要作用。


上一篇: Websocket與伺服器通信 下一篇: Websocket移動APP