新闻动态
NEWS FEED
您现在的位置:
首页
-
-
SoC中的安全卫士——安全AHB控制器

SoC中的安全卫士——安全AHB控制器

  • 分类:新闻中心
  • 作者:Liu Hao@NXP
  • 来源:恩智浦MCU加油站
  • 发布时间:2023-03-03 17:05
  • 访问量:

【概要描述】  一、Cortex-M33 TrustZone Cortex M33内置了Arm设计的TrustZone技术,可以实现安全(Secure/S)与非安全(Non-Secure/NS)之间的隔离,提高系统的安全等级。 恩智浦MCU加油站中已经有若干文章为大家介绍了TrustZone:   通过上面的文章,想必大家对TrustZone已经有了一些基本的理解。 TrustZone是内置在Cortex M33内核中的一个功能。安全是一个系统工程,可是,MCU也是一个麻雀虽小但五脏俱全的SoC(System on Chip),内核具备安全的隔离能力,是否能够满足我们对于整个SoC系统的安全隔离要求呢? 本文以LPC55S69(CPU0为Cortex M33且支持TrustZone)为例,为大家简要介绍安全AHB控制器。   二、解剖总线上的主从设备 我们可以简单地把MCU理解为由内核+多种外设构成的芯片,软件工程师编写的代码最终运行在内核中,通过操作外设实现各种各样的功能。 毫无疑问,内核是总线上的一种主设备,它不仅具有自己的寄存器,还会在运行中主动地向总线上的其他设备(例如内存,flash等)发起访问。 而大部分外设,都是从设备,例如USART和SPI等外设,只能被动地等待内核或其他主设备的配置,然后实现相应的功能。在运行中,从设备并不具备操作其他设备的能力。 有一些特殊的外设,例如DMA,USB等外设,与内核类似,它们具有自己的寄存器,并且在运行中,会主动地访问内存、flash甚至是其他外设的寄存器。   三、只有TrustZone就够了吗? 那么,在MCU中,通过TrustZone功能,内核可以在运行中从安全状态切换至非安全状态。转移至非安全状态后,内核是无法访问安全区域的资源的。 如上节所述,总线上有很多主设备和从设备。但是,由于TrustZone是集成在内核中的,TrustZone不能限制内核之外的其他主设备的行为,总线上的其他主设备仍然可以访问安全区和非安全区的所有资源。 因此,DMA等其他总线上的主设备,仍然可以访问整个地址空间,即使Cortex M33内核被转移至非安全状态,此时Cortex M33内核没有安全区资源的访问权限,仍然可以通过利用其他主设备(例如DMA),访问任意资源。那么此时,DMA等其他主设备就像是一个可以被利用的“漏洞”,这是安全系统不能接受的。 这时的系统如下图所示,即使Cortex M33被TrustZone的SAU和IDAU严格限制,但其他主设备在总线上仍然是畅通无阻。   四、安全AHB控制器 安全AHB控制器的英文名称是Secure AHB Controller。 其实,产生前文所述问题的原因有两个:   总线上,只有Cortex M33内核CPU0具有TrustZone功能,而其他的主设备没有此功能。站在总线的角度看,只能判断出CPU0 Cortex M33发出的请求和访问是否是安全,却无法判断出其他主设备的访问请求是安全或非安全。 对于总线上的从设备来说,从设备无法判断来自总线的访问是安全还是非安全的,因此也就无法通过以设置访问规则的方式,拒绝违背访问规则的非法请求和访问。   安全AHB控制器是NXP LPC55Sxx系列MCU的一个特殊外设。 安全AHB控制器提供了MSW(Master Security Wrapper),MSW为总线上除CPU0之外的其他主设备,提供了一种简易的类似于TrustZone的功能。总线上除CPU0外的每一个主设备都有一个MSW。 例如,我们可以通过MSW,将某个主设备DMA0配置为安全主设备,那么在运行中,DMA0发出的所有访问请求,都是安全请求;我们也可以将另一个主设备DMA1配置为非安全主设备,在运行中,DMA1发出的所有访问请求,都是非安全请求。 有了MSW,从总线的角度看,我们就可以分辨出每一个主设备发出的请求是安全还是非安全。 安全AHB控制器还为每一个从设备(外设)提供了一个“保安”PPC(Peripheral Protection Checkers),PPC将会恪尽职守,严格检查访问请求是否符合设置的规定章程,并拒绝非法的访问。 例如,我们可以将位于USART之前的PPC检查规则设置为仅允许安全访问,那么所有非安全访问都被视为非法,并被PPC拒之门外,上文所述被配置为非安全主设备的DMA1也就无法访问和操作USART。 同时,安全AHB控制器也为内部存储介质(包括RAM,Flash和ROM)提供了类似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分块地保护各种内部存储介质。 此时总线的架构图如上图所示。 有了安全AHB控制器的MSW,总线上的所有主设备不仅支持安全侧带信号HNONSEC(安全访问)作为给定访问的安全属性的指示,也支持HPRIV(特权)信号作为特权与非特权属性的指示。(注:本文重点介绍了HNONSEC信号相关的安全与非安全属性,并未详细介绍与HPRIV相关的特权与非特权,这与Cortex M3/M4等内核中的特权与非特权相同)。 安全AHB总线处理HNONSEC信号,并将其与安全AHB控制器中为从设备的PPC/MPC所设置的安全属性进行比较。如果请求访问的安全属性不违反被访问从设备的安全属性,则允许访问。如果在访问中违反规则发生冲突,则会引发安全冲突中断。CPU0切换到安全模式以处理违规。 安全是个系统工程,有了安全AHB控制器这个安全守卫,我们的SoC系统才能被滴水不漏地划分为安全世界和非安全世界。 与此同时,安全AHB控制器还提供了很多功能,可以用来设置SoC安全相关的配置,并且还提供了一些寄存器,用于调试和处理违规访问。关于安全AHB控制器的更多信息,请参考LPC55Sxx用户手册(User Manual)中Trusted Execution Environment相关章节。    

SoC中的安全卫士——安全AHB控制器

【概要描述】 




一、Cortex-M33 TrustZone




Cortex M33内置了Arm设计的TrustZone技术,可以实现安全(Secure/S)与非安全(Non-Secure/NS)之间的隔离,提高系统的安全等级。

恩智浦MCU加油站中已经有若干文章为大家介绍了TrustZone:

 

通过上面的文章,想必大家对TrustZone已经有了一些基本的理解。

TrustZone是内置在Cortex M33内核中的一个功能。安全是一个系统工程,可是,MCU也是一个麻雀虽小但五脏俱全的SoC(System on Chip),内核具备安全的隔离能力,是否能够满足我们对于整个SoC系统的安全隔离要求呢?

本文以LPC55S69(CPU0为Cortex M33且支持TrustZone)为例,为大家简要介绍安全AHB控制器。

 

二、解剖总线上的主从设备

我们可以简单地把MCU理解为由内核+多种外设构成的芯片,软件工程师编写的代码最终运行在内核中,通过操作外设实现各种各样的功能。

毫无疑问,内核是总线上的一种主设备,它不仅具有自己的寄存器,还会在运行中主动地向总线上的其他设备(例如内存,flash等)发起访问。

而大部分外设,都是从设备,例如USART和SPI等外设,只能被动地等待内核或其他主设备的配置,然后实现相应的功能。在运行中,从设备并不具备操作其他设备的能力。

有一些特殊的外设,例如DMA,USB等外设,与内核类似,它们具有自己的寄存器,并且在运行中,会主动地访问内存、flash甚至是其他外设的寄存器。

 




三、只有TrustZone就够了吗?




那么,在MCU中,通过TrustZone功能,内核可以在运行中从安全状态切换至非安全状态。转移至非安全状态后,内核是无法访问安全区域的资源的。

如上节所述,总线上有很多主设备和从设备。但是,由于TrustZone是集成在内核中的,TrustZone不能限制内核之外的其他主设备的行为,总线上的其他主设备仍然可以访问安全区和非安全区的所有资源。

因此,DMA等其他总线上的主设备,仍然可以访问整个地址空间,即使Cortex M33内核被转移至非安全状态,此时Cortex M33内核没有安全区资源的访问权限,仍然可以通过利用其他主设备(例如DMA),访问任意资源。那么此时,DMA等其他主设备就像是一个可以被利用的“漏洞”,这是安全系统不能接受的。

这时的系统如下图所示,即使Cortex M33被TrustZone的SAU和IDAU严格限制,但其他主设备在总线上仍然是畅通无阻。



 




四、安全AHB控制器




安全AHB控制器的英文名称是Secure AHB Controller。

其实,产生前文所述问题的原因有两个:

 



总线上,只有Cortex M33内核CPU0具有TrustZone功能,而其他的主设备没有此功能。站在总线的角度看,只能判断出CPU0 Cortex M33发出的请求和访问是否是安全,却无法判断出其他主设备的访问请求是安全或非安全。


对于总线上的从设备来说,从设备无法判断来自总线的访问是安全还是非安全的,因此也就无法通过以设置访问规则的方式,拒绝违背访问规则的非法请求和访问。



 

安全AHB控制器是NXP LPC55Sxx系列MCU的一个特殊外设。

安全AHB控制器提供了MSW(Master Security Wrapper),MSW为总线上除CPU0之外的其他主设备,提供了一种简易的类似于TrustZone的功能。总线上除CPU0外的每一个主设备都有一个MSW。

例如,我们可以通过MSW,将某个主设备DMA0配置为安全主设备,那么在运行中,DMA0发出的所有访问请求,都是安全请求;我们也可以将另一个主设备DMA1配置为非安全主设备,在运行中,DMA1发出的所有访问请求,都是非安全请求。

有了MSW,从总线的角度看,我们就可以分辨出每一个主设备发出的请求是安全还是非安全。

安全AHB控制器还为每一个从设备(外设)提供了一个“保安”PPC(Peripheral Protection Checkers),PPC将会恪尽职守,严格检查访问请求是否符合设置的规定章程,并拒绝非法的访问。

例如,我们可以将位于USART之前的PPC检查规则设置为仅允许安全访问,那么所有非安全访问都被视为非法,并被PPC拒之门外,上文所述被配置为非安全主设备的DMA1也就无法访问和操作USART。

同时,安全AHB控制器也为内部存储介质(包括RAM,Flash和ROM)提供了类似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分块地保护各种内部存储介质。



此时总线的架构图如上图所示。

有了安全AHB控制器的MSW,总线上的所有主设备不仅支持安全侧带信号HNONSEC(安全访问)作为给定访问的安全属性的指示,也支持HPRIV(特权)信号作为特权与非特权属性的指示。(注:本文重点介绍了HNONSEC信号相关的安全与非安全属性,并未详细介绍与HPRIV相关的特权与非特权,这与Cortex M3/M4等内核中的特权与非特权相同)。

安全AHB总线处理HNONSEC信号,并将其与安全AHB控制器中为从设备的PPC/MPC所设置的安全属性进行比较。如果请求访问的安全属性不违反被访问从设备的安全属性,则允许访问。如果在访问中违反规则发生冲突,则会引发安全冲突中断。CPU0切换到安全模式以处理违规。

安全是个系统工程,有了安全AHB控制器这个安全守卫,我们的SoC系统才能被滴水不漏地划分为安全世界和非安全世界。

与此同时,安全AHB控制器还提供了很多功能,可以用来设置SoC安全相关的配置,并且还提供了一些寄存器,用于调试和处理违规访问。关于安全AHB控制器的更多信息,请参考LPC55Sxx用户手册(User Manual)中Trusted Execution Environment相关章节。

 

 

  • 分类:新闻中心
  • 作者:Liu Hao@NXP
  • 来源:恩智浦MCU加油站
  • 发布时间:2023-03-03 17:05
  • 访问量:
详情

 

一、Cortex-M33 TrustZone

Cortex M33内置了Arm设计的TrustZone技术,可以实现安全(Secure/S)与非安全(Non-Secure/NS)之间的隔离,提高系统的安全等级。
恩智浦MCU加油站中已经有若干文章为大家介绍了TrustZone:

 

通过上面的文章,想必大家对TrustZone已经有了一些基本的理解。
TrustZone是内置在Cortex M33内核中的一个功能。安全是一个系统工程,可是,MCU也是一个麻雀虽小但五脏俱全的SoC(System on Chip),内核具备安全的隔离能力,是否能够满足我们对于整个SoC系统的安全隔离要求呢?
本文以LPC55S69(CPU0为Cortex M33且支持TrustZone)为例,为大家简要介绍安全AHB控制器。

 

二、解剖总线上的主从设备

我们可以简单地把MCU理解为由内核+多种外设构成的芯片,软件工程师编写的代码最终运行在内核中,通过操作外设实现各种各样的功能。
毫无疑问,内核是总线上的一种主设备,它不仅具有自己的寄存器,还会在运行中主动地向总线上的其他设备(例如内存,flash等)发起访问。
而大部分外设,都是从设备,例如USART和SPI等外设,只能被动地等待内核或其他主设备的配置,然后实现相应的功能。在运行中,从设备并不具备操作其他设备的能力。
有一些特殊的外设,例如DMA,USB等外设,与内核类似,它们具有自己的寄存器,并且在运行中,会主动地访问内存、flash甚至是其他外设的寄存器。
 

三、只有TrustZone就够了吗?

那么,在MCU中,通过TrustZone功能,内核可以在运行中从安全状态切换至非安全状态。转移至非安全状态后,内核是无法访问安全区域的资源的。
如上节所述,总线上有很多主设备和从设备。但是,由于TrustZone是集成在内核中的,TrustZone不能限制内核之外的其他主设备的行为,总线上的其他主设备仍然可以访问安全区和非安全区的所有资源。
因此,DMA等其他总线上的主设备,仍然可以访问整个地址空间,即使Cortex M33内核被转移至非安全状态,此时Cortex M33内核没有安全区资源的访问权限,仍然可以通过利用其他主设备(例如DMA),访问任意资源。那么此时,DMA等其他主设备就像是一个可以被利用的“漏洞”,这是安全系统不能接受的。
这时的系统如下图所示,即使Cortex M33被TrustZone的SAU和IDAU严格限制,但其他主设备在总线上仍然是畅通无阻。
 

四、安全AHB控制器

安全AHB控制器的英文名称是Secure AHB Controller。
其实,产生前文所述问题的原因有两个:

 

  1. 总线上,只有Cortex M33内核CPU0具有TrustZone功能,而其他的主设备没有此功能。站在总线的角度看,只能判断出CPU0 Cortex M33发出的请求和访问是否是安全,却无法判断出其他主设备的访问请求是安全或非安全。
  2. 对于总线上的从设备来说,从设备无法判断来自总线的访问是安全还是非安全的,因此也就无法通过以设置访问规则的方式,拒绝违背访问规则的非法请求和访问。

 

安全AHB控制器是NXP LPC55Sxx系列MCU的一个特殊外设。
安全AHB控制器提供了MSW(Master Security Wrapper),MSW为总线上除CPU0之外的其他主设备,提供了一种简易的类似于TrustZone的功能。总线上除CPU0外的每一个主设备都有一个MSW。
例如,我们可以通过MSW,将某个主设备DMA0配置为安全主设备,那么在运行中,DMA0发出的所有访问请求,都是安全请求;我们也可以将另一个主设备DMA1配置为非安全主设备,在运行中,DMA1发出的所有访问请求,都是非安全请求。
有了MSW,从总线的角度看,我们就可以分辨出每一个主设备发出的请求是安全还是非安全。
安全AHB控制器还为每一个从设备(外设)提供了一个“保安”PPC(Peripheral Protection Checkers),PPC将会恪尽职守,严格检查访问请求是否符合设置的规定章程,并拒绝非法的访问。
例如,我们可以将位于USART之前的PPC检查规则设置为仅允许安全访问,那么所有非安全访问都被视为非法,并被PPC拒之门外,上文所述被配置为非安全主设备的DMA1也就无法访问和操作USART。
同时,安全AHB控制器也为内部存储介质(包括RAM,Flash和ROM)提供了类似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分块地保护各种内部存储介质。
此时总线的架构图如上图所示。
有了安全AHB控制器的MSW,总线上的所有主设备不仅支持安全侧带信号HNONSEC(安全访问)作为给定访问的安全属性的指示,也支持HPRIV(特权)信号作为特权与非特权属性的指示。(注:本文重点介绍了HNONSEC信号相关的安全与非安全属性,并未详细介绍与HPRIV相关的特权与非特权,这与Cortex M3/M4等内核中的特权与非特权相同)。
安全AHB总线处理HNONSEC信号,并将其与安全AHB控制器中为从设备的PPC/MPC所设置的安全属性进行比较。如果请求访问的安全属性不违反被访问从设备的安全属性,则允许访问。如果在访问中违反规则发生冲突,则会引发安全冲突中断。CPU0切换到安全模式以处理违规。
安全是个系统工程,有了安全AHB控制器这个安全守卫,我们的SoC系统才能被滴水不漏地划分为安全世界和非安全世界。
与此同时,安全AHB控制器还提供了很多功能,可以用来设置SoC安全相关的配置,并且还提供了一些寄存器,用于调试和处理违规访问。关于安全AHB控制器的更多信息,请参考LPC55Sxx用户手册(User Manual)中Trusted Execution Environment相关章节。

 

关注威旺达网站及微信公众号,了解 NXP MCU更多信息。

关键词:

扫二维码用手机看

相关新闻

高算力GD32G5系列MCU如何引领数字能源、电机控制与光通信的变革

高算力GD32G5系列MCU如何引领数字能源、电机控制与光通信的变革

  不论是蓬勃兴起的数字能源、不断拓展应用边界的电机控制,还是极速发展的光通信,这些领域正在经历一场与大数据分析、云计算和人工智能(AI)等前沿技术深度融合的变革。这一融合不仅推动了技术边界的大规模扩展,也引发了对智能化解决方案需求的迅猛增长。
2025-01-08
兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书

兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书

随着汽车电子电气组件数量的指数级增长,其安全性需求日益凸显。ISO 26262作为国际权威汽车功能安全标准,其核心目标是降低汽车电子电气系统可能导致的风险,确保车辆的安全性能。在ISO 26262标准框架下,ASIL(Automotive Safety Integration Level)分类系统将功能安全从低到高分为四个等级:A、B、C、D,其中,D代表最高等级,意味着在该等级下的开发流程最为严格。
2024-12-06
MCU和各种单片机的区别

MCU和各种单片机的区别

  ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。
2023-05-15
3D打印机-一个技术造就一个行业

3D打印机-一个技术造就一个行业

3D打印机-一个技术造就一个行业             说到3D打印,大家不会陌生,早在19世纪中期,就已经诞生了。在过去的十年里,3D打印更多的用途是帮设计师以及工程师来制造一次性的机械产品以及模型。 那么,什么是3D打印?     3D打印技术又被称为增材制造技术。3D打印技术是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印通常是采用数字技术材料打印机来实现的,常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造。     3D打印通常是采用数字技术材料打印机来实现的。常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,已经有使用这种技术打印而成的零部件。该技术在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车,航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、枪支以及其他领域都有所应用。 2019年1月14日,美国加州大学圣迭戈分校首次利用快速3D打印技术,制造出模仿中枢神经系统结构的脊髓支架,成功帮助大鼠恢复了运动功能。 2020年5月5日,中国首飞成功的长征五号B运载火箭上,搭载着“3D打印机”。这是中国首次太空3D打印实验,也是国际上第一次在太空中开展连续纤维增强复合材料的3D打印实验。 3D打印技术一定是要有一个机器来实现,这个机器就是--3D打印机。 3D打印机(3D Printers)是一位名为恩里科·迪尼(Enrico Dini)的发明家设计的一种神奇的打印机,它甚至可以“打印”出一幢完整的建筑。3D打印已经成为一种潮流,并开始广泛应用在设计领域,尤其是工业设计,数码产品开模等,可以在数小时内完成一个模具的打印,节约了很多产品到市场的开发时间。     3D 打印机可以用各种原料打印三维模型,使用3D 辅助设计软件,工程师设计出一个模型或原型之后,无论设计的是一所房子还是人工心脏瓣膜,之后通过相关公司生产的3D打印机进行打印,打印的原料可以是有机或者无机的的材料,例如橡胶、塑料、甚至是人体器官,不同的打印机厂商所提供的打印材质不同。 3D打印机电路原理: 3D打印机的工作原理和传统打印机基本一样,都是由控制组件,机械组件,打印头,耗材和介质等架构组成的,打印原理一样的。3D打印机主要是在打印前在电脑上设计好一个完整的三维立体模型,然后再进行打印输出。     3D打印时采用的堆叠薄层的形式有多种多样。常用的3D打印机采用的是熔融沉积快速成型。熔融沉积又叫做熔丝沉积,它是将丝状热熔性材料加热融化,通过带有一个微细喷嘴的喷头挤喷出来。热熔材料融化后从喷嘴喷出,沉积在制作面板或者前一层已固化的材料上,温度低于固化温度后开始固化,通过材料的层层堆积形成最终的成品。 在整个作业过程中,MCU起到了关键性的作用。整个3D打印机,最核心的电路部分就是对电机的控制,电机应该使用伺服电机,控制伺服电机的MCU可以使用NXP的KV系列,对于电机有极高的控制能力,也是目前3D打印机行业首选的MCU系列。 3D打印技术的发展前景非常广阔,未来将会有更多的技术突破和应用领域的拓展。   关注威旺达网站及微信公众号,了解 NXP MCU更多信息。
2023-04-21

28年专注半导体

为国内各行业广大用户提供高品质的半导体产品

SINCE 1997

 为您量身定制解决方案

联系我们

电话

全国统一服务热线

地址:北京市朝阳区建外SOHO

公众号

威旺达公众号

Copyright © 2022  北京威旺达电子科技有限责任公司  All rights reserved