本文檔旨在介紹如何在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文章
7928瀏覽量
153953 -
恩智浦
+關注
關注
14文章
5963瀏覽量
114500 -
應用程序
+關注
關注
38文章
3327瀏覽量
58861 -
生命周期
+關注
關注
0文章
18瀏覽量
7507
原文標題: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系列高性能微控制器產品介紹

評論