TrustZone是怎样保护片上代码的机密性的?

发布时间:2024-03-19  

STM32L5基于Cortex-M33 内核,其内核基于ARMV8-M架构,自带有TrustZone安全技术,从内核到整个芯片系统,实现了安全区域和非安全区域之间的有效隔离。在调试端口保护方面,TrustZone 和 RDP(读保护)的配合,同样可以实现灵活的调试端口访问控制,有效阻断来自调试端口对片上代码的窥探。


TrustZone 保护片上代码的机密性

调试端口连接可控

在RDP1或者RDP0.5条件下,如果芯片使用了TrustZone上电调试接口就不可连接(具有类似RDP2的效果)

比RDP2更灵活,可以由用户代码控制后续调试端口访问权限,实现安全调试,并保留修改选项字节的可能性

用户片上Flash进一步隔离

安全闪存区域不能被非安全世界任意访问

非安全世界不能访问安全世界的数据

非安全世界不能访问安全世界的外设

非安全世界访问安全世界的函数,需要按照一定规则,不可随意调用

pYYBAGDIXsyARUS1AAC2rzFcgc8321.jpg

TrustZone 助力代码保护示例

资源在“安全世界”和“非安全世界”之间的分配

示例菜单和测试功能

示例运行注意事项

资源的分配

上电运行安全世界代码,做资源分配

安全世界:

关键操作,关键数据

配合读保护,可以阻断调试端口连接

非安全世界:

人机交互

可以使能调试端口,但是无法访问到安全世界的关键数据和外设

调试端口的连接控制RDP=0

读保护级别为0(芯片缺省状态)

芯片复位可被调试端口连接

poYBAGDIXsWASYafAADWo-ExoC0371.jpg

运行示例

调试端口的连接控制RDP=0.5

读保护级别为0.5

硬件保证:CPU处于安全状态时,调试无法连接;包括复位时,运行安全代码时

软件操作:安全代码在跳转到非安全区域之前,关闭调试端口

保护效果

CPU运行在非安全区域时,缺省调试无法连接;可通过身份认证来使能对非安全代码的调试

带身份认证的调试使能

基于“挑战-应答”模型

芯片产生随机序列,合法用户持有匹配私钥对随机序列的签名,才能被芯片使用其存储在安全世界里的对应公钥验签成功

例程运行注意事项

RDP0.5时,S代码自动关闭调试端口。使用STM32CUbeProgrammer hotplug也无法连接;IDE下载NS代码也不会成功;需要用户通过菜单打开调试端口,之后STM32Cubeprogramer才能连接成功,IDE下载也才能成功。

RDP非0时,片上Flash中如果没有可以跑到非安全状态的有效代码,调试端口不再可连 除非改变启动方式,从系统BL启动(系统BL的代码是一定可以跑到非安全状态的) 需要确保可以从系统BL启动(选项字节中的启动控制:nSWBOOT0)

【Q】为何例程没有提供RDP回退的菜单? 【A】TrustZone使能时,RDP回退只能由调试接口或者系统BL完成 例程通过硬件和软件两方面一起作用,实现了对非安全代码的可控调试 硬件:读保护级别不为零+TZ使能 复位时+ 运行在安全代码区域时,调试不可连接 软件:安全区代码在跳转到非安全区代码之前,软件关闭调试端口 菜单【1】、【2】:测试作用,不会集成到产品中 菜单【D】:即使通过通信端口在非安全区注入恶意代码来调用打开调试端口的功能,由于不知道签名所需要的私钥,验证无法通过,不能打开调试端口 。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    件比较少。 缺点:在停机状态下单片机的IO口依旧带电,正常使用没问题,但是不是很规范,会有不可预料的风险。 适用范围:此电路适合手持设备使用,开关方便,停机状态几乎不耗电。 1.2、复杂版 操作......
    低汽车危险,D 为最高。 ASIL 值是在通过评估参数(例如暴露、严重程度和可控性)对潜在危害进行必要风险分析后得出。例如,尾灯属于 ASIL A 级别,而后视摄像头、刹车灯、雷达巡航控制和视觉 ADAS......
    {  3  42     printk('<0>function open!nn');  4  43   5  44     base_iomux = 0x43FAC000;  6  45......
    下优缺点相对nand: 优点: 操作简单(可以像内存一样随机访问) 读取速度快 可靠性高,不易出现位反转 缺点: 容量小,价格贵 擦写慢 寿命短 2.norflash地址范围: Nor Flash属于......
    使能信号(LnOE/LnWE)等. Nor Flash可以像内存一样读,但是不能像内存一样写,需要做一些特殊的操作才能进行写操作,这是因为nor是属于rom(只读存储器),不能像ram一样可以任意的写0写......
    地址空间0x0000—0x7FFF,属于Common Bank,映射了“物理存储”,即Flash 的0x0000—0x7FFF区间。 程序地址空间0x8000—0xFFFF,属于Bank(0—3),四个......
    前发推送,0点之后看阅读数和点赞数,一周7天,几无间断。对于“996”和“007”,通常周六都不属于孩子,白天还想属于孩子真是痴心妄想。双职工家庭中,不但爸爸不属于孩子,妈妈也同样不属于孩子。所以......
    可以在振幅方向上以某一定的间隔进行划分,决定个样本值属于哪一区间,将记在其区间的值分配给其样本值。如上图 将区间分割为0~0.5、0.5~1.5、1.5~2.5,再用0、1、2……代表各区间,对小......
    s3c6410_中断(2024-09-04)
    : u-boot-x.x.x/cpu/s3c64xx/start.S   1. 中断源   S3C6410有64个中断源,0-31由VIC0控制,32-63由VIC1控制。产生中断时,进入IRQ或FIQ......
    STM32入门学习笔记之基础定时器实验(上);7.1 STM32定时器概述 STM32内部共有8个定时器,其中Timer1和Timer8属于高级定时器,Timer2~Timer5属于通用定时器,8......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>