Firefox、Chrome 和 Safari 中的密码管理

信息安全 密码管理 铬合金 火狐 苹果浏览器
2021-08-21 03:55:34

我刚刚阅读了一些关于 Chrome 密码安全策略的非常有趣的讨论。

Chrome 疯狂的密码安全策略

显示存储的密码 - Tim Berners-Lee

以下是 Chrome、Firefox 和 Safari 如何处理存储密码和显示存储的密码:

Chrome 使用 OSX 钥匙串以加密形式存储密码。在 Chrome 中,您可以进入密码设置页面,一键查看您的密码。

Firefox 不使用 OSX 钥匙串以加密形式存储密码。在 Firefox 中,您可以选择使用主密码(默认情况下未启用)。在每次新会话开始时以及每次要查看存储的密码时都键入主密码。

Safari 还使用 OSX 钥匙串以加密形式存储密码。但是,在 Safari 中,当您想要查看密码时,您需要输入 KeychainLogin 密码。(这是一种“假”措施,因为 Keychain 实际上并不要求经过身份验证的应用程序输入 KeychainLogin 密码来检索它们存储的密码。当 Safari 在不需要 KeychainLogin 密码的情况下在网站登录提示上检索密码时可以看到这一点.)

鉴于 Safari 和 Chrome 的新会话以及不知道 KeychainLogin 密码的恶意用户。实际上,Safari 并不比 Chrome 安全,因为用户可以使用检查元素工具将密码字段的类型更改为文本并查看密码。

我的问题是:

1) 给定一个不知道 Firefox 主密码的攻击者和一个新的 Firefox 会话(尚未要求输入主密码),查看存储的密码有多容易/难?

2)如果firefox主密码与操作系统用户帐户密码不同,知道用户帐户密码会改变什么吗?

我之所以这么问,是因为在上述讨论之一中,Chrome 的安全技术负责人说:

我是 Chrome 浏览器安全技术负责人,所以如果我在这里解释我们的推理可能会有所帮助。密码存储的唯一强权限边界是操作系统用户帐户。因此,Chrome 会使用系统提供的任何加密存储来确保您的密码对于锁定帐户的安全。然而,除此之外,我们发现操作系统用户帐户内的边界并不可靠,而且大多只是剧院。

考虑有人恶意访问您的帐户的情况。说坏人可以转储你所有的会话cookie,获取你的历史记录,安装恶意扩展来拦截你的所有浏览活动,或者安装操作系统用户帐户级别的监控软件。我的观点是,一旦坏人访问了您的帐户,游戏就失败了,因为有太多的向量让他无法获得他想要的东西。

我们也被反复询问为什么我们不只支持主密码或类似的东西,即使我们不相信它有效。我们一遍又一遍地争论,但我们总是得出的结论是,我们不想给用户提供虚假的安全感,并鼓励冒险行为。我们想非常清楚,当您授予某人访问您的操作系统用户帐户的权限时,他们可以得到一切。因为实际上,这就是他们得到的。

2个回答

这里有两个相关但截然不同的问题:Chrome 无需额外身份验证即可检索密码,并且它会根据请求显示密码。Elliott KemberTim Berners-Lee都混淆了这些问题。

Chrome 能够在不提示用户的情况下检索密码,这是使用操作系统工具存储密码所固有的。在请求密码时,由操作系统设施安排对用户进行身份验证或提示授权,或者不。加密存储的密码不再是浏览器的工作,而不仅仅是提供文件存储或网络堆栈:这是由操作系统完成的,并且有利于所有应用程序,而不仅仅是一个浏览器。用户可以在钥匙串应用程序中配置保留和访问策略,这些设置可以应用于为 Chrome 以外的应用程序(其他浏览器、网络共享存储、FTP、SSH、PGP 等)存储的项目。

Tim Berners-Lee 似乎在主张浏览器在操作系统之上实现密码加密功能。那是假的:为什么浏览器会那样做?Firefox 这样做是因为 Mozilla 这样做是因为 Netscape 这样做是因为它是为没有这种功能的原始操作系统编写的。浏览器实现自己的密码存储还有一个优势,即可以在带有存储密码的平台之间复制配置文件。这是通过浏览器实现自己的密码存储的缺点来平衡的,这打破了认为他们的秘密受到操作系统保护的用户的期望。如果我在 OSX 中输入密码,我希望它们存储在我的钥匙串中,受到与钥匙串相同的保护(使用主密码进行磁盘加密,屏幕锁定时无法访问,......)。如果我的浏览器不使用这种保护,那是它意外的违反信任。

如果浏览器要存储密码,它必须能够检索它们。如果浏览器可以检索它们,那么任何其他应用程序也可以。因此,当 Elliott Kember 抱怨“没有主密码,没有安全性”时,这完全是无稽之谈。密码已经在钥匙串中,任何应用程序都可以检索它们。Chrome 在这里没有违反任何安全措施:它诚实地代表了可用的信息。Elliott Kember 声称缺乏选择是“严重误导”,但这是完全错误的:Chrome 没有更多的选择来访问密码,就像当有人告诉你某事时你没有选择听不见一样大声。可以 塞住耳朵,大声唱“lalalala”,但这不会改变你能听到的事实。

Elliott Kember 承认,“只要你有物理访问权,计算机就已经不安全了”,“这就是密码管理的工作原理”。嗯,准确地说。Chrome 是透明的,这完全违背了他的说法,即“谷歌不清楚其密码安全性”。Chrome 非常诚实:它可以访问密码,并且不会向用户隐藏这一事实。

Elliott Kember 提倡 Chrome 为用户提供一种虚假的安全感。众所周知,虚假的安全感是安全的敌人。贾斯汀舒说得对。

蒂姆·伯纳斯-李提出了另一点。他承认找回密码是可能的,如果计算机上安装的软件都不能轻松完成,可以通过下载一个简单的应用程序来完成。然而,他认为,不应在看起来合法的应用程序中轻松访问此功能,因为这会使查看其他人的密码看起来有些合法。

虽然这是有道理的,但它并没有真正成立。如果您正在挖掘其他人的个人资料,那么您显然是在窥探。某人的密码并不比他们的浏览历史更机密。非技术人员更倾向于分享他们的密码而不是他们的浏览历史,这在 Chrome 之前就已经是这样了。

Chrome 应该实施的一项安全措施是,在合法用户处于控制之下时,不要冒险意外泄露密码。它已经在这样做了:您必须单击一个按钮才能显示每个密码。

所以 Chrome 做得对。继续做你正在做的事情。

安全最佳实践是您应该使用密码保护您的计算机帐户,在无人看管时锁定您的屏幕,并且永远不要让其他人使用您的帐户。如果您遵循这个最佳实践,那么 Chrome 的模型就很有意义。您保存的密码与您的用户帐户一样安全 - 仅此而已;不少于。

当然,在现实生活中人们并不遵循这种安全最佳实践。因此,希望实施一些技术来使您保存的密码比您的用户帐户更安全。这样做有一些好处,但有一个主要问题:如果有人可以访问您的计算机帐户,那么所有赌注都将失败。他们可以安装在后台隐形运行的恶意软件,监控您所做的一切,并允许攻击者远程控制。当然,要做到这一点需要一定程度的技术技能。

因此,最终是否实施额外保护的决定是在防止不熟练的攻击者与对熟练的攻击者产生虚假的安全感之间进行权衡。我不认为这里有绝对的正确或错误——两个阵营都可以证明他们的观点是正确的。

要回答您的具体问题:

1) 如果攻击者可以访问用户的帐户(例如没有屏幕锁定),那么难度适中。他们需要安装恶意软件来记录下一个密码条目,并提取加密的保存密码文件。

2) 因此,如果攻击者无权访问用户的帐户,那么这取决于操作系统保护该帐户的程度。如果保护是坚如磐石的,那么攻击者根本无法访问保存的密码。