如何验证 tor 源代码
数字签名是一种确保您下载的 tor 源代码由 Tor 开发人员创建且未被篡改的进程。 下面我们将解释为什么这十分重要,以及如何验证您所下载的 Tor 是由我们创建的,而不是被第三方攻击者所修改过的。
注意:这些指南是为了验证 Tor 源代码。 Please follow the right instructions to verify Tor Browser's signature.
正在下载签名文件
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc 文件将验证 .sha256sum 文件(包含软件包的校验和)没有被篡改。一旦签名被验证有效(见下面的方法),软件包的完整性就可以用以下方法验证:
$ sha256sum -c *.sha256sum
这些文件用于验证你所下载的文件正是我们希望你得到的文件。 一般来说,你可以通过右击 “签名”和“校验和”链接并选择“另存为”选项来下载该文件,不过这可能因网络浏览器而异。
例如,tor-0.4.6.7.tar.gz配有文件tor-0.4.6.7.tar.gz.sha256sum.asc。 这些是示例文件名,与你下载的文件不会完全相同。
请注意,数字签名的日期指对程序包进行签名的时间。 因此,每次新文件上传时,将生产新的签名,并且日期不同。 只要你验证了签名,不必担心报告的日期可能有所不同。
安装 GnuPG
首先,验证签名之前,你需要安装 GnuPG。 如果使用 Windows,请下载 Gpg4win 并运行安装包。
为了验证签名,你需要在 Windows 命令行(cmd.exe)中输入一些命令。
提取 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
该命令将密钥保存在路径为./tor.keyring的文件中,即当前目录。 如果运行这个命令后 ./tor.keyring不存在,就说明出了问题,不能继续操作,直到你弄清楚为什么出现错误。
验证签名
要验证你下载的软件包的签名,你需要下载相应的 .sha256sum.asc 签名文件和 .sha256sum 文件,并通过命令要求 GnuPG 验证你下载的文件来验证它。
以下示例假设已在“Downloads”文件中下载这两个文件。 请注意,这些命令使用的是示例文件名,与您的实际文件名不同:您下载的不是 9.0版,也可能没选择英文(en-US)版本。
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"
如果错误消息含有“No such file or directory”,上述某个步骤出错,或者未更改命令中的示例文件名。
另外,你可能想要了解更多 GnuPG 信息。
验证校验和
现在我们验证了校验和的签名,接着需要验证软件包的完整性。
certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256
注意:这些指南是为了验证 Tor 源代码。 Please follow the right instructions to verify Tor Browser's signature.
正在下载签名文件
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc 文件将验证 .sha256sum 文件(包含软件包的校验和)没有被篡改。一旦签名被验证有效(见下面的方法),软件包的完整性就可以用以下方法验证:
$ sha256sum -c *.sha256sum
这些文件用于验证你所下载的文件正是我们希望你得到的文件。 一般来说,你可以通过右击 “签名”和“校验和”链接并选择“另存为”选项来下载该文件,不过这可能因网络浏览器而异。
例如,tor-0.4.6.7.tar.gz配有文件tor-0.4.6.7.tar.gz.sha256sum.asc。 这些是示例文件名,与你下载的文件不会完全相同。
请注意,数字签名的日期指对程序包进行签名的时间。 因此,每次新文件上传时,将生产新的签名,并且日期不同。 只要你验证了签名,不必担心报告的日期可能有所不同。
安装 GnuPG
如果使用 macOS,你可以安装 GPGTools。
提取 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
该命令将密钥保存在路径为./tor.keyring的文件中,即当前目录。 如果运行这个命令后 ./tor.keyring不存在,就说明出了问题,不能继续操作,直到你弄清楚为什么出现错误。
验证签名
要验证你下载的软件包的签名,你需要下载相应的 .sha256sum.asc 签名文件和 .sha256sum 文件,并通过命令要求 GnuPG 验证你下载的文件来验证它。
以下示例假设已在“Downloads”文件中下载这两个文件。 请注意,这些命令使用的是示例文件名,与您的实际文件名不同:您下载的不是 9.0版,也可能没选择英文(en-US)版本。
对于 macOS 的用户:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
如果错误消息含有“No such file or directory”,上述某个步骤出错,或者未更改命令中的示例文件名。
另外,你可能想要了解更多 GnuPG 信息。
验证校验和
现在我们验证了校验和的签名,接着需要验证软件包的完整性。
shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum
注意:这些指南是为了验证 Tor 源代码。 Please follow the right instructions to verify Tor Browser's signature.
正在下载签名文件
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc 文件将验证 .sha256sum 文件(包含软件包的校验和)没有被篡改。一旦签名被验证有效(见下面的方法),软件包的完整性就可以用以下方法验证:
$ sha256sum -c *.sha256sum
这些文件用于验证你所下载的文件正是我们希望你得到的文件。 一般来说,你可以通过右击 “签名”和“校验和”链接并选择“另存为”选项来下载该文件,不过这可能因网络浏览器而异。
例如,tor-0.4.6.7.tar.gz配有文件tor-0.4.6.7.tar.gz.sha256sum.asc。 这些是示例文件名,与你下载的文件不会完全相同。
请注意,数字签名的日期指对程序包进行签名的时间。 因此,每次新文件上传时,将生产新的签名,并且日期不同。 只要你验证了签名,不必担心报告的日期可能有所不同。
安装 GnuPG
首先,验证签名之前,你需要安装 GnuPG。
如果使用 GNU/Linux,那么系统大概已安装 GnuPG,因为大多数 Linux 发行版都预装了该软件。
为了验证签名,你需要在 windows 命令行中输入几个命令。 如何做到这一点,将取决于你的发行版。
提取 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
该命令将密钥保存在路径为./tor.keyring的文件中,即当前目录。 如果运行这个命令后 ./tor.keyring不存在,就说明出了问题,不能继续操作,直到你弄清楚为什么出现错误。
验证签名
要验证你下载的软件包的签名,你需要下载相应的 .sha256sum.asc 签名文件和 .sha256sum 文件,并通过命令要求 GnuPG 验证你下载的文件来验证它。
以下示例假设已在“Downloads”文件中下载这两个文件。 请注意,这些命令使用的是示例文件名,与您的实际文件名不同:您下载的不是 9.0版,也可能没选择英文(en-US)版本。
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"
如果错误消息含有“No such file or directory”,上述某个步骤出错,或者未更改命令中的示例文件名。
另外,你可能想要了解更多 GnuPG 信息。
验证校验和
现在我们验证了校验和的签名,接着需要验证软件包的完整性。
sha256sum -c tor-0.4.6.10.tar.gz.sha256sum