数字签名是一个确保某个包由其开发人员生成并且未被篡改的过程。
下面我们将解释为什么这十分重要,以及如何验证你所下载的 Tor 浏览器是由我们创建的,而不是被某些攻击者所修改过的。
我们的下载页面上的每个文件都附有一个标有 “签名”的文件,其名称与软件包相同,扩展名为".asc"。这些 .asc 文件是它们的 OpenPGP 签名。
这些数字签名文件让你验证下载的文件是否就是我们希望你获取的文件。
这将由浏览器而异,但一般来说,你可以通过右键单击“签名”链接并选择“文件另存为”选项来下载该文件。
例如: torbrowser-install-win64-9.0_en-US.exe
是与 torbrowser-install-win64-9.0_en-US.exe.asc
一起的。
这些是示例文件名,并不会与你所下载的文件名完全一致。
我们现在展示如何在不同的操作系统上验证下载文件的数字签名。
请注意数字签名是标注该包被签名的时间。
因此,每个新文件上传时,都会生成具有不同日期的新签名。
只要您验证了签名,就不必担心报告的日期可能有所不同。
安装 GnuPG
首先你需要安装 GnuPG 才能验证签名。
对于 Windows 的用户:
如果您使用 Windows, 下载 Gpg4win并运行其安装包。
为了验证签名,您需要在 Windows 命令行(cmd.exe
)中输入一些命令。
对于 macOS 的用户:
如果您正在使用 macOS,您可以安装 GPGTools。
为了验证签名,您需要在(“应用程序”下的)终端中输入一些命令。
对于 GNU/Linux 的用户:
如果你使用 GNU/Linux,那么可能在你的系统中已经安装了 GnuPG,因为大多数 Linux 发行版都预装了它。
为了验证签名,您需要在终端窗口中输入一些命令。如何进行此操作将取决于您的发行版。
获取 Tor 开发者密钥
Tor 浏览器团队已经为 Tor 浏览器发行版签名。
导入 Tor 浏览器开发者的签名密钥(0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290):
gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org
这会向您显示像这样的内容:
gpg: key 4E2C6E8793298290: public key "Tor Browser Developers (signing key) <torbrowser@torproject.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
pub rsa4096 2014-12-15 [C] [expires: 2025-07-21]
EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid [ unknown] Tor Browser Developers (signing key) <torbrowser@torproject.org>
sub rsa4096 2018-05-26 [S] [expires: 2020-12-19]
如果你收到了一个错误信息,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。也许你可以参照解决方法(使用公钥)部分来导入密钥。
导入密钥后,你可以将其保存到文件中(通过这里的指纹来识别它):
gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290
这条命令的结果是,密钥被保存在路径为./tor.keyring
的文件中,也就是在当前目录中。
如果运行这个命令后./tor.keyring
不存在,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。
验证签名
为了验证你下载的包的签名,除了下载安装程序文件本身,你还需要下载相应的“.asc”签名文件,并命令 GnuPG 验证你下载的文件。
下面的例子假设你已经下载了这样的两个文件到你的"下载"文件夹。
请注意,这些命令使用的是示例文件名,而你的文件名会有所不同:你下载的版本与 9.0 不同,且你可能没有选择英文(en-US)版本。
对于 Windows 的用户:
gpgv --keyring .\tor.keyring Downloads\torbrowser-install-win64-9.0_en-US.exe.asc Downloads\torbrowser-install-win64-9.0_en-US.exe
对于 macOS 的用户:
gpgv --keyring ./tor.keyring ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg.asc ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg
对于 GNU/Linux 的用户(如果您有32位的包,请将64改为32):
gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz.asc ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz
The result of the command should contain:
gpgv: Good signature from "Tor Browser Developers (signing key) <torbrowser@torproject.org>"
如果你得到包含 "No such file or directory"的错误信息,要么是前面的某个步骤出了问题,要么是你忘记了这些命令使用的是示例文件名,而你的文件名会与此不同。
Refreshing the PGP key
Run the following command to refresh the Tor Browser Developers signing key in your local keyring from the keyserver. This will also fetch the new subkeys.
gpg --refresh-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
解决方法(使用公钥)
如果您遇到了无法解决的问题,不妨下载并使用这个公钥来代替。或者,您还可以使用以下指令:
curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -
Tor 浏览器开发者密钥也可在 keys.openpgp.org 上找到,并可从 https://keys.openpgp.org/vks/v1/by-fingerprint/EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 下载。
如果正在使用 macOS 或 GNU/Linux,你也可以通过运行以下命令获取密钥:
gpg --keyserver keys.openpgp.org --search-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
你可能还想了解有关 GnuPG 的详细信息。