“如果你所使用的是开源安全软件,那么这款软件本身是否安全?”
作为Benetech公司的一员,这是我们在选择使用Martus——一款免费而又极为强大的,由Benetech人权计划提供的敏感信息安全收集 与管理加密工具——时曾经多次提出的问题。这个问题对我们而言非常重要,当然对于在后斯诺登时代下担心甚至恐惧于监控活动的同行们亦有着极为关键的意义。 我们不仅坚信开源机制能够与数字安全的各项要求相吻合,同时也认为其正是安全体系当中不可或缺的组合部分。
安全软件就像一个保险箱
请允许我用以下比喻来解释开源与安全的关系:
我们不妨将加密机制视为一套用于数据保护的组合型保险箱。大家可能是惟一使用这套组合的用户,或者可以通过从几套相关组合中选择其一提高其可信度。 保险箱的设计目标在于保证未经授权的对象无法接触到其中保管的内容。而这些对象可能包括有意窃取有价值业务信息的罪犯、想了解同行薪酬数字的员工或者希望 获取机密信息以实施诈骗活动的恶意人士。无论属于哪种情况,我们要求保险箱能够做到的就是保证内容安全并将无权访问的对象阻绝在外。
既然如此重要,那么我们接下来就要为有价值数据选择一款保险箱了。我是否应该选择保险箱一号——广告中说它拥有半英寸厚的金属箱壁、六枚锁紧螺栓, 独立机构测试验证其中保管的内容甚至能够在长达两小时的火灾当中毫发无损?又或者,我应该选择保险箱二号——这款保险箱的安保水平仅仅得到了供应商方面的 承诺,因为其设计细节属于商业机密而无法公布?事实上,保险箱二号很可能是用胶合板及金属薄层粘夹而成,但出于“商业机密”保证、具体情况我们不得而知。 当然,二号也许真的比一号更为安全,不过需要强调的是——我们无法确定。
大家不妨想象自己为保险箱一号制定出了完善的部署计划与使用规范,甚至能够在拥有正确素材及工具的情况下另外制作一套复制品。这一切会降低保险箱一 号的安全保护效果吗?不,完全不会。保险箱一号的安全性主要由两大因素所提供:设计强度与猜测密码组合的难度。由于能够确切了解到这款保险箱的具体规划思 路,因此我个人或者安全专家们能够准确判断其设计水平究竟如何。这自然有助于建立起不存在设计缺陷或者除自行选定的密码组合外无其它“后门”组合的保险箱 解决方案。请大家记住,一套优秀的保险箱设计方案应该允许用户随意选择自己的安全要素组合。从另一个角度讲,熟知保险箱的设计思路并不一定能帮助攻击者猜 出用户所选择的特定随机组合。
安全保护的真正目标
世界上并不存在完美的安全保护机制。广告宣传中所谓的“一款坚不可摧的保险箱”殊不可信,属于完全超出实际水平的虚假承诺。因此,对有价值信息进行 保护的目标并不是为了使其“不可能被窃取”,而是尽可能提高恶意人士窃取时所需投入的成本——无论是以金钱形式(更好的工具要求攻击者投入更多资金)、时 间形式抑或是被送进监狱的可能性。
一款保险箱在破解时需要投入的成本越高,我们的有价值信息就越安全。
了解到一款保险箱的技术规格并借此知晓其破解办法并不会导致安全性因此而降低。理由很简单:意识到一款保险箱采用半英寸厚的钢板制造确实可能让窃贼 们发现,他们需要使用强劲的切割工具才能穿过如此厚重的防护。但这方面知识并不能降低他们的犯罪活动成本。一款设计出色的保险箱拥有一整套难以被猜出的密 码组合,而这已经足以应对大部分攻击者。
看到这里相信大家已经明白了,前面提到的采用开放设计的强大保险箱正是用来比喻安全软件设计思路的。
正如保险箱方案一样,作为一款强大的加密软件工具、其安全性并不会因为其属于或者不属于开源设计而受到影响。事实上,一款安全软件的源代码向大家公开,这本身就是强化其安全性的一种有效举措。与此同时,这也能够扩展其用户的安全水平与隐私保护效果。
具体理由如下:如果代码能够以公开及自由的方式供我们审查,那么最终用户、相关专业人士以及整个开源社区就能够广泛参与到软件的修改当中,从而切实 保证其符合所作出的不存在“后门”的承诺。考虑到如今我们已经生活在一个超监控时代之下,用户们当然会倾向于选择能够切实践行软件开发者透明度承诺的安全 产品。这一点对于保障那些人权捍卫者、社会活动家、记者、民间社会团体以及其他以公平正义为主导的使用者的数字及物理安全效果有着极为重要的意义。
这看起来像是一种悖论,即对安全软件的源代码加以开放反而能够提高其可信度。不过作为工具开发人员,我们的目标并不是要把软件设计思路隐藏起来,而 是利用软件对委托信息进行加密。正如前面提到的保险箱比喻所言,软件的安全强度仅仅取决于其自身设计质量以及密码内容被猜出的难度。有了强大且可公开访问 的设计方案,其它关键性安全元素会鼓励用户选择内容较长、强度较高且非直观性密码内容。这种将安全设计与良好保密密码相结合的方案完全能够使得那些技术水 平最高、资源最充足的攻击者亦难于访问存储在开源安全软件当中的机密信息。
不过正如最安全的保险箱最终还是会被拥有大量时间与资源的专业攻击者破解一样,安全软件最终也将倒在类似的攻击活动之下。再次强调我们之前提到过的 结论,安全软件的目标在于提高此类攻击行为的成本,从而降低攻击者侵扰我们的可能性——没错,他们更可能选择安全性较为薄弱的其他受害者。
将开源机制引入解决方案
在Benetech公司,我们相信协作与社区体系有助于带来强有力的安全保障。在这里,我们将开源代码引入软件开发流程,从而简化合作机制并吸引各 类现有重要创新成果。在Martus项目当中,我们不需要重新实现密码库,而是选择了一套强大的开源方案(Bouncy Castle)。同样,我们也不需要重新开发匿名工具,而是直接将Tor集成到了Martus当中。通过这种方式,我们的用户将从整个开源社区的工作中受 益,并反过来通过推出更多优秀数字化安全工具的方式支持及推广社区的开发成果。
各人权组织中的主要技术资助方表示,开源软件在其支持对象群体内往往拥有更为理想的信赖水平。他们中的一部分机构,例如开放技术基金,目前正以出资方式积极鼓励受资方让自己的软件成果接受来自第三方专业人士的评估与审计。
只有更良好的透明度、问责机制、独立可验证性以及协作机制才能带来卓越的安全性保障。而开源正推动着我们朝着这一目标大步前行。
开源网络安全