OpenBSD 声称是高度安全的。那么为什么它不允许通过 HTTPS 下载发行版 iso?或者我错过了什么?有人可以向我解释一下吗?
在哪里通过 HTTPS 下载 OpenBSD 发行版 ISO?
有一个名为的文件SHA256
,其中包含校验和。从技术上讲,您只需要安全地传输该文件;您可以通过任何方式获得 ISO,只需验证校验和。这与通过 HTTPS 获取整个文件一样好。
OpenBSD 人员似乎没有维护一个带有SHA256
文件副本的公共 HTTPS 网站。此外,HTTPS 与 X.509 PKI 模型所允许的一样安全,而 OpenBSD 的人似乎对 X.509 和 Web 浏览器中预装的 CA 感到有些不安(这很容易理解);他们似乎更喜欢OpenPGP模型。我认为在过去,发布新 OpenBSD 版本的公告是一封 PGP 签名的电子邮件(发送到各个地方,包括 Usenet),其中包含主要 ISO 的摘要——因此相对于 PGP 公众实现了完整的 ISO 完整性钥匙。但我不确定他们是否还在这样做。
否则,您可以订购物理的、有形的 CD 集(或 DVD)。它们并不昂贵。
首先,OpenBSD 实际上只是在加拿大的服务器上,通过 CVS 进行开发。人们通过在那里使用 SSH 等连接来复制树。发布版本时,会创建 iso 并通过镜像复制它们。我想他们使用安全的方式获取文件,但不能确定。然后你有一个可供下载的镜像列表。
我查了一下,其中一个镜像支持 HTTPS(它是位于弗吉尼亚理工大学电气工程系的服务器)
https://mirror.ece.vt.edu/pub/OpenBSD/4.9/
下载 ISO 并不真正需要 HTTPS。在每个目录中,在所有镜像中,都有一个名为 SHA256 的文件,其中包含目录中每个文件的 SHA256 校验和。这是您真正应该以安全方式获取的文件 - 这些文件将在稍后得到验证。由于有多个镜像,如果其中一个被入侵,您可以检查另一个镜像上的校验和文件。
我同意,他们应该提供一种安全验证iso的方法。
他们应该提供一种经过身份验证的机制(到https://www.openbsd.org)来检索 sha 散列,而不是将散列放在刚刚妥协的 iso 文件旁边。
但如果没有,您可以下载、等待并验证在使用相关 iso 之前没有安全问题。检查所有镜像站点上的 sha 是相同的。我认为1周就足够了。
(我看到@thomas Pornin 刚刚说了我上面所说的大部分内容)
该问题现在已在论文中解决 : Securing OpenBSD From Us To You by Ted Unangst (BSDCan, 2015)。
总之:
要求镜像使用 HTTPS 以及任何其他对 HTTPS 的依赖都被拒绝。
- 正如此处其他答案所指出的,仅保护用户和镜像之间的连接并不能确保工件从开发人员到用户的传输。(然而,理论上可以通过 HTTPS 直接从 openbsd.org 分发 SHA256 文件。)
- OpenBSD 开发人员对证书颁发机构不够信任。
- TLS 被认为过于复杂。
PGP和GPG,被认为是替代品,也被拒绝了。
- 认为太复杂了。
决定是发展
signify
。- 从它的手册来看,它的意思是“加密签名和验证文件”。
- 昕诺飞的设计易于审核。
- 对密钥的信任是由“广泛分散”发展而来的:
广泛的分散使得拦截您可能获得密钥的所有方式变得越来越难,并且如果有人尝试一些有趣的业务,则会增加被发现的风险。
我的看法:
要使用 验证工件signify
,必须获得 的可信实现signify
才能运行。这可以通过已经有一个受信任的、足够新的 OpenBSD 安装来满足。否则可以尝试获取 signify 的一个端口,例如signify-osx,并审核代码。下一个需要找到公钥。作为参考,它们包含在/etc/signify
OpenBSD 源代码树中。人们可以尝试从尽可能多的来源获得它。但是,如果您使用 Unangst 论文中描述的“广泛分散”来建立对公钥的信任,那么您不妨使用“广泛分散”来建立对 SHA256 哈希的信任,并获得您的第一个受信任的 OpenBSD 安装大大地。(除非您发现公钥分布更广泛。)此后您可以使用signify
.