学习
实践
活动
工具
TVP
写文章

可信安全是一项系统工程,设计人员需在系统开发早期对安全需求、供应商选择、性能权衡、安全测试等进行整体考虑

引言

安全性和可信计算是系统级平台开发需要考虑的重要因素,尽管系统中各模块、操作系统和软件等非常重要,但系统安全性不能是仅仅对这些元素进行生搬硬套,需要对其进行系统整体的考虑,包括定义不同安全需求、安全性和性能权衡、安全性测试等。

设计人员必须查看每个系统元素,并了解它们是如何一起工作的。如果系统的单个离散元素是不安全的,设计者就不可能断言整个系统是安全的。你需要了解每个系统元素如何与其他元素集成,这些元素可以使用哪些接口,以及每个元素如何与系统中的其他部分通信。

系统设计者必须尽一切努力消除所有风险,避免无意中提供不安全的系统端口,这会使得系统容易遭受攻击。

定义不同系统的安全需求

通常,设计人员可以通过几种不同的方式满足系统级的安全需求。例如,为了抵御针对弱硬件组件进行的特定恶意攻击,设计者可以使用一个防御能力更强的组件,也可以采用分布式系统方法,从而让攻击者同时针对多个组件执行更加困难的任务。

系统设计者必须了解如何实现不同的系统级体系结构来满足共同的安全需求。他们还必须了解每个体系结构之间的权衡。不同的程序管理人员会根据其特别重点与关键性能参数做出不同的选择。

设计人员可以实现系统级或模块级别的安全保护。虽然该决定可能已经确定,但有时成本、进度或特定组件的限制可能会促使设计者决定到底采用哪种级别的保护。

通过设置接口确保数据通信传输

系统级安全的另一个重要主题是如何在系统内部或是系统之间设置接口。设计人员必须考虑设计通信路径的最佳方式,以确保系统能够适当地处理传输中的数据。

设计人员必须就各个模块之间的系统内通信以及如何保护这些数据做出决策。接口发送数据的位置也很重要,因为通常来说“系统内”通信与“系统间”通信有着非常不同的安全考虑。

此外,系统使用这些接口的方式,无论是在运行期间还是在维护活动中,都可能会引发额外的考虑。设计人员必须先对数据进行适当级别的检验或身份验证,然后才能对这些数据进行不同集成级别的处理。这意味着他们必须根据不同的输入/输出范围,选择需要的访问控制或身份验证功能。

与商用现货供应商合作优化安全性

安全需求从客户或编程部门流向系统设计人员,以提供防篡改或网络安全保护的具体信息。设计者必须细分这些需求,以定义每个需求对系统本身及其每个组件的意义。

有时,设计者可以用一种解决方案来满足防篡改和网络安全的需求。在其他情况下,设计人员必须解决不同领域的竞争需求。安全需求随之流向COTS供应商,以实现任何必要的缓解技术。

在理想情况下,一个值得信赖和有能力的供应商将处理所有的组件以优化安全性。然而,安全挑战往往来自于使用不同供应商的模块。通常,系统集成商必须处理多个COTS供应商,但并不是每个COTS供应商都能支持相同级别的可信计算能力,因此设计者还必须权衡供应链管理问题和COTS供应商迎合系统需求的能力。

权衡安全性和性能对系统进行测试

设计人员还必须解决、理解安全实现的性能方面,因为安全网络、加密和身份验证可能会影响引导、处理数据的额定输送能力,影响网络数据和系统延迟;设计人员必须考虑系统所有的关键性能参数。

可信计算对性能的影响会因系统而异,可能需要设计者在安全性和性能之间进行权衡。尺寸、重量和功耗限制也可以在权衡利弊时提供参考。对于新的“血峰”系统设计,可能就需要在安全性的实现以及满足任务需求之间进行权衡了。

对系统级安全性的测试带来了一系列挑战。对于某些安全实现,设计人员可能需要对系统的各个部分进行分类,并在一个保密实验室中对它们进行测试。之后,当启用安全措施时,可以在未分类的环境中测试系统,其中敏感组件可以与系统的其他元素集成起来。挑战就是,如何以一种具有成本效益的方式对分类和非分类组件进行集成,并确保在每组环境中能够有效地执行调试。

确保系统安全地在战场中应用

维护和升级战场系统是另一个可能影响安全性的领域。设计人员必须决定是否允许在战地中进行软件更新,如果允许的话,又如何验证该软件。

如果一个系统模块在战场中发生故障,必须要有一个进程正确地对其替换进行身份验证。当系统进入维修站进行维修时,重要的是要了解它的维护端口可以访问系统的哪些部分。

在部署系统之前,设计人员必须决定如何管理安全证书和密钥。密钥管理计划,包括撤销密钥的能力,必须经过全面审查以减少项目的长期维护成本。这些决策应该在程序开发的早些时候就做出,因为这些选择将影响它们在系统中的设计方式。

需要在系统开发早期考虑安全性

在系统开发的最初阶段,比较容易做出关于可信计算保护的决策;在系统设计的早期阶段,讨论防篡改和网络安全也是很有价值的。安全性涉及系统的每个元素。要在已经设计好的模块或系统之后添加所需的“钩子”(hooks),通常需要撤销以前承担的大量的成本高昂的设计工作。

虽然在程序开始开发时可能不存在安全性需求,但是系统设计人员通常可以预见其发展。对于系统集成商及其供应商来说,在设计阶段早期讨论对安全性的长远预期是很重要的。

在程序设计周期进入尾声的时候实现可信计算保护可能是昂贵、浪费的,因为所有其他系统的开发必须等待(设计者)选择一套安全方法,并且他们还得充分了解这些决策对系统其它部分可能产生哪些相关影响。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180728B087L300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券