用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
北京经纬恒润科技股份有限公司
  • 域控软件安全隔离关键技术剖析:MCU域 VS SOC域  
  • 发布时间:2024/4/11 11:42:05   修改时间:2024/4/11 11:42:05 浏览次数:717
  • 域控软件安全隔离关键技术剖析:MCU域 VS SOC域
  • 安全隔离的需求

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


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

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

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


    软件内存基础

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

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

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

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

    1)已初始化的数据段

    2)未初始化的数据段

    3)只读数据段

    4)代码段

    5task栈区

    6)启动栈区

    7CSA

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

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


    MCU上的安全隔离模块

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

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

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

    系统级的SMPU

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

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

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


    2 SMPU保护原理

    核心级的CMPU

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

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

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


    3 CMPU隔离原理


    SOC上的安全隔离

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

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

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

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

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

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



    4 MMU工作原理


    安全隔离小结

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

     

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

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

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

  • 企业介绍
经纬恒润成立于2003年,股票代码688326。专注于为汽车、无人运输等领域的客户,提供电子产品、研发服务和高级别智能驾驶整体解决方案。公司总部位于北京,在天津、南通、马来西亚建有研发中心和现代化工厂,形成了完善的研发、生产、营销、服务…  更多>>
  • 联系方式

北京经纬恒润科技股份有限公司

联系人:经纬恒润

地址:北京朝阳区酒仙桥路14号1幢4层

邮编:100000

电话:010-64840808-6117

传真:

公司网址:http://www.hirain.com

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
 
姓名:  
单位:
电话:  
邮件:  
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 毛先生 在2024/6/28 14:14:00留言
  • 留言类型:我想得到贵公司产品详细资料,我让贵公司产品销售人员联系我,
  • 详细留言:实时仿真机
  • 贾抗震 在2024/4/8 15:19:00留言
  • 留言类型:贵公司技术支持人员联系我,
  • 详细留言:关于DCMM项目合作事宜,数据管理成熟度贯标认证
  • 刘先生 在2024/3/18 17:29:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,
  • 详细留言:目前有采购VBA需求,需要贵司销售人员联系我,并提供该产品详细技术参数。提供产品报价。 *需求紧急,请及时联系。
  • Cyoung 在2024/2/28 13:25:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司技术支持人员联系我,
  • 详细留言:CP AUTOSAR工具报价及技术支持
  • 詹绪婷 在2024/2/27 10:19:00留言
  • 留言类型:我想得到贵公司产品的价格信息,
  • 详细留言:TC8 3.0测试报价
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈