安全的软件架构如何设计

描述

简单直接地开始编程的诱惑总是很大。如果采取这种做法,日后在安全和防护方面可能要付出代价。设计适当的软件架构可以......

简化接口减少须视为安全相关的代码量促进模块化有助于测试和验证简化非安全相关软件的更改管理支持更严格的硬件设计简化代码关于简化这一目标,我喜欢下面这句发人深省的名言

软件安全

图1 - 关于软件设计的名言

IEC 61508-3中的V模型将软件架构步骤显示为收集需求与软件设计之间的步骤。它是决定软件安全基本策略的步骤,包括冗余和多样性的使用。它还涉及将功能分配给主要元件和子系统,并决定其间如何互连。

软件安全

图2 - IEC 61508-3:2010中的V模型

机械标准IEC 62061给出了关于软件架构的一些最佳说明,包括下图。此图不是专门针对软件的,但我认为它已经把主要思想表达出来。

软件安全

图3 - 摘自机械安全标准IEC 62061

如果架构不支持安全与非安全软件之间充分隔离,那么所有软件都需要根据安全标准进行开发。如果软件属于混合安全完整性,那么不支持充分独立性要求的架构将导致所有软件都必须按照任何模块的最高安全完整性进行开发。

显然,软件架构需要与硬件架构协调一致。如果系统含有三个微控制器/微处理器,其中一个用于运行控制软件,另外两个各运行一个安全通道,那么每个微控制器/微处理器可以有自己的软件架构,充分隔离和独立性在很大程度上是默认具备的。而要在单个处理器中实现相同的目标,将需要在架构规划上下更大工夫。

除了划分子系统和元件之外,架构还应描述控制流程,但这是未来博客的主题。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分