Firefox 是如何获取我的密码的?

信息安全 密码 网页浏览器 铬合金 火狐
2021-09-09 12:50:14

我刚刚安装了 Firefox 浏览器,而我之前使用 Google Chrome 作为我的主要浏览器。我正在使用 Windows 10。

在 Firefox 的安装和设置过程中,我可以选择从 Chrome 迁移我的数据,包括用户名和密码。这个过程很快就完成了,然后我可以使用之前在 Chrome 中保存的密码登录到各种网站。整个过程非常方便,但它让我想到:

Firefox 是如何获取我的密码的?

我从来不需要在 Firefox 中输入任何密码,也不需要在 Chrome 中做任何事情来将这些信息“发布”到 Firefox。Firefox 给出的唯一要求是在此过程中应关闭 Chrome。除了允许它运行之外,我也不需要授予安装程序任何提升的权限。

那么 Firefox 使用什么机制从 Chrome 中检索这些密码呢?这个另一个答案声称Windows没有保护密码的机制,但我仍然想知道实际的机制是什么,以及为什么浏览器设计无法(或出于其他原因不愿意)通过外部任何其他方式保护对密码的访问操作系统权限。(我想出的唯一解释是用户每次启动浏览器时都输入他们的“主密码”很不方便)。

我之前的理解是这样的:

如果我尝试在 passwords.google.com 上查看我的 chrome 密码,我必须重新输入密码才能登录到我的主要 Google 帐户(大概)存储在该帐户中。当然,要实际使用这些密码在 Chrome 上登录网站,我大部分时间都不必输入主密码。我认为这是因为浏览器具有会话令牌,它在大多数情况下用于验证这些密码的检索。

难道是 Firefox “偷了”这个令牌来访问我的密码?或者密码实际上以某种形式存储在本地,无需用户输入即可解密?

最后,这是否意味着任何程序以这种方式窃取我的密码都是微不足道的?

1个回答

(我不得不对这个有趣的问题进行一些快速研究)。

保存的密码可以被 Firefox(或任何其他软件)解密,只要它在密码被加密的同一台机器上的 Windows 帐户中运行。

Chrome 使用CryptUnProtectData加密存储的密码,该算法依赖于用户登录凭据和机器的一些特定信息来解密密码。

你可以在这里查看一个 Python 实现,它使用相同的加密函数来读取 Chrome 上保存的密码。