我的密码(存储在浏览器中)安全吗?

我的密码(存储在浏览器中)安全吗?

越来越多的情况是,许多浏览器扩展和插件需要访问“我的所有数据”(在 Chrome 和 Firefox 中;我不会对 Internet Explorer 发表评论)。

我想知道当我访问这些插件和附加组件时,它们是否可以访问我的银行数据(例如),或者访问通过表单提交的数据。

附加组件的安全隐患是什么?

答案1

这篇文章仅适用于 Firefox 和 Chromium/Google Chrome。我无法评论 Internet Explorer、Opera 或移动浏览器。另外,我下面的计算可能不正确,但基本思路是正确的。

当然这是可能的,但是对于 Firefox 和 Chrome/Chromium 来说,可能性不大。

我的密码(存储在浏览器中)安全吗?

这是我最喜欢的答案之一:视情况而定。浏览器保存的密码需要满足一个重要的、从安全角度来看是噩梦般的条件:它们需要纯文本或可恢复为纯文本。

纯文本、加密文本和散列文本

为什么这很糟糕?好吧,想象一下有人闯入服务器并窃取密码数据库。有两种可能的结果:

  1. 密码是纯文本(或很容易被逆转),因此破解者现在可以完全访问所有帐户。
  2. 密码是哈希(或加密),则需要对哈希进行暴力攻击才能获取密码并访问帐户。即使现在您的用户名和密码被盗,您的帐户仍然是安全的。

由于浏览器需要能够将密码发送到网站,因此它无法哈希密码,它只能加密(甚至将其存储为纯文本)。这是我们应该始终牢记的事情(对于电子邮件客户端、聊天应用程序等也是如此)。

加密并不意味着安全

Firefox 默认允许你保存密码。它还加密它们. 同样适用于 Chromium(参见附录“这得看情况...”)。这样做的问题是解密密钥也与密码一起存储。这给那些想要您的密码但又不以任何方式阻止他们的人来说,加密带来了一点不便。

那么不要将密钥与密码一起存储!

没错,要设置密码更安全,我们需要从加密密码中获取密钥。在 Firefox 中,可以通过设置主密码,然后用于加密和解密所有密码。通过使用此技术,您可以分离钥匙从加密数据中,这始终是一个好主意(毕竟,您不会将前门钥匙挂在外面门前的挂钩上,对吧?)。

密码的安全性取决于你设置的密码

那么,为什么我之前说你的密码现在更安全并不是安全的? 因为现在密码的安全性取决于您选择的密码。也就是说,密码“asdf”无论如何都不能被视为安全;“12345”也不安全。好的密码是长的, 因为暴力破解需要花费相当长的时间。从技术上讲,密码“VioletIsAnotherColor”比“D0!l4riZe”更安全,因为它的长度较短,尽管后者包含特殊字符。让我们简单看一下。

“VioletIsAnotherColor”
长度:20
可能的字符:52(26 个小写字母 + 26 个大写字母)

“D0!l4riZe”
长度:9
可能的字符:77 (26 个下划线 + 26 个上划线 + 10 个数字 + 15 个特殊字符)
特殊字符:“@$%&/()=?*+#-

那么,在知道这些密码的字符集和长度的情况下,我们需要尝试多少次才能破解这些密码?

“VioletIsAnotherColor”
52 20 = ~20 十亿亿(~2 × 10 34

“D0!l4riZe”
77 9 = ~95 千万亿(~9 × 10 16

正如我们所见,尽管后一个密码的字符集更广泛,但比字符集有限的长密码更容易被暴力破解。这是因为密码长度。(另一个好处是第一个密码更容易记住。)有关此事的详细信息,请参阅此 IT 安全问题。

所以,如果可能的话,使用密码短语,而不是密码

回到正题,我的密码能抵御欺骗插件的攻击吗?

不是。这是因为插件可以访问您刚刚访问的网站。它们可以从中提取信息,包括输入的密码。插件和其他已安装的软件一样存在安全风险。仅安装您信任的插件。

太棒了!我怎么知道的?

仅安装来自您信任的来源的附加组件。对于 Firefox,它是附加组件页面对于 Chromium 来说,它是Chrome 网上应用店,或者如果您信任作者/发行商。两者都保证附加组件经过检查并且是安全的。

无论是Mozilla 附加组件页面也不是Chrome 网上应用店以任何方式保证插件是安全的。他们采用自动审核流程,可能会或可能不会捕获恶意插件。归根结底,风险仍然存在。

仅安装来自以下来源的插件相信。

等一下;您刚才提到了其他已安装的软件吗?

当然!没有什么可以阻止其他已安装的软件从浏览器获取您的密码、执行中间人攻击,甚至提供欺骗您银行网站的代理。浏览器插件也是如此。经验法则是:不要安装您不信任的软件。

结论

您应该从中得到什么启示?

  • 切勿安装您不信任的软件/插件/附加组件。
  • 如果您仍有疑问,请设置主密码。
  • 如果仍有疑问,请不要将密码信任给您的浏览器,也不要保存它们。
  • 如果仍然如有疑问,切勿安装任何附加组件/插件。
  • 如果仍然如有疑问,请使用直播系统,不可篡改。

附录:“嗯,这取决于……”

据我了解,本段中的假设并非 100% 正确,我想纠正这一点。以下信息仅适用于磁盘上密码的存储。

Google Chrome/Chromium

事实上根据所运行的操作系统,以安全的方式将密码保存在磁盘上:

微软Windows

Microsoft Windows API CryptProtectData/CryptUnprotectData用于加密/解密密码。此 API 与您的 OS 帐户密码配合使用,因此其安全性取决于该密码的安全性。

苹果系统

MacOS 的层根据当前用户的钥匙串密码生成一个随机密钥,并将该密钥添加到钥匙串中。同样,这只与用户的密码一样安全。

Linux

嗯……就不说这个了。

好吧,如果你一定要知道,它确实做了我所假设的事情:它用硬编码密码存储数据。为什么会这样?很简单,因为没有常见的与其他两个系统不同,Linux 缺乏加密系统或安全性;有很多可用的密钥环/钥匙串和密码存储解决方案在用户空间。看来,Chrome 开发人员决定不使用其中之一。“为什么?”我无法回答这个问题。

火狐

始终使用与密码一起存储的生成密钥。例外情况是,如果您设置了主密码,那么这将使用。

相关内容