我尝试了以下步骤验证签名关于 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