中间人攻击时有多少会话密钥

how many session-keys while man-in-the-middle-attack

大家好,我们有一个厚颜无耻的问题,你能帮帮我吗?

如果在网络浏览器和网络服务器之间的 TTP 连接上有 两个 中间人攻击者,将创建多少个会话密钥?攻击者会看到对方吗?解释你的答案。

我认为会有 4 个键,每个连接一个。但我不确定。

通讯原文:
爱丽丝<-------->鲍勃

拦截通讯:
Alice<-->Mallet<-->Marvin<-->Bob

如您所见,有 3 个通道,这将引导我们进入 3 个独立的通信通道,这些通道需要与所用协议相关的密钥

例如,如果通信在每个通道上都经过 RSA 加密,则将有 2 个密钥...

既然你提到了浏览器和网络服务器之间的通信,我想 TTP 应该意味着 HTTP ...您要求 HTTP 答案是“使用 0 个会话密钥,因为没有加密。此设置中的 MITM 攻击是透明的,因此攻击者仅通过查看连接数据就不知道彼此”

在 HTTPS 的情况下,对于每个连接,双方计算一个预主密钥,然后派生主密钥,可以将其视为会话密钥,因为所有相关的其他秘密都是从它派生的……所以有是每个通道一个这样的主秘密,乘以 3 个通道 => 3

关于 "do the attackers see each other?" 的事情在这里变得有点棘手,这取决于他们对 PKI 和网络服务器的了解:假设攻击者没有来自 PKI 的任何其他秘密信息,尤其是他们无权访问有效且受信任的 CA 密钥,并且在整个场景中没有人执行证书固定之类的操作。

在这种情况下,浏览器会注意到连接已被篡改并显示警告(客户端知道...连接正在被篡改,但不知道有多少攻击者)

从客户端看到的第一个攻击者和客户端一样知道连接正在被操纵,因为他知道他正在操纵连接,所以他知道至少还有一个参与方参与到上游路径服务器。 (在设置中,该攻击者是唯一知道 2 次攻击的攻击者)

第二个攻击者无法区分客户端和第一个攻击者...他看到服务器流量未被修改,很可能会怀疑这是一个单一的 MITM 场景(没有看到攻击者 1)

服务器看不到这些...

让我们稍微改变一下:从现在开始,攻击者可以访问受信任的 CA 密钥

现在两个攻击者都可以颁发他们自己的有效证书

只要没有人实际监控证书并寻找正在使用的证书的变化,一切都像普通 HTTP 情况一样透明......客户端不会注意到任何东西......两个攻击者只会知道自己的操纵

但是...因为这看起来像是作业...也许我在这里和那里添加了一个错误...也许没有...只有一种方法可以确定:检查它...