客户端生成的nonce安全性是否较低?

时间:2017-10-10 17:31:54

标签: api security nonce

在客户端上生成nonce然后使用共享密钥对其进行签名是否存在安全问题?

即。

服务器A和B进行通信。 两人都知道共同的秘密" $ ECRET"

服务器A生成一个UUID作为nonce,并使用该秘密将其与剩余的有效负载一起签名。

然后它将请求发送到服务器B,服务器B使用共享密钥确认请求的有效性。 B还将nonce存储在其数据库中,并将其与现有的nonce进行比较,以防止重放攻击。

有人告诉我,与服务器B预先通过单独请求提供的nonce相比,这将是不安全的。

然而,我不知道假设这个秘密是强大的,这会更加安全。

1 个答案:

答案 0 :(得分:0)

有一种叫做Client nonce的东西,还有一种称为Server Nonce的东西。取决于您想要如何使用。 客户端随机数是关于保护客户端免受重放攻击("服务器"实际上是攻击者,他将向他希望攻击的每个客户端发送相同的质询)。

然而,无需单独请求nonce,它可以是握手的一部分。

请阅读此Security.StackExchange Answer以获取有关nonce(客户端和服务器)使用情况的深入说明