2017-10-10 112 views
0

在客户端生成随机数然后用共享密钥对其进行签名是否是安全问题?客户端生成的nonce安全性较低?

服务器A和B通信。 两者都知道共享密钥“$ ECRET”

服务器A生成一个UUID作为随机数,并使用该密钥将其与有效负载的其余部分一起标记。

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

有人告诉我,与由服务器B事先分别请求它提供的随机数相比,这将是不安全的。

但是我不明白这是多么安全,假设秘密是强大的。

回答

0

有一些称为客户端随机数的东西,也有一些称为服务器随机数的东西。取决于你想如何使用。 客户端随机数是关于保护客户端免受重放攻击的影响(“服务器”实际上是攻击者,他将向他希望攻击的每个客户端发送相同的挑战)。

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

请仔细阅读此Security.StackExchange Answer以深入了解nonce(客户端和服务器)的使用情况