【问题标题】:Using Mozilla's NSS library in JavaScript (e.g. WeaveCrypto.js)在 JavaScript 中使用 Mozilla 的 NSS 库(例如 WeaveCrypto.js)
【发布时间】:2016-04-09 05:40:06
【问题描述】:

我正在开发一个 Thunderbird 扩展,它主要是在 JavaScript 中完成的。我想在 JavaScript 中使用 Mozilla 的 NSS (Network Security Services) 库中的几个函数。 Thunderbird 中内置了一个 JavaScript 包装器,名为WeaveCrypto.js,我目前正在使用它。 WeaveCrypto 的问题在于它的年龄(AES-256-CBC 在 2010 年可能已经足够好,但今天不再推荐,例如通过 this。SHA1 也不是真正推荐作为 PBKDF2 @987654324 中的 prf 算法@.) 和硬编码值,如迭代、算法和密钥长度。

JavaScript Crypto 已进入“过时内容存档”,而DOMCrypt 仅在 Firefox 中可用。

我目前正在与 WeaveCrypto 的开发者 Justin Dolske 聊天。他目前的看法是我可以分叉 WeaveCrypto,如果我只添加算法 ID 并只更改一小部分逻辑(如硬编码值到可更改的值),他们可能会将我的分叉版本添加到 Thunderbird。

如果必须的话,我会这样做,但我觉得有点奇怪,尽管所有逻辑Firefox 和 Thunderbird 扩展是用这种语言编写的(或者我错过了什么?)。

任何想法表示赞赏:)

【问题讨论】:

标签: javascript thunderbird nss


【解决方案1】:

Justin Dolske 告诉我 WebCryptoAPI 使用 JavaScript 中的 NSS 库。自 version 34 起,它在 Firefox 中完全可用(从那时起可能也在 Thunderbird 中)。然而,著名的 Internet Explorer 不支持大多数部分,这使得在浏览器应用程序中使用它变得更加困难。它似乎仍然非常适合 Firefox 和 Thunderbird 扩展。

它的文档不完整,但还不错。这是一些JavaScript Example Code。

Documentation on common crypto functions 也可用。

Personal Security Manager (PSM) 也使用 NSS 库,但似乎不适用于 JavaScript 扩展。

但是:NSS 中支持的算法不是最先进的。有像 SJCL JavaScript Crypto Lib 这样的 JavaScript 库,其中包含更强大的算法。不幸的是,不建议使用用 JavaScript (Javascript Cryptography Considered Harmful) 编写的加密函数。

结论:这就是为什么 NSS 库看起来不错的原因,因为它是用 C 编写的,因此应该比 JavaScript 更快、更安全实施。但它应该更新到最新的安全标准。在NSS 3.3 Plan 中,他们已经在“必须拥有”下提到了“更新加密技术列表”,在“很好拥有”下提到了“椭圆曲线密码学 (ECC)”。我在NSS BurnDownList 中看不到太多关于此的信息,但我希望还有更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多