我正在做一个项目,其中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是相应的秘密消息.
我无法理解网络上的任何人如何使用数据包嗅探器。
我对网络的工作原理知之甚少,但让我这样说:假设邮递员将包裹送到我家门口。为什么我可以翻遍他所有的其他包裹并环顾四周?邮递员不应该只把属于我的包裹交给我吗?
我在https://www.owasp.org/index.php/HTTP_Strict_Transport_Security#Browser_Support上阅读了OWASP的HSTS备忘单, 并观看了相关视频:https: //www.youtube.com/watch?v = zEV3HOuM_Vw
但是,在用户输入http://site.com的情况下,我仍然无法理解这有助于防止中间人攻击.OWASP声称它有所帮助.
让我们想象下面的场景:中间人得到受害者的请求:http://site.com.然后他将自己的HTTPS请求激活到https://site.com并将内容返回给用户,剥离HSTS标头.攻击者可以看到所有进一步的用户输入.
在我看来,除非我们从一开始就使用HTTPS,否则无法防范MITM.
HSTS标题真的可以帮助抵御MITM攻击吗?
我在我的Android应用中使用HTTPS与我自己的API进行通信.当我打包嗅闻时,我看不到任何好的信息.但是,当我使用像Fiddler2这样的软件在我的Android上安装可信证书时,我可以清楚地看到我所有的HTTPS呼叫都是危险的.
问题是如此接近这个人,但在Android而不是iPhone: 隐藏来自fiddler的iOS HTTPS调用
我正在使用loopj库来进行我的https调用:Android Asynchronous Http Client http://loopj.com/android-async-http/
我该如何处理这样的漏洞?(我知道如何在概念上处理它,但我需要示例代码)
以下Flask RESTful Destroy User Token讨论了如何销毁 Flask令牌,但这并不能阻止中间人攻击。无论如何要使令牌无效,使其在到期之前不再处于活动状态?
当 HTTPS 会话启动时,会生成一个随机数来创建交换密钥(或类似的东西)。我不明白的是这如何防止重放攻击。
为什么攻击者不能重复真实客户端发出的所有请求?
这个答案声称这是不可能的,而这个答案则声称相反。我不明白攻击如何不可能,除非涉及随机数。
我对网络安全性有另一个问题.如果我理解正确,证书就是用来识别你的真实身份.所以中间人的攻击是不可能的.但是当我看到这张图片时:
我认为中间人的攻击是可能的.您可以从数据中拆分签名,证书.使用您的虚假数据制作您自己的签名,并将伪造的签名(但正确的证书)发送到服务器/客户端.
我在这张图片中也不明白的是在验证方面检查证书的地方.
谢谢.
SCBoy
有没有办法防止或检测普通HTTP上的中间人攻击?
我想在客户机上运行一个javascript applet,确信代码没有被修改.是否有任何巧妙的技巧来签署代码或安全地交付它而无需通常的HTTPS和证书路由?
我有一个C++客户端/服务器应用程序,其中客户端和服务器是我的可执行文件.每次在客户端和服务器之间建立连接时,我都会为该会话生成一个新的加密密钥,我希望传输此会话密钥并使用内置于客户端和服务器中的静态密钥加密此会话密钥.
但是,在我的可执行文件上运行字符串会显示静态键.
如何在我的客户端和服务器应用程序中隐藏嵌入的静态密钥,以便不容易提取它们,从而允许某人解码我的会话密钥.
AFAIK,SSL将在安全下加密消息.但是我仍然担心中间的人是否可以抓住数据包并复制它,例如1000次
我最近一直在关注TLS,我不确定为什么它如此安全,但可能是由于误解了它的工作原理.但是如果记录整个握手,无论是使用中间攻击的人还是目标计算机上的数据包嗅探器,那么任何剩余的通信都可以被解密,因为您将获得客户端和服务器用于生成的所有信息.加密密钥.
我怀疑在tls中会有这么一个漏洞,但是有人能告诉我如何防御这个吗?
如果攻击者在握手之前进行 MIM 攻击,并获取公共证书并充当侦听器。
不要试图充当各方之一,只需阅读所有通信即可获取有用的信息,例如 JWT 令牌以及有关用户在该网站上执行的操作的其他信息。
鉴于攻击者能够在连接安全之前拦截证书,它可以在握手完成后打开所有数据包,我错了吗?
那可能吗?