ISP 可以使用 MITM 攻击来“破解”加密流量吗?

信息安全 加密 中间人
2021-09-11 10:34:15

以 A 和 B 的连接为例。他们的通信通过公钥加密进行了加密。在他们交换他们的公钥之前,ISP MITM 发起了攻击。A 得到“B”的公钥(ISP 生成) B 得到“A”的公钥(ISP 生成)

A 向 B 发送消息 X。

A->"B"'s public((A's private(X))->ISP

当 ISP 得到密文(C)后,ISP 通过“B”的私有((A's public(C)))解密它,然后,ISP 得到消息。

之后,ISP 为 B 加密消息 X。

ISP->B 的公共(“A”的私有(X))->B

然后B通过B的私人(“A”的公共(C))解密密文(C)

然后 B 收到消息 X,他们不知道 ISP 收到了消息。

是否可以?对不起我糟糕的英语和解释。

3个回答

当您通过 HTTPS 连接到站点时,您的浏览器会检查证书是否由您信任的证书颁发机构(通常内置在您的操作系统或 Web 浏览器中)颁发,并且证书是否与您正在访问的网站的域匹配。

因此,如果您的 ISP 可以让您安装与他们控制的欺诈性证书颁发机构相对应的证书,或者破坏证书颁发机构或以某种方式获取随机网站的秘密私钥,那么是的,他们可以偷偷地进行 MITM 攻击。

证书颁发机构有很多动机不颁发欺诈性证书。如果在野外发现任何欺诈性证书(这很容易验证,因为只有证书颁发机构可以签署假证书),证书颁发机构将失去信任并迅速倒闭。

此外,对于某些站点和某些 Web 浏览器,存在证书固定的概念,其中站点只能通过 HTTPS(使用通过 HSTS 完成)访问,并且只能使用固定的证书颁发机构颁发的证书。

证书颁发机构受到了损害 - 受信任的颁发机构列表非常长且地理位置分散。我当然会认为民族国家可能有能力策划这种攻击。

这个问题的唯一真正解决方案是证书固定或使用公钥/私钥在有效负载上使用另一层加密,或带外交换的共享密钥(对称加密)。以最简单的形式固定意味着您知道该站点要信任的证书,并且不信任任何其他证书。这意味着您不会信任 ISP 插入的证书。完美的前向保密还有助于减少其他控件的妥协或失败的影响(也在下面链接的维基百科文章的一部分中)。您还可以考虑减少浏览器信任的证书颁发机构的数量。

以下是有关证书固定的更多信息: http ://en.wikipedia.org/wiki/Certificate_pinning#Certificate_pinning

是的,ISP 可以并且确实会拦截用户的流量。

明文通信,例如普通的 HTTP 或 FTP,可以在不知情的情况下被 ISP 截获、分析和修改。这就是为什么在任何可能的情况下都不应该使用明文通信的原因。

加密通信,如 HTTPS、FTPS、SFTP 等,也可以被拦截,但用户会知道这是在发生。例如,如果用户想要访问https://example.com. 拦截该流量的 ISP 需要拥有该网站的有效证书才能被检测到。

这可以通过 ISP 告诉他们的客户他们需要安装他们的根证书“以消除错误”来规避。非技术用户可能不会理解其中的含义并遵循说明(或让 ISP 的人来为他们“修复”它)。结果是“错误”——正确地显示出来——消失了。恭喜,您的 ISP 现在正在悄悄监视您。