双向认证协议中的并行会话攻击及改进
双向认证协议中的并行会话攻击及改进
本文分析了一种常见的双向认证协议如何受到并行会话攻击,并提供了一种改进方案以增强安全性。
问题描述
考虑下面的双向认证协议,客户端 Alice 与服务端Bob 共享秘钥为KAB,H为公开的安全 Hash 函数。
- Alice (Client)->Bob (Server):Challenge12. Bob (Server)-> Alice (Client) :H (KAB,Challenge1), Challenge23. Alice (Client)->Bob (Server): H (KAB,Challenge2)
攻击分析:
- 攻击者可以通过并行会话攻击假冒Alice,具体步骤如下: - 攻击者与Bob建立连接,发送Challenge1。 - Bob回复H(KAB, Challenge1),Challenge2。 - 攻击者将Challenge2发送给Alice。 - Alice回复H(KAB, Challenge2)。 - 攻击者拿到了Alice的响应,可以用它来伪造Alice与Bob的通信。
改进方案
-
改进协议的方法是使用随机数生成器(RNG)来生成Challenge,而不是客户端和服务器之间共享的密钥。具体协议如下:
- Alice(Client) -> Bob(Server): Challenge1 2. Bob(Server) -> Alice(Client): H(KAB, Challenge1), Challenge2 3. Alice(Client) -> Bob(Server): H(KAB, Challenge2, RNG1), Challenge3 4. Bob(Server) -> Alice(Client): H(KAB, Challenge3, RNG2)
其中,RNG1和RNG2是随机生成的数字,每次会话都不同。这样,攻击者即使知道Challenge1和Challenge2,也无法伪造Challenge3,因为它需要RNG1的输入。
总结
通过引入随机数,可以有效地防御并行会话攻击,提高双向认证协议的安全性。
原文地址: https://www.cveoy.top/t/topic/f0Bm 著作权归作者所有。请勿转载和采集!