我想验证下载的 ISO 是否被 NSA 或任何其他不道德的代理毒害。为此,我非常希望使用签名检查方法。
我知道验证Iso如何。但我对提供的方案并不满意。如果某个代理可以操纵一个文件下载,那么他肯定可以操纵所有文件下载。因此,我从密钥服务器获得的公钥可以被欺骗,以使被操纵的 ISO 文件检查正常,而实际上它已被注入 rootkit 或更糟的东西。
现在我知道不幸的是没有 100% 可靠的方法。但假设我当前的系统是安全的,我将这些密钥用于安全设施机制。
因此我的问题是:
如何使用我已经信任的 SecureApt 密钥(=普通的 Ubuntu 存储库密钥)来验证刚下载的 ISO?
确实,如果我可以通过 Ubuntu Repo(因此在通过 SecureApt 隐式验证的 deb 中)获取验证 iso 签名所需的公钥,那么这对我也很有帮助。
任何帮助将不胜感激。
附言:当然我知道,如果 Canonical 不道德,并与 NSA(它有钱,嘿)合作,我们无论如何都会很危险。让我们假设这样的事情永远不会发生,好吗?
答案1
以下步骤允许您验证已下载的 Ubuntu iso 的 SHA256SUMS 文件:
- 打开终端(CTRL++ ALT)T
通过 从 /usr/share/keyrings/ubuntu-archive-keyring.gpg 导入密钥
gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg
。您应该会看到类似以下内容:gpg:密钥环“/root/.gnupg/secring.gpg”已创建 gpg:密钥 437D05B5:公钥“Ubuntu 存档自动签名密钥”已导入 gpg:密钥 FBB75451:公钥“Ubuntu CD 映像自动签名密钥”已导入 gpg: 处理总数:2 gpg:已导入:2 gpg:未找到最终受信任的密钥
线路
gpg:密钥 FBB75451:公钥“Ubuntu CD 映像自动签名密钥”已导入
显示您导入的用于签名 CD 映像(iso 文件)的 GPG 密钥是具有以下指纹的密钥:
主键指纹:C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451
因此 ID
FBB7 5451
导入密钥后,您可以下载文件 SHA256SUMS、MD5SUMS、SHA1SUMS 及其各自的签名 *SHA256SUMS.gpg、MD5SUMS.gpg
现在您可以使用此命令
gpg --verify SHA256SUMS.gpg SHA256SUMS
检查文件 SHA256SUMS 是否合法。如果是,那么您应该看到类似以下内容:gpg:签名于 2013 年 2 月 14 日星期四下午 6:38:41 CET 使用 DSA 密钥 ID FBB75451 进行 gpg:来自“Ubuntu CD 映像自动签名密钥”的良好签名 gpg:警告:此密钥未经可信签名认证! gpg:没有迹象表明该签名属于所有者。 主键指纹:C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451
如果 SHA256SUMS 文件已被更改,则会出现类似以下内容:
gpg:签名于 2013 年 2 月 14 日星期四下午 6:38:41 CET 使用 DSA 密钥 ID FBB75451 进行 gpg: 来自“Ubuntu CD 映像自动签名密钥”的错误签名
基本上,不是按照步骤 2 中的如何问题中提到的并从密钥服务器获取密钥(可能已被泄露)时,您可以使用您信任的现有 Ubuntu 安装所提供的密钥。
答案2
这似乎效果很好:
sudo apt-get install ubuntu-keyring
gpgv --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg SHA256SUMS.gpg SHA256SUMS
grep ubuntu-14.04-desktop-amd64.iso SHA256SUMS | sha256sum --check