【问题标题】:XPCOM Encrypt/Decrypt operation on file in Firefox ExtensionXPCOM 对 Firefox 扩展中文件的加密/解密操作
【发布时间】:2011-10-13 11:03:05
【问题描述】:

我的 Firefox 扩展需要;

  • 将用户 凭据 存储在 文件 中,该文件将存储在用户 本地 文件系统
  • 当需要凭据时,解密文件读取值并加密它 再次。
  • 有时通过http向服务器发送加密文件

我找不到任何 XPCOM 组件来加密/解密 文件。我应该编写自己的 XPCOM 对象,还是有其他合理的解决方案。

[注:] 这可能就像 Firefox 的密码管理系统。 Firefox 将主密码和密钥存储在 key3.db 文件中,并使用这些值来访问存储在 signons.sqlite 文件中的凭据。

Firefox 使用 nsILoginManager 接口进行操作。

【问题讨论】:

    标签: firefox xpcom encryption


    【解决方案1】:

    XPCOM 目前不提供使用NSS 加密功能的方法。您可以使用js-ctypes 直接调用 NSS 函数 - 不简单但可行。您可以查看WeaveCrypto.js 模块,了解使用对称密钥的示例实现。例如,DOMCrypt extension 本质上将WeaveCrypto.js 与扩展程序捆绑在一起,然后仅调用其函数(不推荐使用随浏览器分发的版本 - 这是一个内部模块,其 API 可能随时更改)。

    【讨论】:

    • 感谢您的回答弗拉基米尔。我正在寻找对文件 [不是明文] 的加密/解密操作,但我找不到任何方法来做到这一点。我的另一个大问题是将对称密钥保密。它是客户端应用程序,所以我必须向客户端提供密钥,这是不安全的。您如何看待在混淆的 Java 代码中使用 LiveConnect 和硬编码的密钥?但这一次,我将依赖 Jre 并且会受到性能损失。使用 LiveConnect 过程是否简单?
    • 加密/解密文件的操作显然包括将文件读入字符串和加密/解密字符串;)。并且没有没有在客户端存储对称加密密钥的安全方法,算了吧。根据您的用例,您可能会考虑非对称加密。
    • 谢谢弗拉基米尔。我会为我的上下文找到合适的方法并在这里更新。但我仍然想知道 firefox 如何处理其 key3.db 来存储 enc/dec 密钥。 [或者它如何保密主密码]。谢谢。
    • @MustafaYüceel: key.db 由 NSS 直接处理,Firefox 只是调用 NSS 函数。
    猜你喜欢
    • 2012-04-03
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    相关资源
    最近更新 更多