为什么开源很重要?

什么是开源?

开源软件是指其版权所有者已公开提供其源代码的软件。在真正的开源许可证下,该软件是协作开发的,其他程序员可以根据自己的目的查看,修改或使用代码。这种“纯”开源模型通常称为FOSS(免费和开源软件).


开源的一种变体是“可用资源”,这意味着未授予修改或以其他方式使用该代码的权限,但可供检查。为了安全起见,这和真正的开源一样好,因此,当我在本文中提及“开源”时,我将包含“可用的代码”.

什么是封闭源?

大多数软件是由商业公司编写和开发的。可以理解的是,这些公司不希望其他公司窃取其辛勤工作或商业秘密,因此他们使用加密技术将自己的代码隐藏起来,以免被窥视,任何未经许可使用或修改代码的企图都将导致诉讼或更严重的后果。.

那是什么问题?

正如我所说,这都是可以理解的,但是在安全性方面却存在一个主要问题。如果没有人能看到程序的详细信息,我们怎么知道它没有在做恶意的事情?基本上我们不能,所以我们只需要信任所涉及的公司,这是我们偏执的安全类型不愿意做的事情(有充分的理由).

为什么开源是最佳解决方案?

如果代码是开源的,则任何有资格这样做的人都可以对其进行独立地检查和审核,以检查是否没有后门程序,漏洞或其他安全问题。开源并不是一个完美的解决方案(请参阅下文),但这是必须验证软件仅在完全按照其预期方式运行的唯一方法.

即使未对代码进行审核,免费提供给审核的事实也强烈表明它是可信任的,因为开发人员不太可能会包含恶意代码,然后让任何人发现它都可以被发现。在乎看.

不是完美的解决方案...

不幸的是,只有少数人具有同时审核开放源代码软件的技能和时间(通常是免费的),这意味着绝大多数开放源代码程序尚未经过审核。.

许多开放源代码程序非常复杂,其中包含成千上万的代码行,这使问题更加复杂,因此即使对它们进行了审计,审计员也很可能错过了一个问题(特别是如果恶意代码已经被故意隐瞒).

但…

因此,开源并不能保证程序是“干净的”,但它是我们拥有(或可以拥有)的最好的保证。替代方案是封闭源,它不提供任何保证.

始终验证开源程序

因此开源对于安全性非常重要。好极了!但是,如何确定您刚刚下载的开源程序没有被某种方式篡改?

这听起来像是whacko偏执的阴谋幻想思维,但是在2016年2月,一个最流行的Linux开源操作系统之一Linux Mint的网站遭到黑客攻击,并且该OS的一个受感染版本可供下载者使用。,

“黑客制作了带有后门的经过修改的Linux Mint ISO,并设法入侵了我们的网站以指向它。”

被感染的Linux ISO映像通过Internet Relay Chat(IRC)后门Tsunami安装了完整的操作系统,从而使攻击者可以通过IRC服务器访问用户的系统。所以威胁是很真实的.

在这种情况下,费心检查文件的MD5哈希值的下载程序(请参阅此处以了解如何执行此操作)会发现欺骗行为,但这种哈希值检查并不是一种可靠的保护措施,因为如果可以首先对某个网站进行黑客攻击,它就可以用虚假的校验所包含文件的校验和替换发布的校验和很简单.

对于开发人员来说,对他们的软件进行数字签名要好得多,以便用户可以验证文件的来源(在这方面,Mint开发人员非常松懈,因为他们的软件没有经过数字签名,甚至使用的MD5哈希函数都是已知的被打破!)

请参阅我有关数字签名的文章-为什么以及如何使用它们以获取更多信息。不幸的是,验证数字签名是一件痛苦的事情,但是如果您关心安全性,则必须这样做。.

我还应该指出,理想情况下,所有软件都应该经过数字签名和验证,但是由于开放源代码可以由任何人自由修改,因此与封闭源代码相比,篡改更容易。因此,验证开源程序特别重要.

开源:结论

开源并不是一个完美的解决方案,但是它提供了最好的(也是唯一的!)保证,使软件可以被信任。替代方案是封闭源代码,它不提供任何保证(除了对公司的盲目信仰,这是高科技公司不应该拥有的信仰).

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me