典型場景:初次握手後,我可以安全地依靠WebSocket連接嗎?
1)客戶端通過使用HTTPS的POST請求將其憑據發送到服務器。
2)服務器驗證憑證是否正確並驗證用戶。因此它返回一個JWT(JSON Web Token)給客戶端。
3)客戶端打開非安全 WebSocket連接(ws://)。因此,客戶端和服務器現在有一個輕鬆交換數據的渠道(確切的原因在這裏並不重要)。
4)用戶通過WebSocket和JWT向服務器發送任何類型的請求,以便服務器可以驗證這些請求是否合法。
5)服務器在成功驗證每個請求的JWT後,使用WebSocket通道返回用戶詢問的數據。
由於我們使用HTTPS,我們假設智威湯遜發佈時並未被盜(HTTPS可能被擊敗,但讓我們假設它對我們的目的是理智的)。
事實上,我們使用非安全的WebSocket意味着有人可以嗅探WebSocket頻道的流量並以心跳竊取智威湯遜。因此,我們使用WebSocket Secure(wss://)來代替並應用相同的以前的方案。
既然我們正在使用WebSocket Secure,那麼當我們使用WSS通道時,我們是否需要在每次向服務器發送請求時都發送JWT?或者是WebSocket安全通道足夠安全,所以服務器和客戶端都100%確定(只要TLS未被擊敗)該通道是合法的?
換句話說:一旦WSS頻道安全建立,我們可以信任它嗎? (直到連接明顯關閉)
我不太瞭解WSS連接是如何建立的以及它在建立後如何工作。我的理解是:關鍵部分是握手,一旦握手完成,您就可以安全地依賴WSS通道(因爲它阻止了使用TLS進行的MITM攻擊,WS不這麼做)。
我讀了很多這些最後的日子關於這一切,但一些概念仍不清楚。任何幫助將不勝感激!