08-04-2023, 01:31 PM
注意:这些说明用于验证 Tor 源代码。 请按照正确的说明验证Tor 浏览器的签名。
数字签名是确保某个包是由其开发者生成且未被篡改的过程。下面我们解释为什么它很重要,以及如何验证您下载的tor 源代码是我们创建的并且未被某些攻击者修改。
下载页面上的每个文件都附带两个文件,分别标记为“checksum”和“sig”,其名称与包相同,扩展名分别为“.sha256sum”和“.sha256sum.asc”。
该.asc文件将验证.sha256sum文件(包含包的校验和)是否未被篡改。验证签名后(请参阅下文了解如何进行验证),可以通过以下方式验证包完整性:
这些文件可让您验证您下载的文件是否正是我们想要您获取的文件。这会因网络浏览器而异,但通常您可以通过右键单击“sig”和“校验和”链接并选择“文件另存为”选项来下载此文件。
例如,tor-0.4.6.7.tar.gz伴随着tor-0.4.6.7.tar.gz.sha256sum.asc. 这些是示例文件名,与您下载的文件名不完全匹配。
我们现在展示如何在不同操作系统上验证下载文件的数字签名。请注意,签名的日期是在包裹签名时注明的。因此,每次上传新文件时,都会生成具有不同日期的新签名。只要您验证了签名,您就不必担心报告的日期可能会有所不同。
安装 GnuPG
首先,您需要安装 GnuPG,然后才能验证签名。
对于 Windows 用户:
对于 macOS 用户:
对于 GNU/Linux 用户:
获取 Tor 开发者密钥
以下密钥可以对 tarball 进行签名。不要指望所有这些,它可能会根据谁可以发布而有所不同。
您可以通过上面提供的链接或以下方式获取密钥:
这应该向您显示类似的内容(对于 nickm):
如果您收到错误消息,则表明出现了问题,并且在弄清楚为什么不起作用之前您无法继续。您也许可以使用解决方法(使用公钥)部分来导入密钥。
导入密钥后,您可以将其保存到文件中(此处通过其指纹进行识别):
此命令会将密钥保存到在 path 处./tor.keyring(即当前目录中)找到的文件中。如果./tor.keyring运行此命令后不存在,则说明出现了问题,并且在弄清楚为什么这不起作用之前您无法继续。
验证签名
要验证您下载的包的签名,您需要下载相应的.sha256sum.asc签名文件和.sha256sum文件本身,并使用要求 GnuPG 验证您下载的文件的命令进行验证。
下面的示例假设您将这两个文件下载到“下载”文件夹中。请注意,这些命令使用示例文件名,您的命令将有所不同:您将下载与 9.0 不同的版本,并且您可能没有选择英语 (en-US) 版本。
对于 Windows 用户:
对于 macOS 用户:
对于 BSD/Linux 用户:
该命令的结果应该产生类似这样的结果(取决于签署它的密钥):
如果您收到包含“没有这样的文件或目录”的错误消息,则可能是前面的步骤之一出了问题,或者您忘记了这些命令使用示例文件名,而您的命令会略有不同。
您可能还想了解有关 GnuPG 的更多信息。
验证校验和
现在我们验证了校验和的签名,我们需要验证包的完整性。
对于 Windows 用户:
对于 macOS 用户:
对于 BSD/Linux 用户:
数字签名是确保某个包是由其开发者生成且未被篡改的过程。下面我们解释为什么它很重要,以及如何验证您下载的tor 源代码是我们创建的并且未被某些攻击者修改。
下载页面上的每个文件都附带两个文件,分别标记为“checksum”和“sig”,其名称与包相同,扩展名分别为“.sha256sum”和“.sha256sum.asc”。
该.asc文件将验证.sha256sum文件(包含包的校验和)是否未被篡改。验证签名后(请参阅下文了解如何进行验证),可以通过以下方式验证包完整性:
代码:
$ sha256sum -c *.sha256sum
这些文件可让您验证您下载的文件是否正是我们想要您获取的文件。这会因网络浏览器而异,但通常您可以通过右键单击“sig”和“校验和”链接并选择“文件另存为”选项来下载此文件。
例如,tor-0.4.6.7.tar.gz伴随着tor-0.4.6.7.tar.gz.sha256sum.asc. 这些是示例文件名,与您下载的文件名不完全匹配。
我们现在展示如何在不同操作系统上验证下载文件的数字签名。请注意,签名的日期是在包裹签名时注明的。因此,每次上传新文件时,都会生成具有不同日期的新签名。只要您验证了签名,您就不必担心报告的日期可能会有所不同。
安装 GnuPG
首先,您需要安装 GnuPG,然后才能验证签名。
对于 Windows 用户:
- 如果您运行 Windows,请下载 Gpg4win并运行其安装程序。
- 为了验证签名,您需要在 Windows 命令行中键入一些命令,cmd.exe.
对于 macOS 用户:
- 如果您使用的是 macOS,则可以安装 GPGTools。
- 为了验证签名,您需要在终端(在“应用程序”下)中键入一些命令。
对于 GNU/Linux 用户:
- 如果您使用的是 GNU/Linux,那么您的系统中可能已经安装了 GnuPG,因为大多数 GNU/Linux 发行版都预装了它。
- 为了验证签名,您需要在终端窗口中键入一些命令。如何执行此操作将根据您的发行版而有所不同。
获取 Tor 开发者密钥
以下密钥可以对 tarball 进行签名。不要指望所有这些,它可能会根据谁可以发布而有所不同。
代码:
Alexander Færøy: 514102454D0A87DB0767A1EBBE6A0531C18A9179
David Goulet: B74417EDDF22AC9F9E90F49142E86A2A11F48D36
Nick Mathewson: 2133BC600AB133E1D826D173FE43009C4607B1FB
您可以通过上面提供的链接或以下方式获取密钥:
代码:
$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org
这应该向您显示类似的内容(对于 nickm):
代码:
gpg: key FE43009C4607B1FB: public key "Nick Mathewson <nickm@torproject.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
pub rsa4096 2016-09-21 [C] [expires: 2025-10-04]
2133BC600AB133E1D826D173FE43009C4607B1FB
uid [ unknown] Nick Mathewson <nickm@torproject.org>
sub rsa4096 2016-09-23 [S] [expires: 2025-10-04]
sub rsa4096 2016-09-23 [E] [expires: 2025-10-04]
如果您收到错误消息,则表明出现了问题,并且在弄清楚为什么不起作用之前您无法继续。您也许可以使用解决方法(使用公钥)部分来导入密钥。
导入密钥后,您可以将其保存到文件中(此处通过其指纹进行识别):
代码:
$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB
此命令会将密钥保存到在 path 处./tor.keyring(即当前目录中)找到的文件中。如果./tor.keyring运行此命令后不存在,则说明出现了问题,并且在弄清楚为什么这不起作用之前您无法继续。
验证签名
要验证您下载的包的签名,您需要下载相应的.sha256sum.asc签名文件和.sha256sum文件本身,并使用要求 GnuPG 验证您下载的文件的命令进行验证。
下面的示例假设您将这两个文件下载到“下载”文件夹中。请注意,这些命令使用示例文件名,您的命令将有所不同:您将下载与 9.0 不同的版本,并且您可能没有选择英语 (en-US) 版本。
对于 Windows 用户:
代码:
gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.10.tar.gz.sha256sum.asc Downloads\tor-0.4.6.10.tar.gz.sha256sum
代码:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
代码:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
该命令的结果应该产生类似这样的结果(取决于签署它的密钥):
代码:
gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03
gpgv: using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601
gpgv: Good signature from "Nick Mathewson <nickm@torproject.org>"
如果您收到包含“没有这样的文件或目录”的错误消息,则可能是前面的步骤之一出了问题,或者您忘记了这些命令使用示例文件名,而您的命令会略有不同。
您可能还想了解有关 GnuPG 的更多信息。
验证校验和
现在我们验证了校验和的签名,我们需要验证包的完整性。
对于 Windows 用户:
代码:
certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256
代码:
shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum
代码:
sha256sum -c tor-0.4.6.10.tar.gz.sha256sum