本文档旨在介绍如何在MCXN947微控制器上配置安全启动和生命周期,以确保产品在量产阶段的安全性,防止代码被窃取和篡改,并且能够安全地升级更新固件。通过本应用笔记,开发者可以更好地理解和实施安全启动和固件更新的最佳实践。
实施简介
1.1安全固件(Secure Binary)简介
安全启动(Secure Binary, SB)提供了一种安全且便捷的方法,用于在制造过程或最终用户设备生命周期中烧录或更新嵌入式设备的固件。SB文件是一种基于命令的固件更新镜像。SB文件可以被视为一种脚本(命令和数据),ROM是其解释器。ROM支持3.1版的SB镜像格式。
SB3.1使用最新的加密算法来确保所携带固件的真实性和机密性。启动时间和安全级别根据所需用例的最佳匹配来控制多种可用的安全配置。基于椭圆曲线密码学(ECC)的数字签名确保了SB3.1容器的真实性。使用高级加密标准(AES)的密码块链接(CBC)模式确保了SB3.1容器的机密性。
1.2生命周期(Lifecycle)简介
芯片生命周期状态用于反映芯片的实际状态,进一步用于指导芯片在特定时间如何保护其所托管的资产。例如,当客户开发完项目、进入量产阶段,或在终端客户使用时,芯片的访问权限比在开发阶段要少得多。
MCXN947微控制器支持多种安全生命周期状态,详细信息请参阅《MCX Nx4x安全参考手册》中的“生命周期状态”章节。注意,生命周期状态是单调递增的,这意味着它只能不断增加,访问权限只能更加严格。本文是针对现场模式(Infield)配置,确保设备在部署后的安全性。
1.3 MCUXpresso SEC工具简介
MCUXpresso安全配置(SEC)工具是一款基于GUI的应用程序,用于简化在恩智浦MCU上生成和配置可启动的可执行文件。该工具可用于生成SB3.1文件和部署MCU安全配置。
实施步骤
2.1准备
2.2步骤
2.2.1恢复MCU到默认配置
1). ISP模式链接MCU
按住 ISP键,POR上电启动。本文使用ISP-USB接口,因此使用USB线连接J11(HS-USB)端口。
2).配置CMPA和CFPA为默认状态
打开SEC工具,新建一个工作空间,选择对应的芯片。配置如下:
SEC工具配置方法:
3).烧写CMPA和CFPA
OK -> Build image, Write image,将配置好的默认的CMPA和CFPA烧写到MCU内。
4).全片擦除Flash
USB连接板子的调试接口MCU-link。SEC工具选择debug probe。连接成功后,利用Erase全片擦除。
芯片恢复为默认状态,没有任何使能的安全配置。
2.2.2配置安全启动和生命周期为现场模式(In-field)
1).生成配置安全启动的秘钥
选择PKI management界面->Generate Keys... ->Generate
2).配置镜像文件
打开“Build image”界面,配置如下:
Boot:选择Encrypted (PRINCE/IPED) and signed
Source executable image:选择应用镜像文件frdmmcxn947_led_blinky_green.s19
Start address: 0x00000000
Firmware version: 1
Authentication key: 4选1,任何一个都可以
CUST_MK_SK:点击Random随机数
OEM seed:点击Random随机数
3).配置CMPA和CFPA
打开CMPA和CFPA,配置使能安全
4).生成配置文件和镜像文件
配置完成后,Build image生CMPA, CFPA配置文件及SB3格式的镜像文件。
2.2.3烧录应用程序
1).烧写配置文件和镜像文件
打开“Write image”窗口,点击“Write image”烧写配置文件及镜像SB文件。
2).验证应用程
重新上电板子,可以看到绿灯闪烁,应用程序正常运行。
然后按住ISP按键同时PIN软件重启板子(注意此处必须是软件重启,CFPA生命周期配置才生效,如果是上电POR重启CFPA不生效。如果开发完毕生产阶段,用OTP管理生命周期,则可以忽略此处,任何重启都会检测OTP的配置。)。
此时,使能了安全启动和配置生命周期为现场模式。所以此时芯片不再支持SWD接口调试,也不支持通过ISP读取Flash内容。如果想更新Flash程序,只能通过烧写一个合格的SB3文件更新。
2.2.4更新应用程序
1).制作新的SB3文件
编译SDK例程frdmmcxn947_led_blinky生成.bin文件或s19文件,具体SEC工具支持的所有格式可以查看SEC手册。
此处,使用S19文件格式frdmmcxn947_led_blinky_red.s19。
打开SEC工具,最好使用生成第一个应用镜像文件时的工作空间。因为这样会直接导入所需的秘钥。然后导入frdmmcxn947_led_blinky_red.s19。
Image firmware version大于0即可。因为我们没有配置Set minimal firmware version,限定的最小版本号就是0。此处涉及更新防回滚功能,将在以后具体详解介绍。
配置完成后,板子按住ISP同时上电重启。然后Build image.则生成frdmmcxn947_led_blinky_red.sb。
2).烧写新的SB3文件
使用blhost receive-sb-file命令烧写:
blhost.exe -u0x1fc90x014f receive-sb-file frdmmcxn947_led_blinky_red.sb
烧写完毕,重启MCU,开发板红灯闪烁说明更新固件成功。
2.2.5验证安全特性
使能了安全启动和生命周期配置为现场模式后,MCU不能通过SWD和ISP读取Flash,保证了客户代码的安全,不被盗取和更改。如果想测试是否配置成功,可以通过SWD和ISP接口测试。发现SWD接口无法连接,ISP可以连接,但不能读写。注意,测试前需要按住ISP同时软件PIN reset,并非重新上电。
注意事项
通过本文档,开发者可以了解如何在MCX N947微控制器上配置和管理安全生命周期,确保设备在不同阶段的安全性和可靠性。遵循本文档中的步骤,可以有效地实现安全启动和运行,以及升级固件。
作者:Alice Yang
-
微控制器
+关注
关注
48文章
7966浏览量
156036 -
恩智浦
+关注
关注
14文章
5991浏览量
118478 -
应用程序
+关注
关注
38文章
3338浏览量
59142 -
生命周期
+关注
关注
0文章
18浏览量
7518
原文标题:MCX N947安全配置?(Secure Binary + Lifecycle),一文讲通!
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
恩智浦MCU MCXN947 基于MCUXpresso Config tools创建IIC的教程步骤

如何在MCXN947板的FlexSPI接口接HyperRAM

关于将Flash写入FRDM-MCXN947的问题求解
MCXN947使用ADC并编写代码,总是报警告是怎么回事?
MCXN947如何配置和外扩PSRAM?
ServiceAbility的生命周期介绍
AutoScaling 生命周期挂钩功能
恩智浦MCX系列MCU的新品MCXN947
MCXN947系列高性能微控制器产品介绍

评论