7

我们想实现一个需要多人对文档进行数字签名的工作流程。如果我自己的钥匙串中有多个密钥,我可以做一些简单的事情:

gpg --sign -u userid1 -u userid2 filename

但是,如果我有一个已经签名的文件并且我想添加一个签名,我该怎么办?一种解决方案是让每个人都为文档生成分离的签名,然后将它们全部打包到一个 zip 文件或其他东西中,但那里的开销要高得多。有没有更好的办法?

4

1 回答 1

5

无需压缩它们:您可以简单地将分离的签名连接到一个文件中,所有这些都将被一个接一个地验证。

% gpg -b -u $ID1 -o prova.c.sig1 prova.c
% gpg -b -u $ID2 -o prova.c.sig2 prova.c
% cat prova.c.sig1 prova.c.sig2 >prova.c.sig
% gpg prova.c.sig
gpg: Signature made Mar  1 Set 18:16:09 2009 CEST using RSA key ID $ID1
gpg: Good signature from "Lapo Luchini <lapo@lapo.it>"
gpg: Signature made Mar  1 Set 18:16:25 2009 CEST using RSA key ID $ID2
gpg: Good signature from "Lapo Luchini <lapo@lapo.it>"

我已经验证了这也适用于 ASCII 装甲文件,在这种情况下,输出文件大小不是最佳的,因为每个签名都重复了标头,最好先将二进制签名和它们 ASCII 装甲连接起来整件事情。

我不太了解 OpenPGP 格式,但我想你可能也有一个软件,给定一个文件和一些分离的签名,用从所有这些文件中提取的签名包制作一个附加签名,尽管那将需要更多时间来实现(如果可能的话:可能有不同的数据包用于附加和分离的签名,一个不能在另一个中转换,但我敢打赌这个数据包只是一种类型)。

于 2009-09-01T16:23:44.500 回答