尝试使用 PGP 验证下载签名,但在传入 .asc 文件时获得“无签名数据”?

Dr-*_*ket 1 signature pgp

我从验证Tor 项目的签名中尝试了以下步骤:

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

  imported: 1
Run Code Online (Sandbox Code Playgroud)

gpg.exe --fingerprint 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) <torbrowser@torproject.org>
  sub   4096R/D9FF06E2 2018-05-26 [expires: 2020-09-12]
Run Code Online (Sandbox Code Playgroud)

gpg.exe --verify 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
Run Code Online (Sandbox Code Playgroud)

该文件如下所示:

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

等等等等等等/E =oakm

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

那么我做错了什么?

dav*_*085 5

这是一个分离的签名,您需要数据。

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  
Run Code Online (Sandbox Code Playgroud)

请注意文件名如何具有相同的基数,但签名已.asc添加到末尾。如果您运行gpg[.exe] --verify file.ascwhere file.ascis a detached signature,gpg 会自动查找其中的数据file-- 如果不存在则失败。(同样适用于file.sigfile适用于二进制又名“无装甲”签名。)

你实际上链接的网页说:“假设你下载的软件包和你的桌面...签名”通知它的签名

如果您确实拥有数据文件但使用不同的名称(包括不同的目录),或者如果它使用默认名称但您想要明确(GPG 手册现在建议这样做),请指定两个文件名:

 gpg[.exe] --verify sigfile.asc datafile
Run Code Online (Sandbox Code Playgroud)