【发布时间】:2012-04-14 17:47:42
【问题描述】:
我正在做一个项目,其中 Alice 和 Bob 使用 Diffie-Hellman 密钥交换相互发送消息。让我陷入困境的是如何将他们正在使用的证书合并到其中,这样我就可以获得他们的秘密消息。
根据我对 MIM 攻击的了解,如上图所示,MIM 充当冒名顶替者:
以下是我的项目的详细信息。我知道他们在沟通之前都同意了 g 和 p,但是如果他们都有证书来验证他们的签名,我该如何实现呢?
Alice 准备 ⟨signA(NA, Bob), pkA, certA⟩ 其中 signA 是 Alice 使用的数字签名算法,“Bob”是 Bob 的名字,pkA 是 Alice 的公钥,等于 gx mod p 编码到 X.509 的固定 g,p 如 Diffie-Hellman 密钥交换中指定的那样,certA 是 Alice 的证书,其中包含验证签名的 Alice 的公钥;最后,NA 是一个 8 字节长的 nonce(随机字符串)。
Bob 检查 Alice 的签名,并以 ⟨signB{NA,NB,Alice},pkB,certB⟩ 作为响应。 Alice 收到消息,她检查她的 nonce NA 并根据 Diffie-Hellman 密钥交换基于 pkA、pkB 计算联合密钥。然后 Alice 将消息 ⟨signA{NA,NB,Bob},EK(MA),certA⟩ 提交给 Bob 和 Bobrespondswith⟨SignB{NA,NB,Alice},EK(MB),certB⟩。
其中 MA 和 MB 是它们对应的秘密消息。
【问题讨论】:
标签: diffie-hellman man-in-the-middle