双向认证协议并行会话攻击及改进方案
双向认证协议并行会话攻击及改进方案
协议概述: 考虑下面的双向认证协议,客户端Alice与服务端Bob共享秘钥为KAB,H为公开的安全Hash()函数。
- Alice (Client)->Bob (Server): Challenge1
- Bob (Server)-> Alice (Client) : Hash(KAB ⊕ Challenge1), Challenge2
- Alice (Client)->Bob (Server): Hash(KAB ⊕ Challenge2)
1. 并行会话攻击分析: 攻击者可以同时向Bob发送多个Challenge1,获取对应的Challenge2和Hash(KAB ⊕ Challenge1)。攻击者可以利用已知的Challenge2和Hash(KAB ⊕ Challenge1)来伪造Alice发送的消息,从而假冒Alice与Bob进行通信。
2. 改进协议: 为了避免上述并行会话攻击缺陷,可以改进协议如下:
- Alice (Client)->Bob (Server): Nonce1
- Bob (Server)-> Alice (Client) : Nonce1, Nonce2, Hash(KAB ⊕ Nonce1 ⊕ Nonce2)
- Alice (Client)->Bob (Server): Hash(KAB ⊕ Nonce1 ⊕ Nonce2 ⊕ 1)
其中,Nonce1和Nonce2是随机生成的数值,Hash函数为安全的哈希函数,1表示消息序号。改进后的协议中,Bob在第二步中向Alice发送了两个随机数Nonce1和Nonce2,并计算了Hash(KAB ⊕ Nonce1 ⊕ Nonce2)。Alice在第三步中发送了Hash(KAB ⊕ Nonce1 ⊕ Nonce2 ⊕ 1),其中Nonce1和Nonce2是在第二步中收到的随机数。
改进方案的安全性: 攻击者无法在并行会话中获取到Nonce1和Nonce2的值,从而无法伪造Alice的消息。改进后的协议通过引入随机数,提高了协议的安全性,有效地抵御了并行会话攻击。
原文地址: https://www.cveoy.top/t/topic/f0B0 著作权归作者所有。请勿转载和采集!