我负责管理 Devuan Jessie。我想从头开始安装另一个 Devuan Ascii。所以我下载了:
- https://files.devuan.org/devuan_ascii/installer-iso/devuan_ascii_2.0.0_amd64_netinst.iso
- https://files.devuan.org/devuan_ascii/installer-iso/SHA256SUMS
- https://files.devuan.org/devuan_ascii/installer-iso/SHA256SUMS.asc
- https://files.devuan.org/devuan_ascii/devuan-devs.gpg
但我找不到验证的方法devuan-devs.gpg
。
其他发行版,例如 Debian 或 Ubuntu 或类似版本请允许我验证 ISO来自现有的先前版本。
但是对于Devuan,我没有找到任何方法:
tino@ts:~/ISO/devuan_ascii-2.0.0$ gpg --verify SHA256SUMS.asc
gpg: assuming signed data in `SHA256SUMS'
gpg: Signature made Wed 06 Jun 2018 08:55:55 PM CEST using DSA key ID 0B5F062F
gpg: Can't check signature: public key not found
tino@ts:~/ISO/devuan_ascii-2.0.0$ gpg --no-default-keyring --keyring /usr/share/keyrings/devuan-archive-keyring.gpg --verify SHA256SUMS.asc
gpg: assuming signed data in `SHA256SUMS'
gpg: Signature made Wed 06 Jun 2018 08:55:55 PM CEST using DSA key ID 0B5F062F
gpg: Can't check signature: public key not found
tino@ts:~/ISO/devuan_ascii-2.0.0$ gpg --no-default-keyring --keyring /usr/share/keyrings/devuan-keyring.gpg --verify SHA256SUMS.asc
gpg: assuming signed data in `SHA256SUMS'
gpg: Signature made Wed 06 Jun 2018 08:55:55 PM CEST using DSA key ID 0B5F062F
gpg: Can't check signature: public key not found
tino@ts:~/ISO/devuan_ascii-2.0.0$ gpg --keyring ../devuan-devs.gpg --verify SHA256SUMS.asc
gpg: assuming signed data in `SHA256SUMS'
gpg: Signature made Wed 06 Jun 2018 08:55:55 PM CEST using DSA key ID 0B5F062F
gpg: Good signature from "Vincenzo (KatolaZ) Nicosia <[email protected]>"
gpg: aka "Vincenzo Nicosia (KatolaZ) <[email protected]>"
gpg: aka "Vincenzo Nicosia (KatolaZ) <[email protected]>"
gpg: aka "KatolaZ <[email protected]>"
gpg: aka "Enzo Nicosia <[email protected]>"
gpg: aka "Enzo Nicosia -- KatolaZ <[email protected]>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 8E59 D6AA 445E FDB4 A153 3D5A 5F20 B3AE 0B5F 062F
由于“密钥未经认证”,因此没有迹象表明该密钥不是假的。 如何修复这条断裂的信任链?
https://devuan.org/os/documentation/dev1fanboy/general-information也没有解决这个谜题。
笔记:
devuan-devs.gpg
大概不是假的。然而这个假设并没有帮助。必须有某种方法来确保它不是假的。最初的先有蛋还是先有蛋的问题已经解决了,因为 Devuan(Jessie)已经跑到我身边了。
当然有一些比将 Jessie 升级到 Ascii 更好的方法来验证 Ascii 的 ISO。正确的?
答案1
为了读者的利益,我找到了一点帮助。虽然不多,但却是一小步。 (目前我保留接受的答案不变,它仍然是最好的答案。)
以下是 Devuan 的“旧”密钥的输出:
$ gpg devuan-devs.gpg | head -3
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa4096 2015-11-20 [SC] [expired: 2018-11-20]
102EFE3BBA4B2E45EBD56C7A27B9FAA4EBAA93A1
uid Daniel Lambert Reurich <[email protected]>
以下是 Devuan 的“新”密钥的输出:
$ gpg devuan-devs.gpg.1 | head -3
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa4096 2015-11-20 [SC] [expires: 2021-02-24]
102EFE3BBA4B2E45EBD56C7A27B9FAA4EBAA93A1
uid Daniel Lambert Reurich <[email protected]>
devuan-devs.gpg.1
来自https://files.devuan.org/devuan-devs.gpg
你可以发现两件事:
- 有效期已更新
- 钥匙的指纹没有改变:
102EFE3BBA4B2E45EBD56C7A27B9FAA4EBAA93A1
因此,如果您找到一些您信任的旧密钥,您可以检查新密钥是否基于旧密钥,这样您也可以信任新密钥。 (嗯,不太可能有人破解了私钥,能够破坏 Devuan 并上传虚假的公钥更新,而没有人检测到这一点。)
抱歉,我没有找到一种方法来正确、轻松地自动执行此类更新,同时考虑到安全性。所以我们所拥有的只是这种非常麻烦且极易出错(人类不擅长检查两个长十六进制字符串是否完全相同)的手动方式。
我没有找到摆脱的方法
gpg: WARNING:
(除了用 忽略它2>/dev/null
,但是当你想做正确的事情时,忽略 STDERR 可能是你能做的最愚蠢的事情)。
现在我们确信新密钥并不比旧密钥差,我们可以这样做:
mv devuan-devs.gpg.1 devuan-devs.gpg
当然,我们可以创建一些脚本,然后使用一些非常粗略的启发式方法来解释输出
gpg
,以用新密钥更新旧密钥。但我们真的能确定这个过程确实是正确的,并且我们真的不会因为我们忘记实现的一些边缘情况而被欺骗吗?
当谈到安全性时,如果不是基于 100% 的保证,自己做某事是一件非常糟糕的事情。gpg
可能会改变输出,或者有人可能会发明一些漏洞。两者都可能欺骗脚本来查看一些不存在的身份。
问题不在于是否十分确定。我们已经非常确定没有人攻击 Devuan,因此密钥是真实的,对吗?但我们仍然想要摆脱这个肮脏的小不确定性。因此,用一些错误的安全感(因为我们的脚本似乎可以完成这项工作,所以我们信任一些无法证明的东西)来取代我们知道的一种不确定性(我们知道 Devuan 可能会被黑客攻击,但其他人有一天会发现这一点)。正确,因为它基于未经验证的假设)实际上是安全性的倒退!
通过添加一些晦涩的、未经证实的和不可靠的脚本来提高复杂性并不能提高安全性。安全是一种可以生活并且易于应用的东西。如果它变得太复杂,安全性就会失败。总是。
答案2
不幸的是,似乎没有更好的方法来验证图像:
- 所有涉及的文件都是通过同一渠道下载的;
- 用于签署文件的密钥
SHA256SUMS
在之前的 Devuan 版本中不可用; - 密钥环中提供的密钥未由任何其他密钥签名;
- 发布到密钥服务器的密钥,已签署,但它不在强集中,并且没有任何签名来自先前 Devuan 版本的密钥环中的密钥。
事实上,从密钥服务器和已发布的密钥环中都可以获得相同的密钥,这可能会被解释为提供更多的保证,但我不确定是否确实如此,因为我们仍然不知道所有者是合法的 Devuan 发布签名者。