开放源码软件让其支持者引以自豪的两点是“低成本”和“高安全”。目前,第一点还只是个假设,因此不予谈论。这里我们重点讨论其安全性,开放源码软件真的更安全吗?如果是,原因何在呢?如果不是,那么为什么许多用户都有这种感觉呢?
何谓开放源码软件?
在讨论开放源码软件和商业软件的区别之前,我们首先要明确什么是开放源码软件。在很多用户的眼里,开放源码就是免费软件,而事实并非如此。开放源码仅仅是红帽以及其他众多Linux供应商所提供产品的基础核心而已。而红帽针对英特尔x86体系开发企业版Linux系统的价格为2499美元,针对IBM S/390体系的售价为18000美元。
同时,开放源码也并不意味着没有软件使用授权。事实上,开放源码软件仍有自己的一套授权标准。其中最常见的有GPL、BSD和Mozilla公共授权等。而且,有一个被称为“开放源码促进会(OSI)”的组织专门负责制定相关授权标准。
事实上,从字面上我们就可以理解开放源码软件。开放源码软件通常使用C、C++或汇编语言编写,其源代码向所有用户开放,并且用户可以随意更改或编写其他程序。它与微软的Windows等商业软件是相对的。Windows等商业软件的源代码是不对外公布的。
当商业软件的源代码开放之后……
今年2月份,Windows NT 4.0和Windows 2000的部分源代码在网上被公之与众。这些源代码被公布在一个P2P网站上,被网友疯狂下载。尽管这只是Windows NT 4.0和Windows 2000的部分源代码程序,但微软公司,乃至整个IT界都为此而感到震惊。
微软主要的担心的知识产权问题,这也是可以理解的。而IT界所担心的是其可能导致的安全问题。许多业内安全专家都表示,此次源代码泄漏事件可能导致严重的安全问题。因为黑客可以利用这些源代码程序提升攻击技巧,从而对Windows系统构成更大威胁。
开放源代码是否就意味这不安全呢?
对于开放源码软件的支持者而言,他们对此可能会感到迷惑。因为长期以来,开放源码软件的支持者始终被灌输着这样一种思想:每个人都能访问源代码程序,才使得Linux系统更加安全。可如果这样,那么Windows源代码开放后,为什么反而变得不安全了呢?
当然,微软向来是不支持这种观点的。在此前的反垄断官司中,微软始终坚称开放Windows源代码会引发一些列安全问题。] 那么双方究竟哪一方是正确的呢?我们暂时把问题放到一边,首先来看看开放源码软件和商业软件各自的优点和缺点是什么。
不公开,即安全?
商业软件开发商认为,不公开软件的源代码程序会使软件更加安全。这种论断是符合逻辑的。就好比你不愿意告诉别人你的房子究竟有什么财产一样,这样就不会引起盗贼的注意。
而开放源码支持者则认为,商业软件这种安全措施只是一种“不公开、即安全(security through obscurity)”的策略。而该策略在业内早已被证实是无效的。开放源码支持者承认,这种“不公开、即安全”的策略可能会起到一定效果,但如果仅仅因为不公开,反而在夜间睡觉时把大门敞开,这将是更愚蠢的行为。
封闭源代码可能会在一定程度上防止黑客入侵,但Windows和企图商业软件所遭受的频繁攻击证明,这种策略并不能在多大程度上提高软件的安全性。
谈及Windows频繁遭到攻击,开放源码支持者通常会将此作为开放源码软件更加安全的证据。但事实上,这除了能够证明Windows的普及程度之外,说明不了其他任何问题。如果90%的人都将自己的贵重物品放在同一个优质品牌的保险箱内,而10%的人选择了一个品牌的保险箱,那么毫无疑问,盗贼将首先研究如何破解第一种优质保险箱。
如果你是一名黑客,大多数人都使用Windows系统,而只有一少部分用户使用其他操作系统,那么你会选择攻击哪种操作系统?开放源码软件支持者经常用Windows系统被攻击的数据来说明自身的安全性。但事实上,这仅仅是因为开放源码软件的使用率太低。
开放源码软件的优势与劣势
开放源码软件支持者认为,每个人都能访问源代码,那么软件的漏洞就能够在最短的时间内被发觉,并且能够以最快的速度进行修复。
而对于商业软件而言,只有内部人士才能够访问这些源代码程序,因此发现问题和解决问题相对都比较困难。
但问题是,如果源代码程序的漏洞被心怀叵测的用户发现,那事情的结果会怎样呢?
结论:
很明显,从上面的论证中可以看出,双方都有合乎情理的论据。但这里我们讨论是,开放源码软件在本质上是否比商业软件更加安全呢?答案是“开放源码本身能够让开放源码软件更加安全吗?”
事实上,从安全的角度将,开放源代码既有优点也有缺点。如果源代码程序的漏洞被心怀叵测的用户发现,很显然,那么其结果还不如不公开。
而且,影响操作系统安全的因素有很多。从编成水平到用户的使用水平等等,都将影响到系统的安全。仅仅通过开放或者封闭源代码,都不能从根本上解决安全问题。