STM32信息安全 1.2 課程架構(gòu)介紹:STM32H5 芯片生命周期管理與安全調(diào)試
下面開始學(xué)習(xí)課程的第二節(jié),簡單介紹下STM32H5芯片的生命周期和安全調(diào)試,具體課程大家可以觀看STM32官方錄制的課程,鏈接:1.2. 課程架構(gòu)介紹:STM32H5 芯片生命周期管理與安全調(diào)試
1. 調(diào)試端口訪問控制與安全調(diào)試
- 調(diào)試端口訪問控制,防止通過調(diào)試端口獲取芯片內(nèi)部資源
- 鎖定全部調(diào)試訪問或部分調(diào)試功能
- 永久關(guān)閉調(diào)試端口
- 保留回復(fù)調(diào)試連接的可能
- 管理不同生命周期階段能夠訪問到的內(nèi)部內(nèi)部資源
2. STM32H5 調(diào)試訪問控制與設(shè)備生命周期管理
2.1 生命周期管理
- 新的芯片生命周期管理機(jī)制
- 更安全更靈活的資源訪問控制
- 在不同階段管理芯片內(nèi)部資源的訪問權(quán)限
2.2 基于認(rèn)證的調(diào)試訪問
- 芯片Close之后仍可以保留回退和調(diào)試能力
- 提供受控的回退機(jī)制
- 提供安全調(diào)試功能
2.3 硬件特性與資源
- Product State
- 設(shè)備可以處于Open,Provising,Closed,Locked等不同轉(zhuǎn)臺(tái)
- Debug Authentication(DA) STM32 H5新引入的特性
- 受控芯片回退
- 基于密碼或數(shù)字證書校驗(yàn)的回退
- 安全調(diào)試
- 基于數(shù)字證書和挑戰(zhàn)應(yīng)答機(jī)制回復(fù)調(diào)試功能
- 受控芯片回退
3. STM32H5 新的產(chǎn)品生命周期管理機(jī)制
Product State 主要狀態(tài)及其轉(zhuǎn)換
Product State與RDP對比
- Open相當(dāng)于RDP Level0,就是完全開放的一個(gè)狀態(tài),即時(shí)出廠默認(rèn)的一個(gè)狀態(tài),沒有任何的保護(hù)
- TZ-Closed,相當(dāng)于Cortex M33內(nèi)核的RDP 0.5,即TrustZone的安全側(cè)的調(diào)試全部關(guān)閉,只允許非安全調(diào)試這樣的一個(gè)狀態(tài)。
- 另外就是Locked狀態(tài),它相當(dāng)于RDP2,也就是說一進(jìn)入這個(gè)狀態(tài),調(diào)試端口就永久關(guān)閉了,是不可以恢復(fù)的。
- 之前存在RDP1,目前不存與RDP1狀態(tài)完全等同的一個(gè)狀態(tài)。
這幾種狀態(tài)之間是有一定的狀態(tài)轉(zhuǎn)換關(guān)系存在的。通常情況下,默認(rèn)我們拿到芯片是Open狀態(tài),然后它可以進(jìn)入provisioning狀態(tài),在provisioning狀態(tài)的時(shí)候是我們用來去燒寫一些關(guān)鍵數(shù)據(jù)的,比如說我們后面會(huì)提到的OBK的安全存儲(chǔ)區(qū),我們需要往里面寫數(shù)據(jù)的時(shí)候,通常是需要在provision的狀態(tài)下去做一個(gè)寫入。
provisioning的意思就是我們整個(gè)的關(guān)鍵數(shù)據(jù)的燒寫,包括firmware燒寫,OBK數(shù)據(jù)的少些。
到TZ-Closed狀態(tài)時(shí),相當(dāng)于我把安全側(cè)的所有的調(diào)試都關(guān)閉了,TZ-Closed狀態(tài)只有開啟了Trust-Zone的時(shí)候才會(huì)有,H556x或者H57x系列芯片,默認(rèn)出廠時(shí)就是沒有開啟的狀態(tài),這個(gè)時(shí)候時(shí)沒有TZ-Closed的狀態(tài),TZ-Closed狀態(tài)可以變成Closd狀態(tài)或者時(shí)Lock狀態(tài),這兩個(gè)狀態(tài)時(shí)二選一的,在這種情況下,調(diào)試端口都是完全關(guān)閉的,此時(shí)不允許任何連接的,這是這些狀態(tài)之間的一個(gè)主要流向。
還有其他路徑,比如說從Open直接切換到Provisioning的狀態(tài),或者是在Provisioning狀態(tài)下切換到Closed或者時(shí)Locked的狀態(tài)。
4. STM32H5 Debug Authentication安全調(diào)試
Debug Authentication
- 產(chǎn)品狀態(tài)回退
- 重新使能調(diào)試
除此之外,在Closed的狀態(tài),回到Open的狀態(tài),或者臨時(shí)打開調(diào)試端口等,都是在STM32H5上面推出的一個(gè)新的功能上面,叫做Debug Authentication安全調(diào)試。
Debug Authentication實(shí)際上是在芯片和上位機(jī)工具之間要完成一個(gè)挑戰(zhàn)應(yīng)答的這樣的一個(gè) debug authentication的一個(gè)協(xié)議,通過你的密碼,預(yù)設(shè)的密碼或者是我的數(shù)字證書以及密鑰去發(fā)起安全調(diào)試的一個(gè)請求。如果這個(gè)請求認(rèn)證通過了,它可以讓你做一個(gè)產(chǎn)品狀態(tài)的回退。
5. STM32H5 新的產(chǎn)品生命周期管理機(jī)制
Product State 認(rèn)證后的回退
比如說我可以從close的狀態(tài)回到TZ-close的狀態(tài),或者是回到open的狀態(tài),或者是臨時(shí)的重新去使能這個(gè)調(diào)試的功能,讓你又可以連到我的芯片上去調(diào)試我的代碼,而這種臨時(shí)的調(diào)試端口的恢復(fù),并不會(huì)擦除flash里面的內(nèi)容,所以你是可以去在線調(diào)試你的產(chǎn)品的功能。在Locked狀態(tài)下,你已經(jīng)不能再去做任何其他的狀態(tài)回退了,但是如果說不是處在Locked的狀態(tài),我們是可以通過這種Debug Authentication直接回到 open狀態(tài)的。
如果是在close的狀態(tài)的話,我們同樣經(jīng)過Debug Authentication,可以選擇回到TC close的狀態(tài),也就是說我會(huì)恢復(fù)安全側(cè)的一個(gè)安全調(diào)試,非安全側(cè)的一個(gè)調(diào)試,但是安全側(cè)的代碼是不是不會(huì)動(dòng)的,而且它不會(huì)被擦除。
但是這個(gè)時(shí)候你只能去調(diào)試你非安全測的一個(gè)代碼,或者是同樣經(jīng)過 Debug Authentication的流程,從close直接回到open的一個(gè)狀態(tài)。這個(gè)是產(chǎn)品狀態(tài)的一個(gè)回退。
那這個(gè)回退的過程有兩種方式,如果不使能TrustZone,那么它是一個(gè)基于密碼的認(rèn)證,如果開啟了TrustZone這個(gè)功能,它將會(huì)使用的是數(shù)字證書和私鑰的方式來完成基于數(shù)字證書的一個(gè)認(rèn)證。
6. STM32H5 新的產(chǎn)品生命周期管理機(jī)制
Product State 帶認(rèn)證的調(diào)試
? 另外一種是待認(rèn)證的調(diào)試,我們剛才說的是從某一種狀態(tài),除了lock以外的某一種狀態(tài)可以回到open,還有一種是我不做這個(gè)產(chǎn)品狀態(tài)的回退,但是我希望臨時(shí)開啟調(diào)試的功能,那么這個(gè)時(shí)候比如說你在TC-Closed或者是close的狀態(tài)的話,我們是可以通過Debug Authentication,我們臨時(shí)恢復(fù)調(diào)試的一個(gè)連接,允許你把Debug端口又恢復(fù),然后你可以連上去去做一些調(diào)試。
? 但是之后只要斷電再上電,那么我們剛才使能的調(diào)試端口又恢復(fù)到了之前已經(jīng)關(guān)閉完全關(guān)閉或者半關(guān)閉的一個(gè)狀態(tài)。這個(gè)是通過Debug Authentication開始,去實(shí)現(xiàn)一個(gè)帶認(rèn)證的安全調(diào)試這樣的一個(gè)功能,同樣的需要做安全調(diào)試的時(shí)候,不是做產(chǎn)品狀態(tài)回退,我希望臨時(shí)打開安全調(diào)試。我們默認(rèn)提供的Debug Authentication的功能的話,是需要在開啟Trust-Zone的情況下才支持,這個(gè)時(shí)候一定是會(huì)使用數(shù)字證書和挑戰(zhàn)應(yīng)答的方式來完成認(rèn)證,那么你允許開啟的Debug的范圍,也是你可以去指定的,比如說我可以說只允許非安全側(cè)的調(diào)試,或者是我們允許安全和非安全側(cè)的調(diào)試一起調(diào),包括 HTTP level,我們后面會(huì)提到我允許調(diào)試 HTTP level幾的代碼,而是所有的flash里面上面的代碼都允許調(diào)試,還是說比如說我只允許調(diào)試 HTTP level3的代碼,這個(gè)是在我去做Debug時(shí)候可以通過配置去進(jìn)行選擇的。
7. STM32H5 Debug Authentication安全調(diào)試
關(guān)于產(chǎn)品狀態(tài)以及debug authentication安全調(diào)試,這一部分我們會(huì)有更詳細(xì)的內(nèi)容在第二個(gè)部分課程當(dāng)中去做具體的介紹。
文章來源:http://www.zghlxwxcb.cn/news/detail-843590.html
關(guān)于Debug authentication,在Wiki頁面上的相關(guān)的資源。這里列出來了幾個(gè)鏈接供大家參考,大家可以點(diǎn)擊這個(gè)鏈接去相關(guān)的Wiki網(wǎng)頁上面去觀看詳細(xì)的內(nèi)容,既包括特性的介紹,也有 how to start,他會(huì)告訴step by step如何去使用這樣的一個(gè)功能。文章來源地址http://www.zghlxwxcb.cn/news/detail-843590.html
到了這里,關(guān)于STM32信息安全 1.2 課程架構(gòu)介紹:芯片生命周期管理與安全調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!