挑战 - 响应协议如何帮助抵御中间人攻击?

时间:2011-01-21 07:06:07

标签: security authentication man-in-the-middle challenge-response

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

2 个答案:

答案 0 :(得分:9)

一般来说,质询 - 响应系统不一定能防止中间人攻击:如果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的帐户。

一个好的挑战/响应系统将为每个事务或会话产生新的挑战(并确保不会重复使用先前的挑战!),以便不能将会话记录拼接在一起以创建新的欺诈系统。

我希望这会有所帮助,但我担心如果没有更详细地了解你的怀疑来自哪里,那只会是噪音。

答案 1 :(得分:3)

User sarnold已提供a good answer,我想将注意力集中在以下内容上。

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

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