主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
如何验证 Tor 源代码?
#1
注意:这些说明用于验证 Tor 源代码。 请按照正确的说明验证Tor 浏览器的签名。

数字签名是确保某个包是由其开发者生成且未被篡改的过程。下面我们解释为什么它很重要,以及如何验证您下载的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
对于 macOS 用户:
代码:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
对于 BSD/Linux 用户:
代码:
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
对于 macOS 用户:
代码:
shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum
对于 BSD/Linux 用户:
代码:
sha256sum -c tor-0.4.6.10.tar.gz.sha256sum
回复


可能相关的主题..。
主题: 作者 回复数: 人气: 最近发表
  如何验证 Tor 浏览器的签名? netflix 0 192 08-04-2023, 02:44 PM
最近发表: netflix

论坛跳转:


正在浏览该主题的用户: 1 个游客