域控软件安全隔离关键技术剖析:MCU域 VS SOC域

发布者:诚信与爱最新更新时间:2024-10-12 来源: elecfans关键字:安全隔离 手机看文章 扫描二维码
随时随地手机看文章

安全隔离的需求

功能安全开发中,软件阶段由软件V模型左边的软件安全需求SSR开始。SSR是从技术安全需求TSR中提取出软件的功能安全需求,大多数情况下具有不同的ASIL等级。

wKgZomYXe6KAARPrAAERxMLYISc651.pngwKgZomYXe6KAARPrAAERxMLYISc651.png

图1功能安全软件开发V模型


随后,软件安全需求会被分配到软件架构中的软件组件中。不同ASIL等级的软件安全需求被分配到软件组件过后,带来了级联失效的问题。若放任不同ASIL等级软件组件在一个系统中运行,可能会存在低ASIL等级软件组件失效从而引发高ASIL等级软件组件失效的风险。

ISO26262对软件组件之间的交互进行了分析并提出了免于干扰(Freedom from Interference)的需求,安全隔离则旨在隔离软件系统中安全相关与安全无关的软件组件,以及不同ASIL等级的软件组件。


软件内存基础

首先让我们来了解内存的基本知识。RAM与ROM是ECU中常见的存储器类型,它们在数据存储和访问方面扮演着重要的角色。

RAM(Random Access Memory)是一种临时存储器,用于存储计算机正在运行的程序和数据。它具有快速的读写速度和随机访问的特点。

ROM(Read-Only Memory)是一种只读存储器,用于存储固定的程序指令和数据。ROM中的数据在计算机断电时不会丢失,因此被称为非易失性存储器。

然而在软件视角中,软件被编译后会被分为不同的段进行存放。具体分段方式可能根据架构有细微区别在,以Tc3xx系列芯片为例,包含以下几段:

(1)已初始化的数据段

(2)未初始化的数据段

(3)只读数据段

(4)代码段

(5)task栈区

(6)启动栈区

(7)CSA区

这些段被编译器分配到物理内存中,可能由不同的存储器来存放。每当程序需要使用某处数据或者加载某处的指令时,会根据地址来取出所需的数据或是指令进行运算,再将运算结果写入某处物理内存中。

在这个过程中,安全隔离的目标是阻止安全无关的软件组件写入安全相关的软件组件使用的内存区域;低ASIL等级的软件组件写入高ASIL等级的软件组件所使用的内存区域。


MCU上的安全隔离模块

MCU上的安全隔离通常借助内存分区机制和内存保护单元MPU完成。经典AUTOSAR架构中,允许对软件进行内存分区(Partition),借助内存映射(memory map)将软件组件的代码和数据划分到指定的区域内。这种方式虽然能有效地将不同ASIL等级的变量和代码分布到不同的地址范围中,但无法杜绝指针越界、数组越界导致跨区域访问的风险。

MPU(memory protection unit)内存保护单元是一种按内存区域提供保护和隔离的硬件原件,与内存分区配合使用可以阻止不同软件分区的软件组件之间相互访问,从而达到内存隔离的效果。

以Tc3xx系列芯片为例,MPU可以按照保护范围分为两种,一种为系统级的SMPU(System Memory Protection Unit),另一种为核心级的CMPU(Core Memory Protection Unit)。

· 系统级的SMPU

SMPU有时候也被称为Bus MPU,表示其工作在芯片总线上。其保护原理如图2所示,总线上所有主机对于内存的访问都会经过SMPU,当主机拥有所请求内存地址的对应访问权限(读/写)时,才能允许访问。

Tc3xx中的Bus MPU可以维护8个地址保护区域(每个保护区域范围由两个寄存器控制),每个保护区域都记录了64个总线主机的权限。当主机访问内存区域时,首先寻找对应的区域,再根据主机TAG ID检查主机是否拥有对应的权限,检查通过后才能进行读写访问,否则会触发系统定义的故障。

SMPU通常用于多核系统和使用DMA设备的系统,其保护范围有限,且不能覆盖所有的内存区域。

up-3b47d2d236af2518a538fb61105ab942c7d.jpgwKgZomYXe66Afn9WAACK0ZoKrbM598.png

图2 SMPU保护原理

  • · 核心级的CMPU

核心级的CMPU则是每个CPU核心独有的,提供应用级别的隔离。经典AUTOSAR中,软件组件被组织成OSA(OS Application)。OSA内部存在共享资源,OSA之间则需要考虑内存隔离。

CMPU保护原理如图3所示,CMPU隔离对象为CPU中运行的软件。CMPU也会预先划分保护区域,这通常也是内存分区的结果。对于这些内存区域,每一个在核心中运行的OSA可能都具有不同的权限。当上下文切换时,MPU的保护范围也会动态切换,以适配不同的OSA。

同CMPU一样,只有拥有对应内存区域访问权限的OSA,才能成功完成访问,否则会触发系统定义的故障。CMPU通常拥有更多的保护区域,且能覆盖所有的内存空间。在这基础上,CMPU还支持保护集的预设,使CPU进行上下文切换时,更快地切换地址空间地MPU保护权限。一般来说,CMPU的应用更为广泛,在一些不那么复杂的系统中甚至只用CMPU就足以完成内存隔离的需求。

wKgZomYXe7WAIxK_AADXt4Hi0pQ415.png

图3 CMPU隔离原理


SOC上的安全隔离

相比MCU,SOC拥有更强大的性能,可以运行一些复杂操作系统(比如linux)。这种情况下,基于地址范围进行保护的MPU就显得“力不从心”了。进程是操作系统进行资源分配的基本单位,一些应用程序可能由多个进程组成,在某些场景中(比如座舱域)还需要虚拟机来运行不同的操作系统。

因此,我们把SOC上的内存隔离场景划分为两个层级:进程级隔离、应用程序级隔离和操作系统级隔离。本文主要介绍进程级隔离。

MMU(Memory Management Unit)是SOC中常见的硬件,用于提供进程级别的内存分配和隔离。进程在运行时,操作系统会使进程认为自己独占整个寻址空间(32位机器寻址空间为4GB),并使用连续的物理地址进行操作。但实际上,这个内存空间要么尚未分配,要么部分存在于磁盘中。并且其使用的虚拟地址会由MMU进行翻译,对应到分散的物理地址中。

MMU的工作原理如图4所示。内存空间被划分为若干页面(Page),每个页面占用4KB内存。进程使用的连续虚拟页面被MMU翻译到具体的分散的物理页面中。

MMU最主要的功能其实是将虚拟页翻译到物理页。那为什么MMU可以实现进程级隔离呢?

因为MMU的翻译是基于页表进行的,页表记录了进程虚拟页到物理页的映射。操作系统为不同的进程分配的不同的页表起始地址,存储在对应寄存器中。当MMU翻译地址时,根据页表起始地址加偏移量定位到具体的页表项,进而完成地址翻译。不难看出,这种机制使得进程拥有天然隔离的零散的地址空间

wKgaomYXe8GAJ0zpAAC8606e4Jc001.png

图4 MMU工作原理


安全隔离小结

安全隔离的底层原理是避免软件对内存的不合理访问,以满足功能安全要求。硬件层面上,有MPU、MMU这样的硬件进行程序内存空间的保护和约束;软件层面上,容器化技术和虚拟化技术也能帮助用户制定更灵活的隔离策略。但并不是说实现了这些安全隔离机制就等于完全满足了安全隔离需求,还需要结合软件和系统的正确设计来共同达成目标。

经纬恒润功能安全团队成立于2008年,系国内较早从事功能安全技术研究的团队。作为功能安全、预期功能安全国家标准委员会成员,经纬恒润的研发流程、生产流程已通过功能安全开发过程认证,功能安全开发过程达到ASIL-D,相关产品已成功服务于近百家国内外整车及零部件企业。


经纬恒润功能安全软件团队可提供功能安全软件开发技术咨询服务,包括功能安全软件阶段流程/产品咨询、L2监控算法开发集成和L3安全机制(安全通信、隔离、监控、执行和芯片AOU)的开发集成,控制器覆盖动力域、底盘域、智驾域和车身域等。


未来,经纬恒润将紧跟行业发展趋势和市场需求,结合自身汽车电子产品研发和国内外咨询实践,一如既往地坚持自主创新道路,为智能汽车安全保驾护航。


关键字:安全隔离 引用地址:域控软件安全隔离关键技术剖析:MCU域 VS SOC域

上一篇:什么是汽车中控屏?汽车中控屏四核和八核区别
下一篇:基于SOA架构的智能座舱层级

推荐阅读最新更新时间:2024-11-12 22:09

时代基础软件的现状
如果说汽车电动化是趟上半场的列车,那智能化的下半场已飞速向我们驶来,我们的汽车从机械定义、硬件定义、软件定义、数据定义,再到用户定义的汽车时代,整个汽车从机械到电气架构都将重构,机械将逐步分层解耦实现插拨,电气实现软、硬件解耦逐步接口标准化,域控基础软件平台化,应用软件智能化,云端平台服务化。 智能化-底层软件-基础软件-OS-AUTOSAR-SOC引入。通俗讲就是板级芯片驱动、车载OS、抽象层及中间件。 1、操作系统 在动力、底盘核心控制领域,对于传统汽车电子开发领域,早期使用的OS则是OSEK OS, OSEK OS是一个为满足汽车电子可靠性、实时性、成本敏感性等需求而打造的实时单核操作系统(RTAOS)。 C
[汽车电子]
互联网势力VS传统车企,谁能赢得电动车的未来?
  汽车已不仅是交通工具,它像手机一样承载着玩家们的想象。不过,诸多传统汽车人士则认为,汽车本质上还是交通工具,它具备极高的技术门槛,互联网思维在这里很难玩转,乐视汽车就是最好的明证。下面就随汽车电子小编一起来了解一下相关内容吧。   相关统计显示,2016年比亚迪、吉利和北汽位列 电动车 销量前三甲,而国内互联网汽车品牌尚未有量产车,领先的奇点、蔚来等也刚刚发布样车。   尽管如此,各路资金还是蜂拥而至,乐视、游侠、奇点、蔚来、小鹏、车和家等互联网品牌相继成立,动辄吸引数十亿资金的投资。   奇点汽车创始人沈海寅认为,汽车电动化、智能化是必然发展趋势,汽车产业不像互联网那样“赢者通吃”,足以支撑起更多的玩家,新势力瓜分传统车企
[汽车电子]
基于VSC-HVDC的交直流混联供电系统内部过电压机理分析
1研究现状 目前,国内外对交直流混联系统内部过电压的研究已取得一些成果。文献对舟山多端柔性直流输电工程内部过电压产生的机理进行了仿真分析,并建立了保护控制策略模型。文献分析了张北柔直系统在直流线路短路故障后送受端换流站的直流过电压变化动态过程。文献研究了VsC-HVDC系统7种常见故障类型下的过电压。文献对比了基于MMC与VsC直流输电系统的故障特征差异。文献经过分析交直流系统各位置故障的过电压,得出对换流站过电压水平起决定性影响的故障均位于其直流侧的结论。文献对直流输电线路操作过电压机理进行了分析。文献以±10kV两端柔性直流配电网为例,对MMC直流配电网几类故障下产生的过电压进行了仿真。文献分析了舟山多端柔性直流输电系统交直流
[嵌入式]
基于<font color='red'>VS</font>C-HVDC的交直流混联供电系统内部过电压机理分析
TVS二极管在便携设备ESD中应用
便携式设备的ESD保护十分重要,而TVS二 极管是一种十分有效的保护器件,与其它器件相比有其独特的优势,但在应用时应当针对不同的保护对象来选用器件,因为不同的端口可能受到的静电冲击有所不 同,不同器件要求的保护程度也有不同。要注意相应的参数鉴别以及各个生产商的不同设计,同时还要进行合理的PCB布局。本文介绍在便携式设备的ESD保护 中如何应用TVS二极管器件。 便携式设备如笔记本电脑、手机、PDA、MP3播放器等,由于频繁与人体接触极易受到静电放电(ESD)的冲击,如果没有选择合适的保护器件,可能会造成机器性能不稳定,或者损坏。更坏的情况是查不出确切的原因,使用户误认为是产品质量问题而损坏企业信誉。 一般情况下,对此类设备
[电源管理]
T<font color='red'>VS</font>二极管在便携设备ESD中应用
人工智能芯片之战:高通VS联发科
  近日,新浪微博发布了2017年大数据全网热词,其中“ 人工智能 ”在2017年网络传播热度指数高达23.77,2017年全网信息量高达1779.1万,“ 人工智能 ”当之无愧成为热词榜冠军!伴随大数据、智能化的发展, 人工智能 由最初的假想变成如今的现实,并在今年,人工智能浪潮以“迅猛”之势席卷全球!下面就随网络通信小编一起来了解一下相关内容吧。   人工智能发展之势势不可挡,各个国家对其的重视程度已上升到战略层面,而各行各业也积极布局,纷纷在“人工智能”领域展开身手。如致力于智能语音的公司科大讯飞在本月中旬宣布拟募资36亿元,其中约70%用于人工智能领域;互联网安全公司三六零也在月中宣布募资不超过108亿元用于人工智能等多
[网络通信]
埃马克VSC 250 TWIN KBG——欧迪恩转型升级助推器
专注于研发、设计、制造于一体的汽车球笼式等速万向节及驱动轴总成的欧迪恩,目前正处于大力推动传统制造转型升级阶段,发展迅速,势头强劲。应市场对更高精度和更高质量的等速万向节及驱动轴总成的需求,此次埃马克硬车硬铣设备的投入使用,既提升了产品的精确度和品质,又增强了自身的市场竞争力,为欧迪恩全面实施自动化,智能化生产添筹加码。 作为全球领先的金属加工解决方案供应商,埃马克坚持本地化战略,不断深入市场,浙江欧迪恩传动科技股份有限公司(以下简称“欧迪恩”),其前身为具有31年专业制造等速万向节、驱动轴总成经验的台州宏利汽车零部件有限公司,1987年创立于浙江台州,2005年投资建立了具有国际先进水平的平湖生产制造基地。欧迪恩以其健康的运
[汽车电子]
埃马克<font color='red'>VS</font>C 250 TWIN KBG——欧迪恩转型升级助推器
阿特拉斯科普柯扩展GHS VSD+系列螺杆真空泵至1900立方米/时
上海2016年5月31日电 /美通社/ -- 阿特拉斯 科普柯于2015年4月推出 GHS 350-900 VSD+一体化真空泵,如今该系列已拓展至GHS 1300 1900 VSD+,流量1300 1900 m 3 /h,极限压力0.35 mbar(a),同时配备高效的变速驱动技术 VSD 以满足波动型需求。 GHS 1300 1900 VSD+ 是即插即用型真空泵,设计紧凑,占地面积不到2.3 m2,所需的全部组件一体式交付,安装简便,节约生产车间的宝贵空间。 阿特拉斯 科普柯GHS 1300 VSD+螺杆真空泵 阿特拉斯 科普柯GHS 1300 VSD+螺杆真空泵 相对其它技术而言,GHS VSD+降低能耗高达
[半导体设计/制造]
阿特拉斯科普柯扩展GHS <font color='red'>VS</font>D+系列螺杆真空泵至1900立方米/时
vscode 使用 SDCC 开发 STM8
本文介绍如何在 EIDE 上将 STM8 标准库移植到 SDCC 工具链,并完成测试 以 STM8S105K4T6 为例,其他的库过程大都相同 1. 创建 STM8 项目 打开 EIDE, 新建项目,类型选择 C51,注意:路径里最好不要有中文空格,在编译器里会出错 切换工具链至 SDCC, 打开编译选项,设置 device 为 stm8 设置宏,本项目为:STM8S105,USE_STDPERIPH_DRIVER 新建一个目录,将复制外设库到里面,并去除掉芯片不支持的外设源文件 2. 移植过程:主要针对 stm8s.h, 其他文件基本不用动 移植的过程并不复杂,就是参照其他编译器的定义,查询 SDCC 手册,写出适合 SDCC
[单片机]
<font color='red'>vs</font>code 使用 SDCC 开发 STM8
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved