7

质询-响应身份验证如何防止中间人攻击?我阅读了 wiki 文章,但仍然无法理解。

4

2 回答 2

10

一般来说,质询-响应系统不一定能防止中间人攻击:如果 Alice 试图告诉 Bob 她的银行帐号,那么这个确实实现了一些质询和响应的协议将无法提供完整性或隐私:

Alice: Bob, is that you?  // first challenge
Bob: Yes, Alice, it is me, is that you? // first response, second challenge
Alice: Yes! Great. My account number is 314159. // second response, and result

Mallory 可以代替 Alice 或 Bob 回答“是”,可以伪造第三条“结果”消息,或者可以监听第三条消息。

即使挑战得到改善,例如:“请在我们的共享密码前加上 0x31415926 哈希”,以明文方式传输的数据(或在弱/不良密码或密钥选择不佳的情况下)将遭受隐私损失,并且数据未经任何消息身份验证检查的传输可能会受到第三方的修改。

挑战/响应协议真正的亮点在于防止重放攻击:如果 Alice 只是向 Bob 发送一条消息,如“请借记我的帐户 5 美元并贷记你的帐户 5 美元”,Mallory 可以记录该消息并重播该消息以耗尽 Alice 的帐户.

一个好的挑战/响应系统将为每个交易或会话生成一个新的挑战(并确保以前的挑战不会被重用!),因此会话记录不能拼接在一起以创建新的欺诈系统。

我希望这会有所帮助,但恐怕如果没有更详细地了解您的疑虑来自何处,那只会是噪音。

于 2011-01-21T07:40:12.927 回答
3

网友 sarnold已经给出了很好的答案,我想拖着关注以下。

挑战-响应解决了两个问题 - 无需以明文形式发送秘密(发送类似哈希的产品)并防止重放攻击(因为挑战每次都在变化)。除此之外,它不会做任何事情 - 它不会单独向任何人验证任何人,它只是对明文协议的改进,客户端发送他的用户名和密码(秘密),服务器决定这些是否正确.

因此,如果中间有一方,它将无助于检测它或阻止它冒充该特定会话的客户端,但该方将无法访问该秘密,因为该秘密永远不会以明文形式发送,并且派对将无法通过重播再次模拟 - 它只能在该会话期间模拟。

于 2011-01-21T08:10:02.383 回答