本文檔旨在介紹如何在MCXN947微控制器上配置安全啟動(dòng)和生命周期,以確保產(chǎn)品在量產(chǎn)階段的安全性,防止代碼被竊取和篡改,并且能夠安全地升級(jí)更新固件。通過(guò)本應(yīng)用筆記,開發(fā)者可以更好地理解和實(shí)施安全啟動(dòng)和固件更新的最佳實(shí)踐。
實(shí)施簡(jiǎn)介
1.1安全固件(Secure Binary)簡(jiǎn)介
安全啟動(dòng)(Secure Binary, SB)提供了一種安全且便捷的方法,用于在制造過(guò)程或最終用戶設(shè)備生命周期中燒錄或更新嵌入式設(shè)備的固件。SB文件是一種基于命令的固件更新鏡像。SB文件可以被視為一種腳本(命令和數(shù)據(jù)),ROM是其解釋器。ROM支持3.1版的SB鏡像格式。
SB3.1使用最新的加密算法來(lái)確保所攜帶固件的真實(shí)性和機(jī)密性。啟動(dòng)時(shí)間和安全級(jí)別根據(jù)所需用例的最佳匹配來(lái)控制多種可用的安全配置。基于橢圓曲線密碼學(xué)(ECC)的數(shù)字簽名確保了SB3.1容器的真實(shí)性。使用高級(jí)加密標(biāo)準(zhǔn)(AES)的密碼塊鏈接(CBC)模式確保了SB3.1容器的機(jī)密性。
1.2生命周期(Lifecycle)簡(jiǎn)介
芯片生命周期狀態(tài)用于反映芯片的實(shí)際狀態(tài),進(jìn)一步用于指導(dǎo)芯片在特定時(shí)間如何保護(hù)其所托管的資產(chǎn)。例如,當(dāng)客戶開發(fā)完項(xiàng)目、進(jìn)入量產(chǎn)階段,或在終端客戶使用時(shí),芯片的訪問(wèn)權(quán)限比在開發(fā)階段要少得多。
MCXN947微控制器支持多種安全生命周期狀態(tài),詳細(xì)信息請(qǐng)參閱《MCX Nx4x安全參考手冊(cè)》中的“生命周期狀態(tài)”章節(jié)。注意,生命周期狀態(tài)是單調(diào)遞增的,這意味著它只能不斷增加,訪問(wèn)權(quán)限只能更加嚴(yán)格。本文是針對(duì)現(xiàn)場(chǎng)模式(Infield)配置,確保設(shè)備在部署后的安全性。
1.3 MCUXpresso SEC工具簡(jiǎn)介
MCUXpresso安全配置(SEC)工具是一款基于GUI的應(yīng)用程序,用于簡(jiǎn)化在恩智浦MCU上生成和配置可啟動(dòng)的可執(zhí)行文件。該工具可用于生成SB3.1文件和部署MCU安全配置。
實(shí)施步驟
2.1準(zhǔn)備
2.2步驟
2.2.1恢復(fù)MCU到默認(rèn)配置
1). ISP模式鏈接MCU
按住 ISP鍵,POR上電啟動(dòng)。本文使用ISP-USB接口,因此使用USB線連接J11(HS-USB)端口。
2).配置CMPA和CFPA為默認(rèn)狀態(tài)
打開SEC工具,新建一個(gè)工作空間,選擇對(duì)應(yīng)的芯片。配置如下:
SEC工具配置方法:
3).燒寫CMPA和CFPA
OK -> Build image, Write image,將配置好的默認(rèn)的CMPA和CFPA燒寫到MCU內(nèi)。
4).全片擦除Flash
USB連接板子的調(diào)試接口MCU-link。SEC工具選擇debug probe。連接成功后,利用Erase全片擦除。
芯片恢復(fù)為默認(rèn)狀態(tài),沒(méi)有任何使能的安全配置。
2.2.2配置安全啟動(dòng)和生命周期為現(xiàn)場(chǎng)模式(In-field)
1).生成配置安全啟動(dòng)的秘鑰
選擇PKI management界面->Generate Keys... ->Generate
2).配置鏡像文件
打開“Build image”界面,配置如下:
Boot:選擇Encrypted (PRINCE/IPED) and signed
Source executable image:選擇應(yīng)用鏡像文件frdmmcxn947_led_blinky_green.s19
Start address: 0x00000000
Firmware version: 1
Authentication key: 4選1,任何一個(gè)都可以
CUST_MK_SK:點(diǎn)擊Random隨機(jī)數(shù)
OEM seed:點(diǎn)擊Random隨機(jī)數(shù)
3).配置CMPA和CFPA
打開CMPA和CFPA,配置使能安全
4).生成配置文件和鏡像文件
配置完成后,Build image生CMPA, CFPA配置文件及SB3格式的鏡像文件。
2.2.3燒錄應(yīng)用程序
1).燒寫配置文件和鏡像文件
打開“Write image”窗口,點(diǎn)擊“Write image”燒寫配置文件及鏡像SB文件。
2).驗(yàn)證應(yīng)用程
重新上電板子,可以看到綠燈閃爍,應(yīng)用程序正常運(yùn)行。
然后按住ISP按鍵同時(shí)PIN軟件重啟板子(注意此處必須是軟件重啟,CFPA生命周期配置才生效,如果是上電POR重啟CFPA不生效。如果開發(fā)完畢生產(chǎn)階段,用OTP管理生命周期,則可以忽略此處,任何重啟都會(huì)檢測(cè)OTP的配置。)。
此時(shí),使能了安全啟動(dòng)和配置生命周期為現(xiàn)場(chǎng)模式。所以此時(shí)芯片不再支持SWD接口調(diào)試,也不支持通過(guò)ISP讀取Flash內(nèi)容。如果想更新Flash程序,只能通過(guò)燒寫一個(gè)合格的SB3文件更新。
2.2.4更新應(yīng)用程序
1).制作新的SB3文件
編譯SDK例程frdmmcxn947_led_blinky生成.bin文件或s19文件,具體SEC工具支持的所有格式可以查看SEC手冊(cè)。
此處,使用S19文件格式frdmmcxn947_led_blinky_red.s19。
打開SEC工具,最好使用生成第一個(gè)應(yīng)用鏡像文件時(shí)的工作空間。因?yàn)檫@樣會(huì)直接導(dǎo)入所需的秘鑰。然后導(dǎo)入frdmmcxn947_led_blinky_red.s19。
Image firmware version大于0即可。因?yàn)槲覀儧](méi)有配置Set minimal firmware version,限定的最小版本號(hào)就是0。此處涉及更新防回滾功能,將在以后具體詳解介紹。
配置完成后,板子按住ISP同時(shí)上電重啟。然后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,開發(fā)板紅燈閃爍說(shuō)明更新固件成功。
2.2.5驗(yàn)證安全特性
使能了安全啟動(dòng)和生命周期配置為現(xiàn)場(chǎng)模式后,MCU不能通過(guò)SWD和ISP讀取Flash,保證了客戶代碼的安全,不被盜取和更改。如果想測(cè)試是否配置成功,可以通過(guò)SWD和ISP接口測(cè)試。發(fā)現(xiàn)SWD接口無(wú)法連接,ISP可以連接,但不能讀寫。注意,測(cè)試前需要按住ISP同時(shí)軟件PIN reset,并非重新上電。
注意事項(xiàng)
通過(guò)本文檔,開發(fā)者可以了解如何在MCX N947微控制器上配置和管理安全生命周期,確保設(shè)備在不同階段的安全性和可靠性。遵循本文檔中的步驟,可以有效地實(shí)現(xiàn)安全啟動(dòng)和運(yùn)行,以及升級(jí)固件。
作者:Alice Yang
-
微控制器
+關(guān)注
關(guān)注
48文章
7928瀏覽量
153952 -
恩智浦
+關(guān)注
關(guān)注
14文章
5963瀏覽量
114498 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3327瀏覽量
58861 -
生命周期
+關(guān)注
關(guān)注
0文章
18瀏覽量
7507
原文標(biāo)題:MCX N947安全配置?(Secure Binary + Lifecycle),一文講通!
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
恩智浦MCU MCXN947 基于MCUXpresso Config tools創(chuàng)建IIC的教程步驟

如何在MCXN947板的FlexSPI接口接HyperRAM

關(guān)于將Flash寫入FRDM-MCXN947的問(wèn)題求解
MCXN947使用ADC并編寫代碼,總是報(bào)警告是怎么回事?
MCXN947如何配置和外擴(kuò)PSRAM?
MCXN947怎么驅(qū)動(dòng)FRDM-STBI-A8974三軸陀螺儀?
ServiceAbility的生命周期介紹
AutoScaling 生命周期掛鉤功能
貫穿于全生命周期的功能安全
貫穿于全生命周期的功能安全
Synopsys 啟動(dòng)硅生命周期管理計(jì)劃

恩智浦MCX系列MCU的新品MCXN947
使用VSCode調(diào)試FRDM MCXN947開發(fā)板

MCXN947系列高性能微控制器產(chǎn)品介紹

評(píng)論