gpg 密钥服务器复制了我的密钥上的签名

gpg 密钥服务器复制了我的密钥上的签名

我创建了一个新的 GPG 密钥(rsa + rsa 子密钥),我们将其称为 key1,并将其上传到密钥服务器。它有两个 uid。

后来我用另一个密钥(我们称之为 key2)签署了这个新密钥,并上传了更改。因此,该密钥现在具有以下签名:

first uid:
    signed by key1
    signed by key2
second uid:
    signed by key1
    signed by key2
key1 - subkey;
    signed by key1

这一切都符合预期。后来我从密钥服务器刷新了我的密钥,密钥 1 获得了两个新签名。这两个签名与密钥 1 的签名重复,因此密钥现在如下所示:

first uid:
    signed by key1
    signed by key2
    signed by key1 <- duplicate
second uid:
    signed by key1
    signed by key2
    signed by key1
key1 - subkey;
    signed by key1

为什么密钥服务器会复制这些签名?它们有什么特殊用途吗?还是这只是一个错误?

答案1

假设您指的是发布此帖同一天制作的密钥的“sig 3”签名(我在服务器上检查了您的配置文件中的域),那么应该没问题,并且密钥服务器不太可能实际添加或复制现有签名。

它更可能表明密钥生成后发生了任何更改(例如,更改密码优先顺序、添加或删除密码和摘要、添加或撤销子密钥、添加或撤销 UID 等)。当对密钥进行此类更改时(包括生成密钥时),该数据将由认证密钥签名(可以选择特定的信任级别,但某些数据必须在级别 3(“sig 3”)进行自签名)。发生这种情况时,密钥上的每个 UID 都会收到另一个“自签名”。您可以通过 pgpdump 或 gpg --list-packets 运行密钥来查看完整详细信息。

如果您使用 pgpdump 并将输出通过管道传输到文本文件,则可以按时间顺序读取密钥的每次更改,方法是从底部开始向上和向前移动(通常,有时内容似乎保存在不正确的位置,或者更常见的是自上而下保存,但由于所有更改都带有时间戳,因此应该很容易解决)。要将输出限制为仅包含您所做的更改,您可以使用以下命令导出密钥的最小或干净版本:

# Normal export:
gpg -o mykey.gpg --export 0xDEADBEEF
gpg -o mykey.asc -a --export 0xDEADBEEF
#
# Clean export:
gpg -o mykey.gpg --export --export-options export-clean 0xDEADBEEF
gpg -o mykey.asc -a --export --export-options export-clean 0xDEADBEEF
#
# Minimal export (smallest):
gpg -o mykey.gpg --export --export-options export-minimal 0xDEADBEEF
gpg -o mykey.asc -a --export --export-options export-minimal 0xDEADBEEF

我建议使用最后一个(带有.gpg 扩展名,因为如果您真的愿意,您也可以将它们用作单独的密钥环文件)。

例如,我的密钥包含几次密码偏好更改,因为有新信息表明 3DES 和 CAST5 存在缺陷。这些更改在 pgpdump 中清晰可见,但使用 --list-sigs 时,显示的只是每个 UID 列出的签名末尾的附加“sig 3”签名。

我没有仔细检查你的钥匙,但你可能只是将一些零钱或其他东西保存在钥匙中。

相关内容