在 Diffie-Hellman 密钥交换期间,我对中间人攻击的机制有疑问。我听说它可能发生在密钥协议通信期间。但是在 CA(证书颁发机构)存在的情况下,接收者可以在接收到发送者的公钥时对发送者进行身份验证。因此,中间人如何攻击?
2 回答
我认为您将基本的 Diffe-Hellman(一种密钥交换协议)与使用证书颁发机构(CA)的“认证版本”混淆了。
RSA Labs很好地解释了基本的 Diffe-Hellman 如何易受中间人攻击。
“Diffie-Hellman 密钥交换容易受到中间人攻击。在这种攻击中,对手 Carol 拦截了 Alice 的公共价值并将她自己的公共价值发送给 Bob。当 Bob 传输他的公共价值时,Carol 将其替换为Carol 和 Alice 就一个共享密钥达成一致,Carol 和 Bob 就另一个共享密钥达成一致。在交换之后,Carol 简单地解密 Alice 或 Bob 发出的任何消息,然后读取并可能修改“他们在使用适当的密钥重新加密并将其传输给另一方之前。存在此漏洞是因为 Diffie-Hellman 密钥交换不会对参与者进行身份验证。可能的解决方案包括使用数字签名和其他协议变体。”
它遵循经过身份验证的版本,也称为站对站协议:
“粗略地说,基本思想如下。在协议执行之前,双方 Alice 和 Bob 各自获得一个公钥/私钥对和一个公钥证书。在协议过程中,Alice 在某个消息,覆盖公共值g a mod p。Bob 以类似的方式进行。即使 Carol 仍然能够拦截 Alice 和 Bob 之间的消息,但她不能在没有 Alice 的私钥和 Bob 的私钥的情况下伪造签名。因此,增强协议击败了中间人攻击。”
所以基本版本容易受到中间人攻击,而使用公钥证书的认证版本则不会。
这就是 Diffie-Hellman 的工作原理:
这就是 Diffie-Hellman 中的中间人攻击的工作原理:
有两次 DH 密钥交换,Alice 和 Attacker 与 k1 共享相同的密钥,而 Bob 和 Attacker 与 k2 共享另一个相同的密钥。
因为爱丽丝和鲍勃彼此没有先验知识。
但是攻击者必须继续监听和转发。