使用代理进行 TLS 检查

使用代理进行 TLS 检查

我如何在网络中安装代理以便能够解密通过我网络的任何流量?我拥有所有设备,如果有需要,我可以提供私钥和证书供代理解密数据包。我想知道这是否可行,还是我应该让 NGFW 来完成这项工作?

答案1

这是可能的,但是您会遇到一些问题。

基本设置需要代理,它将自动为端点访问的所有网站生成 TLS 证书。您可以将此代理使用的根 CA 添加到所有端点,然后端点将接受代理颁发的证书。

但其中存在一些实际问题:

  • 内置证书:现代浏览器对大型网站有内置限制,规定哪些证书对这些网站有效。即使你有一个“技术上有效”的证书,如果你尝试使用替代证书访问 Google.com 或 YouTube,Google Chrome 仍会发出警告,因为它是浏览器内置的
  • 公钥锁定/证书锁定:在第一次请求时,网络服务器可以发送 HTTP 标头,将本地浏览器验证机制中的证书锁定到当前证书或当前颁发者。这将阻止上述机制发挥作用,因为一旦您设置代理,颁发者就会发生变化。
  • EV 证书:到目前为止,如果不重新编译浏览器,就无法“伪造”扩展验证证书(即在浏览器中显示绿色复选标记的证书)。EV CA 内置于浏览器中,用户无法手动添加。
  • CAA DNS 记录:CAA DNS 记录注册颁发者有效的域名。它将阻止现代网络浏览器接受可能为 X509“有效”但并非由 CAA 记录中的证书颁发机构颁发的证书。

例如:mtak.nl具有以下 CAA:

mtak@rubiks~$ dig -t caa mtak.nl +short
0 issue "letsencrypt.org"

如果您通过代理运行流量mtak.nl,即使它颁发了有效的证书,浏览器仍然会拒绝它,因为该证书不是由 Let's Encrypt 颁发的。

也许可以在 Web 浏览器中禁用这些附加检查,但要使其顺利运行,您将面临很多障碍。此外,随着浏览器开发人员正在修复 SSL/TLS 中的“漏洞”,这些检查将随着时间的推移变得越来越严格。

值得思考的一个好主意:作为一项学术练习,这很酷,但在实践中,我更相信我的银行能保护连接,而不是我自己(尤其是在永久设置中)。我没有安全运营中心来监视防火墙和 WAF、寻找零日漏洞、进行更新以及所有与良好和安全的 IT 运营相关的事情。因此,请注意您所做的事情以及它对您的影响,并随着时间的推移不断重新评估是否值得冒险。

相关内容