“开源”与“源可用”的安全含义是什么?

信息安全 源代码 真加密 开源
2021-08-28 09:48:37

鉴于目前围绕TrueCrypt的惨败,由于我对开源模型的持续支持,我受到了 IT 行业当前客户和同行的大量批评。这种批评通常与在诸如heartbleed 之类的事件之后关于开源模型的优点和失败的持续对话混为一谈我试图指出,尽管许多新闻文章将 TrueCrypt 标记为开源,但在Wikipedia上找到的可用源标签更正确。

结合这一区别,我认为拥有可供审查的源代码本质上比不提供更安全,但它不应暗示与遵循开源开发模型的项目相同的信任级别,包括允许重新分发修改的工作。虽然我的直觉告诉我这是一个合理的立场,但差异是微妙的,我令人信服地传达它的能力是有限的。

除了我的直觉,还有更具体的评估吗?源代码可用应用程序与真正的开源应用程序的相对安全性是否存在可衡量的差异?如果是这样,是否已经确定了哪些因素确实促成了这一点?操作系统开发模型会产生比仅仅发布代码供审查更安全的代码吗?或者这最终归结为意见?

编辑:所讨论的特定软件是否与密码学相关有什么区别吗?

3个回答

Source-available (SA) 与没有分叉权的真正开源 (OS) 不同。这意味着当 SA 软件中的安全漏洞被知道并且开发人员拒绝修复它时(这不一定是出于恶意 - 它可能只是缺乏资源),用户无法选择分叉项目并与新团队一起以新名称继续该项目。

但是,如果 SA 项目中的缺陷被发现并公之于众,持续拒绝修复将严重损害 SA 项目的声誉并驱使用户远离它。

一些操作系统支持者声称,每个人都可以为操作系统项目提供补丁,从而更快地修复错误。但是,这仅适用于部分 OS 项目:那些遵循 Bazaar 开发模型而不是大教堂模型的项目有许多操作系统项目不接受来自第三方的主动贡献。仍然可以独立提供错误修复,因此用户可以手动应用它,但这是许多管理员和用户回避的维护开销。

并且因为一个问题而分叉一个项目通常比它的价值更麻烦。我见证了几个开源项目的分叉,它们是分叉两边的一部分。结果总是损害两个分叉的整体进展,因为开发资源被稀释,基础设施和管理结构必须重复,用户感到困惑。尽管有任何冲突,但试图将一个项目放在一起通常会得到回报。

开源和可用源,作为一般类别,在安全含义上是相同的。主要好处是更快地发现错误/效率低下/漏洞;人多力量大。在实践中,这种好处的价值将根据对项目感兴趣的社区的规模以及查看源代码的人数而有所不同。

关于给出的示例:来自 TrueCrypt 的消息仅表明支持已停止。至少可以说,提前通知会很好,但这样的行动不限于开源(或可用源)实体;私人公司一直停产产品。如果他们不经常这样做,例如因为人们向他们付费以提供持续的支持,那么人们应该认识到雇用或以其他方式支付开源提交者以继续支持计划停产的产品始终是一种可用的替代方案。

持续支持的可用性一直是并且应该仍然是关于给定产品是否适用于特定任务、开源或其他方式的关键考虑因素。

以我的经验,这个问题是如此广泛,偏见如此根深蒂固,以至于你可能会浪费时间试图在任何一方争论这个案子。

闭源项目/组织不会轻易放弃他们的代码以供独立方分析 - 即使通常只会在 NDA 下这样做,因此任何此类分析都可能具有非常高的样本偏差。然而,这里有一对:

http://osswatch.jiscinvolve.org/wp/2012/02/28/open-source-matches-proprietary-code-quality/ http://www.uni-bamberg.de/fileadmin/uni/fakultaeten/wiai_lehrstuehle/ praktische_informatik/Dateien/Publikationen/ICSOC2013_50_Open_Source_Versus_Proprietary_BPEL_Engines.pdf

如需进一步讨论,另请参阅:

http://courses.cs.washington.edu/courses/csep590/05au/whitepaper_turnin/oss%2810%29.pdf http://www.dwheeler.com/secure-class/Secure-Programs-HOWTO/open-source -security.html http://www.onlamp.com/pub/a/security/2004/09/16/open_source_security_myths.html

鉴于有关 Truecrypt 的事实尚未浮出水面,它几乎不是争论任何一方的典型代表(开源软件不是 RSA、洛克希德-Mrtin、华盛顿邮报和其他公司被黑客入侵的原因)。