校验方法

    1. gpg --verify OnionShare.dmg.asc OnionShare.dmg

    与某个文件和拥有者建立信任

    验证下载文件的第一步是与任何提供文件下载的人建立信任。出于此,我们下载了这个文件的公钥,并且验证公钥的拥有者是否是他或者她自称的。

    在下载完文件拥有者的公钥后:

    $ wget https://onionshare.org/signing-key.asc

    使用gpg命令导入公钥到你的keyring中

    $ gpg—importsigning-key.asc

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图1

    一旦拥有者的公钥导入后,他会像下面那样打印出一个key ID(比如:”EBA34B1C”)。记住这个key ID。

    现在,运行下面的命令检查导入的公钥的指纹:

    $ gpg—fingerprint EBA34B1C

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图2

    你会看到key的指纹字符串。把这个和网站上显示的指纹做对比。如果匹配,你可以选择信任这个文件拥有者的公钥。

    一旦你决定相信这个公钥,你可以通过编辑key来设置信任级别:

    $ gpg—edit-key EBA34B1C

    这个命令会显示GPG提示符:

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图3

    在GPG提示符中输入“trust”,它会让你从1-5之间选择这个key的信任等级。

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图4

    本例中,我决定分配给它“4”,在这之后,输入“sign”用你自己的私钥签名,接着输入在GPG提示符中输入“save”来完成操作。

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图5

    要注意的是不需要这样明确地给一个公钥指派信任,通过key的导入隐式地信任往往就够了。

    给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个称之为“信任网”的复杂机制。

    回到教程,现在让我们检查导入的key列表。

    $ gpg—list-keys

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图6

    你至少会看到两个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

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图7

    如果命令的输出包含了“Good signature from ”,那么下载的.dmg文件就被成功地认证和核实了。如果下载的文件的任何地方在签名后被篡改了,那么验证就会失败。

    这时你就可以放心地信任你下载的文件了。

    Linux生成校验文件asc,使用 GnuPG 加密签名校验 - 图8