使用 GPG4Win,我使用 .sig 和签名密钥验证了 Tor、GPG4Win、Tails。为此,我阅读了文档并观看了视频。现在,我尝试使用 sha256sum 和 sha256sums.gpg 验证 Ubuntu。非 Linux 用户需要安装 GPG Tools - 我可以使用 GPG4Win 来代替吗 - 怎么做?我有 Ubuntu Mate 作为 VM,因此我尝试了规定的程序,但没有成功:
*m@ubuntu:~/Downloads$ gpgv --keyring=/usr/share/keyrings/ubuntu-
archive-keyring.gpg SHA256SUMS.gpg SHA256SUMS
gpgv: can't open `SHA256SUMS.gpg'
gpgv: verify signatures failed: file open error*
在“下载”中,我创建了一个文件夹,里面粘贴了“Pluma”上的校验和以及 SHA256SUMS.gpg。检查哈希值成功了。我需要的是使用 Linux 和 Win 进行验证的分步说明,因为这对我来说是一个新主题,没有任何经验。非常感谢您的建议。
PS:当我正要下载 Ubuntu 时,我在网上搜索“如何验证...”,结果发现在阅读完这,我不愿意下载操作系统,不知道那会是什么样的下载。事实还是虚构?
答案1
验证不一定是最直接的过程,这取决于你想要达到多么万无一失或多么偏执(使用白话)。
当您下载 ISO 时,通常还会提供一个哈希值来验证下载内容。
如果没有,在 Ubuntu 下载页面上,有一个直接链接;访问父文件夹:http://releases.ubuntu.com/16.04.2/
SHA-256 总和文件就在那里,带有用于验证总和列表的签名
步骤1
gpg2 --verify SHA256SUMS.gpg SHA256SUMS
这将返回一些输出
gpg: Signature made Fri 17 Feb 2017 00:04:27 GMT using DSA key ID FBB75451
gpg: Can't check signature: No public key
gpg: Signature made Fri 17 Feb 2017 00:04:27 GMT using RSA key ID EFE21092
密钥指纹在最后;你现在需要从密钥服务器导入它们
第2步
从密钥服务器导入密钥
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FBB75451 EFE21092
这将证实你想知道的内容:
gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" imported
gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key <[email protected]>" imported
gpg: marginals needed: 3 completes needed: 1 trust model: PGP
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Total number processed: 2
gpg: imported: 2
步骤3
您现在可以重新运行验证命令
gpg2 --verify SHA256SUMS.gpg SHA256SUMS
如果您以前从未扩展过信任网,您将收到有关受信任签名的警告。如果您信任从密钥服务器收到的指纹,那么这没问题。如果您想再进一步,您可以请具有扩展信任网的人为您验证;查看密钥签名事件和gpg 信任网了解更多信息。
步骤4
下载所需的 ISO 后,请对其运行校验和工具:
sha256sum your_distro.iso
检查该总和是否与网站上的总和或 SHA256SUM 文件(只是一个包含校验和的文本文件)中的总和相匹配。
Reddit 链接引发的担忧
对于不使用 HTTPS 的 ISO 站点的担忧:服务器是已知服务器,内容也是已知内容。加密是不必要的,HTTPS 更适合通信保密和在线数据完整性。
如果文件在服务器硬盘上受到损害,我们需要其他东西:因此我们使用签名来验证静态数据的真实性和完整性。
对于钥匙和指纹本身的担忧,首先声明一下:以下阐述的是一般理解的内容,当然也包含一些注意事项。这不是专业的安全建议,而是一种时事论述。
你唯一需要确定的是信任从密钥服务器收到的密钥,这就是信任网络发挥作用的地方。
如果您的朋友或同事已经建立了可以验证指纹的信任链,并且您信任该人,那么您就可以信任该指纹。
一个普通人确定的方法是检查不同的网站和论坛,看看你拥有的指纹是否与在其他网站上看到和找到的指纹相符。
如果攻击者确实用假货替换了 Ubuntu ISO,并替换了伪造的签名文件,和设法切换密钥服务器上的密钥,你仍然可以确保
- 这些密钥不会与其他人导入的密钥匹配(只要他们拥有未被泄露的密钥)(信任网络场景)
- 网络上论坛中记录的任何密钥(如上图所示,我粘贴了我所拥有的内容)不太可能也被替换过(除非所有网站都被黑客入侵,或者密钥在有人开始在论坛和 stackexchange 调试输出中记录它们之前就已经被替换过,例如)
如果您想了解更多,阅读 Linux Mint 网站黑客事件所带来的“教训”应该能为您提供有关这个问题的良好背景信息。
是的,验证 ISO 的过程应该更加简单,我同意这一点。