校验方法
gpg --verify OnionShare.dmg.asc OnionShare.dmg
与某个文件和拥有者建立信任
验证下载文件的第一步是与任何提供文件下载的人建立信任。出于此,我们下载了这个文件的公钥,并且验证公钥的拥有者是否是他或者她自称的。
在下载完文件拥有者的公钥后:
$ wget https://onionshare.org/signing-key.asc
使用gpg命令导入公钥到你的keyring中
$ gpg—importsigning-key.asc
一旦拥有者的公钥导入后,他会像下面那样打印出一个key ID(比如:”EBA34B1C”)。记住这个key ID。
现在,运行下面的命令检查导入的公钥的指纹:
$ gpg—fingerprint EBA34B1C
你会看到key的指纹字符串。把这个和网站上显示的指纹做对比。如果匹配,你可以选择信任这个文件拥有者的公钥。
一旦你决定相信这个公钥,你可以通过编辑key来设置信任级别:
$ gpg—edit-key EBA34B1C
这个命令会显示GPG提示符:
在GPG提示符中输入“trust”,它会让你从1-5之间选择这个key的信任等级。
本例中,我决定分配给它“4”,在这之后,输入“sign”用你自己的私钥签名,接着输入在GPG提示符中输入“save”来完成操作。
要注意的是不需要这样明确地给一个公钥指派信任,通过key的导入隐式地信任往往就够了。
给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个称之为“信任网”的复杂机制。
回到教程,现在让我们检查导入的key列表。
$ gpg—list-keys
你至少会看到两个key:一个带 depth 0和终极信任(“1u”),这就是你自己的key,另外一个带depth 1和完全信任(“1f”),这是你之前签名的key。
验证文件的可靠性/完整性
一旦你建立了与文件拥有者和他的/她的公钥之间的信任关系,我们需要验证你从拥有者那边下载的文件的可靠性和完整性了。
本例中,文件拥有者分别公布了一个文件和它相关的PGP签名(.asc)。签名所起的作用就是认证(文件)并且在其中加入一个时间戳。
一个典型的签名(*.asc)看上去像这样。
——-BEGINPGP SIGNATURE——-
iQIcBAABCgAGBQJUJGhsAAoJEP1yCtnro0sc1jUP/ixNY/lKdrcMIAUoqlWKNE8f
sj4SFiwREMew76w66GASDF03fa5zPX6EsS2kucgx8ZsfEiSmN5T0y2P/aSaXwZqF
kywZVEzirKtca5AJ4DBzu6qrt9GgSw6JBJVv1oBJCMNyO+eAj341paR3MudvnyQz
H/N5tc4Qcilzy6M184opGIzy4ipEmMXfLHsd7WJpAyn+tO/z3uhh9NkNuygZpaFr
olpSWPE8revdDJyfMfSmb3ZrFmhLn7FCEltOi+a7SluvrMclizfnbec9rgLJtjo0
CPDZY7tsWmmL0DA3VvpMVqGvkg/Dyhpn2IIDrNaLAlvGQ5aovf+4tjad5IHvyaWx
4Gds93G6Hqvv5RwGx7OR3hgt2o0Y+qFsVDxVnPxerGhXeJXHzSDwLQMpdj9IoSU
Ae/53XXnxqSN6POZcwHiHvbsv0pdlg0Ea0dDAAN0ZeINNyZf1R0tLjWkcgpvGCtv
qkJuYFF9W9cWHraPY2ov5Hs/JZzPcG0eVpnDdzfOOH1gDKADq9A5D2X5QJCulsh9
WwU3X+E43OqIsoRzBucItD9HhZbEH7t8Q0xAqnAkgU3hriZp3dN4cnMfhM6I9hli
EmpSpLKCceMexu2o9QgzGXVm+AGZJe4QkuwAhRIccp5JDMVny61UlKTasjy6co8h
5GBhhYybPEFM+G1BODMd
=c9wo
——-ENDPGP SIGNATURE——-
现在让我们同时下载它的文件和签名:
$ wget https://onionshare.org/files/0.6/OnionShare.dmg
$ wget https://onionshare.org/files/0.6/OnionShare.dmg.asc
现在验证下载文件的PGP签名。
$ gpg—verifyOnionShare.dmg.ascOnionShare.dmg
如果命令的输出包含了“Good signature from ”,那么下载的.dmg文件就被成功地认证和核实了。如果下载的文件的任何地方在签名后被篡改了,那么验证就会失败。
这时你就可以放心地信任你下载的文件了。