七层防火墙如何识别 SSL 应用程序?

七层防火墙如何识别 SSL 应用程序?

最近我一直在收集有关 OSI 第 7 层防火墙的信息,即可能根据应用程序阻止流量的防火墙。

大多数防火墙都具有“阻止 Twitter”或“阻止 Facebook”流量等功能......这让我想到了以下问题:

如果 Twitter 和 Facebook 都完全采用 TLS 加密,这些防火墙如何阻止此类流量?

我一直在尝试自己理论化这一点,并得出以下结论:

  • 永久的中间人无法做到这一点,因为这些证书是短暂的,用户每次尝试访问这些站点时都会收到警告,而且他们每次都需要接受证书(文档声称这不会发生)。

  • 我大胆猜测,这个“阻止”操作是在协商 SSL/TLS 连接时和建立连接之前采取的。他们可以获取网站的证书,查看它们用于哪些网站,如果其中一些网站(比如说)是 Twitter 或 Facebook,就阻止它?

如果以上方法都不正确,还可以使用哪些其他方法来实现?

笔记:我并不是在谈论某个特定的品牌,我只是对这项技术如何在不破坏 SSL/TLS 链的情况下工作感兴趣。

答案1

您可能需要在此上下文中定义“应用程序”。如果您只是在谈论阻止某些恰好将移动应用程序作为自定义用户界面的知名网站(例如 Twitter 和 Facebook 的示例),那么防火墙可以做几件事:

  1. 阻止(或错误回答)这些网站或其关联 CDN 的 DNS 查找(最大的网站通常有自己的 CDN)。
  2. 阻止到这些站点的已知 IP 地址及其已知 CDN 节点(边缘服务器)的流量。
  3. 监视所有 TLS 协商的开始,并切断服务器证书包含要阻止的域名或任何已知关联域名(CDN 域名)的任何连接。

答案2

当然,企业防火墙可能会通过(cdn 或服务器)IP 地址过滤“大玩家”,但这绝对不是第 7 层。

然而,对 SSL 的 MITM 攻击可能的如果有人在您的浏览器上安装了代理(根 CA)证书。之后,可以在明文上进行第 7 层检查。

在受控的企业环境中,在浏览器中安装(甚至远程安装)所需的受信任证书并不是特别困难。有了证书,防火墙将充当代理,以您的名义打开(新的外部)SSL 连接,获取数据,并在检查后在另一个 SSL 会话中将其转发给您。它会为您创建一个伪造的证书,该证书模仿原始证书,但由公司自己的受信任证书颁发机构签名。普通用户不会注意到任何事情。没有警告,没有弹出窗口。一切都很好。

当然,如果你使用自己的设备,不受公司控制,你会立即发现这个作弊行为。但当然,你不允许在公司的网络上使用自己的设备。现在很清楚为什么了。:)

相关内容