Security Firefox安全存储插件?

Security Firefox安全存储插件?,security,firefox-addon,storage,Security,Firefox Addon,Storage,从我对Firefox插件的理解来看,恶意Firefox插件的想法并不是其威胁模型的一部分。在这种情况下,如果Firefox插件想要从用户的浏览器中窃取信息,它就不会提供安全性。这与其他浏览器(如Chrome)相比,Chrome会对不同的扩展进行沙盒处理 如果这是真的,我的问题是,您建议如何为firefox插件提供某种安全存储?加载项可以访问其他加载项的信息吗?以存储用户密码副本的密码管理器为例 我的想法与某种密钥派生函数有关,它会提示用户输入他们的凭据以解锁信息 编辑:还想知道Mozilla S

从我对Firefox插件的理解来看,恶意Firefox插件的想法并不是其威胁模型的一部分。在这种情况下,如果Firefox插件想要从用户的浏览器中窃取信息,它就不会提供安全性。这与其他浏览器(如Chrome)相比,Chrome会对不同的扩展进行沙盒处理

如果这是真的,我的问题是,您建议如何为firefox插件提供某种安全存储?加载项可以访问其他加载项的信息吗?以存储用户密码副本的密码管理器为例

我的想法与某种密钥派生函数有关,它会提示用户输入他们的凭据以解锁信息


编辑:还想知道Mozilla SDK API如何解决这些问题:

你是对的,Firefox加载项以与应用程序本身相同的权限运行,这意味着创建安全屏障绝非小事(Chrome扩展也不是小事,而是以更微妙的方式)

最接近安全数据存储的是-如果用户定义了主密码,则存储在那里的数据是加密的。任何Firefox扩展都可以读取存储密码的文件,但在不知道主密码的情况下对其进行解密目前被认为是不可能的。这里的弱点是密码提示:

  • 为了使这些密码提示不那么烦人,提示只显示一次。之后,任何扩展都可以访问数据,而无需触发新的提示
  • 扩展可以很容易地伪造主密码提示,并给出其出现的合理原因——像这样的社会工程攻击很少失败
  • 但是扩展甚至不必激活,它只需等待密码提示自行出现即可。然后它所要做的就是记住输入的密码
这是您的两难境地:您的扩展可以加密数据,使其更难检索。但是,您仍然需要向用户查询密码,该密码为恶意扩展提供了攻击点-此密码提示必须发生在恶意扩展无法触及的地方。即使您成功做到了这一点,从理论上讲,恶意扩展也可以简单地将您的扩展替换为一个被操纵的副本,一旦输入密码,该副本将发送数据

总而言之:不,您无法对抗恶意扩展。用户安装恶意扩展时,您已经丢失了该扩展。那么您唯一的选择就是运行一个具有管理员权限的服务来管理数据,Firefox扩展和Firefox本身都无法访问。即使如此,您仍然需要弄清楚如何使用该数据,使其不会被恶意扩展截获


这正是为什么addons.mozilla.org上的所有扩展都必须经过一个审查过程,并且强烈反对安装未经审查的扩展。

只是想指出,Chrome存储也不安全,只是当一个扩展试图访问其他扩展的数据时受到了一些限制。(由于这篇评论的篇幅太长,所以请给出一个答案)

  • 其他进程通常能够很好地访问Chrome用户数据,包括扩展数据和您在其中输入的任何敏感信息,如密码
  • Chrome扩展还可以访问(并因此窃取)大量Chrome用户数据,这些数据大多是无需麻烦的,比如cookies/localStorage
  • Chrome扩展可能拦截请求(
    Chrome.webRequest
    ),直接从请求中取出数据或篡改请求
  • 或者执行更高级的社会工程/网络钓鱼攻击,让用户运行一个全面的恶意软件,然后完全破坏系统及其上的所有数据。比如替换合法网站上的软件下载链接,或者使用
    chrome.downloads

因此,Chrome扩展/Chrome沙盒不能保护您的数据免受全面的恶意软件攻击,只能在一定程度上保护您的数据免受Chrome扩展恶意软件攻击。

感谢您的回复。这很好,证实了我的恐惧。您知道新的Mozilla Jet pack SDK是否解决了这些问题吗。我之所以提到它,是因为他们的“简单存储”API提到它“对您的加载项是持久的和私有的”@Lizbeth:不,SDK只能做常规扩展。“外接程序专用”并不意味着高安全性,它只意味着API为每个外接程序创建一个单独的存储区域。这并不是为了防止恶意加载项,这些加载项仍然可以轻松读取或操作数据,这是Firefox配置文件中的一个简单JSON文件。是的,这正是我所说的Chrome上的安全屏障也不能提供完全的安全性(或者在许多情况下根本没有)。