为什么 Firefox 和 Chrome 会从浏览器中“泄露”关键安全信息,我该如何阻止它?

信息安全 tls 网页浏览器 铬合金 火狐 会话管理
2021-08-15 20:47:30

在研究 SSL/TLS 握手和加密时,我发现了一种方法,该方法描述了如何将 SSL/TLS 会话密钥从 Firefox 导出到浏览器外部的用户或环境变量,然后使用 Wireshark 解密 TLS 数据包(方法描述于: https ://isc.sans.edu/forums/diary/Psst+Your+Browser+Knows+All+Your+Secrets/16415)。这种方法容易做到——我能够解密与 HTTPS 站点的通信,包括登录凭据。

根据上面的链接和我自己的测试,这种方法只适用于 Firefox 和 Chrome;不是 Internet Explorer 或其他非浏览器 SSL 流量(有关 MSDN 建议,请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/aa387409%28v=vs.85%29.aspx,但它们本质上默认情况下不要以明文形式保存会话密钥)。该方法也在 Mozilla 开发网络 (MDN) 站点上进行了描述:https : //developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format以及信息安全交换,例如: 解密使用 DHE_RSA 密码套件时 Wireshark 中的 TLS)。

该方法确实需要访问系统设置来配置必要的环境变量,但仅此而已。Firefox 和 Chrome 都会自动查找该变量,如果找到,则开始将密钥记录到该位置。浏览器不会提醒用户或请求许可,Firefox 的 about:config 中似乎也没有办法关闭此日志记录。我意识到完全访问系统以设置变量可能会假定系统已经受到威胁,但保护级别似乎远低于其他安全信息。例如,系统访问不允许轻松访问 SAM 或 TPM 安全模块(当然还有其他方法可以访问,但不是点击即可)。

这种方法似乎允许第三方非常隐蔽地导出 SSL / TLS 会话密钥(它们每个只有 128 或 256 位),第三方可以从密钥导出中单独捕获网络流量,然后在闲暇时解密。尽管使用了任何“完美的前向保密”非对称密钥,这种解密仍可能发生,并且可以在事后很久重建浏览会话。任何其他有权访问您的 Windows 文件夹结构的程序也可以过滤密钥,而您永远不会知道。

为什么 Firefox 和 Chrome 允许这些会话密钥如此容易泄漏?我读到了一些猜测,认为这是一个调试功能,但为什么默认情况下它是打开的?请注意,其他浏览器不会泄露会话密钥。我应该担心这个吗?

3个回答

为什么 Firefox 和 Chrome 允许这些会话密钥如此容易泄漏?

使开发人员更容易分析他们的网络捕获。我第一次使用此功能是在尝试了解基于 Web 的 noVNC 究竟使用什么协议时。使用此功能,我能够解密 Wireshark 中的流量。

我读到了一些猜测,认为这是一个调试功能,但为什么默认情况下它是打开的?请注意,其他浏览器不会泄露会话密钥。

默认情况下,不会记录/泄露任何密钥。该功能适用​​于需要它的人(见上文)。

我应该担心这个吗?

不会。如果有人能够修改您的系统环境,那么您的问题就更大了。不服气?你知道 Chrome 有一个--disable-web-security命令行选项吗?这会禁用同源政策等保护措施,例如允许任何网站修改您银行的网站。安装可以侦听所有HTTP 请求并修改它们而不产生证书错误的浏览器扩展的能力怎么样?

不要担心这个SSLKEYLOGFILE功能,它不会影响你,浏览器扩展更有可能窃取你的所有数据,或者有人会安装恶意证书,执行中间人攻击并注入广告

我认为这个问题的答案只能是:如果你想关闭它,尝试与开发人员一起参与,或者编译你自己的版本并删除那里的选项。

建议:在浏览器上打开隐私模式应该禁用此功能。考虑将其归档到 bugtracker 上;)

关于 TLS/SSL 安全:请记住,TLS 表示传输级别安全,SSL 表示安全套接字层。两者都只处理数据的加密传输。端点中发生的事情无法以这种方式得到保护。如果您无法完全控制您的 PC(公司设备、网吧等),则应始终考虑此类本地数据泄露的可能性。数据需要在设备内部进行解密才能让您读取,而这始终是一个弱点。想象一下 SSL 证书注入,只需在您的 PC 中添加一个完全受信任的代理证书,就可以在您公司的防火墙上解密所有 https 流量,而您甚至都不会注意到它。

因此,即使让日志记录变得如此简单听起来是个坏主意,但对我来说,这并不违反背后的安全机制。

Firefox 和 Chrome 允许记录关键材料以启用有线调试工具。