对于 Mozilla 发布的某个软件版本,在执行安装该程序之前,我如何以加密方式验证所下载文件的真实性和完整性?
今天想下载windows版的firefox和thunderbird,但是下载页面没有提到下载后如何验证版本。
我希望看到一条消息,告诉我他们的发布签名密钥的指纹、进一步文档的链接,以及指向 [a] 清单文件(例如SHA256SUMS
)和 [b] 该清单文件的独立签名(例如SHA256SUMS.asc
、SHA256SUMS.sig
、SHA256SUMS.gpg
等)的链接
如何使用 Mozilla 产品(例如 Firefox 和 Thunderbird)执行此验证?
答案1
视窗发行版使用 Authenticode 进行签名,因此签名嵌入到可执行文件中,操作系统在启动时会自动根据 Microsoft 维护的 X.509 证书颁发机构列表对其进行验证。提取到“C:\Program Files”中的单个文件同样在可能的情况下使用 Authenticode 进行签名。
您可以在文件的“属性”窗口中查看签名详细信息,或使用sigcheck
(来自系统内部)、或使用Get-AuthenticodeSignature
(PowerShell cmdlet)、或使用signtool verify
(Windows 开发工具包的一部分)、或使用osslsigncode verify
(在许多 Linux 发行版中可用)。
Linux发布(源代码和预编译版本)是使用 PGP 签名,分离签名可在相同的 URL +.asc
后缀处获得。它们位于
https://ftp.mozilla.org/pub/firefox/releases/:
- https://ftp.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-US/firefox-83.0.tar.bz2
- https://ftp.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-US/firefox-83.0.tar.bz2.asc
(Mozilla 的“下载源代码“文章指出https://archive.mozilla.org,但那基本上是同一个服务器,内容也是一样的。)
当然,为了使 PGP 有用根本,你需要找到其他方法来验证签名密钥,而不是仅仅从同一目录中获取它。Mozilla 似乎发布了他们的发布密钥在他们的博客上。
只要你处理的是单个文件,单独的“SUMS”清单基本上是多余的– 它只是增加了几个额外的验证步骤,而对实际安全性没有任何作用。验证直接针对您想要验证的文件的签名所获得的值与验证结果完全相同。
尽管如此,Mozilla FTP 服务器做包括包含属于该版本的每个文件(包括 Windows 和 macOS)的 SHA256SUMS 清单,以及 PGP 签名。