如何验证软件包的签名


我们的下载页面中每一个文件都附带了一个与软件包有着相同名字的文件, 其扩展名是“.asc”。例如,最新的 Windows 安装套件:dist/vidalia-bundles/vidalia-bundle-0.2.1.26-0.2.9.exe.asc。

这些 .asc 文件是 PGP 签名。通过它们你可以验证你所下载的文件确实由我们所提供。

当然,你需要首先知道我们的 PGP 密钥:如果不知道 PGP 密钥,你就无法证实签名确实来自我们。 我们使用的签名密钥是:

第一步:导入密钥


你能直接通过 GnuPG 导入密钥

gpg --keyserver subkeys.pgp.net --recv-keys 0x28988BF5

或搜索密钥

gpg --keyserver subkeys.pgp.net --search-keys 0x28988BF5

当你选择其中一个时,它将被加入你的密钥环(keyring)。

第二步:验证指纹


使用下列命令验证 PGP 指纹

gpg --fingerprint (在这里输入密钥 ID)

密钥的指纹应该是

pub   1024D/28988BF5 2000-02-27
      Key fingerprint = B117 2656 DFF9 83C3 042B  C699 EB5A 896A 2898 8BF5
uid                  Roger Dingledine <arma@mit.edu>

pub   3072R/165733EA 2004-07-03
      Key fingerprint = B35B F85B F194 89D0 4E28  C33C 2119 4EBB 1657 33EA
uid                  Nick Mathewson <nickm@alum.mit.edu>
uid                  Nick Mathewson <nickm@wangafu.net>
uid                  Nick Mathewson <nickm@freehaven.net>

pub  1024D/31B0974B 2003-07-17
     Key fingerprint = 0295 9AA7 190A B9E9 027E  0736 3B9D 093F 31B0 974B
uid                  Andrew Lewman (phobos) <phobos@rootme.org>
uid                  Andrew Lewman <andrew@lewman.com>
uid                  Andrew Lewman <andrew@torproject.org>
sub   4096g/B77F95F7 2003-07-17

pub   1024D/94C09C7F 1999-11-10
      Key fingerprint = 5B00 C96D 5D54 AEE1 206B  AF84 DE7A AF6E 94C0 9C7F
uid                  Peter Palfrader
uid                  Peter Palfrader <peter@palfrader.org>
uid                  Peter Palfrader <weasel@debian.org>

pub   1024D/5FA14861 2005-08-17
      Key fingerprint = 9467 294A 9985 3C9C 65CB  141D AF7E 0E43 5FA1 4861
uid                  Matt Edman <edmanm@rpi.edu>
uid                  Matt Edman <Matt_Edman@baylor.edu>
uid                  Matt Edman <edmanm2@cs.rpi.edu>
sub   4096g/EA654E59 2005-08-17

pub   1024D/9D0FACE4 2008-03-11 [expires: 2010-03-11]
      Key fingerprint = 12E4 04FF D3C9 31F9 3405  2D06 B884 1A91 9D0F ACE4
uid                  Jacob Appelbaum <jacob@appelbaum.net>
sub   4096g/D5E87583 2008-03-11 [expires: 2010-03-11]

(如果你想要进一步确认密钥的真实性,你应该在多个不同的地方进行检查; 更好的方法是通过对密钥进行签名建立一条到这些密钥的可信路径。)

第三步:验证下载的软件包


如果你使用的是 GnuPG,将下载的软件包连同 .asc 文件置于相同的目录中, 然后输入“gpg --verify (whatever).asc (whatever)”。 使用下面的命令,你将得到“Good 签名”或“BAD 签名”这样的结果:

gpg --verify tor-0.1.0.17.tar.gz.asc tor-0.1.0.17.tar.gz
gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5
gpg: Good signature from "Roger Dingledine <arma@mit.edu>"
gpg:                 aka "Roger Dingledine <arma@mit.edu>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: B117 2656 DFF9 83C3 042B  C699 EB5A 896A 2898 8BF5

请注意这里有一条警告,因为你并未将相应密钥设为可信的。这意味着程序仅仅验证了签名由那一密钥生成。 用户需要自行判断密钥确实属于开发者。最好的方法是与他们见面,然后交换 PGP 指纹。 密钥也可以被签名。如果你查看 Roger 或 Nick 的密钥,会有其他人已经证实“这确实是 Roger/Nick”。 如果你信任那个第三方,则对 arma/nick 你也就有了某种程度的信任。

所以,你能放心地忽略那条警告,或者赋予密钥以某种程度的信任。

这里是一个 BAD 签名的例子,仅供参考。它意味着签名和文件内容不匹配:

gpg --verify tor-0.1.0.17.tar.gz.asc
gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5
gpg: BAD signature from "Roger Dingledine <arma@mit.edu>"

如果你得到了和上面类似的消息,你就不能再信任文件的内容了。

如果你在 Debian 上运行 Tor,请阅读将这些密钥导入 apt 的说明。


"Tor" 和 "Onion Logo" 是 The Tor Project, Inc. 的注册商标
本站内容采用 CC 署名 3.0 美国许可,除非另行说明。

警告: 本翻译的内容可能是过时的。英文原文位于第 22418 次修订, 但本翻译基于第 20019 次修订。

本页面还有如下语言的版本: Deutsch, English, français, Italiano, 日本語 (Nihongo), polski, Русский (Russkij)
如何设置默认语言

Tor 的开发者和 EFF 均未对本翻译的精确性和正确性作检查。它可能是过时的或者错误的。 Tor 的官方网站的语言是英文,位于 https://www.torproject.org/

Webmaster - 最后修改: Thu Jul 29 07:56:18 2010 - 最后编译: Thu Jul 29 08:51:34 2010