在现代浏览器中存储密码有多安全?

信息安全 网页浏览器 密码管理 账户安全
2021-08-24 08:54:59

这里已经有一些相同的问题,但它们已经有将近十年的历史了。我想知道事情是否发生了变化,尤其是现在 Chrome 已经变得更加积极地要求用户保存他们的密码,并且这些密码与云帐户相关联。

有很多针对 Chrome 当前密码保存政策的咆哮,还有很多文章对此提出警告。但是,我不知道我是否同意所有这些。

一些明显的观察结果:

反对

  • 如果有人可以物理访问您的机器,那么他们之间只有操作系统密码和您保存的每个密码。
  • 有人可能会侵入您的 Google 帐户、登录 Chrome 并访问您的所有密码。
  • 如果有人应该登录访问您的计算机,则没有“主密码”(在您的操作系统密码之外)来保护它们。

为了

  • 根据HaveIBeenPwned的说法,由于网站遭到黑客攻击,我的电子邮件地址和密码已在网上共享了数十次。(包括 Adob​​e、LinkedIn、Kickstarter 等大公司,这只是已知的黑客攻击。)在同一时间,我从来没有电脑被盗或受到物理安全漏洞的影响。
  • 如果我在每个网站上使用唯一生成的密码,并将其保存到 Chrome 中,那么其他网站帐户将不会受到其他网站安全漏洞的攻击。
  • 与几乎任何其他在线服务相比,我可能更相信 Google 能够检测并保护我免受异常活动的影响(显然,这并不是说它们是万无一失的)。

就攻击向量而言,如果您觉得自己更有可能受到物理攻击(或来自您认识的人的攻击),那么将密码保存到浏览器中可能是一个非常糟糕的主意。

但是,如果您更容易受到陌生人的远程攻击,那么在每个网站上存储唯一的密码可能会提高您个人信息的安全性。无论如何,这显然是理想的,但安全性必须考虑实用性- 普通用户不会记住每个网站的唯一密码。)

(我想知道对于 Chrome 的当前解决方案(允许用户在网站上重复使用容易猜到的密码)是否有更好的解决方案是强制(或鼓励)用户只保存唯一且复杂的密码?)

现实生活场景中的优缺点是什么?

2个回答

不如密码管理器好,总比没有好。

安全往往是以便利为代价的,而便利往往是以安全为代价的。浏览器内置的密码管理器主要是为了方便,而安全性的作用较小。做出这个决定的原因是,普通用户更容易被说服使用对他们来说方便的系统,而不是更安全但更难使用的系统。

由于您询问了现实生活场景的优缺点,我将详细说明使用浏览器内置密码管理器与 Keepass 等离线密码管理器相比的优缺点,并且根本不使用密码管理器。

使用浏览器的内置密码管理器:

优点

  • 你已经有了。如今,每个人都使用浏览器,并且所有主流浏览器都带有内置的密码管理器。这意味着从普通用户的角度来看,进入门槛非常低。
  • 它不鼓励密码重用。人们不喜欢记住密码,因此他们肯定不会记住每个站点一个密码。如果浏览器在注册时自动建议一个强密码,那么用户就不会想重新使用现有的密码。此外,如果哈希值被盗,密码管理器建议的密码可能不会被任何攻击者破解。
  • 它同步到我的其他设备。用户可以在他们的计算机上注册服务,然后在手机上使用相同的服务,而不必担心同步密码。这是一个巨大的优势!

缺点

  • 它不能防御本地攻击。可以访问用户计算机的攻击者(想想嫉妒的女朋友,而不是政府机构)可能能够相当容易地获得密码。通过访问浏览器,例如当用户忘记锁定他们的计算机时,可以在几分钟内读出所有密码。

    应该注意的是,本地攻击并不是每个用户都关心的事情。例如,我一个人住,在我的威胁模型中并没有真正的本地攻击者。

  • 它增加了攻击面。如果启用了设备之间的同步,那么我所有帐户的安全性都与我的浏览器供应商帐户的安全性相关联。此外,虽然不太可能,但并非不可能,攻击者可以窃取所有用户的加密凭据,然后开始一点一点地破解它们。

    由于我的密码有 72 个字符长并且我使用 YubiKey,所以我不太担心有人登录我的 Google 帐户 - 但这可能是您不想启用同步的原因。

  • 供应商锁定。据我所知,浏览器还没有提供某种方式将所有凭据导出为某种统一格式。这意味着,如果您在 Chrome 中保存了 200 个凭据并决定切换到 Firefox……那么,玩得开心。

使用专用的离线密码管理器:

优点

  • 更好地防御本地攻击。由于密码存储在加密文件中,该文件受主密码和可选的密钥文件保护,具有本地访问权限的攻击者可能无法窃取您的密码。在您忘记锁定 PC 的情况下,许多密码管理器都有设置在一段时间不活动后“忘记”密钥。虽然这并不能完全保护您,但它比内置密码管理器要好得多。

  • 更好的可配置性。浏览器的内置密码管理器可能会与密码策略不太理想的网站发生冲突,因此专用密码管理器可以根据指定的规则集生成密码。

  • 在浏览器之外工作。有时,我需要生成密码以通过其他方式发送,例如短信,或者在 VM 中使用它们。在这种情况下,浏览器的内置密码管理器无法解决问题。

缺点

  • 进入门槛更高。没有安全背景的用户不太可能寻找密码管理器,如果他们这样做了,他们可能会被不同的产品吓倒,例如在线密码管理器、离线密码管理器等。此外,大多数离线密码管理器有很多非常方便的功能,这可能会让“只想使用互联网”的人感到困惑。

  • 设备之间不同步。由于我的密码只是一个文件,它不会在我的设备之间自动同步。如果我有一台台式电脑、一台笔记本电脑和一部智能手机,那么我要么在它们之间手动同步我的密码数据库,要么我使用一些第三方服务来为我做这件事(如 Dropbox、Google Drive 等)

不使用密码管理器:

优点

  • 到处工作。很多时候,我需要输入某种形式的身份验证,而我根本无法使用密码管理器,例如我的 BitLocker 密码或我的 Windows 域密码。在这种情况下,记住一个强密码是我唯一的选择。

缺点

  • 鼓励使用弱密码。我不会记住像 一样的密码_B+5ZzRk!4vd2+5Q?qw$=9V,这是事实。我可能记得一个很长的密码,例如Two Blue Bunnies jump over the Square Tree and Explode.,但每次我想登录时都要输入很多密码。因此,大多数用户会倾向于使用他们认为“足够好”的最短密码,通常就像BostonNovember2020.

  • 鼓励密码重用。“我已经想到了密码或密码,现在你要我记住第二个?甚至第三个!?你的意思是我需要为我使用的每项服务记住一个新的密码?!” - 这就是人们重复使用密码的原因。

判决

专用密码管理器是一个很好的高安全性选项,它提供了大量的可配置性。但是,由于许多针对专家的工具,对于初学者来说可能很难使用。

内置密码管理器为非技术人员提供了一个很好的中间地带,提高了他们对可能威胁的安全性,同时降低了他们对不太可能的威胁的安全性。

根本不使用密码管理器应该只在没有密码管理器可用的情况下使用。


附录 A:本地攻击者如何真正获取密码?

基于浏览器的密码管理器的缺点之一是它们不能防止本地攻击。出于演示目的,我将解释一种可能的本地攻击:

让我们假设 Bob 将他所有的密码都存储在 Chrome 中。鲍勃离开家去买杂货,却忘了锁他的电脑。鲍勃嫉妒的女友夏娃怀疑鲍勃可能对她不忠,并希望查看他的各种在线帐户,看看他是否一直在和其他女人调情。她有大约 30 分钟的时间直接访问他的浏览器。

Eve 做的第一件事是打开 Chrome 的内部密码页面。这可以通过设置菜单或直接调用 URL 来完成chrome://settings/passwords在这个列表中,Eve 可以看到保存了密码的所有页面,以及相应的用户名。仅此一项就可能泄露敏感信息。在此页面上,Eve 可以单击“显示密码”按钮,但这会提示她输入 Bob 的操作系统密码,而她没有该密码。

但是,她仍然可以手动恢复任意站点的密码。例如,她最关心的网站bookofface.esbird.app. 她可以手动导航到这些站点,在那里她会看到一个登录表单。浏览器会自动将 Bob 的凭据输入到登录表单中,但由于type="password"输入字段的属性,密码被空白。通过打开开发者控制台并删除该属性,密码会以明文形式显示。

虽然此过程不如“复制所有密码”脚本快,但它仍然可以在合理的时间内完成。根据攻击者的目标,某些站点可能比其他站点更相关。因此,虽然 Bob 可能为数百个站点保存了密码,但 Eve 可能只对几个站点感兴趣。

很遗憾,我无法对 Chrome 发表评论,因为我已经很长时间没有使用它了。但是,例如 Firefox 支持使用主密码,这意味着磁盘存储是加密的,这可以防止大多数物理攻击。

不过,主密码似乎并没有在登录的设备之间共享,这让我假设您的密码是本地加密的,但是当发送到您的 Firefox 帐户时,Mozilla 将能够读取您的密码。如果您不信任您的浏览器供应商,您可能不应该使用浏览器的内置密码管理器,因此您不应该使用您的 Google/Firefox 帐户登录,或者至少您应该禁用密码同步。

正如您所提到的,让浏览器自动为您生成和填写密码的实际方面是一个相当不错的功能,对于大多数用户来说,将其作为默认设置可能是一个好主意。它避免了公共网站上密码重用的问题,而且它内置在浏览器中意味着更多的人正在使用某种密码管理器,任何(只要你信任它)总比没有好。

如果您不信任浏览器的内置密码管理器,您显然有一些选择。有第三方扩展,或者您可以使用硬件令牌,这两者都可以解决有关浏览器安全的大多数问题。此外,中间的解决方案是使用系统范围的密码管理器。例如,我使用 HP Client Security,因为我到处都有密码管理器的便利,而且我还有更多选择(我使用指纹+PIN,我觉得这足够安全)。

如果您认为浏览器的密码管理器太不安全,一个额外的选择是您可以将浏览器的密码管理器用于您不关心的随机站点上的随机、消耗性帐户,然后使用更强大的密码管理器(您的大脑是一个很好的一)用于最重要的密码(主要电子邮件、系统密码和可能的在线文件存储)。这样你就不会把所有的鸡蛋都放在一个篮子里。