最新 OpenPGP.js 版本的 3 个新功能
创始人
2024-03-02 08:43:04
0

OpenPGP.js 是一个实现了 OpenPGP 标准的密码学库,最常用于电子邮件加密。

OpenPGP.js 是一个实现了 OpenPGP 标准 的密码学库,最常用于电子邮件加密。ProtonMail、Mailvelope 和 FlowCrypt 都使用 OpenPGP.js,这还仅仅是其中一些。也就是说 OpenPGP.js 库对数百万用户的信息进行了加密。

OpenPGP 标准首次发布于 20 世纪 90 年代,像几乎任何东西一样,需要维护和更新,以保证安全和可用性。该标准的“加密刷新” 正在进行中,它增加了现代的加密算法并废除了过时的算法。为了提高可用性,各种电子邮件应用程序现在允许用户无缝加密他们的通信,用户无需管理他们的密钥或他们的联系人的密钥。

OpenPGP.js 于 2014 年首次发布,开始基于一个名为 GPG4Browsers 的早期原型,该原型基于 Herbert Hanewinkel(以及其他贡献者)的几个脚本。OpenPGP.js 的第二个版本于 2016 年发布,完全重新设计,使用 Uint8Arrays 而不是字符串(这大大增加了其性能),并在内部使用现代 ES6 模块而不是 CommonJS 模块。第 3 和第 4 版都是在 2018 年发布的,分别增加了对椭圆曲线加密法(ECC)和流的支持。

我和我的团队继续在 OpenPGP.js 上工作,以确保其发展为一个易于使用的强加密库。

1、默认的椭圆曲线加密

在 OpenPGP.js 第 4 版中,生成新密钥时默认使用 RSA。虽然 ECC 更快、更安全,但 Curve25519 还没有在 OpenPGP 规范中得到标准化。加密刷新草案包括了 Curve25519,并且预计它将“按原样”包含在下一版本的 OpenPGP 规范中,因此 OpenPGP.js 第 5 版现在默认使用 ECC 生成密钥。

2、只导入你需要的模块

同样,虽然 OpenPGP.js 内部使用 ES6 模块多年,但第 4 版仍然没有发布一个合适的 ES6 模块。相反,它只发布了一个 通用模块定义 Univeral Module Definition (UMD)模块,可以在浏览器和 Node.js 上运行。在第 5 版中,这种情况有所改变,为浏览器和 Node.js 发布了单独的模块(包括 ES6 和非 ES6),使库用户更容易在所有平台上导入 OpenPGP.js ,且(当使用 ES6 模块时)只导入他们需要的部分。这在很大程度上是通过将构建系统切换到 rollup 来实现的。

3、拒绝弱加密技术

还有许多其他的安全改进。例如,1024 位 RSA 密钥、ElGamal 和 DSA 密钥被认为是不安全的,并被默认拒绝。此外,第 4 版已经默认使用 AES 加密,第 5 版现在完全默认拒绝使用较弱的算法进行加密,即使公钥声称只支持较弱的算法。相反,它假定所有的 OpenPGP 实现都支持 AES(这种情况已经存在很长时间了)。

OpenPGP.js 的下一步是什么?

展望未来,有一些安全方面的改进要做。用于识别公钥的密钥指纹仍然使用 SHA-1,尽管在加密技术更新中计划对此进行修复。同时,建议使用不同的方法来确定用于加密的任何公钥的真实性,例如使用提议的 网络密钥目录 Web Key Directory (WKD)标准直接从收件人的域中获取整个密钥,这已经由各种 电子邮件提供商 实现。WKD 支持内置于 OpenPGP.js 第 4 版,但在第 5 版中是一个单独的模块,以保持主库的精简。

同样,当用密码而不是公钥加密信息或文件时(例如:在使用 OpenPGP 进行电子邮件加密时不常见,但在用于加密备份时更常见),密码会使用相对较弱的 密钥衍生函数 Key Derivation Function (KDF)转换为对称密钥。因此,建议应用在将用户的密码传递给 OpenPGP.js 之前,先通过一个强大的 KDF,如 Argon2scrypt。希望加密刷新草案会包括这些算法中的一种,以便在未来的 OpenPGP.js 版本中实现。

如何使用 OpenPGP.js 第 5 版

不过现在,OpenPGP.js 第 5 版已经 发布 到 npm 仓库。如果你喜欢,可以随时试用!欢迎在 GitHub 的 讨论版 中进行反馈。然而,请注意,虽然 OpenPGP.js 是一个通用的加密库,但它的主要使用情况是在需要与 OpenPGP 规范兼容的情况下(例如,在发送或接收 PGP 加密的电子邮件时)。对于其他的使用情况,不同的库可能是一个更合适或性能更好的选择。当然,总的来说,在尝试使用任何加密技术时都要小心。

感谢阅读,这里是保护电子邮件的未来!


via: https://opensource.com/article/21/10/openpgpjs

作者:Daniel Huigens 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

AI智能体自作主张删邮件,...
智能体OpenClaw从1月下旬爆火之后,其安全风险也逐渐暴露。 ...
2026-03-01 14:49:47
美作家群体遭AI“杀猪盘”...
【环球时报综合报道】据美国《纽约时报》25日报道,一种利用人工智能...
2026-02-27 08:52:37
AI“发狂”光速清空美AI...
近日,Meta公司超级智能实验室的AI对齐总监Summer Yue...
2026-02-26 18:49:08
AI现在到底有多能打?从替...
“帮我写周报” “生成一只赛博朋克的猫” “把这篇英文论文翻译成中...
2026-01-27 19:52:11
谷歌搜索AI模式可通过邮件...
新榜讯 ,谷歌正助力AI模型提供更具个性化的搜索响应,允许聊天机器...
2026-01-23 09:18:53
谷歌将Gemini AI助...
IT之家 1 月 11 日消息,谷歌官方本周(1 月 8 日)发文...
2026-01-11 18:19:22

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
在抛弃 Xorg 之前,请三思... LCTT 译注:之前翻译发布的《Wayland 真的毁掉一切了吗?》引来了很多讨论,为了使讨论更全面...
Wine 9.0 发布,实验性... Wine 的这个新版本正在为未来做好准备!Wine 是一款广受欢迎的开源兼容性层,可以轻松地 在 L...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...