验证特定用户是否签署了GPG加密文件


7

我有一个加密并由GPG签名的文件。

gpg手册页中,对于该--decrypt选项,它说:

如果解密的文件已签名,则还会验证签名。

我想做的不仅仅是验证签名是否有效“如果文件已签名” - 我想:

  • 检查文件是否已签名
  • 检查签名是否来自密钥环中的特定用户或用户子集

什么gpg命令可以用来做到这一点?

Answers:


5

--decrypt选项已经完成了大部分工作。

$ gpg --decrypt <test.gpg
gpg:使用4096位RSA密钥加密,ID CE7B5510340F19EF,创建于2009-10-31
      “grawity <grawity@gmail.com>”
WELL(或整个地球的Lectronic Link)是边境最新事物的一个例子
村庄,电脑公告板。在这样的小镇,主街是一个
中央小型机(在WELL的情况下)多达64台微型计算机
可以通过电话线和称为调制解调器的小闪烁盒一次连接。
gpg:Signature made 2015-05-15T07:52:55 EEST
gpg:使用RSA密钥D24F6CB2C1B52632
gpg:来自“grawity <grawity@gmail.com>”的好签名[终极]
gpg:又名“grawity <grawity@example.org>”[终极]

有关机器可读信息,您可以使用--status-fd

[GNUPG:] ENC_TO CE7B5510340F19EF 1 0
[GNUPG:] BEGIN_DECRYPTION
[GNUPG:] DECRYPTION_INFO 2 9
[GNUPG:] PLAINTEXT 62 1431665575 
[GNUPG:] NEWSIG
[GNUPG:] SIG_ID 8AaWsnfpINFLIVjEqk665x7fuKA 2015-05-15 1431665575
[GNUPG:] GOODSIG D24F6CB2C1B52632 grawity <grawity@gmail.com>
[GNUPG:] NOTATION_NAME issuer-fpr@notations.openpgp.fifthhorseman.net
[GNUPG:] NOTATION_DATA 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] VALIDSIG 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632 2015-05-15 1431665575 0 4 0 1 10 00 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] TRUST_ULTIMATE
[GNUPG:] DECRYPTION_OKAY
[GNUPG:] GOODMDC
[GNUPG:] END_DECRYPTION

双方GOODSIGVALIDSIG在此意味着签名进行检查,TRUST_*对应于该密钥的认证级别。例如,您直接签名(或签名)的密钥将具有TRUST_FULL。

您可以将此包装在一个脚本中,该脚本将检查VALIDSIG中的指纹与密钥白名单,或者只依赖于密钥信任模型。

请注意,由于PGP使用sign-before-encrypt ,因此无法在不先解密文件的情况下检查文件是否已签名。


0
gpg --decrypt < data.pgp > /dev/null

这将导致以下输出:

gpg: encrypted with 4096-bit RSA key, ID B91FFCCDDEE362261A, created 2015-05-21
      "Shubham Chaudhary <me@chaudhary.xyz>"
gpg: Signature made Mon Aug 21 23:13:03 2017 IST
gpg:                using RSA key 71B6BEEFEED2DCA
gpg:                issuer "Shubham Chaudhary <test@shubhamchaudhary.in>"
gpg: Good signature from "Shubham Chaudhary <me@chaudhary.xyz>" [ultimate]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.