“但当然开源软件更不安全,因为每个人都可以看到它,他们可以重新编译它并用他们编写的糟糕的东西替换它。” 举手:谁听过这个说法?1
当我与客户交谈——是的,他们有时让我与客户交谈——以及与该领域的同行2 交谈时,这个问题非常频繁地出现。在之前的一篇文章《众目睽睽之下并不总能防止代码出现错误》中,我谈到了开源软件——尤其是安全软件——并非神奇地比专有软件更安全,但我仍然会一直选择开源而不是专有软件。但是,我听到的关于开源软件更不安全的特殊问题表明,有时仅仅解释开源需要努力是不够的,我们还必须积极参与辩护3。
好吧,开始吧。我不期望它能达到牛顿或维特根斯坦的逻辑水平,但我会尽我所能,并且我会在底部进行总结,以便您在需要时快速查看要点列表。
论点
首先,我们应该接受没有完美的软件6。不是专有软件,也不是开源软件。其次,我们应该接受存在优秀的专有软件,第三,也存在一些糟糕的开源软件。第四,有极其聪明、有天赋且敬业的架构师、设计师和软件工程师创造了专有软件。
但关键在于:第五,会致力于或以其他方式关注专有软件的人员库是有限的。而且你永远不可能聘请到所有最优秀的人才。即使在政府和公共部门组织中——他们通常拥有更大的人才库,特别是对于咳嗽安全相关的咳嗽应用程序——人才库也是有限的。
第六,可用于查看、测试、改进、破坏、重新改进和推出开源软件的人员库几乎是无限的,并且确实包括最优秀的人才。第七(我喜欢这一点),这个人才库还包括许多编写专有软件的人员。第八,公共部门和政府组织编写的许多应用程序无论如何都是开源的。
第九,如果您担心运行不受支持或来自不可靠、未经证实来源的开源软件,那么好消息是:有很多组织7 会检查代码的出处、支持、维护和修补它。他们会按照您对专有软件提供商的期望,以相同的业务方式来完成这项工作。您还可以确保您从他们那里获得的软件是正确的软件:他们的标准技术是对软件包进行签名,以便您可以验证您安装的软件不是来自某个随机的坏人,他们拿走了代码并做了坏事™。
第十(也是本文的重点),当您运行开源软件、测试它、提供关于问题的反馈、发现错误并报告它们时,您正在利用——并且正在添加到——开源的知识、专业知识和经验的共同财富中,而您的这样做只会使这种财富更加伟大。如果您自己这样做,或者通过支持开源软件8 的企业之一这样做,您就是这个共同财富的一部分。开源软件会变得更好,而且您可以看到它们变得更好。没有什么被隐藏——它,嗯,是开放的。事情会变得更糟吗?是的,它们会,但是我们可以看到何时发生这种情况并修复它。
这种共同财富不适用于专有软件:隐藏的东西不会启迪或丰富世界。
我知道作为一个英国人,我需要小心使用“共同财富”;它带有(褪色的……)帝国的含义,而我在此处并非此意。当克伦威尔9 谈到“共同体”时,他可能也没有想到这一点,而且无论如何,他是一位颇具争议的历史人物。我所谈论的是一个概念,我认为“共同”和“财富”这两个词应该连在一起——以表明我们谈论的不仅仅是金钱,而是全人类可以共享的财富。
我真的相信这一点。如果您想从本文中带走一个宗教信息,那应该是这个10:共同财富是我们的遗产、我们的经验、我们的知识、我们的责任。共同财富是全人类都可以获得的。我们共同拥有它,而且它是一笔几乎无法估量的财富。
方便的备忘单
- (几乎)没有软件是完美的。
- 存在优秀的专有软件。
- 存在糟糕的开源软件。
- 有聪明、有才华和敬业的人创造了专有软件。
- 可用于编写和改进专有软件的人员库是有限的,即使在公共部门和政府领域内也是如此。
- 开源的相应人员库几乎是无限的……
- ……并且包括相当数量的编写专有软件的人才库人员。
- 公共部门和政府组织通常无论如何都会将其软件开源。
- 有些企业会为您提供开源软件支持。
- 贡献——甚至使用——都会增加共同财富。
1好了——现在可以放下手了。
2这应该大写吗?是否有特定的领域,或者它是如何运作的?我不确定。
3我拥有英国文学和神学学位——这可能不会让经常阅读我文章的读者感到惊讶。4
4我希望不是因为我说了太多神学,5 而是因为它经常充满冗长、不相关的人文学科(美国英语:“liberal arts”)参考文献。
5Emacs。每次都是。
6甚至不是 Emacs。是的,我知道有一些技术可以证明某些软件的正确性。(我怀疑 Emacs 没有通过其中很多……)
7在这里举手:我受雇于其中一家公司,Red Hat。去看看——这是一个有趣的工作场所,而且我们通常在招聘。
8假设他们完全遵守他们正在使用的开源许可证的规则,就是这样。
9前“英格兰、苏格兰和爱尔兰的护国公”——就是克伦威尔。
10哦,显然要选择 Emacs 而不是 Vi 变体。
本文最初发表在Alice, Eve, and Bob – 一个安全博客上,并已获得许可转载。
评论已关闭。