安全关键型应用,在很多人看来是个专业的词汇,但其实它离我们的日常生活很近,比如汽车驾驶系统、飞机控制系统、电梯运行系统、医疗设备等与我们息息相关的事物都可以纳入安全关键型应用的范畴。
对于这类应用,通用的或者领域相关的安全标准都有着明确的认证规范,甚至开发这类应用的工具链也必须以某种方式经过认证,以确保其适用于这些安全相关的开发。本文将介绍用于安全关键型开发的工具链获得认证的意义,以及您如何在自己的安全相关项目和应用中利用这种认证支持。
安全认证的正式标准已经发布多年,但在过去的几年中,特别是在嵌入式领域,人们对这些标准的兴趣和实际使用程度正在显著增加。人们对认证和经过认证的终端产品的兴趣日益浓厚,部分原因是法律要求,但对生产企业来说,获得安全认证意味着获得市场竞争力。
与许多功能安全相关的国际综合标准IEC 61508,经过了多次修订,于2010年发布了第二版。这个标准以及它所衍生的标准,现在广泛应用于对可靠性和安全性有要求的行业,如过程工业、铁路和自动化等,比如ISO 26262用于汽车领域、EN 50128用于铁路应用、IEC 62304用于医疗软件和医疗设备。
如果您即将启动一个具备安全关键功能或功能安全要求的项目,您可能已经意识到您所使用的开发工具必须以某种方式经过资格认证,以适用于与安全相关的开发。认证开发工具的具体要求取决于您所遵循的标准,在某种程度上也取决于产品故障可能引发的严重程度。这还与工具的性质有关,例如,生成进入产品的代码的编译器比源代码度量工具更难认证,而源代码度量工具比版本控制系统或需求管理系统更难认证。
不同的标准对安全完整性(即产品的关键程度)有不同的定义,并且这些标准在工具的分类上也有所不同。以IEC 61508为例,它规定了编译器等工具需要经过认证,尽管并没有明确定义“认证”的具体含义。此外,该标准还要求工具必须经过验证,以确保它们符合相关的规范或文档。最糟糕的情况是,这意味着您必须在自己的项目中全面测试工具,除非能够提供其已经过测试的充足证据。此外,您还需要评估项目对工具的依赖程度。
还要考虑和评估的另一件事情是工具供应商支持工具的能力,最好能够在安全关键产品的整个生命周期内提供支持。
所有这些事情集中在一起可能会给您带来相当大的工作量,而这还只是涉及一个工具和一个项目......从另一个方面来讲,这正是IAR的工具链获得认证的原因所在。
IAR用于安全关键开发的工具获得认证到底意味着什么呢?它意味着您为证明工具的使用合理性而必须做的工作量将大大减少。因为独立的第三方机构TÜV SÜD已经对IAR的开发活动、问题处理程序以及测试和验证活动进行了评估,并认证了IAR的工具符合IEC 61508、ISO 26262、EN 50128和IEC 62304等安全标准的要求。这些工具包括IAR Embedded Workbench for Arm、RISC-V、STM8、Renesas RX、RL78和RH850等。这也意味着,如果您选择C或C++作为编程语言,IAR的工具链是一个绝佳的选择。
那么,如果选择了经过认证的工具,就完事大吉了吗?
还要考虑的一个重要事情是您需要的支持程度以及您可以从工具链获得的支持程度。这不仅仅限于项目开发期间,还包括产品的整个生命周期。如果工具旧了并且被新版本取代,工具供应商不一定会在旧版本工具上继续支持您。这种立场与典型的安全相关项目的需求背道而驰,因为在这些安全相关项目中,应尽量避免工具的更新。
如果之前认证过的工具的更新不仅仅包含错误修复(Bug Fix),还包含功能更新,那么仅接受错误修复是没有用的,因为需要对工具更新进行重新认证或者进行详细的影响分析以及测试。
通过与开发安全相关且具有高可用性要求的软件或服务的客户多年合作,IAR了解到,对“冻结”版本的支持至关重要。“冻结”版本指的是只接受错误修复而永远不添加新功能的工具版本。这种版本可以根据需要保持活跃并得到支持。过去,IAR为需要特定“冻结”版本和相关支持服务的客户量身定制了特殊合作协议。现在,通过认证,IAR有机会以简化的方式为所有使用IAR Embedded Workbench功能安全版本的客户提供“冻结”版本和相关支持服务。
IAR的安全解决方案包含了以下主要内容。
综上所述,选择经过认证的工具链可以使您轻松地在安全相关项目中使用它,选择包含适当支持服务的工具可以使您的工具选择和投资更具价值。
此外,即使您的产品没有直接的安全要求,但如果需要满足各种高完整性或高可用性要求,功能安全支持服务同样非常有用。