如何验证GPG4win下载文件的真实性?

如何验证GPG4win下载文件的真实性?

我正在尝试验证我下载的 GPG4win 文件是否合法。我可以访问已验证 GnuPG 安装的计算机。我运行了

> gpg --recv EC70B1B8
> gpg -v --verify gpg4win-2.3.3.exe.sig gpg4win-2.3.3.exe
  Version: GnuPG v1.4.12 (GNU/Linux)
  gpg: armor header: 
  gpg: Signature made Thu 18 Aug 2016 05:20:50 AM EDT using DSA key ID EC70B1B8
  gpg: using PGP trust model
  gpg: Good signature from "Intevation File Distribution Key <[email protected]>"
  gpg: WARNING: This key is not certified with a trusted signature!
  gpg:          There is no indication that the signature belongs to the owner.
  Primary key fingerprint: 61AC 3F5E E4BE 593C 13D6  8B1E 7CBD 620B EC70 B1B8
  gpg: binary signature, digest algorithm SHA1

我担心的是主密钥指纹与他们网站上的代码签名证书不匹配:

代码签名证书 自 2016 年 4 月以来,所有 Gpg4win exe 安装程序文件均使用以下代码签名证书进行签名:

  S/N: 1121A3D67EAB28AA86FD85728B57FA62630D
  Issuer: CN=GlobalSign CodeSigning CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
  Subject: 1.2.840.113549.1.9.1=#636F64657369676E696E6740696E7465766174696F6E2E6465,CN=Intevation

GmbH,O=Intevation GmbH,L=奥斯纳布吕克,ST=下萨克森,C=DE sha1_fpr:DE:16:D5:97:2F:0B:73:95:F7:D9:1E:DC:1F:21:9B:0F:FE:89:FA:B3 md5_fpr:C0:98:08:94:D4:E7:97:3E:9D:F4:18:E4:5E:0A:2E:D7 notBefore:2016-03-30 16:54:41 notAfter:2019-03-31 16:54:41

我正在将其sha1_fpr与主键指纹进行比较。难道这不是正确的做法吗?

答案1

您正在比较不同类型的签名。 中的签名gpg4win-2.3.3.exe.sig是 OpenPGP 签名,您可以通过 GnuPG 进行验证(但 Windows 不支持 OpenPGP)。另一方面,代码签名证书(例如,由 Windows 进行验证)是 X.509 证书。此签名嵌入在文件中gpg4win-2.3.3.exe。如果我没记错的话,您应该能够通过SignTool verify gpg4win-2.3.3.exe

尽管 OpenPGP 和 X.509 证书基本上都依赖于相同的加密原理(即 RSA 密钥),但它们的密钥和证书并不兼容。虽然您可以使用相同的 RSA 密钥对创建证书,但它们仍然不同并且具有不同的指纹:其中包含不同的信息。

一个重要的区别还在于底层的信任系统:OpenPGP 依赖于信任网络(您正在从您自己的或其他受信任和验证的密钥开始搜索信任路径;您还没有这样做,因此消息在不受信任的签名上),X.509 使用分层方法:所谓的证书颁发机构受到信任并被允许为其他人颁发证书(这里是 Global Sign)。

相关内容