Superfish 与企业 MITM

信息安全 证书 中间人
2021-08-27 10:43:00

我在一家咨询公司工作,我一直在实施来自安全供应商的工具,它是所有用户流量的云代理。它将执行恶意软件扫描和过滤所有网络流量。它通过强制代理自动配置文件将 HTTP/HTTPS 流量重定向到供应商的全球数据中心之一来工作。当然,我们需要将证书部署到每个工作站,以便代理 HTTPS 流量并执行 MITM 以进行恶意软件扫描。

我的问题:这与安装根证书的 Superfish 有何不同?我一直在阅读有关 Superfish 的私钥如何存储在机器上的信息。我假设企业 MITM 攻击没有同样的漏洞,但架构在企业环境中的工作方式有何不同?

3个回答

Superfish 和类似产品(在此都简称为“Superfish”)与公司 MitM 的不同之处在于 Superfish 在客户端计算机上执行 MitM。Corporate MitM 在单独的服务器或设备上执行。

这很重要,因为执行中间人的系统必须拥有受信任的根 CA 的私钥才能工作。(严格来说,根 CA 不需要被信任。但如果不是,用户会看到危险信号。)

对于 Superfish 来说,这意味着密钥必须在客户端设备上——众所周知,客户端设备维护得不好,而且通常很容易受到攻击。

对于企业中间人,关键在于监控服务器——通常由经验丰富的人员进行维护,他们执行定期维护并且不做任何会使系统暴露于不必要风险的事情(例如:网页浏览、下载额外软件、打开文档等) .

但是,仍然需要仔细实施所有 SSL 代理(企业或其他),以说明它们正在消除客户端自我验证远程系统证书的能力。特别是这意味着:

  1. SSL 代理必须正确验证远程系统的证书,并在出现问题时适当地警告用户或完全断开连接。正如 Charles Duffy 在评论中提到的,正确验证证书还要求代理不信任自己的内置 CA。
  2. 理想情况下,SSL 代理还应该针对历史或社区聚合的参考证书进行一些完整性验证。这是在一些网络浏览器扩展中实现的,在正常情况下可以由用户手动执行,以帮助检测对其他可信根 CA 的欺诈性使用。由于 SSL 代理消除了用户自己执行此操作的能力,或者为此目的有效地使用浏览器扩展,因此最好代理可以进行自己的检查以进行补偿。(尽管我怀疑大多数公司的 MitM 产品都提供这种功能。)

由于您提到此服务是由外部供应商提供给您的,因此您需要注意的另一件事是 SSL 代理可以看到您所有用户的流量,就好像它未加密一样。(这正是 SSL 代理的目的。)这意味着,如果供应商选择滥用您的信任,您原本希望保护其免受第三方查看者访问的数据将完全被供应商看到。

Superfish 和企业代理之间的主要区别在于如何生成新的 SSL 证书。

在 Superfish 案例中,CA 证书私钥位于客户端计算机上,软件生成一个新的 SSL 证书,其中包含它自己拥有的密钥。流量在本地截获,在客户端生成新的证书,并发送到浏览器。任何有权访问调试工具的人都可以提取证书和密钥,因为它们都在客户端计算机上。

在企业代理案例中,CA 证书将安装在每台客户端计算机上,但私钥驻留在代理服务器上。如果服务器有足够的保护,密钥就不会被泄露。流量在代理服务器上被拦截,并与新证书一起发送给客户端。无法在客户端提取私钥,因为密钥仅在服务器上。

虽然其他人对实施细节的看法是正确的,但其中的安全问题是授权问题。

对于 Superfish 和相关内容,系统所有者通常不希望 Superfish 能够读取通过 HTTPS 发送和接收的所有内容。在您的家用计算机上,您可能不希望 Superfish 拥有您的信用卡详细信息、在线健康详细信息等。在公司中,您通常不希望 Superfish 能够监控您出于商业目的访问的所有内容,例如何时访问公司网络电子邮件客户端或在研究商业机密时。此外,superfish 做这一切有点偷偷摸摸,因为它是在您获得计算机之前安装的,并且您不会被警告它已就位,因此您没有机会授权或拒绝它的使用。

对于企业中间人,公司是系统所有者,而不是最终用户,也不是 Superfish。为了提高安全性,该公司设置了一个授权的代理服务器,其风险和价值已被接受。

这并不是说代理的基本思想一定是坏的。允许未经授权的公司/个人访问您的资料的未经授权的代理是不好的。