对 https 的“中间人”攻击可以读取所有通信吗?

Mar*_*lva -1 ssl https man-in-the-middle handshake

如果攻击者在握手之前进行 MIM 攻击,并获取公共证书并充当侦听器。

不要试图充当各方之一,只需阅读所有通信即可获取有用的信息,例如 JWT 令牌以及有关用户在该网站上执行的操作的其他信息。

鉴于攻击者能够在连接安全之前拦截证书,它可以在握手完成后打开所有数据包,我错了吗?

那可能吗?

Wag*_*ota 6

是和否,这取决于游戏中的其他一些元素......

在没有SSL证书的情况下答案是YES!

如何?

让我们考虑一个经典案例,其中 2 个对等方是 Alice 和 Bob,尝试通过 HTTP 进行通信。

MITM 只能从 Alice 和 Bob 那里获取公钥。不是私钥。即使在原始情况下,Alice 也只能使用 Bob 的公钥向 Bob 加密信息,而 Bob 也只能使用 Alice 的公钥向 Alice 加密信息。

“智能”MITM 会做的是替换在每对通道中传递的公钥。换句话说:爱丽丝发送鲍勃应该接收的密钥。MITM 会拦截此密钥,不会将其传递给 Bob,而是将其替换为自己的密钥(我们称之为黑客密钥),然后将此黑客密钥传递给 Bob。

鲍勃应该发送给爱丽丝的密钥在另一个方向上也会发生上述相同的事情。

好吧......现在爱丽丝和鲍勃都收到了黑客密钥,他们认为该密钥是来自另一个对等点的原始密钥(因为没有证书),但原始密钥由黑客保留。你有看到?黑客只需从其中一方接收信息并解密(因为它是用黑客的公钥加密的),然后用另一方的原始公钥重新加密。就这么简单!

...但如果有 SSL 证书,答案是否定的。

为什么?

因为证书的存在正是为了解决上面描述的这个问题。这意味着,来自 Alice/Bob 的公钥如果确实属于 Alice 和 Bob,则可以通过数字签名进行验证,因此,如果他们使用 SSL 证书,Alice 和 Bob 能够检测到某些 MITM 交换了原始密钥。这是如何工作的超出了这个问题的范围,但“作为一个简短的答案”,两个站点都将“预安装”第三方证书,可用于验证正在交换的公钥的真实性。

  • 接受另一个证书是另一个细节。它仍然不会使我的答案无效。我说的是由第三方签署的有效证书。你有什么问题? (3认同)
  • 对就这样。但显然在这个范围内我们假设 MITM 只是一个 MITM。“从数学上来说”,爱丽丝和鲍勃并没有妥协。您所描述的这种攻击是 MITM 之外的一种不同类型的攻击。如果您破坏了根证书,那么一切都会改变。 (2认同)