我对在Diffie-Hellman密钥交换期间发生的中间人攻击机制存在疑虑。我听说它可以发生在密钥协商通信期间。但是在CA(证书颁发机构)存在的情况下,接收者可以通过接收到的发送者的公钥对其进行身份验证。因此,中间人攻击如何可能发生呢?
我对在Diffie-Hellman密钥交换期间发生的中间人攻击机制存在疑虑。我听说它可以发生在密钥协商通信期间。但是在CA(证书颁发机构)存在的情况下,接收者可以通过接收到的发送者的公钥对其进行身份验证。因此,中间人攻击如何可能发生呢?
我认为你把基本的Diffie-Hellman协议(一种密钥交换协议)与“经过身份验证的版本”(使用证书颁发机构(CA))混淆了。
关于基本Diffie-Hellman易受中间人攻击的很好解释,请查看RSA实验室的内容。
“Diffie-Hellman密钥交换易遭受中间人攻击。在此攻击中,对手Carol截获了Alice的公共值,并发送自己的公共值给Bob。当Bob传输其公共值时,Carol将其替换为自己的并发送给Alice。因此,Carol和Alice就会同意一个共享密钥,而Carol和Bob则会同意另一个共享密钥。在这次交换之后,Carol只需解密Alice或Bob发送的任何消息,然后读取并可能修改它们,最后再使用适当的密钥重新加密并将其传输到另一方。Diffie-Hellman密钥交换没有对参与者进行身份验证,因此存在这种漏洞。可能的解决方案包括使用数字签名和其他协议变体。”
接下来是经过身份验证的版本,也称为站点对站点协议:
“粗略地说,基本想法如下。在执行协议之前,两个参与方Alice和Bob各自获取一个公共/私人密钥对和公共密钥的证书。在协议期间,Alice计算涵盖公共值ga mod p的某些消息的签名。Bob也以类似的方式进行。即使Carol仍然能够拦截Alice和Bob之间的消息,但是她无法在没有Alice的私钥和Bob的私钥的情况下伪造签名。因此,增强的协议可以防止中间人攻击。”
基本版易受中间人攻击,而使用公钥证书的认证版则不会。
这是Diffie-Hellman的工作原理:
而以下是Diffie-Hellman中间人攻击的工作原理:
在两个D-H密钥交换中,Alice和攻击者共享相同的k1密钥,而Bob和攻击者则共享另一个相同的k2密钥。
由于Alice和Bob之前没有任何了解,因此攻击者必须不断侦听和转发信息。