2012-02-16 60 views
7

Mozilla声称有人可以坐在你的电脑上,并在15秒内获得每个网站的密码。我在第一次编写Firefox扩展时学到了,我可以访问用户目录中的任何文件(因为它是用户拥有的)。如果密码被解密并写在用户目录的某个位置,那么它们可以在会话期间由恶意扩展程序或使用可访问用户目录的网页代码的网站访问。软件安全设备在Firefox中使用的过程是什么?确保站点密码真正安全,不受这些恶意代码的影响?Firefox的软件安全设备如何保护密码?

解密硬盘驱动器的密码将是不安全的,因为其他进程可以读取它们。软件安全设备是否将它们解密到用户目录?

如果没有,那么软件安全设备是否只在内存中解密它们?如果是这样,那么另一个应用程序读取软件安全设备的应用程序空间的可能性是多少?

请说明。

描述过程不应该是一个秘密,因为秘密是脆弱和弱点的表现,相反,真正安全的方法需要强力破解。关于加密过程的开放政策给予了更广泛的受众,这增加了更安全解决方案的可能性。

我提起这个问题,因为它没有在Mozilla网站上的软件安全设备解释或主密码解释中描述,让我想知道我们是否真的使用该功能的安全。

回答

12

密码存储在用户个人资料目录中的SQLite数据库signons.sqlite中。默认情况下,它们没有真正加密 - 从这个文件中提取它们并且“解密”是微不足道的。为了在这里获得一些安全性,用户必须定义​​一个主密码(在Firefox选项的安全选项卡上),这个密码将用于加密数据库中的密码。如果已经完成,那么从signons.sqlite提取密码并不重要,必须猜测主密码。

但Firefox需要解密密码才能使用它们。如果某些浏览器代码请求密码(通过nsILoginManager),将出现主密码提示 - 用户需要输入主密码以允许解密其密码。解密后的密码永远不会写入磁盘,但浏览器(以及任何浏览器扩展)在此之后将能够访问它们。

Firefox不会阻止扩展访问密码,因为它毫无意义。防止恶意扩展获取密码的唯一方法是避免首先安装恶意扩展。即使nsILoginManager不在那里,当密码传输时,恶意扩展仍然可以嗅探与网页的通信。或者它可以听取您在输入主密码时输入的内容。或者它可以伪造主密码对话框并直接获取主密码。有很多可能性 - 应用程序不可能击败以相同特权运行的另一个应用程序。

PS:软件安全设备用于证书,而不是密码 - 完全无关。但它使用相同的主密码,因此造成混淆的对话框。

+2

优秀答案 – 2012-02-16 11:51:58

+0

很高兴在Mozilla上看到这个解释。图表也会有帮助。谢谢。这给主题带来了一些亮光。 – user1213645 2012-02-16 15:24:31

+0

主要重点似乎是物理访问保护。显然比没有保护更好。 我认为我们不应该注销更多的保护措施。随着其他考虑和头脑风暴,Firefox可能会更强大。 如果一个人每次导航到要求输入密码的页面时都同意给出主密码,这将有助于防止扩展和其他在线请求无限制地访问所有密码。用户方面做了一些努力,但仍然很方便,因为他们为所有帐户输入了一个密码。 – user1213645 2012-02-16 16:39:23