如何验证 tor 源代码
数字签名是一种确保您下载的 tor 源代码由 Tor 开发人员创建且未被篡改的进程。 下面我们将解释为什么这十分重要,以及如何验证您所下载的 Tor 是由我们创建的,而不是被第三方攻击者所修改过的。
注意:这些指南是为了验证 Tor 源代码。 Please follow the right instructions to verify Tor Browser's signature.
正在下载签名文件
下载页面上的 Tor 源文件各附有两个分别标有“checksum”和“sig”的文件,其名称与软件包相同,扩展名分别为“.sha256sum”和“.sha256sum.asc”。
.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.
正在下载签名文件
下载页面上的 Tor 源文件各附有两个分别标有“checksum”和“sig”的文件,其名称与软件包相同,扩展名分别为“.sha256sum”和“.sha256sum.asc”。
.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.
正在下载签名文件
下载页面上的 Tor 源文件各附有两个分别标有“checksum”和“sig”的文件,其名称与软件包相同,扩展名分别为“.sha256sum”和“.sha256sum.asc”。
.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