女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32H5 DA證書鏈實(shí)戰(zhàn)經(jīng)驗(yàn)

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 2024-03-12 14:08 ? 次閱讀

01

前言

本文是上文 《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的后續(xù)之作。倘若你還沒有閱讀此文,那么建議你先閱讀下,然后再回過頭來閱讀本文。

之前我們已經(jīng)講過了如何通過 DA 認(rèn)證來回退芯片產(chǎn)品狀態(tài),或者重新打開調(diào)試口,這樣開發(fā)人員在芯片為 Closed 狀態(tài)下時(shí)仍可以調(diào)試芯片。在這個(gè) DA 認(rèn)證過程中,有使用到兩個(gè)東西:證書和私鑰,它與之前已經(jīng)預(yù)配置到芯片內(nèi)部的 obk 文件是對應(yīng)的關(guān)系。也就是說, 如果你已經(jīng)預(yù)配置了芯片, 但對應(yīng)的私鑰文件或者證書丟失或忘記保存了, 那么此芯片多半是無法再還原了, 除非你找到對應(yīng)的私鑰和證書。

私鑰是如何來的 ? 如上文所述, 是通過 TPC 工具生成的, 如下所示 :

0204ccd0-e02c-11ee-a297-92fbcf53809c.jpg

點(diǎn)擊上圖中的 Regenerate 按鍵將自動生成公鑰私鑰對。

020897fc-e02c-11ee-a297-92fbcf53809c.jpg

當(dāng)然你也可以使用其它工具來生成, 比如 openssl 工具, 只要是 ecdsa-p256 類型的密鑰即可。

證書是怎么來的 ? 也是通過 TPC 工具生成的。

020c9f82-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 輸入根密鑰的私鑰和公鑰, 證書類型選擇為 “ROOT”, 然后在操作許可內(nèi)選擇所有權(quán)限(完全回退/半回退 + 安全調(diào)試 + 非安全調(diào)試).最終點(diǎn)擊 “Generate Certificate”按鍵,生成根證書. 由于這里選擇的類型為 ROOT, 輸入的密鑰也為根密鑰. 所以最終生成的證書為根證書. 它所許可的權(quán)限是最高的。

對于一個(gè)產(chǎn)品的開發(fā), 可能由不同團(tuán)隊(duì)一起合作開發(fā)的, 比如, 有一團(tuán)隊(duì), 專門負(fù)責(zé)開發(fā) secure部分的代碼, 向 non secure 工程提供 API 接口, 將那些關(guān)鍵算法放入到 secure 世界加以保護(hù), 僅僅面向 non secure 工程開放調(diào)用接口. 而另一個(gè)開發(fā)團(tuán)隊(duì), 他們僅僅開發(fā) non secure 部分的代碼, 實(shí)現(xiàn)應(yīng)用層大部分功能, 需要時(shí)調(diào)用 secure 部分代碼開放出來的接口以實(shí)現(xiàn)特定的功能. 那么對于這種不同的開發(fā)團(tuán)隊(duì), 其所允許的權(quán)限必須有所不同, 開發(fā) secure 部分的團(tuán)隊(duì), 必然希望他們自己能調(diào)試 secure 部分的代碼, 但不希望開發(fā) non secure 部分的開發(fā)團(tuán)隊(duì)也可以調(diào)試 secure代碼. 但又要允許不影響他們可以調(diào)試自己 non secure 部分的代碼, 且可隨意回退 non secure部分代碼. 如此復(fù)雜的權(quán)限控制, 就需要多個(gè)證書來實(shí)現(xiàn)了. 這就是證書鏈的意義所在。

02

證書鏈介紹

在產(chǎn)品的開發(fā)過程中, 我們假設(shè)有三個(gè)團(tuán)隊(duì):

? 安全開發(fā)團(tuán)隊(duì): 負(fù)責(zé)開發(fā) secure 部分代碼, 并向 non secure 提供 API 接口. 當(dāng)芯片燒錄完 secure 代碼后, 芯片會被設(shè)置為 TZ_Closed 狀態(tài)。

? OEM 開發(fā)團(tuán)隊(duì): 負(fù)責(zé)開發(fā) non secure 部分代碼, 無法直接訪問 secure 世界的代碼,但能調(diào)用 secure 提供的特定的 API 接口, 以完成特定功能. 此團(tuán)隊(duì)拿到芯片時(shí), 芯片已經(jīng)處于 TZ_Closed 狀態(tài). 在此狀態(tài)下, 開發(fā) non secure 工程不受任何限制. 可以隨意調(diào)試 NS 工程。

? 現(xiàn)場技術(shù)支持團(tuán)隊(duì): 產(chǎn)品到達(dá)終端客戶, 若出現(xiàn)任何問題, 需要現(xiàn)場進(jìn)行技術(shù)支持。

對于這三個(gè)團(tuán)隊(duì), 需要授予不同的權(quán)限. 安全開發(fā)團(tuán)隊(duì)需要授予平臺軟硬件完全訪問的權(quán)限. 且安全開發(fā)團(tuán)隊(duì)可向 OEM 團(tuán)隊(duì)授予權(quán)限. 完全訪問權(quán)限就包括了可完全回退+部分回退, S+NS 調(diào)試。

OEM 開發(fā)團(tuán)隊(duì)的權(quán)限應(yīng)該僅僅局限在 NS 部分, 不應(yīng)該影響其 NS 代碼的調(diào)試, 當(dāng)然回退也不應(yīng)該限制. 僅需要限制其調(diào)試 S 代碼的權(quán)利. 因此, OEM 團(tuán)隊(duì)包括的權(quán)限應(yīng)該有: 完全回退+部分回退, NS 調(diào)試. 除此之外, OEM 開發(fā)團(tuán)隊(duì)?wèi)?yīng)可向現(xiàn)場技術(shù)支持團(tuán)隊(duì)授予權(quán)限的能力。

現(xiàn)場技術(shù)支持團(tuán)隊(duì)的權(quán)限應(yīng)該僅限于回退的權(quán)利.而且僅能完全回退. 以便檢查硬件方面的問題。

針對這三個(gè)團(tuán)隊(duì)的授權(quán)情況, 引入三級證書. 根證書, 一級證書和二級證書. 分別對應(yīng)這三個(gè)團(tuán)隊(duì). 這種操作授權(quán)就放入到證書里邊。

02244fa6-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 安全開發(fā)團(tuán)隊(duì)使用自己的根證書和根密鑰. OEM 開發(fā)團(tuán)隊(duì)使用自己的一級密鑰和一級證書; 而現(xiàn)場技術(shù)支持團(tuán)隊(duì)則使用自己的二級密鑰和二級證書. 各自有自己的一套密鑰和證書.這里的密鑰是指私鑰. 那么這些密鑰和證書又是如何來的呢?

2.1. 密鑰和證書

這里的密鑰其實(shí)是指私鑰, 它和公鑰是一對的. 也就是說, 三個(gè)團(tuán)隊(duì)其實(shí)都有自己的密鑰對. 在做 DA 時(shí), 會使用到私鑰和證書. 首先我們來看看這個(gè)密鑰對是如何來的呢?

如前文第一章節(jié)的前言部分, 我們就介紹了根密鑰對的來源, 它是由 TPC 工具內(nèi)在不同的路徑下點(diǎn)擊 Regenerate 按鍵后生成的. 那么對于 OEM 開發(fā)團(tuán)隊(duì)和現(xiàn)場技術(shù)支持團(tuán)隊(duì)的密鑰對, 也是這么生成的. 當(dāng)然, 也可以通過第三方工具如 openssl 這類的工具生成. 我們將三個(gè)團(tuán)隊(duì)的密鑰(指私鑰)分別叫做根密鑰, 一級密鑰, 二級密鑰. 它們是三個(gè)相互獨(dú)立的密鑰。

2.1.1. 根證書

023794b2-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 根證書是安全開發(fā)團(tuán)隊(duì)自己用私鑰對自己的公鑰以及操作許可簽名產(chǎn)生的. 這個(gè)證書授權(quán)完全回退, 以及 S 調(diào)試+NS 調(diào)試。

它的生成正如前文第 1 章節(jié)如所描述, 生成的就是根證書。

2.1.2. 一級證書

一級證書是由安全開發(fā)團(tuán)隊(duì)負(fù)責(zé)生成, 但使用方卻是 OEM 開發(fā)團(tuán)隊(duì). 也就是說, 它是由安全開發(fā)團(tuán)隊(duì)授權(quán)給 OEM 開發(fā)團(tuán)隊(duì)的證書。

023bbc68-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 它是拿 OEM 開發(fā)團(tuán)隊(duì)的公鑰出來, 用安全開發(fā)團(tuán)隊(duì)的私鑰進(jìn)行簽名所產(chǎn)生, 再加上授權(quán)許可. 它是安全開發(fā)團(tuán)隊(duì)的根證書的子證書:

028368d8-e02c-11ee-a297-92fbcf53809c.jpg

2.1.3. 中間證書

中間證書也是一級證書, 它也是由安全團(tuán)隊(duì)的根證書的子證書, 由安全開發(fā)團(tuán)隊(duì)授權(quán)而來. 與一級證書不同地是, 它只能用來派生二級證書, 并不能直接拿來用, 比如 DA 回退, DA 調(diào)試. 它僅僅用來頒發(fā)二級證書, 給證書管理者用的。

0295aafc-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 中間證書是拿 OEM 開發(fā)團(tuán)隊(duì)的公鑰, 用安全開發(fā)團(tuán)隊(duì)的私鑰簽名產(chǎn)生, 再加上操作許可信息. 它是給 OEM 開發(fā)團(tuán)隊(duì)用的, 僅僅用于派生二級證書. 它也是安全開發(fā)團(tuán)隊(duì)的根證書的子證書。

2.1.4. 二級證書

二級證書是給現(xiàn)場技術(shù)支持團(tuán)隊(duì)用的. 它是由中間證書派生而來:

02aa66ea-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在從中間證書派生二級證書時(shí), 拿二級公鑰出來, 用一級私鑰進(jìn)行簽名的, 再加上操作許可信息. 二級證書生成過程完全是由 OEM 開發(fā)團(tuán)隊(duì)負(fù)責(zé)的. 這里需要注意地是, 二級證書是由中間證書派生而來, 并不是由一級證書派生。

STM32H5 支持這三級證書: 根證書, 一級證書, 中間證書和二級證書, 其相互關(guān)系如下圖所示:

02ae0dea-e02c-11ee-a297-92fbcf53809c.jpg

03

動手實(shí)驗(yàn)

3.1. 實(shí)驗(yàn)概覽

本實(shí)驗(yàn)將分別扮演安全開發(fā)團(tuán)隊(duì), OEM 開發(fā)團(tuán)隊(duì)和現(xiàn)場技術(shù)開發(fā)團(tuán)隊(duì), 分別生成根證書, 一級證書, 中間證書和二級證書, 并驗(yàn)證此證書的有效性。

02b1fbbc-e02c-11ee-a297-92fbcf53809c.jpg

3.2. 安全開發(fā)團(tuán)隊(duì)

安全開發(fā)團(tuán)隊(duì)有以下幾個(gè)任務(wù) :

? 預(yù)配置 OBKey+芯片操作許可.

? 生成根證書

? 為 OEM 開發(fā)團(tuán)隊(duì)生成一級證書

? 為 OEM 開發(fā)團(tuán)隊(duì)生成中間證書

3.2.1. 預(yù)配置 OBKey+芯片操作許可

此過程與《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的 3.2 節(jié)+3.4 節(jié)完全一致。這里不再贅述。

3.2.2. 生成根證書

此過程與《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的 3.3 節(jié)完全一致。這里不再贅述。

3.2.3. 測試根證書的有效性

此過程與《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的第 4 章完全一致。這里不再贅述。

3.2.4. 為 OEM 開發(fā)團(tuán)隊(duì)生成一級證書

為 OEM 開發(fā)團(tuán)隊(duì)生成一級證書首先得拿到 OEM 開發(fā)團(tuán)隊(duì)的公鑰. 關(guān)于 OEM 開發(fā)團(tuán)隊(duì)如何生成自己的公鑰私鑰對, 請參考 3.3.1 節(jié)。

02fe3874-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 Certificate Role 處選擇 LEAF, 在 Issuer Private Key 處輸入根密鑰:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_1_root.pem, 用它來給證書簽名。

在 Leaf Public Key 處輸入 OEM 開發(fā)團(tuán)隊(duì)的一級公鑰:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_2_intermediate_pub.pem

在 Settings 下設(shè)置開放給 OEM 開發(fā)團(tuán)隊(duì)的操作許可, 因?yàn)?OEM 開發(fā)團(tuán)隊(duì)僅僅形式發(fā) NS工程, 所以這里開放完全回退+半回退, +NS Debug 權(quán)限。

然后在右側(cè) Input certificate for chaining 處輸入根證書:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/cert_root.b64

在 Certificate file 出輸入需要生成的證書路徑及文件名:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/level1_cert_leaf.b64

最后點(diǎn)擊 Generate Certificate 按鍵生成一級證書:

031219ca-e02c-11ee-a297-92fbcf53809c.jpg

其中 level1_cert_leaf_chain.b64 為一級證書文件, 可發(fā)給 OEM 開發(fā)團(tuán)隊(duì)用作 NS 工程調(diào)試和完全回退+半回退。

3.2.5. 為 OEM 開發(fā)團(tuán)隊(duì)生成中間證書

安全開發(fā)團(tuán)隊(duì)還需要給 OEM 開發(fā)團(tuán)隊(duì)生成中間證書, 此證書是專門用來給下一級授權(quán)的, 即生成二級證書用的。

0315ac0c-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 Certificate Role 處選擇 INTERMEDIATE, 在 Issuer Private Key 處, 輸出根密鑰 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_1_root.pem, 用它給證書簽名。

在Intermediate Public Key 處, 輸入 OEM 開發(fā)團(tuán)隊(duì)的公鑰 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_2_intermediate_pub.pem

在下方 Settings 處, 我們僅僅選擇 Full, 即僅僅開放完全回退權(quán)限. 這是由于此中間證書只是給 OEM 開發(fā)團(tuán)隊(duì)生成下一級證書, 即給現(xiàn)場技術(shù)支持團(tuán)隊(duì)用的, 它僅僅需要完全回退權(quán)限即可。

在右側(cè) Input certificate for chaining 處輸入根證書 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/cert_root.b64

在 Certificate file 處輸入生成的證書的路徑及文件名 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/level1_cert_intermediate.b64

最后點(diǎn)擊 Generate Certificate 按鍵生成中間證書 :

032b6c0e-e02c-11ee-a297-92fbcf53809c.jpg

其中 level1_cert_intermediate_chain.b64 可發(fā)給 OEM 開發(fā)團(tuán)隊(duì). 給他們生成下級證書用。

3.3. OEM 開發(fā)團(tuán)隊(duì)

OEM 開發(fā)團(tuán)隊(duì)主要是開發(fā) NS 工程的團(tuán)隊(duì), 因此, 需要調(diào)試 NS 工程, 需要能回退到 TZClosed 的權(quán)限, 當(dāng)然完全回退權(quán)限也需要. 這些權(quán)限應(yīng)該包含在其對應(yīng)的一級證書內(nèi). 在生成OEM 開發(fā)團(tuán)隊(duì)自己的證書之前, OEM 開發(fā)團(tuán)隊(duì)首先得擁有一套自己的公鑰私鑰對。

3.3.1. 生成自己的公鑰私鑰對

033ef76a-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 用 TPC 打開 xml 文件 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Config/DA_Config.xml

然后在 Debug Authentication root key 下, 點(diǎn)擊 open, 打開C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_2_intermediate.pem 這個(gè)一級密鑰文件. 然后點(diǎn)擊regenerate 按鍵, 重新生成一個(gè)密鑰對:

034d5670-e02c-11ee-a297-92fbcf53809c.jpg

這個(gè)密鑰就是 OEM 開發(fā)團(tuán)隊(duì)自己的密鑰. 它的公鑰可以發(fā)給安全開發(fā)團(tuán)隊(duì), 用來生成一級證書和中間證書(請參考 3.2.4, 3.2.5 節(jié))。

當(dāng)然, 你也可以使用其它第三方工具, 比如 openssl 來生成自己的公鑰私鑰對, 最終以 pem 文件格式存在。

3.3.2. 測試一級證書的有效性

我們可以先在 provisioning 狀態(tài)下測試下完全回退。

03512dc2-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 輸入 OEM 自己的私鑰:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_2_intermediate.pem

同時(shí)輸入一級證書:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDACertificateslevel1_cert_leaf_chain.b64

03553908-e02c-11ee-a297-92fbcf53809c.jpg

選擇 Full Regression, 然后點(diǎn)擊 Execute 按鍵…

0366986a-e02c-11ee-a297-92fbcf53809c.jpg

結(jié)果為可以完全回退成功。

接下來我們再測試下此證書是否可以調(diào)試 NS 工程…

在 Open 狀態(tài)下, 我們燒一個(gè)測試程序:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIExamplesGPIOGPIO_IOToggle_TrustZone

并修改芯片的選項(xiàng)字節(jié) TZEN=0xB4, SECWM2_STRT=0x7f, SECWM2_END=0x0

03873200-e02c-11ee-a297-92fbcf53809c.jpg

燒錄完固件后, 并確保此程序能正常運(yùn)行(兩個(gè) LED 燈來回閃爍)的情況下, 再切換到provisioning 狀態(tài)下做 DA 預(yù)配置, 完了之后再切換到 closed 狀態(tài)下. 然后我們再嘗試使用STM32CubeIDE 調(diào)試 NS 工程。

修改 NS 工程的調(diào)試配置…

038ac7d0-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 Key path 處輸入 OEM 開發(fā)團(tuán)隊(duì)的私鑰:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_2_intermediate.pem

在 Certificate path 處輸入一級證書:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDACertificateslevel1_cert_leaf_chain.b64

Permissions 處選擇 Debug Non Secure L1

Reset behavior 處選擇 None。

然后點(diǎn)擊 Debug 按鍵.. 之后在調(diào)試工具欄中點(diǎn)擊暫停 ..

03c31c98-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 程序在 NS 工程的 while(1);已經(jīng)暫停了下來, 這說明使用一級證書調(diào)試 NS 工程是 OK 的。

接下來我們嘗試使用一級證書進(jìn)行局部回退。

03f247fc-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示,進(jìn) STLink 斷開的情況下,點(diǎn)擊 Discovery 后, 輸入 OEM 開發(fā)團(tuán)隊(duì)的私鑰:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_2_intermediate.pem

在下面輸入框內(nèi)輸入一級證書:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDACertificateslevel1_cert_leaf_chain.b64

然后點(diǎn)擊 Continue 按鍵…

04079bd4-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 選擇 Partial Regression, 然后點(diǎn)擊 Execute 按鍵…

040b27d6-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 執(zhí)行成功, 并且 STLink 仍然保持連接, 此時(shí)查看狀態(tài)為 TZ-Closed 狀態(tài):

040ea2a8-e02c-11ee-a297-92fbcf53809c.jpg

這表明使用此一級證書進(jìn)行半回退也是 OK 的。

3.3.3. 給現(xiàn)場技術(shù)支持團(tuán)隊(duì)生成二級證書

在給現(xiàn)場技術(shù)支持團(tuán)隊(duì)生成二級證書之前, 需要先拿到其公鑰(見 3.4.1 節(jié)). 然后使 TPC 生成二級證書:

041c4c82-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 Certificate Role 處選擇 LEAF, 在 Issuer Private Key 處輸入 OEM 開發(fā)團(tuán)隊(duì)的私鑰:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_2_intermediate.pem

在 Leaf Poblic Key 處輸入現(xiàn)場技術(shù)支持團(tuán)隊(duì)的公鑰:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Keys/key_3_leaf_pub.pem

然后在 Settings 處選擇給現(xiàn)場技術(shù)支持團(tuán)隊(duì)開放的權(quán)限. 需要注意地是, 由于中間證書都只有Full Regression 的權(quán)限, 這里也就只能授權(quán)這個(gè)權(quán)限, 其它權(quán)限即便在這里點(diǎn)開了, 也不會有實(shí)際效果。

然后在右側(cè) Input certificate for chaining 處輸入中間證書:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/level1_cert_intermediate_chain.b64

接著在 Certificate file 處輸入需要導(dǎo)出的證書目錄以及文件名:

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/level2_cert_leaf.b64

最后點(diǎn)擊 Generate Certificate 按鍵生成二級證書:

04612438-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 生成的 level2_cert_leaf_chain.b64 就是二級證書, 就是需要發(fā)給現(xiàn)場技術(shù)支持團(tuán)隊(duì)用的。

3.4. 現(xiàn)場技術(shù)支持團(tuán)隊(duì)

現(xiàn)場技術(shù)支持團(tuán)隊(duì)是負(fù)責(zé)現(xiàn)場給客戶進(jìn)行技術(shù)支持的, 往往需要將芯片完全回退, 以便檢查硬件是否出現(xiàn)問題. 因此, 需要完全回退的權(quán)限. 其證書僅僅需要此權(quán)限即可. 在生成對應(yīng)的二級證書之前, 需要先擁有一對自己的公鑰私鑰對。

3.4.1. 生成自己的公鑰私鑰對

與 3.3.1 節(jié)類似, 使用 TPC 自己的公鑰私鑰對。

046518d6-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 XML file 處輸入

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Config/DA_Config.xml

在 Debug Authentication root key 處, 點(diǎn)擊 open 選擇

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_3_leaf.pem

最后點(diǎn)擊 Regenerate 按鍵生成密鑰對:

04790b2a-e02c-11ee-a297-92fbcf53809c.jpg

如上圖, 其中的 key_3_leaf_pub.pem 文件為公鑰, 需要發(fā)給 OEM 開發(fā)團(tuán)隊(duì)用來生成二級證書(見 3.3.3 節(jié))。

3.4.2. 測試二級證書的有效性

之前我們已經(jīng)將 NUCLEO-板回退到 TZ-Closed 狀態(tài), 可直接在此狀態(tài)下使用二級證書進(jìn)行完全回退, 以驗(yàn)證二級證書的有效性。

0494ef34-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在 STM32CubeProgrammer 中, 在 ST-Link 斷開的情況下, 點(diǎn)擊 Discovery 按鍵, 然后在 key File path 處輸入現(xiàn)場技術(shù)支持團(tuán)隊(duì)自己的私鑰:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_3_leaf.pem

在 Certificate File Path 處輸入二級證書:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDACertificateslevel2_cert_leaf_chain.b64

然后點(diǎn)擊 Continue 按鍵…

04a78b3a-e02c-11ee-a297-92fbcf53809c.jpg

然后選擇 Full Regression, 最后點(diǎn)擊 Execute 按鍵…

04ab30c8-e02c-11ee-a297-92fbcf53809c.jpg

最終完全回退成功。

這就驗(yàn)證了此二級證書的有效性。

至此, 根證書, 一級證書, 二級證書均已驗(yàn)證其有效性。

04

其他問題

在生成證書鏈過程中, 有涉及到中間證書, 我們用它來生成二級證書, 原則上中間證書只能用來生成二級證書, 其本身并不會直接使用, 那么這里有一個(gè)問題, 直接使用中間證書能有效嗎? 我們不妨來測試下。

4.1. 測試直接使用中間證書

在芯片 provisioning 狀態(tài)下, 我們給芯片做好預(yù)配置后, 可直接使用中間證書嘗試完全回退。

04aed30e-e02c-11ee-a297-92fbcf53809c.jpg

如上圖, 在 Key File Path 處使用 OEM 開發(fā)團(tuán)隊(duì)的私鑰:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDAKeyskey_2_intermediate.pem

然后證書處輸入中間證書:

C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDACertificateslevel1_cert_intermediate_chain.b64

然后點(diǎn)擊 Continue 按鍵…

04c189ea-e02c-11ee-a297-92fbcf53809c.jpg

然后選擇 Full Regression, 最后點(diǎn)擊 Execute 按鍵…

之前在生成中間證書時(shí), 是給中間證書授權(quán)完全 回退的, 接下來看看實(shí)際測試結(jié)。

04ab30c8-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 實(shí)際測試結(jié)果為失敗. 由此可見, 中間證書確實(shí)是不能直接拿來使用的。

4.2. 測試使用一級證書生成二級證書的有效性

之前我們是使用了中間證書來生成二級證書, 如果我們直接使用一級證書生成二級證書, 會怎樣? 這個(gè)二級證書是否仍然有效? 我們接著來測試下。

04d72ebc-e02c-11ee-a297-92fbcf53809c.jpg

如上圖所示, 在使用 TPC 生成二級證書過程中, 在右邊的 Certificate file 處輸入一級證書

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Certificates/level1_cert_leaf_chain.b64時(shí), 會直接彈出錯(cuò)誤提示框, 且右下角 Generate Certificate 按鍵也是灰色的, TPC 不允許這么操作. 實(shí)測通過 TPC 是無法生成這種證書的。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1593

    瀏覽量

    109295
  • STM32
    +關(guān)注

    關(guān)注

    2288

    文章

    10998

    瀏覽量

    361949
  • stlink
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    8887

原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | STM32H5 DA證書鏈之初體驗(yàn)

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32H5開發(fā)(1)----總覽

    STM32H5系列微控制器是意法半導(dǎo)體公司推出的一款高性能MCU, CortexM33內(nèi)核的微控制器產(chǎn)品。 他和STM32F2、F4、F7、H7同屬于高端系列產(chǎn)品線。同時(shí)他的主頻能夠達(dá)到250MHz。
    的頭像 發(fā)表于 12-01 14:52 ?1249次閱讀
    <b class='flag-5'>STM32H5</b>開發(fā)(1)----總覽

    STM32H5開發(fā)(2)----新特性

    STM32H5開發(fā)(2)----新特性
    的頭像 發(fā)表于 12-01 14:53 ?1205次閱讀
    <b class='flag-5'>STM32H5</b>開發(fā)(2)----新特性

    STM32H5開發(fā)(3)----電源控制和RCC

    STM32H5開發(fā)(3)----電源控制和RCC
    的頭像 發(fā)表于 12-01 14:59 ?1672次閱讀
    <b class='flag-5'>STM32H5</b>開發(fā)(3)----電源控制和RCC

    STM32H5 DA初體驗(yàn)

    本文是接著之前文檔《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的后續(xù)之作。
    的頭像 發(fā)表于 01-17 13:39 ?1569次閱讀
    <b class='flag-5'>STM32H5</b> <b class='flag-5'>DA</b>初體驗(yàn)

    請問stm32H5唯一設(shè)備id地址是什么?

    求問stm32H5唯一設(shè)備id地址?
    發(fā)表于 03-10 07:50

    請問stm32h5裸機(jī)怎么配置lwip呢?

    stm32h5裸機(jī)怎么配置lwip呢?
    發(fā)表于 03-13 08:17

    高性能系列MCU STM32H5介紹

    內(nèi)容包含:STM32 MCU/MPU產(chǎn)品系列、STM32H5 系列、STM32H5 系列亮點(diǎn)、STM32H5 系列產(chǎn)品等。
    發(fā)表于 09-05 06:39

    開關(guān)電源維修方法和實(shí)戰(zhàn)經(jīng)驗(yàn)

    開關(guān)電源維修方法和實(shí)戰(zhàn)經(jīng)驗(yàn)開關(guān)電源維修方法和實(shí)戰(zhàn)經(jīng)驗(yàn)
    發(fā)表于 01-15 16:38 ?49次下載

    STM32 應(yīng)用實(shí)戰(zhàn)經(jīng)驗(yàn)篇推薦閱讀

    近日,ST官方技術(shù)部門又推出了3篇針對STM32應(yīng)用開發(fā)的實(shí)戰(zhàn)經(jīng)驗(yàn)篇,分享給各位ST MCU使用者。在此我對這三篇文章內(nèi)容作個(gè)簡介,細(xì)節(jié)可自行去ST官方相關(guān)網(wǎng)站下載,文章結(jié)尾會介紹。 第一篇是介紹了
    發(fā)表于 11-29 17:42 ?547次閱讀

    ARM全國產(chǎn)云平臺部署容器實(shí)戰(zhàn)經(jīng)驗(yàn)分享

    ARM全國產(chǎn)云平臺部署容器實(shí)戰(zhàn)經(jīng)驗(yàn)分享
    發(fā)表于 07-18 16:11 ?71次下載
    ARM全國產(chǎn)云平臺部署容器<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>分享

    嵌入式項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)

    嵌入式項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)分享,C/C++、Linux、STM32、51單片機(jī)、FPGA、IoT、OpenCV、數(shù)字圖像處理、通信、算法!
    發(fā)表于 11-03 12:36 ?24次下載
    嵌入式項(xiàng)目<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>

    高性價(jià)比STM32H5 MCU系列手冊

    電子發(fā)燒友網(wǎng)站提供《高性價(jià)比STM32H5 MCU系列手冊.pdf》資料免費(fèi)下載
    發(fā)表于 07-29 16:15 ?2次下載
    高性價(jià)比<b class='flag-5'>STM32H5</b> MCU系列手冊

    【話題風(fēng)暴】看看新品STM32H5那些事

    ST推出了STM32H5系列,該系列作為新標(biāo)桿服務(wù)于工業(yè)應(yīng)用市場。用于高性能設(shè)計(jì)的STM32H5系列基于強(qiáng)大的Arm Cortex-M33內(nèi)核 ,將給用戶帶來更強(qiáng)勁的性能和安全性,提供更多設(shè)計(jì)自由
    的頭像 發(fā)表于 09-21 09:30 ?1319次閱讀
    【話題風(fēng)暴】看看新品<b class='flag-5'>STM32H5</b>那些事

    STM32H5 DA 之初體驗(yàn)(帶 TrustZone)

    電子發(fā)燒友網(wǎng)站提供《STM32H5 DA 之初體驗(yàn)(帶 TrustZone).pdf》資料免費(fèi)下載
    發(fā)表于 02-19 14:19 ?0次下載
    <b class='flag-5'>STM32H5</b> <b class='flag-5'>DA</b> 之初體驗(yàn)(帶 TrustZone)

    如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口

    基于J-Link實(shí)現(xiàn)STM32H5安全編程介紹了在禁用TrustZone時(shí),如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口的安全鎖定或回歸打開。
    的頭像 發(fā)表于 03-17 10:25 ?309次閱讀
    如何通過J-Link實(shí)現(xiàn)<b class='flag-5'>STM32H5</b>控制調(diào)試端口