首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >挑战响应认证-客户端生成挑战

挑战响应认证-客户端生成挑战
EN

Cryptography用户
提问于 2017-03-22 13:09:43
回答 2查看 1.9K关注 0票数 2

假设我们有一个client (不可信方)和server(希望验证客户端是否是他声称的那个人)。

client可以访问私钥和公钥,而server只知道公钥。

问题不是由服务器负责生成挑战,而是如果客户机自己生成一个随机的挑战并随后对其进行签名(以便服务器以后可以验证这一点),这是否是安全的。RSA中是否有一个弱点会使这种情况变得更糟?

注意,公钥/私钥对只使用一次,每次都会重新生成。

EN

回答 2

Cryptography用户

发布于 2017-03-22 13:48:47

攻击者可以使用重放攻击,即他/她可以重播由用户在过去签名的挑战(用作对服务器的挑战),并将其作为一个“现在”发送到服务器。为了避免这种情况,服务器生成并发送challenge.The思想,如果服务器维护了以前使用过的当前的列表,但是这在实际实现上有其局限性。

希望这能有所帮助。

票数 3
EN

Cryptography用户

发布于 2017-03-22 13:56:46

是的,这违背了最初产生挑战的目的。

使用挑战响应机制的主要原因是防止重播攻击和中间人攻击。如果以前不存在挑战,服务器只知道某些签名(或其他类型的挑战答案)是新的。如果客户端生成了挑战,那么服务器将无法控制该挑战,并且不知道它何时实际生成。特别是攻击者可以直接使用来自过去身份验证的消息来模拟客户端。

另一种身份验证方法是一次性密码。在那里,服务器可以提前设置一次性密码,然后不必每次客户想要进行身份验证时产生新的挑战--他只需确保每个密码只使用一次。但这确实需要在双方中存储一些数据。通常情况下,服务器会处理这些设置。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/44939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档