【问题标题】:OpenPGP.js says elgamal keys are considered too weakOpenPGP.js 说 elgamal 密钥被认为太弱了
【发布时间】:2022-01-28 07:14:11
【问题描述】:

我们在传输前使用 PGP 加密来加密文件。我们使用 npm 包 OpenPGP.js 使用来自收件人的公钥加密文件。我已经以装甲格式导出了公钥,以便与 openpgp.encrypt 函数一起使用。

这是加密文件的代码:

const publicKey = await openpgp.readKey({ armoredKey: key.publicKey });

const encrypted = await openpgp.encrypt({
    message: await openpgp.createMessage({ text: readStream }), 
    encryptionKeys: publicKey
});

但是函数调用会产生这个错误:

错误:错误加密消息:找不到有效的加密密钥 密钥 ea8be7d9f2fd53a7 中的数据包:elgamal 密钥被认为太弱。

gpg --list-keys 的输出给出以下信息

pub   dsa1024 2010-07-23 [SCA]
      ABCDEFGHIJK
uid           [ unknown] my recipient <my.recipient@email.com>
sub   elg2048 2010-07-23 [E]

我可以使用 GnuPG 加密文件,但 OpenPGP 似乎不喜欢公钥。此错误消息有效吗?我是否需要向客户端请求另一个密钥,或者有没有办法绕过此错误消息?

*编辑:经过一些研究,我发现 DSA-1024/(ElGamal-anything) 不再安全,所以我可能不得不请求制作新密钥。

【问题讨论】:

    标签: node.js public-key-encryption pgp openpgp.js


    【解决方案1】:

    OpenPGP 实现有不同的安全考虑,OpenPGP.js 似乎决定通过这个 PR 默认拒绝 DSA/ElGamal:https://github.com/openpgpjs/openpgpjs/pull/1264/files#

    但是可以通过配置覆盖此行为,测试中提供了示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-16
      • 2016-03-12
      • 2011-04-17
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多