2017-10-10 62 views
0

在客戶端生成隨機數然後用共享密鑰對其進行簽名是否是安全問題?客戶端生成的nonce安全性較低?

服務器A和B通信。 兩者都知道共享密鑰「$ ECRET」

服務器A生成一個UUID作爲隨機數,並使用該密鑰將其與有效負載的其餘部分一起標記。

然後它將請求發送給服務器B,服務器B使用共享密鑰確認請求的有效性。 B還在其數據庫中存儲隨機數,並將其與現有隨機數進行比較以防止重放攻擊。

有人告訴我,與由服務器B事先分別請求它提供的隨機數相比,這將是不安全的。

但是我不明白這是多麼安全,假設祕密是強大的。

回答

0

有一些稱爲客戶端隨機數的東西,也有一些稱爲服務器隨機數的東西。取決於你想如何使用。 客戶端隨機數是關於保護客戶端免受重放攻擊的影響(「服務器」實際上是攻擊者,他將向他希望攻擊的每個客戶端發送相同的挑戰)。

然而,不需要分別請求nonce,它可以是握手的一部分。

請仔細閱讀此Security.StackExchange Answer以深入瞭解nonce(客戶端和服務器)的使用情況