挑战反应身份验证如何防止中间人的攻击?我读了Wiki文章,但我仍然无法理解。

有帮助吗?

解决方案

一般而言,挑战反应系统并不一定会阻止中间人的攻击:如果爱丽丝试图告诉鲍勃她的银行帐号,那么该协议确实实施了一些挑战和响应,不会提供诚信或隐私:

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)回答“是”,可以伪造第三个“结果”消息,或者可以聆听第三条消息。

即使挑战得到了改善,例如:“请hash 0x31415926已备份到我们的共享密码”,在清晰(或弱/差密码下或较差的密钥选择下)传输的数据可能会损失隐私和数据,并且数据可能会导致数据。没有任何消息身份验证检查的传输可能会受到第三方的修改。

挑战/响应协议真正发光的地方在于防止 重播 攻击:如果Alice只是按照“请借记我的帐户$ 5并借口您的帐户$ 5”的路线发送消息,Mallory可以记录消息,并且 重播 耗尽爱丽丝帐户的消息。

一个良好的挑战/响应系统将为每个交易或会话产生一个新的挑战(并确保没有重复使用以前的挑战!),以便无法将会话成绩单拼接在一起以创建新的欺诈性系统。

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

其他提示

用户sarnold 已经提供了 一个很好的答案, ,我想将注意力集中在以下内容上。

挑战反应解决了两个问题 - 使不必要的秘密发送秘密(发送类似哈希的产品)并防止重播攻击(因为每次挑战都会发生变化)。除此之外,它没有做任何事情 - 它不会单独向任何人进行身份验证,这只是对客户发送其用户名和密码(秘密)的明文协议的改进,服务器决定这些是否正确。

因此,如果中间有一些一方,它将无助于检测或阻止它作为该特定会议的客户冒充客户,但是该方将无法访问该秘密,因为该秘密从未以纯文本发送,并且聚会将无法通过进行重播来再次模仿 - 它只能在那段会议期间冒充起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top