越来越多的情况是,许多浏览器扩展和插件需要访问“我的所有数据”(在 Chrome 和 Firefox 中;我不会对 Internet Explorer 发表评论)。
我想知道当我访问这些插件和附加组件时,它们是否可以访问我的银行数据(例如),或者访问通过表单提交的数据。
附加组件的安全隐患是什么?
答案1
这篇文章仅适用于 Firefox 和 Chromium/Google Chrome。我无法评论 Internet Explorer、Opera 或移动浏览器。另外,我下面的计算可能不正确,但基本思路是正确的。
当然这是可能的,但是对于 Firefox 和 Chrome/Chromium 来说,可能性不大。
我的密码(存储在浏览器中)安全吗?
这是我最喜欢的答案之一:视情况而定。浏览器保存的密码需要满足一个重要的、从安全角度来看是噩梦般的条件:它们需要纯文本或可恢复为纯文本。
纯文本、加密文本和散列文本
为什么这很糟糕?好吧,想象一下有人闯入服务器并窃取密码数据库。有两种可能的结果:
- 密码是纯文本(或很容易被逆转),因此破解者现在可以完全访问所有帐户。
- 密码是哈希(或加密),则需要对哈希进行暴力攻击才能获取密码并访问帐户。即使现在您的用户名和密码被盗,您的帐户仍然是安全的。
由于浏览器需要能够将密码发送到网站,因此它无法哈希密码,它只能加密(甚至将其存储为纯文本)。这是我们应该始终牢记的事情(对于电子邮件客户端、聊天应用程序等也是如此)。
加密并不意味着安全
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 开发人员决定不使用其中之一。“为什么?”我无法回答这个问题。
火狐
始终使用与密码一起存储的生成密钥。例外情况是,如果您设置了主密码,那么这将还使用。