列出 gpg 密钥环中具有 SHA-1 的所有密钥

列出 gpg 密钥环中具有 SHA-1 的所有密钥

读完一篇关于“SHA-1 上的首次选择前缀冲突及其在 PGP 信任网中的应用”,我想知道特定密钥环中还剩下多少个 SHA-1 密钥。

如何列出 gpg 密钥环中使用的所有密钥SHA-1

答案1

要获取指定与特定密钥一起使用的哈希算法的详细信息,请编辑该密钥,然后显示该密钥的首选项列表:

gpg --list-keys

获取您要查询的密钥指纹,然后编辑查询密钥首选项:

gpg --edit-key <key fingerprint>
gpg> showpref
[ unknown] (1). Bob Smith (GPG Key) <[email protected]>
     Cipher: AES, CAST5, 3DES
     Digest: SHA1, RIPEMD160
     Compression: ZLIB, ZIP, Uncompressed
     Features: MDC, Keyserver no-modify

您可以在命令行中控制用于密钥生成的哈希,例如使用“--cert-digest-algo SHA512”和“--s2k-digest-algo SHA512”。有关更多详细信息,请参阅手册页。

您还可以更改默认首选项。 “gpg --version”将显示您当前的设置。编辑 gpg.conf 以显式删除 SHA1,以便将来创建 setpref 重置的默认密钥:

personal-cipher-preferences AES256 TWOFISH AES192 AES
personal-digest-preferences SHA512 SHA384 SHA256
personal-compress-preferences ZLIB BZIP2 ZIP

从手册页:

显示偏好

所选用户 ID 的更详细首选项列表。这通过包含 3DES(密码)、SHA-1(摘要)和 Uncompressed(压缩)的隐含首选项(如果尚未包含在首选项列表中)来显示有效的首选项。此外,还显示了首选密钥服务器和签名符号(如果有)。

设置偏好字符串

将所有(或仅选定的)用户 ID 的用户 ID 首选项列表设置为字符串。调用不带参数的 setpref 将首选项列表设置为默认值(内置或通过 --default-preference-list 设置),并使用“none”作为参数调用 setpref 设置空首选项列表。使用 gpg2 --version 获取可用算法的列表。请注意,虽然您可以更改属性用户 ID(也称为“照片 ID”)上的首选项,但 GnuPG 不会通过属性用户 ID 选择密钥,因此 GnuPG 不会使用这些首选项。设置首选项时,您应该按照您希望其他人在将消息加密到您的密钥时使用的顺序列出算法。如果不包含 3DES,它将自动添加到末尾。请注意,选择算法需要考虑很多因素(例如,您的密钥可能不是唯一的接收者),因此用于发送给您的远程 OpenPGP 应用程序可能会或可能不会遵循您为给定的确切选择的顺序信息。但是,它只会选择每个接收者密钥的首选项列表中存在的算法。另请参阅下面的与其他 OPENPGP 程序的互操作性部分。

要实现自动化,需要提取每个密钥,然后查询首选项。

相关内容