是否有可能通过 IEC 61508 第 3 部分附录 F 证明软件元素的独立性,以便安全相关组件可以被评为 SIL 2 并且非安全组件(例如 UI、通信)可以被保留未评级,但总体结果仍被评为 SIL 2?
我特别感兴趣的是当安全和非安全元素都在单个处理器上运行并且处理器不实现任何形式的硬件内存保护时对此的看法。可以做各种各样的事情来确保软件元素不受干扰,例如确保数据完整性、数据传递受到严格控制和验证、任务调度是确定性的(非安全任务保证终止),以及等等。
严格应用这些技术是否足够?
最佳答案
如果 MCU 中存在任何安全相关固件,则其所有软件都是安全相关的。时期。
常识表明,代码中任何地方的任何错误都可能导致代码失控、堆栈溢出、越界访问、虚假中断等。更不用说与安全和非安全相关部分之间的接口(interface)相关的错误。
要在一个系统中争论独立性,在这个系统中您会认为软件的某些部分不太重要,您需要像多个内核在不同的内存区域执行代码这样的东西,而没有丝毫可能以任何方式相互影响.反过来,这将是一个奇怪且不必要的复杂设计。
通常的做法是为代码的每一部分设置相同的质量标准。这意味着如果您需要在一些未经验证的堆栈或第 3 方库中运行一些非关键代码,您可能应该考虑将其移至单独的物理芯片。使与安全相关的部件尽可能小和简单。
关于c - 不带内存保护单元的 CPU 上 IEC 61508 软件元素的独立性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60885378/