软件锁步冗余执行等安全机制是什么?

news2024/11/29 1:35:51

软件锁步冗余执行等安全机制是一种用于提高软件系统的功能安全性和可靠性的技术。它的基本思想是让两个或多个软件副本执行相同的功能,然后比较它们的输出,以检测和处理可能的故障¹²。不同的安全机制有不同的特点和优缺点,例如:

锁步(lock-step):两个 CPU 内核执行完全相同的代码,每个内核都将输出反馈给一个比较逻辑模块。如果输出不一致,说明有故障发生。这种方法简单有效,但是浪费了一个内核的性能²。

冗余执行(redundant execution):两个独立的应用程序,运行在不同的 CPU 内核上,甚至在不同的虚拟机中。当应用的输出可用时,它们与额外的高安全完整性内核进行比较,以确保正确性。这种方法可以提高性能和灵活性,但是也增加了系统的复杂性和交叉检查的难度²。

分核锁(split-lock):一种结合了锁步和冗余执行的方法,它允许系统在启动时配置为“拆分模式”(两个独立的CPU,可用于不同的任务和应用程序)或“锁定模式”(CPU的锁定步进,用于高安全性完整性应用)。这种方法可以在高计算性能与高安全完整性支持之间实现平衡²。

(1) 汽车软件平台开发 - 知乎. https://www.zhihu.com/column/c_1357837554818162688.

(2) 锁步,冗余执行,以及分核锁 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/625480349.

(3) 软件异构冗余执行系统的安全能力分析. http://www.infocomm-journal.com/txxb/CN/Y2021/V42/I9/1.

进一步介绍分核锁(split-lock)

分核锁(split-lock)是一种结合了锁步(lock-step)和冗余执行(redundant execution)的安全机制,它可以在高计算性能与高安全完整性之间实现平衡¹²。分核锁的特点是:

  • 它允许系统在启动时配置为“拆分模式”(两个独立的 CPU,可用于不同的任务和应用程序)或“锁定模式”(两个 CPU 的锁步执行,用于高安全性完整性应用)¹²。
  • 它可以支持故障操作模式,即在锁定模式下运行时,如果一个 CPU 出现故障,系统可以将其下线(拆分),并在降级的操作模式下继续运行¹²。
  • 它可以提高系统的性能和灵活性,同时保证系统的安全性和可靠性¹²。

分核锁适合用于对功能安全性和计算性能都有较高要求的场景,如自动驾驶、车载系统等领域¹²。


(1) 锁步,冗余执行,以及分核锁 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/625480349.
(2) 锁步,冗余执行,以及分核锁-电子工程专辑. https://www.eet-china.com/mp/a223027.html.
(3) Arm发布Cortex-A76AE自动驾驶芯片架构,宣示车载系统市场主权-阿里云开发者社区. https://developer.aliyun.com/article/646865.
(4) 锁步核(lock-step core)、软件冗余设计与可分核(Split-Lock)的比较_隋边边的博客-CSDN博客. https://blog.csdn.net/Setul/article/details/104626310.


选择适合的安全机制需要根据不同的场景和需求进行综合考量。一般来说,可以从以下几个方面来评估安全机制的优劣:

安全性:安全机制能否有效地防止未经授权的访问、篡改、泄露或破坏数据,以及能否及时地检测和处理故障情况。
性能:安全机制在执行过程中对系统的资源消耗和响应速度的影响,以及能否满足系统的计算需求。
灵活性:安全机制能否适应不同的用户、数据、请求和环境,以及能否方便地进行配置和修改。
可维护性:安全机制的设计和实施是否符合相关的法律法规,以及是否容易进行监管和管理。

根据这些方面,可以比较不同的安全机制的优缺点,例如:

  • 软件锁步冗余执行等安全机制具有较高的安全性和可靠性,但是也牺牲了一定的性能和灵活性,适合用于对功能安全性要求较高的场景,如汽车、航空等领域¹²。
  • 基于角色的访问控制(role-BAC)具有较高的灵活性和可维护性,但是也增加了一定的管理复杂度,适合用于对用户权限管理要求较高的场景,如企业、组织等领域³。
  • 基于规则的访问控制(rule-BAC)具有较高的性能和灵活性,但是也需要定义清晰的规则和默认策略,适合用于对请求特征判断要求较高的场景,如防火墙、风控系统等领域³。
  • 强制访问控制(MAC)具有最高的安全性,但是也需要对所有数据进行标记和分类,适合用于对数据机密性要求极高的场景,如政府、军事等领域³。

你可以根据自己的具体情况,选择最适合你的安全机制。😊


(1) 如何解读数据安全机制? - 知乎. https://www.zhihu.com/question/585086856.
(2) 信息安全中的访问控制 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/151618654.
(3) 什么是安全策略?如何创建安全策略? - 华为. https://info.support.huawei.com/info-finder/encyclopedia/zh/%E5%AE%89%E5%85%A8%E7%AD%96%E7%95%A5.html.


根据ISO26262,功能安全是指不存在因电气和电子系统故障行为引起的危害而导致的不合理风险。

无论垂直市场如何,这个定义都意味着对任何安全相关系统有很多非常具体的要求。

各种安全标准还定义了不同级别的安全完整性,即特定系统需要有多“安全”。例如,控制车辆制动器的系统将具有最高级别的安全性,因为这种系统的故障可能是灾难性的。

然而,控制驾驶员座椅电机的系统虽然仍具有安全要求,但相对没有那么高的要求。在ISO26262中,这被定义为“汽车安全完整性等级”或“ASIL”。ASIL目前被定义为四个不同的级别,从“A”(最低)到“D”(最高)。这些级别与系统必须达到的诊断覆盖率直接相关,换句话说,与给定系统预期检测到的故障数量直接相关。

根本挑战

随着汽车行业向完全自主实施迈进,人们期望这场革命将带来一个更安全的世界。超过90%的车辆事故是由人为错误引起的,新一代车辆最终可以极大地降低死亡数字。然而,在车辆上实现功能安全,仍有几个基本挑战需要解决。自动化的系统需要消耗大量的计算性能,并且,由于它们能够控制车辆的方向和速度,因此它们需要具备最高水平的安全完整性。

那么,实现这一目标的技术选择是什么?

1. 锁步(lock-step)

在“锁步”中配置两个 CPU 内核是实现高级别诊断覆盖率的传统方法 - 能够检测错误情况的发生。原理很简单,每个内核执行完全相同的代码,每个内核都将输出反馈给一个比较逻辑模块。

比较逻辑模块逐周期比较输出,只要结果相等,一切正常。如果结果之间存在差异,则可能表明需要做更多检查或处理故障情况。

需要进行的操作由系统开发人员定义,并取决于相关系统。它既可以直接重新启动,或者在给定一段时间后重新检查错误条件是否仍然存在。锁步设计固定在芯片中,因此没有灵活性,因此,虽然拥有两个内核,但实际只能运用到单个内核的性能。

这种方法运用的非常普遍,多年来一直适用于微控制器和不太复杂的确定性微处理器。

2. 冗余执行(Redundant execution)

提供更高性能功能的 CPU 通常更复杂,确定性更低,因此对锁步更具挑战性。这导致了解决上述挑战还需要考虑更多方案,软件冗余或冗余执行就是一种选择。

此方法假定两个独立的应用程序,运行在不同的 CPU 内核上,甚至在不同的虚拟机中(如果实施了虚拟化)。当应用的输出可用时,它们与额外的高安全完整性内核进行比较,以确保正确性,由于其独立的时钟和电源,通常被称为“安全岛”。这个安全岛将负责最后的“决定和启动”阶段。此方法可以降低高计算群集上的诊断覆盖率要求,还可以在实现中引入更大程度的灵活性,同时提高效率。

然而,它也大大增加了系统的复杂性,再加上交叉检查的颗粒度较低。由于软件灵活性的优势,这种方法可能会在未来几年更广泛地用于某些需要安全性和高计算性能的应用程序。

3. 分核锁(Split-Lock):两全其美

最终的解决方案必须是将两种方法的优势(灵活性、性能、简单性和经过验证)结合在一起的解决方案。通过引入“分核锁”功能,高计算性能与高安全完整性支持相结合。

分核锁与锁步有何不同?从本质上讲,它增加了锁步 CPU 实现中不可用的灵活性。它允许系统在启动时配置为“拆分模式”(两个独立的CPU,可用于不同的任务和应用程序)或“锁定模式”(CPU的锁定步进,用于高安全性完整性应用)。这种灵活性甚至可以扩展到支持潜在的故障操作模式 - 继续在降级模式下运行而不是完全关闭系统的能力。例如,在锁定模式下运行时,如果一个内核开始出现故障情况,系统可能会被静默,故障内核可能会下线(拆分),从而允许在降级的操作模式下继续运行。这种“拆分可用”功能对于部署自主功能的系统都至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pull Request完整过程【记一次给antvis:G6的PR】

文章目录 前言Bug 重现问题排查解决方案old versionnew version收到回复 PR提交完整过程fork仓库 & clone代码仓添加upstreamfetch 新分支创建新分支完成修改(注意commit规范)push到个人仓库创建Pull Request填写PR信息 前言 G6正在进行v4到v5的版本…

基于多能互补的热电联供型微网优化运行(matlab代码)

目录 1 主要内容 多能互补模型 算例分析 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序基本复现《基于多能互补的热电联供型微网优化运行》,在需求侧对负荷类型进行分类,利用电负荷的弹性和系统供热方式的多样性,构建含电负荷时…

淘宝618每日一猜答案(6月9日)淘宝大赢家今日答案

淘宝6月9日每日一猜答案是什么?,接下来也会给大家来介绍一下6月9日淘宝大赢家每日一猜的答案。 淘宝每日一猜6月9日答案分享 活动问题:环球影城大酒店有几种主题房? 活动答案:【2种】 注意阿拉伯数字! …

[游戏开发][Unity]Assetbundle加载篇(1)热更前准备与下载AB包清单

热更流程都不是固定的,每个人写的状态机也有所差别,但是一些必要步骤肯定不可能少,例如下载清单,对比版本,下载AB包,标记下载完成。 检查沙盒路径是否存在 public static string MakePersistentLoadPath(st…

UnityVR--组件7--动画事件BlendTree

目录 应用1:使用BlendTree实现站立和移动 应用2:人物跳跃事件&播放跳跃动画 应用3:开火动画事件&动画片段中建立事件监听 上一篇(组件5--Animation动画)已经做了2个动画片段,HeroIdle和HeroJump…

【C语言】qsort详细将解

系列文章目录 qsort目录 系列文章目录一、前言二、qosort是什么?二、qsort的使用1、原型2、参数3、头文件(1)qsort参数中的函数指针讲解 三、使用示例和运行截图1、整形例子(升序)3、字符例子(降序&#xf…

Android——使用Service服务实现通信

实验目的: (1)能创建、启动和关闭服务 (2)能实现服务的通信 实验内容及原理: 设计一个服务的具体应用,实现服务的通信 实验设备及实验步骤: 实验设备:WindowsAndro…

VPS 和GPS 、SLAM 之间的爱恨情仇

注:该文章首发3D视觉工坊,链接如下3D视觉工坊 VPS 、GPS 、SLAM 的区别与联系 首先简单的阐述一下三者的定义: VPS全称为Visual Positioning System,即视觉定位系统。手机端(移动时代)的VPS首次出现时间节点为2019年&…

Linux 负载均衡集群 LVS_NAT模式 LVS_DR模式

集群 由多台主机组成,只做一件事,对外表现为一个整体。 只干一件事 :集群 干不同的事:分布式 企业集群分类 负载均衡群集(load balance cluster) 提高系统响应效率,处理更多的访问请…

Qt6 C++基础入门3 对话框与MainWindow

目录 对话框MainWindow菜单工具栏 对话框 目前的对话框主要有以下几大类 文件对话框( QFile Dialog)消息对话框( QMessageBox)输入对话框( QInputDialog)颜色对话框( QColorDialog)字体对话框( QFontDialog) 这是七大对话框及其基本用法的实例参考,所有代码都写在…

《星岛日报》专访:欧科云链AML,助力数字资产合规及风险防控

6月1日,香港《适用于虚拟资产交易平台营运者的指引》及《打击洗钱指引》正式施行,香港虚拟资产发牌制度正式生效。作为深耕香港市场多年的Web3科技企业,欧科云链OKLink也正式推出的Onchain AML反洗钱合规解决方案,利用多年积累的海…

Windows下安装python和pip

Windows下安装python和pip 1、安装python 注意:windows10 安装时强烈建议不用使用 Windows Store 安装。避免后期python运行时牵扯权限相关问题。 具体步骤: 1、前往python官网下载windows python 安装包 下载文件 2、双击运行安装(强力…

实时日志滚动显示 springboot+vue3

-:后端使用ssemiter保持客户端链接:http 这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。 -:前端使用vue3+ansi_up做页面展示 第一: 刷新页面导致session问题 可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java…

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

SQL SERVER case when的使用方法

一、case when的使用方法 Case具有两种格式。简单Case函数和Case搜索函数。 第一种 格式 : 简单Case函数 : 格式说明     case 列名     when 条件值1 then 选项1     when 条件值2 then 选项2…     else 默认值 end eg:     select     case   job…

2021年国赛高教杯数学建模B题乙醇偶合制备C4烯烃解题全过程文档及程序

2021年国赛高教杯数学建模 B题 乙醇偶合制备C4烯烃 原题再现 C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度的组合&#xff0…

JUC源码分析:通过ReentrantLock阅读AbstractQueuedSynchronizer源码

一、概述 ReentrantLock进行上锁的流程如下图所示,我们将按照下面的流程分析ReentrantLock上锁的流程,在此过程中阅读AbstractQueuedSynchronizer源码。 AQS 的数据结构如下图所示。 AQS大家还记得吗?最核心的是它的一个共享的int类型值叫做…

电脑自动关机是什么原因?如何解决?

案例:有时候我的电脑用着就突然关机,会导致一些没有保存的文件丢失。有没有小伙伴知道电脑为什么会自动关机?怎样做才能避免这个问题? 在使用电脑过程中,遇到电脑自动关机的问题是很常见的。当我们在进行重要任务时&a…

Netty核心源码剖析(四)

1.Netty心跳(heartbeat)服务源码剖析 1>.Netty作为一个网络框架,提供了诸多功能,比如编码解码等,Netty还提供了非常重要的一个服务–心跳机制heartbeat.通过心跳检查对方是否有效,这是RPC框架中是必不可少的功能.下面我们分析一下Netty内部心跳服务源码实现; 2>.Netty提…

电磁仿真需要牢记的内功心法

在射频、微波设计中,各种“强大”的商用电磁仿真软件的功能包罗万象,这篇“内功心法”从算法角度出发,提示大家如何谨慎选择仿真软件。 心法一:场”与“路”的区分 世上本无“路”,“场”近似得多了就变成了“路”&a…