中间人攻击在Diffie-Hellman中是如何工作的?

39

我对在Diffie-Hellman密钥交换期间发生的中间人攻击机制存在疑虑。我听说它可以发生在密钥协商通信期间。但是在CA(证书颁发机构)存在的情况下,接收者可以通过接收到的发送者的公钥对其进行身份验证。因此,中间人攻击如何可能发生呢?

2个回答

99

我认为你把基本的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的私钥的情况下伪造签名。因此,增强的协议可以防止中间人攻击。”

基本版易受中间人攻击,而使用公钥证书的认证版则不会。


3
是的,如果有人在收听媒介,他们将无法截取信息,但是如果有人桥接媒介,则可以截取。然而,经过身份验证的版本根本没有意义。如果您已经持有另一方的证书和公钥,那么使用DH有什么意义呢? - Rafael
我不认为我理解你的观点... 为什么要区分监听和桥接?它们都只是拦截的形式,正如答案在经过身份验证的版本中所说,拦截消息是可以的,因为拦截器无法伪造消息。在协议开始时,在经过身份验证的版本中,各方没有对方的公钥证书。 - Peanut

37

这是Diffie-Hellman的工作原理:

Diffie-Hellman

而以下是Diffie-Hellman中间人攻击的工作原理:

mitm

在两个D-H密钥交换中,Alice和攻击者共享相同的k1密钥,而Bob和攻击者则共享另一个相同的k2密钥。

由于Alice和Bob之前没有任何了解,因此攻击者必须不断侦听和转发信息。


你能否编辑你的回答并重新发布图片吗?也许可以使用imgur.com,这样它们就不会再次损坏了。 - orange
10
为什么是 mood?不应该叫 mod 吗? - matfax
@MatthiasFax 是的,你是对的。抱歉打错了。 - JZAU

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接