98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> Nuvoton/新唐 >> MCU安全起動 (Secure Boot) 的軟硬件整合作法 – 以NuMicro M2351系列為例

MCU安全起動 (Secure Boot) 的軟硬件整合作法 – 以NuMicro M2351系列為例

關(guān)鍵字:MCU安全起動 軟硬件整合作法 M2351 新唐芯片 新唐代理 作者: 來源: 發(fā)布時間:2022-05-18  瀏覽:65
微控制器安全起動 (Secure Boot)的軟硬件整合作法

以 NuMicro M2351 系列為例

Secure Bootloader 是一段被寫在 Mask ROM 內(nèi)無法被存取和更改的可開機程序代碼。系統(tǒng)經(jīng)由配置區(qū)設(shè)定為從 Secure Bootloader 啟動后,便會啟動 Secure Boot 驗證機制,對存放在Flash Memory安全區(qū)域內(nèi)的程序代碼做開發(fā)者身分認證和代碼完整性的驗證。當 Secure 區(qū)域代碼通過 Secure Boot 驗證后,系統(tǒng)才會跳至 Secure 區(qū)域內(nèi)執(zhí)行被驗證過的受保護代碼,例如下圖所示。

Secure 區(qū)域內(nèi)的保護代碼

如果下一階段的啟動代碼沒通過 Secure Boot 驗證的檢測,此時 Secure Bootloader 會執(zhí)行USB/UART1 command 模式,等待接收并處理從 Secure ISPTool USB/UART1 接口送進來的 command。
另外在 Secure Bootloader 內(nèi)有開放部分的 API,讓程序開發(fā)人員可以直接使用這些已經(jīng)在Secure Bootloader 代碼內(nèi)有提供的功能。
Secure Bootloader代碼內(nèi)提供的功能
本文將以M2351為范例介紹Secure Bootloader 和整個 M2351 內(nèi)存之間的關(guān)系開始,之后會說明如何配置啟動 Secure Bootloader、Secure Bootloader 工作頻率、如何啟動 Secure Boot 驗證以及Secure Boot 驗證時必要的配置和驗證流程。最后會介紹 USB/UART1 command 模式的功能和特性。

位置和屬性

Secure Bootloader 代碼被預(yù)寫在 32KB Mask ROM 內(nèi),位置落在 0x0080_0000 ~ 0x0080_7FFF 間的 Secure 區(qū)域內(nèi),并被配置為 Execute-only memory (XOM) 屬性,因此這段代碼是無法被更改以及存取的。另外在 Secure Bootloader 運行過程中,會需要用到位于 0x2000_C000 至 0x2000_FFFF 共 16KB 的 Secure 內(nèi)存。

Secure 內(nèi)存


起始開機區(qū)選擇

M2351 User Configuration Block 是可以配置和系統(tǒng)啟動選項相關(guān)的配置區(qū)塊。在芯片上電后,CPU 執(zhí)行任何代碼之前,可以預(yù)先執(zhí)行照配置區(qū)內(nèi)所設(shè)定的動作。

因此透過更改配置區(qū)內(nèi) CBS (CONFIG0[7]) 和 MBS (CONFIG0[5]) 的設(shè)定,便可決定 M2351 在上電后的起始開機區(qū)域為何。

如要規(guī)劃從 Secure Bootloader 啟動開機,則只需將 MBS 配置為 0 后再做系統(tǒng)重置即可。否則系統(tǒng)起始開機區(qū)會由 CBS 的設(shè)定值來決定從 APROM 或 LDROM 啟動。
起始開機區(qū)選擇


Bootloader 工作頻率

當起始開機區(qū)運行在 Secure Bootloader 時,系統(tǒng)的工作頻率會切換為 48MHz。

如為有支持 USB 功能的芯片型號時,Secure Bootloader 啟動后會先檢測外部 HXT-12MHz 頻率誤差是否有小于 6% 后,再決定系統(tǒng)工作頻率的時鐘源。如外部 HXT-12MHz 頻率誤差小于 6%,則優(yōu)先以此 HXT-12MHz 來產(chǎn)生 PLL-48MHz 的時鐘源,并將此 PLL-48MHz 當作系統(tǒng)工作頻率和 USB 裝置的工作時鐘源。

如果芯片沒有支持 USB 功能,或是外部 HXT-12MHz 頻率誤差過大,則會轉(zhuǎn)換成以內(nèi)部 HIRC-12MHz 當作 PLL-48MHz 的時鐘源,來當作是系統(tǒng)工作頻率或是 USB 裝置的工作時鐘源。

啟動 Secure Boot 驗證

系統(tǒng)從 Secure Bootloader 啟動后,可以開啟 Secure Boot 驗證的機制。這目的主要是驗證下一階段要被執(zhí)行的 Secure 代碼是否有通過代碼開發(fā)者身分認證和代碼完整性的驗證。如果要啟動 Secure Boot 驗證,除了設(shè)定從 Secure Bootloader 開機外,還需透過設(shè)置 Secure Region Lock 或者是 All Region Lock 來對系統(tǒng)的 Secure 區(qū)域做保護。

在 Secure 區(qū)域沒有受到保護的情況下,Secure Bootloader 啟動后是不會執(zhí)行 Secure Boot 驗證機制的。此時系統(tǒng)將會跳到 Secure Bootloader 內(nèi)的 USB/UART1 command 模式,等待接收并處理 USB/UART1 command,而不會跳到其他區(qū)域內(nèi)的代碼作執(zhí)行。

當啟動 Secure Boot 驗證下一階段要被執(zhí)行的 Secure 區(qū)域代碼無誤后,Secure Bootloader 將會參照配置區(qū)內(nèi) CBS (CONFIG0[7]) 的設(shè)定值來決定 CPU重啟之后是要執(zhí)行 Secure APROM 或是 Secure LDROM 內(nèi)的代碼。

如果 Secure Boot 驗證過程中有錯誤產(chǎn)生,則系統(tǒng)也一樣會跳到 Secure Bootloader內(nèi) 的USB/UART1 command模式,等待接收并處理 USB/UART1 command。


下面表格為 MBS、SCRLOCK、ARLOCK、CBS 和系統(tǒng)起始開機區(qū)的關(guān)系表:
關(guān)系表


Secure Boot 配置說明

前面章節(jié)大致說明了如何將系統(tǒng)配置從 M2351 Secure Bootloader 啟動,并開啟 Secure Boot驗證的功能。

下面的子章節(jié)將說明執(zhí)行 Secure Boot 驗證時的必要配置。

SBK – Secure Boot Key

Secure Boot Key (SBK) 是一把對被 Secure Boot 驗證的 Secure 區(qū)域代碼 SHA-256 Hash 值做加密的 AES 加密安全密鑰。

SBK安全密鑰有效長度為 256-bits,只能被寫入一次,無法被讀出

如要更新此SBK安全密鑰,只能做全芯片擦除后再做更新的操作

一定要有配置過SBK,后續(xù)的Secure Boot驗證流程才可能會成功

IB – Information Block

Information Block (IB) 為一塊被寫在 Secure APROM 后面的數(shù)據(jù)區(qū)塊。

區(qū)塊內(nèi)容記錄著被 Secure Boot 驗證的受保護代碼存放位置,以及一組 256-bits 的數(shù)字檢查碼。此 256-bits 數(shù)字檢查碼為受保護代碼的 SHA-256 Hash 值再使用 Secure Boot Key (SBK) 做 AES-256 加密后的結(jié)果。

IB被記錄在 Secure APROM 最后的 144 bytes

最多可配置 6 組受Secure Boot驗證的代碼區(qū)域,

IB內(nèi)容內(nèi)有一組checksum數(shù)據(jù),可讓Secure Bootloaer判斷這組IB數(shù)據(jù)的正確性

如果沒有正確的IB數(shù)據(jù)區(qū)塊,Secure Bootloader將不會執(zhí)行 Secure Boot驗證流程

Secure Region Lock

當系統(tǒng)安全屬性有被配置為開啟 Secure 區(qū)域保護時,Secure Bootloader 才會執(zhí)行Secure Boot 驗證。此時系統(tǒng)內(nèi)的 Secure 區(qū)域代碼將不能經(jīng)由 ICE 界面被存取。

將SCRLOCK[7:0] 或是 ARLOCK[7:0] 任一組配置區(qū)改為非 0x5A后,Secure 區(qū)域代碼將無法被 ICE 界面存取

只能做全芯片擦除后才可以解除Secure區(qū)域的保護

在沒有開啟Secure區(qū)域保護的系統(tǒng)里, Secure Bootloader將不會執(zhí)行 Secure Boot驗證流程


Secure Boot 驗證流程


下列步驟會說明 Secure Bootloader 執(zhí)行 Secure Boot 驗證的流程。

判斷是否有開啟 Secure 區(qū)域保護功能

判斷是否有正確的IB 區(qū)塊

依據(jù) IB區(qū)塊內(nèi)的資料,判斷要被保護代碼的SHA-256 Hash值是否正確

如果代碼的SHA-256 Hash值比對正確,CPU將會跳去執(zhí)行這段代碼。如果Hash值比對錯誤,則Secure Bootloader會進入USB/UART1 command模式,等待接收并處理 USB/UART1 command。

下列流程圖將說明 Secure Bootloader啟動后執(zhí)行 Secure Boot 驗證到最終執(zhí)行 Trusted Boot Code 的過程,以及在 Secure Boot 驗證過程中出現(xiàn)錯誤時的處理方式。
Secure Boot 驗證流程

USB/UART1 Command 模式說明

M2351 Secure Bootloader 除了可執(zhí)行 Secure Boot 驗證外,另一個功能為進入 USB/UART1 command 模式做代碼的更新和配置區(qū)的設(shè)定。

透過 PC 端的 Nuvoton NuMicro® Secure ISPTool 即可和 Secure Bootloader 內(nèi)的 USB/UART1 command 模式做傳輸。

本章節(jié)將會對 USB/UART1 command 模式做基本的介紹。

USB 界面

在 M2351 Secure Bootloader 提供的 USB command 模式內(nèi),用戶無需做任何事先的配置,只要透過 USB 線和 PC 端的 Secure ISPTool 做連接后即可正常工作。

UART1 界面

在使用 M2351 Secure Bootloader 提供的 UART1 command 模式前,則需將目前芯片 UART1 的腳位和 PC 串口做連接,之后便可和 Secure ISPTool 做正常聯(lián)機。


可透過更改配置區(qū)CONFIG3[2:0] 來決定 UART1  command模式的腳位:

000:UART1_TXD (PB.7),UART1_RXD (PB.6)

001:UART1_TXD (PA.9),UART1_RXD (PA.8)

010:UART1_TXD (PF.0), UART1_RXD (PF.1)

011:UART1_TXD (PB.3),UART1_RXD (PB.2)

Others:UART1_TXD (PA.3),UART1_RXD (PA.2)

UART1/USB Command 流程

下列流程圖說明在 Secure Bootloader 程序內(nèi)的 UART1/USB Command 模式和 PC 端的 Secure ISPTool 聯(lián)機后的主要處理流程。
UART1/USB Command 流程


以上透過 M2351 Secure Boot 驗證的程序為例,詳細解釋系統(tǒng)開發(fā)商如何確保必須要受到保護的開機代碼沒有被更改,意即可以確認系統(tǒng)啟動后的行為都在程序開發(fā)者的規(guī)劃內(nèi),進而可以達到數(shù)據(jù)不被竊取的目的。另由于M2351系列為帶TrustZone功能,對Non-secure 程序開發(fā)者而言,另可以使用 Secure Bootloader 提供的 Non-secure callable API 來實現(xiàn)對 Non-secure 內(nèi)存的讀寫和其他配置區(qū)的設(shè)定。不需要 Secure 程序開發(fā)者額外提供這些應(yīng)用的 API 給 Non-secure 程序開發(fā)者使用。

而終端產(chǎn)品的應(yīng)用可能是沒有預(yù)留 ICE 腳位的。此時如果有需要做代碼的更新,即可以執(zhí)行 Secure Bootloader Non-secure callable API 所提供的 USB/UART1 command模式和 PC 端的Nuvoton NuMicro® Secure ISPTool 來實現(xiàn)代碼的更新。

如需要了解更多新唐MCU產(chǎn)品,請聯(lián)系新唐核心代理商,穎特新科技,或者掃碼聯(lián)系我們!

新唐代理

在之前的介紹中,我們也為大家介紹了《基于航順HK32F030K6T6掃地機器人解決方案》,也是目前我們主推的非常成熟的解決方案!



編輯:zzy  最后修改時間:2022-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

熟女人妻一区二区三区免费看| 一本久道久久综合狠狠躁| 初尝黑人巨砲波多野结衣| 亚洲熟伦熟女专区| 18款大禁用软件app破解版| 亚洲日韩一区二区三区| 亚洲精品无码久久久久| 少妇高潮喷水久久久久久久久| 亚洲日产乱码一二三区别| 撕开奶罩揉吮奶头高潮av| 偷看娇妻在别人胯下沦陷小说| 色婷婷香蕉在线一区二区| 日本做爰高潮又黄又爽| 成人三级做爰视频在线看| 亚洲精品乱码久久久久久| 末成年娇小性色xxxxx| 做爰高潮全过程免费的小黄文| 吊侵犯の奶水授乳羞羞漫画| 国产欧美日韩一区二区三区| 国产大屁股喷水视频在线观看| 免费观看电视剧全集在线播放| 我身上两个奶被男人揉搓| 久久久综合香蕉尹人综合网| 国语精彩对白在线视频| 亚洲精品色情app在线下载观看| 被迫穿丁字内裤带着震蛋出门小说| 极品少妇高潮啪啪av无码| 亚洲乱码精品久久久久..| 国内精品视频一区二区三区八戒| 免费b站在线观看人数在哪儿找| 亚洲尺码与欧洲尺码区别入口跳转| 欧洲黑人巨大视频在线观看| 久久精品欧美av无码四区| 好吊色欧美一区二区三区视频| 午夜福利理论片在线观看| 日韩中文字幕区一区有砖一区| 久久久国产精品人人片| 被部长玩的漂亮人妻| 亚洲精品一区二区另类图片| 成人毛片18女人毛片免费看视频| 精品久久久久久中文字幕大豆网|