如何利用Diffie-hellman在中间攻击中执行一个人

jfi*_*isk 4 man-in-the-middle diffie-hellman

我正在做一个项目,其中Alice和Bob使用Diffie-Hellman密钥交换发送彼此的消息.抛弃我的循环是如何合并他们正在使用的证书,这样我就可以获得他们的秘密消息.

根据我对MIM attakcs的理解,MIM可以作为冒名顶替者,如图所示:

在此输入图像描述

以下是我的项目的详细信息.我知道他们在沟通之前都有g和p达成一致意见,但我怎么能用他们都有证书验证他们的签名来实现呢?

Alice准备⟨signA(NA,Bob),pkA,certA⟩,其中signA是Alice使用的数字签名算法,"Bob"是Bob的名字,pkA是Alice的公钥,等于根据X编码的gx mod p. 509表示固定g,p表示在Diffie-Hellman密钥交换中,certA是Alice的证书,包含验证签名的Alice公钥.最后,NA是一个8字节长的随机数(随机字符串).

Bob检查Alice的签名,并使用⟨signB{NA,NB,Alice},pkB,certB⟩进行响应.Alice根据Diffie-Hellman密钥交换获取她检查其nonce NA并根据pkA,pkB计算联合密钥的消息.然后Alice将消息⟨signA{NA,NB,Bob},EK(MA),certA⟩提交给Bob并且Bobrespondswith⟨SignB{NA,NB,Alice},EK(MB),certB⟩.

其中MA和MB是相应的秘密消息.

MrG*_*mez 6

提供维基百科答案:

在最初的描述中,Diffie-Hellman交换本身不提供通信方的认证,因此容易受到中间人攻击.中间人可以建立两个不同的Diffie-Hellman密钥交换,一个与Alice,另一个与Bob,有效地伪装成Alice到Bob,反之亦然,允许攻击者解密(和读取或存储)然后重新加密他们之间传递的消息.

通常需要一种对彼此通信方进行认证的方法来防止这种类型的攻击.可以使用诸如STS的Diffie-Hellman的变体来避免这些类型的攻击.

您可以考虑通过讨论更安全的Diffie-Hellman变体来给您的教授留下深刻印象.现在,鉴于您已经注意到原始实现,这将是.

祝你好运!