STM32L5微控制器系列基于Arm Cortex-M33 內(nèi)核,充分利用該內(nèi)核的安全特性,即適用于 Arm V8-M 的 TrustZone技術(shù),從內(nèi)核到整個芯片系統(tǒng),實(shí)現(xiàn)了安全區(qū)域和非安全區(qū)域之間的有效隔離。
在調(diào)試端口保護(hù)方面,TrustZone 和 RDP(讀保護(hù))的配合,同樣可以實(shí)現(xiàn)靈活的調(diào)試端口訪問控制,有效阻斷來自調(diào)試端口對片上代碼的窺探。
使用 STM32L5 TrustZone 保護(hù)片上代碼的機(jī)密性
調(diào)試端口連接可控
在RDP1或者RDP0.5條件下,如果芯片使用了TrustZone上電調(diào)試接口就不可連接(具有類似RDP2的效果)
比RDP2更靈活,可以由用戶代碼控制后續(xù)調(diào)試端口訪問權(quán)限,實(shí)現(xiàn)安全調(diào)試,并保留修改選項(xiàng)字節(jié)的可能性
用戶片上Flash進(jìn)一步隔離
安全閃存區(qū)域不能被非安全世界任意訪問
非安全世界不能訪問安全世界的數(shù)據(jù)
非安全世界不能訪問安全世界的外設(shè)
非安全世界訪問安全世界的函數(shù),需要按照一定規(guī)則,不可隨意調(diào)用
STM32L5 TrustZone 助力代碼保護(hù)示例
資源在“安全世界”和“非安全世界”之間的分配
示例菜單和測試功能
示例運(yùn)行注意事項(xiàng)
資源的分配
上電運(yùn)行安全世界代碼,做資源分配
安全世界:
關(guān)鍵操作,關(guān)鍵數(shù)據(jù)
配合讀保護(hù),可以阻斷調(diào)試端口連接
非安全世界:
人機(jī)交互
可以使能調(diào)試端口,但是無法訪問到安全世界的關(guān)鍵數(shù)據(jù)和外設(shè)
調(diào)試端口的連接控制RDP=0
讀保護(hù)級別為0(芯片缺省狀態(tài))
芯片復(fù)位可被調(diào)試端口連接
調(diào)試端口的連接控制RDP=0.5
讀保護(hù)級別為0.5
硬件保證:CPU處于安全狀態(tài)時,調(diào)試無法連接;包括復(fù)位時,運(yùn)行安全代碼時
軟件操作:安全代碼在跳轉(zhuǎn)到非安全區(qū)域之前,關(guān)閉調(diào)試端口
保護(hù)效果
CPU運(yùn)行在非安全區(qū)域時,缺省調(diào)試無法連接;可通過身份認(rèn)證來使能對非安全代碼的調(diào)試
帶身份認(rèn)證的調(diào)試使能
基于“挑戰(zhàn)-應(yīng)答”模型
芯片產(chǎn)生隨機(jī)序列,合法用戶持有匹配私鑰對隨機(jī)序列的簽名,才能被芯片使用其存儲在安全世界里的對應(yīng)公鑰驗(yàn)簽成功
例程運(yùn)行注意事項(xiàng)
RDP0.5時,S代碼自動關(guān)閉調(diào)試端口。使用STM32CUbeProgrammer hotplug也無法連接;IDE下載NS代碼也不會成功;需要用戶通過菜單打開調(diào)試端口,之后STM32Cubeprogramer才能連接成功,IDE下載也才能成功。
RDP非0時,片上Flash中如果沒有可以跑到非安全狀態(tài)的有效代碼,調(diào)試端口不再可連 除非改變啟動方式,從系統(tǒng)BL啟動(系統(tǒng)BL的代碼是一定可以跑到非安全狀態(tài)的) 需要確??梢詮南到y(tǒng)BL啟動(選項(xiàng)字節(jié)中的啟動控制:nSWBOOT0)
【Q】為何例程沒有提供RDP回退的菜單? 【A】TrustZone使能時,RDP回退只能由調(diào)試接口或者系統(tǒng)BL完成
例程通過硬件和軟件兩方面一起作用,實(shí)現(xiàn)了對非安全代碼的可控調(diào)試 硬件:讀保護(hù)級別不為零+TZ使能 復(fù)位時+ 運(yùn)行在安全代碼區(qū)域時,調(diào)試不可連接 軟件:安全區(qū)代碼在跳轉(zhuǎn)到非安全區(qū)代碼之前,軟件關(guān)閉調(diào)試端口 菜單【1】、【2】:測試作用,不會集成到產(chǎn)品中 菜單【D】:即使通過通信端口在非安全區(qū)注入惡意代碼來調(diào)用打開調(diào)試端口的功能,由于不知道簽名所需要的私鑰,驗(yàn)證無法通過,不能打開調(diào)試端口
原文標(biāo)題:干貨分享 | 代碼保護(hù)(2)使用STM32L5 TrustZone 特性控制調(diào)試端口訪問,保護(hù)片上代碼安全
文章出處:【微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
控制器
+關(guān)注
關(guān)注
114文章
17517瀏覽量
188851 -
FlaSh
+關(guān)注
關(guān)注
10文章
1702瀏覽量
154141 -
STM32
+關(guān)注
關(guān)注
2301文章
11084瀏覽量
369778
原文標(biāo)題:干貨分享 | 代碼保護(hù)(2)使用STM32L5 TrustZone 特性控制調(diào)試端口訪問,保護(hù)片上代碼安全
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
無線傳輸方式下如何保障電能質(zhì)量在線監(jiān)測裝置的數(shù)據(jù)安全性?
STM32L073片上LCD控制器缺少底層驅(qū)動怎么處理?
STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
ESD保護(hù)器件ESD0505T5L規(guī)格書
ESD保護(hù)器件ESD0512T5L規(guī)格書
ESD0502T5L SOT-523 ESD保護(hù)器件規(guī)格書
STM32L476RG數(shù)據(jù)手冊
STM32CubeMX用于STM32配置和初始化C代碼生成
Bootloader解決方案—INTEWORK-EAS-Boot

評論