查看: 8282|回复: 7

[原创] 【经验分享】RT1015 MCUXpresso Secure Provisioning BEE加密

  [复制链接]

该用户从未签到

713

主题

6372

帖子

0

超级版主

Rank: 8Rank: 8

积分
25023
最后登录
2025-7-31
发表于 2021-4-14 17:21:40 | 显示全部楼层 |阅读模式

【经验分享】RT1015 MCUXpressoSecure Provisioning BEE加密
一 文档简介

    之前写过一篇经验分享RT1015 APP BEE加密烧录


主要讲了app文件准备,使用MCUBootUtility工具,还有命令行模式通过MFGtool下载。由于当时的NXP MCUXPresso Secure Provisioning工具还没有添加RT1015,所以当时没有加该工具的操作方式,现在NXP的MCUXPresso Secure Provisioning工具也比较完善好用,所以该篇文章主要针对MCUXPresso Secure Provisioning工具在之前的MIMXR1015-EVK做过BEE加密的板子上,使用新工具再次去做BEE unsigned模式的加密代码烧录。BEE unsigned模式对应于MCUBootUtility工具的BEE encrypted image boot, 也就是不使能certificate,不加HAB。

二 操作步骤

2.1 工具下载

MCUXPresso Secure Provisioning工具下载地址:


下载并安装,有时间的网友可以读一下这个工具的文档:

C:\nxp\MCUX_Provi_v2.1\MCUXpressoSecure Provisioning Tool.pdf

写的非常详细易懂。


2.2 APP BEE加密下载步骤

第一步: 新建tool workspace

    File->New Workspace, 选择相关路径

1.jpg

图1

第二步:芯片启动相关配置

2.jpg

图2

这里需要注意的是,bootType,选择为XIP Encrypted(BEE User Keys) unsigned, 也就是不带HAB certificates的模式。


第三步:USB连接

Connect选择USB,开发板RT1015进入serial download 模式:

SW8:1-ON,2-OFF,3-OFF,4-ON

点击TestConnection,测试连接情况:

3.jpg

图3

可以看到,连接成功,并且由于之前已经做过BEE的操作,相关的BEE key还有用于key source的SW-GP2 fuse都已经被烧录。

第4步:image 选择

选择准备好的app image,具体请看上一篇经验分享。

第5步:XIP Encryption(BEE user keys)

4.jpg

图4

这里涉及到引擎的选择,我们这里只使用Engine0, BEE engine KEY选择为zero key,key source 来源SW-GP2,key具体数据为对称的:0123456789abcdeffedcba9876543210

这些数据实际上是放在fuse的swGp2的地方。

由于这些fuse都已经在前面烧录过,所以可以不需要重新烧录。


第6步: build image

5.jpg

图5

这里可以看到5个文件:

1)evkmimxrt1015_iled_blinky_0x60002000.bin

2)evkmimxrt1015_iled_blinky_0x60002000_bootable.bin

3)evkmimxrt1015_iled_blinky_0x60002000_bootable_nopadding.bin

4)evkmimxrt1015_iled_blinky_0x60002000_nopadding.bin

5)evkmimxrt1015_iled_blinky_0x60002000_nopadding_ehdr0.bin

1) ,2),3)明文文件,1)2)完全一样,包含头部地址但无数据,还有IVT+BD+DCD+APP,3)无头部地址和相关数据,开始即从1)2)的0X1000 IVT开始存放的所有数据:IVT+BD+DCD+APP。

4)5)BEE密文数据,4)是3)对应的密文数据,5)EKIB0,EPRDB0区域,也就是实际0X60000400开始的BEE密文EncryptedKey Info Block 0 和Encrypted Protection RegionDescriptor Block 0,因为只使用engine0,所以只有engine0相关信息。

实际上,只需要烧录FCBD头部+5)+4)就会形成一个完整的BEE加密unsigned image。


第7步: 烧录image


6.jpg

图6

点击write Image,完成烧录。

这里打开对应的BEE userKey,即对应的图4中的user key data, 放在swGp2 fuse里面。

查看烧录log可以看到,主要步骤:

擦除从0X60000000开始的0X5000长度的数据

生成头部并烧录,从0X60000000开始烧录

烧录evkmimxrt1015_iled_blinky_0x60002000_nopadding_ehdr0.bin到0x60000400

烧录evkmimxrt1015_iled_blinky_0x60002000_nopadding.bin到0X60001000

修改板载MIMXRT1015-EVK SW8 1-ON,2-OFF,3-ON,4-OFF,重新上电,可以看到板上小灯闪烁,BEE unsigned代码运行成功。注意SW8_1是Encrypted XIP, BEE模式下必须要开启,否则不能成功boot。

下面给出几张工具生成文件和烧录后读出文件的对比情况:


7.jpg
图7
8.jpg


图8
9.jpg


图9
10.jpg


图10
11.jpg


图11

对于MCUBootUtility默认缺少BEE工具的问题,同样可以使用MCUXPresso Secure Provisioning工具里面的image_enc.exe:

拷贝:

C:\nxp\MCUX_Provi_v2.1\bin\tools\image_enc\win\ image_enc.exe


NXP-MCUBootUtility-3.2.0\tools\image_enc2\win
本文还录了个小视频,添加在附件中。
RT1015 BEE user key unsigned.zip (4.35 MB, 下载次数: 9)
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-24 18:42
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    316

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2792
    最后登录
    2025-3-19
    发表于 2021-4-14 22:36:08 | 显示全部楼层
    膜拜
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    3 天前
  • 签到天数: 578 天

    连续签到: 1 天

    [LV.9]以坛为家II

    40

    主题

    2万

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6887
    最后登录
    2025-8-1
    发表于 2021-4-15 15:43:05 | 显示全部楼层
    佩服佩服
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-8 10:59
  • 签到天数: 305 天

    连续签到: 1 天

    [LV.8]以坛为家I

    7

    主题

    1147

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13703
    最后登录
    2024-7-18
    发表于 2021-4-15 16:01:30 | 显示全部楼层
    学习学习
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    6 小时前
  • 签到天数: 2389 天

    连续签到: 21 天

    [LV.Master]伴坛终老

    56

    主题

    5277

    帖子

    73

    金牌会员

    Rank: 6Rank: 6

    积分
    25927
    最后登录
    2025-8-2
    发表于 2021-4-15 16:19:46 | 显示全部楼层
    学习学习
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 22:27
  • 签到天数: 2464 天

    连续签到: 20 天

    [LV.Master]伴坛终老

    17

    主题

    5399

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    11351
    最后登录
    2025-8-1
    发表于 2021-4-15 20:51:26 | 显示全部楼层

    学习学习
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-21 22:25
  • 签到天数: 44 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    110

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    228
    最后登录
    2022-3-21
    发表于 2021-4-28 09:12:00 | 显示全部楼层
    学习怎么操作这个
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-5-28 05:36
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    36

    帖子

    0

    注册会员

    Rank: 2

    积分
    153
    最后登录
    2025-5-20
    发表于 2021-9-27 18:17:29 | 显示全部楼层
    请问在使用串口的时候必须是串口1么,我使用串口2测试报错了,ERROR: Unexpected SDPHOST cmd_status 0x00000000, expected 0x56787856 or 0x12343412
    干不完的事
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-2 14:48 , Processed in 0.097567 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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