2013-11-22 27 views
2

看起來好像SignalR使用的GUID爲客戶SignalR連接ID的加密安全性是多少?

連接ID雖然行爲可以被修改,該框架將使用默認GUID:

[ref, page 30]

我們被告知,如果一個人可以猜出另一個客戶的連接ID,那麼他們可以冒充他們。

你永遠不應該通過一個客戶端的連接ID給其他客戶,如 惡意用戶可以用它來模擬來自客戶端的請求。

[ref]

這些是連接ID的GUID加密安全/隨機的?如果不是,它看起來像是一個(非常明顯的)安全漏洞。

回答

0

我認爲客戶端必須始終將其標識符發送到服務器。使這個更安全的一個好方法是使用WSS而不是WS來使用websocket和Https而不使用http來進行回退。

它有道理嗎?

+0

Thankyou imperugo,但我擔心攻擊者猜測連接ID,而不是他們嗅探它。如果他們能夠嗅探到它,那麼它是否以不可想象的方式產生就沒有關係。 –

0

根據signalr documentation,連接ID作爲加密連接令牌的一部分發送。他們使用DPAPI數據保護進行加密。因此,連接ID不需要安全地生成並且aren't。 有關安全性的信號員文檔(與上面相同)聲明不應該共享的事實也令我感到困惑。

由於連接標識是驗證過程的一部分,因此您不應該向其他用戶透露一個用戶的連接標識或將值存儲在客戶端(例如cookie中)。

不知道該怎麼做。基於代碼,共享連接ID應該是安全的,因爲令牌被加密。您可以在生成id的同一個類中看到加密/解密/檢查(第二個鏈接)。