当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]传统的嵌入式软件应用程序存在于单个连续的空间中,具有唯一的ID,内存和代码均坐在一起且易于访问。当然,这使得黑客一旦踏入门,就可以很容易地访问整个系统。嵌入式系统安全的关键是隔离。开发人员可以改善隔离的一种新方法是利用ARM®M23/33微控制器中的新Trustzone®功能。在这篇文章中,我将介绍读者如何使用Trustzone保护安全功能,但仍能从非安全内存区域访问它们。

传统的嵌入式软件应用程序存在于单个连续的空间中,具有唯一的ID,内存和代码均坐在一起且易于访问。当然,这使得黑客一旦踏入门,就可以很容易地访问整个系统。嵌入式系统安全的关键是隔离。开发人员可以改善隔离的一种新方法是利用ARM®M23/33微控制器中的新Trustzone®功能。在这篇文章中,我将介绍读者如何使用Trustzone保护安全功能,但仍能从非安全内存区域访问它们。

在介绍细节之前,讨论有关Trustzone的一些信息将很有用。 TrustZone是ARMV-8体系结构的安全硬件扩展,可提供硬件隔离,从而创建一个可以从中执行软件的安全和非安全区域。这两个区域都有自己的MSP,PSP,MPU和安全区域,甚至有一些非银行寄存器在非安全区域中无法访问。从安全到非安全的过渡,反之亦然,在三个时钟周期内的硬件中都完成了,因此开发人员无需担心添加任何额外的代码来处理过渡;但是,开发人员确实需要关注自己可以正确控制哪些安全功能可以从非安全区域访问。

Trustzone允许开发人员除了指定在安全区域中应执行哪些内存区域,中断和外围设备,还可以安全启动其微控制器。

默认情况下,在非安全区域中执行的代码无法访问安全区域。在安全区域中放置内存位置的任何尝试都将导致异常。问题在于,开发人员可能需要调用安全功能,例如加密库函数,或者可能被认为是安全的外围驱动程序。为此,开发人员需要在其安全的应用程序项目中创建一个接口,该项目成为非安全和安全代码区域之间安全网关的一部分,并允许执行安全函数。安全功能在安全或受信任的区域中执行,使其与非安全代码隔离。

在安全代码和非安全代码之间创建接口是使用ARM_CMSE库完成的,该库是C库扩展程序,以支持安全的可执行文件。该库包含用于创建功能指针的定义,以指向非安全内存,例如cmse_nsfptr_create。编译器本身(例如Keil MDK)还包括诸如CMSE_NONSECURE_ENTRY之类的新编译器属性,该属性告诉编译器,相关函数位于安全内存中,但可以从非安全内存中访问。

创建可访问的安全功能的过程很简单。首先,开发人员可以像其他任何功能一样定义其安全功能,只是在其安全项目中定义了该功能。可以在下面看到一个安全功能:

int mySecureFunction(funcptr_ns,int data){funcptr_ns callback_ns; callback_ns =(funcptr_ns)cmse_nsfptr_create(callback); data = callback_ns(data); Return data;}

有关此代码有几个有趣的观点:

· 该代码利用来自ARM_CMSE.H的funcptr_ns类型,该类型定义了用于访问非安全内存的功能指针的类型

· 从安全区域访问非安全回调函数需要调用CMSE_NSFPTR_CREATE,这将允许在安全区域中访问非安全函数

· Trustzone代码通常使用NS表示非安全,并表示安全

· 如书面,非安全区域无法访问此代码

为了纠正此代码是完全安全且不可访问的事实,开发人员需要使用cmse_nonsecure_entry属性。然后,安全功能定义将从以下方式变化:

int mysecurefunction(funcptr_ns,int data){…}

int mysecurefunction(funcptr_ns,int data)__attribute __(((cmse_nonsecure_call))){…}

添加属性CMSE_NONSECURE_CALL告诉编译器,可以从非安全内存访问此功能。这将允许使用安全的网关指令访问该功能。此外,当安全函数完成执行并准备好跳回非安全代码时,将清除任何非银行寄存器,即在安全区域和非安全区域之间共享的寄存器。清除寄存器可以防止可能存储在非银行寄存器中的任何安全数据暴露于非安全区域。

在这一点上,开发人员将能够编译安全库,然后从其非安全项目中,包括其功能的标头文件,并拨打迈塞克雷功能。

在尝试保护嵌入式系统时,将关键功能与应用程序的其余部分隔离至关重要。应仔细考虑,以决定应隔离应用程序中的哪些功能,甚至将使用哪些机制。 Trustzone是一种嵌入式软件开发人员可以开始用于提高产品安全性的工具。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭