查看: 1017|回复: 1

[原创] Tool: 初识 MCUXpresso 安全配置工具

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20003
最后登录
2024-4-24
发表于 2022-12-29 14:40:28 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2022-12-29 17:10 编辑

初识 MCUXpresso 安全配置工具
        通常对MCU进行安全配置,需要使用多个工具分别操作,通过OpenSSL申请证书和密钥,通过elftosb完成镜像加密、CMPA、CFPA文件配置,最后通过blhost工具进行烧写,实际操作复杂,基于命令行的工具对新手不够友好,容易配置失误,造成器件锁死。本文介绍的MCUXpresso Secure Provisioning(SEC)是一个具有图形化用户界面的一站式MCU安全配置工具。它旨在简化恩智浦MCU平台上可启动可执行程序的生成与配置,集成了许多恩智浦久经验证的安全支持工具集,可以轻松地一站式完成安全配置、生成镜像文件、烧写镜像,目前支持i.MX RT和LPC55系列MCU。用户还可以利用工具脚本文件,自定义安全配置流程,便于二次开发。
       本文将主要介绍SEC的常用功能,演示通过SEC工具完成Plain、CRC和Signed镜像的配置、制作和烧写。下图是LPC55S69对于Plain、CRC和Signed镜像的启动流程。
1.png

1 准备工作
·  本文档用到的软件、硬件环境如下所示
软件:
       MCUXpresso IDEv11
       SDK_2_12_0_LPCXpresso55S69
       MCUXpresso Secure Provisioning v5
硬件:
       LPCXpresso55S69EVK

·  生成原始镜像
       在MCUXpresso IDE中打开项目,我们这里选择了最基础的点灯demo作为示例。编译项目文件,在项目debug文件夹中找到项目编译得到的axf文件。axf文件可以直接作为SEC工具的可执行镜像源,此外SEC工具还支持其他镜像文件格式,如bin、hex等。
2.png

·  连接开发板
       先打开SEC工具,创建新工作区,选择LPC55Sxx系列,LPC55S69芯片。
3.png

       按住EVK上的ISP按钮,用USB线连接LPCXpresso55S69 EVK的High-Speed USB口,进入ISP模式。点击如图所示位置可以打开连接测试页面。设置VID和PID,点击测试连接,确认连接正常。可以看到,除了USB连接方式之外,SEC工具还支持UART、SPI和I2C的连接方式。
4.png

2 工作流程
       *在开发调试时,注意设置SEC工具生命周期为Development模式,此时CMPA不会被锁定,开发者可以更改CMPA寄存器。
5.png

·  Plain和Plain with CRC工作流程
       Plain不进行任何加密或者签名,和使用IDE直接烧写类似;CRC为烧写镜像增加循环验证,LPC芯片在启动镜像时,验证镜像内容,如果通过验证则能正常进入程序。这两种镜像启动模式不涉及安全配置问题,不用设置证书和密钥,操作流程类似。
①     Boot模式选择Plain/CRC;
②     选择需要烧写的可执行镜像源;
③     点击Build image,镜像构建完成会提示SUCCESS;
④     切换至Write image选项卡,点击Write image,烧写成功提示SUCCESS。

6.png
7.png

       下图为Plain和CRC镜像烧写的流程图,用户需要准备可执行镜像源,根据需求设置TrustZone(上文示例中没有演示设置TrustZone),之后SEC工具生成镜像的bin文件,用户的PFR设置通过SEC工具生成对应的CMPA和CFPA的文件,最后一同烧写。
8.png

·  Signed工作流程
       在镜像文件中加入签名,终端可以通过镜像验证确定代码没有被第三方篡改和破坏,保证了程序的安全性和完整性。SEC工具内置OpenSSL,可以生成X.509规范的证书和密钥文件,用户通过PKI management选项卡管理证书和密钥。
①     Boot模式选择Signed;
②     在PKI management选项卡,点击Generate keys,根据需求完成对话框内设置,生成证书和密钥;
③     切换至Build image选项卡,选择可执行镜像源
④     选择②中生成的证书密钥;
⑤     点击Random随机生成一个SBKEK密钥(key store在LPC55Sxx设备生命周期只初始化一次,之后SBKEK的任何更改都会导致无法正常加载SB文件,建议烧写成功后妥善保留SBKEK)
⑥     点击Build image,镜像构建完成会提示SUCCESS;
⑦     切换至Write image选项卡,点击Write image,烧写成功提示SUCCESS。

9.png
10.png
11.png

       下图为Signed镜像烧写的示意图,可执行镜像源和PFR设置部分和Plain/CRC类似,不同之处在于,Signed镜像烧写需要预先准备证书密钥文件,这可以通过SEC工具的PKI管理页完成。此外通过SBKEK对Signed镜像加密,最终生成加密的sb文件,而SBKEK也将写入key store中。
12.png

·  操作日志
       对话框和log界面会显示当前操作所实际使用的命令和运行的结果,并保存在工作区目录下的log文件中。如下图框出的命令,参考这些信息将有助于更好地理解SEC工具的底层逻辑,便于进行二次开发。
13.png

3 小结
       本文介绍了通过SEC工具烧写程序,配置安全设置常用功能的基本操作流程。SEC是一个功能强大的安全配置工具,除了本文介绍的基本功能之外,还能够实现如身份验证调试(Debug Authentication)、代码加密(PRINCE)等高级功能,结合Smart Card和SEC工具,还可以使得OEM能够配置管理生产制造的信任根,以实现软件知识产权保护。SEC工具的高级功能以及详细内容可以参考手册MCUXpressoSecure Provisioning Tool User Guide v.5,以后有机会将向大家介绍。

回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 11:19
  • 签到天数: 818 天

    [LV.10]以坛为家III

    71

    主题

    2444

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5513
    最后登录
    2024-4-23
    发表于 2024-4-9 20:10:32 | 显示全部楼层
    谢谢分享,学习了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-24 20:24 , Processed in 0.128750 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表