尝试使用 PGP 验证下载签名,但在传递 .asc 文件时出现“无签名数据”的情况?

尝试使用 PGP 验证下载签名,但在传递 .asc 文件时出现“无签名数据”的情况?

我尝试了以下步骤验证签名关于 Tor 项目:

gpg.exe --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290

  imported: 1

gpg.exe --指纹 0x4E2C6E8793298290

  pub   4096R/93298290 2014-12-15 [expires: 2020-08-24]
  Key fingerprint = EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
  uid       [ unknown] Tor Browser Developers (signing key) <[email protected]>
  sub   4096R/D9FF06E2 2018-05-26 [expires: 2020-09-12]

gpg.exe --验证 C:\Users\Cyn\Desktop\torbrowser-install-win64-8.0.4_en-US.exe.asc

  gpg: no signed data
  gpg: can't hash datafile: No data

该文件如下所示:

-----开始 PGP 签名-----

啦啦啦啦/E =oakm

-----结束 PGP 签名-----

那么我做错了什么?

答案1

这是一个独立的签名并且您需要数据。

Tor 软件包签名与您在网上找到的许多其他使用 PGP/GPG 的软件包签名一样,是 PGP/GPG 所称的分离签名——数据位于一个(通常很大)文件中,而签名位于另一个单独的(小)文件中。这就是为什么有两个下载链接(或按钮)——一个用于实际软件包,一个用于单独/分离签名。为了验证数据的分离签名,您还需要数据(和公钥);例如,对于 Windows,您需要

torbrowser-install-win64-8.0.4_en-US.exe -- the (relevant) data file 
torbrowser-install-win64-8.0.4_en-US.exe.asc -- the signature  

请注意,文件名具有相同的基础,但签名已.asc添加到末尾。如果您运行gpg[.exe] --verify file.asc分离file.asc签名,gpg 会自动在 -- 中查找数据file,如果不存在,则会失败。(对于二进制又称“未保护”签名,file.sig和同样如此file。)

您链接的页面实际上说的是“假设您已将包及其签名下载到您的桌面...”注意包裹它的签名

如果你确实有数据文件,但名称不同(包括不同的目录),或者如果它是默认名称,但你想明确说明(GPG 手册现在推荐),请指定两个都文件名:

 gpg[.exe] --verify sigfile.asc datafile

相关内容