Superfish 和类似产品(在此都简称为“Superfish”)与公司 MitM 的不同之处在于 Superfish 在客户端计算机上执行 MitM。Corporate MitM 在单独的服务器或设备上执行。
这很重要,因为执行中间人的系统必须拥有受信任的根 CA 的私钥才能工作。(严格来说,根 CA 不需要被信任。但如果不是,用户会看到危险信号。)
对于 Superfish 来说,这意味着密钥必须在客户端设备上——众所周知,客户端设备维护得不好,而且通常很容易受到攻击。
对于企业中间人,关键在于监控服务器——通常由经验丰富的人员进行维护,他们执行定期维护并且不做任何会使系统暴露于不必要风险的事情(例如:网页浏览、下载额外软件、打开文档等) .
但是,仍然需要仔细实施所有 SSL 代理(企业或其他),以说明它们正在消除客户端自我验证远程系统证书的能力。特别是这意味着:
- SSL 代理必须正确验证远程系统的证书,并在出现问题时适当地警告用户或完全断开连接。正如 Charles Duffy 在评论中提到的,正确验证证书还要求代理不信任自己的内置 CA。
- 理想情况下,SSL 代理还应该针对历史或社区聚合的参考证书进行一些完整性验证。这是在一些网络浏览器扩展中实现的,在正常情况下可以由用户手动执行,以帮助检测对其他可信根 CA 的欺诈性使用。由于 SSL 代理消除了用户自己执行此操作的能力,或者为此目的有效地使用浏览器扩展,因此最好代理可以进行自己的检查以进行补偿。(尽管我怀疑大多数公司的 MitM 产品都提供这种功能。)
由于您提到此服务是由外部供应商提供给您的,因此您需要注意的另一件事是 SSL 代理可以看到您所有用户的流量,就好像它未加密一样。(这正是 SSL 代理的目的。)这意味着,如果供应商选择滥用您的信任,您原本希望保护其免受第三方查看者访问的数据将完全被供应商看到。