gpt4 book ai didi

javascript - 在 JavaScript 中使用 Mozilla 的 NSS 库(例如 WeaveCrypto.js)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:07 33 4
gpt4 key购买 nike

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

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

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

如果必须的话,我会这样做,但对我来说这听起来有点奇怪,巨大的 NSS 库在 JavaScript 中没有额外的努力是无法完全访问和使用的,即使所有的逻辑Firefox 和 Thunderbird 扩展正是用这种语言编写的(或者我错过了什么?)。

任何想法表示赞赏:)

最佳答案

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 中看不到太多相关信息,但我希望以后还有更多。

关于javascript - 在 JavaScript 中使用 Mozilla 的 NSS 库(例如 WeaveCrypto.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34610980/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com