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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

jf_pJlTbmA9 ? 來源:新唐MCU ? 作者:新唐MCU ? 2023-10-26 17:26 ? 次閱讀

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

wKgZomUD6oCAXgffAABCijeXHfw935.png

如果下一階段的啟動代碼沒通過 Secure Boot 驗證的檢測,此時 Secure Bootloader 會執行USB/UART1 command 模式,等待接收并處理從 Secure ISPTool USB/UART1 接口送進來的 command。

另外在 Secure Bootloader 內有開放部分的 API,讓程序開發人員可以直接使用這些已經在Secure Bootloader 代碼內有提供的功能。

wKgaomUD6oKAF85zAABc_CXQi8s045.png

本文將以M2351為范例介紹Secure Bootloader 和整個 M2351 內存之間的關系開始,之后會說明如何配置啟動 Secure Bootloader、Secure Bootloader 工作頻率、如何啟動 Secure Boot 驗證以及Secure Boot 驗證時必要的配置和驗證流程。最后會介紹 USB/UART1 command 模式的功能和特性。

位置和屬性

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

wKgZomUD6oOAY8nhAAAwdm1KDaE880.png

起始開機區選擇

M2351 User Configuration Block 是可以配置和系統啟動選項相關的配置區塊。在芯片上電后,CPU 執行任何代碼之前,可以預先執行照配置區內所設定的動作。

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

如要規劃從 Secure Bootloader 啟動開機,則只需將 MBS 配置為 0 后再做系統重置即可。否則系統起始開機區會由 CBS 的設定值來決定從 APROM 或 LDROM 啟動。

wKgaomUD6oSAds1NAAAd5aIrW70100.png

Bootloader 工作頻率

當起始開機區運行在 Secure Bootloader 時,系統的工作頻率會切換為 48MHz。

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

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

啟動 Secure Boot 驗證

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

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

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

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

下面表格為 MBS、SCRLOCK、ARLOCK、CBS 和系統起始開機區的關系表:

wKgaomUD6oWAY0LJAAA_HTOKpm0338.png

Secure Boot 配置說明

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

下面的子章節將說明執行 Secure Boot 驗證時的必要配置。

SBK – Secure Boot Key

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

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

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

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

IB – Information Block

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

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

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

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

IB內容內有一組checksum數據,可讓Secure Bootloaer判斷這組IB數據的正確性

如果沒有正確的IB數據區塊,Secure Bootloader將不會執行 Secure Boot驗證流程

Secure Region Lock

當系統安全屬性有被配置為開啟 Secure 區域保護時,Secure Bootloader 才會執行Secure Boot 驗證。此時系統內的 Secure 區域代碼將不能經由 ICE 界面被存取。

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

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

在沒有開啟Secure區域保護的系統里, Secure Bootloader將不會執行 Secure Boot驗證流程

Secure Boot 驗證流程

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

判斷是否有開啟 Secure 區域保護功能

判斷是否有正確的IB 區塊

依據 IB區塊內的資料,判斷要被保護代碼的SHA-256 Hash值是否正確

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

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

wKgZomUD6oeAEgiTAAA1NNjwDT0497.png

USB/UART1 Command 模式說明

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

透過 PC 端的 Nuvoton NuMicro? Secure ISPTool 即可和 Secure Bootloader 內的 USB/UART1 command 模式做傳輸。

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

USB 界面

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

UART1 界面

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

可透過更改配置區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 程序內的 UART1/USB Command 模式和 PC 端的 Secure ISPTool 聯機后的主要處理流程。

wKgZomUD6oiACnwAAABAnAmqmoU673.png

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

而終端產品的應用可能是沒有預留 ICE 腳位的。此時如果有需要做代碼的更新,即可以執行 Secure Bootloader Non-secure callable API 所提供的 USB/UART1 command模式和 PC 端的Nuvoton NuMicro? Secure ISPTool 來實現代碼的更新。

歡迎關注新唐的產品官網以獲取更多的訊息,我們也會繼續介紹M2354系列的安全啟動做法。

來源:新唐MCU
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7903

    瀏覽量

    153683
  • ROM
    ROM
    +關注

    關注

    4

    文章

    578

    瀏覽量

    86994
  • 軟硬件
    +關注

    關注

    1

    文章

    313

    瀏覽量

    19536
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    MAXQ1741用于磁卡讀卡的DeepCover安全微控制器技術手冊

    提供強大的器件支持,通過在磁卡讀卡內部安裝超級安全微控制器(內置高速硬件加密引擎),為磁條讀卡提供高度可靠的
    的頭像 發表于 05-15 09:48 ?99次閱讀
    MAXQ1741用于磁卡讀卡<b class='flag-5'>器</b>的DeepCover<b class='flag-5'>安全</b><b class='flag-5'>微控制器</b>技術手冊

    24位同步采樣ADC軟硬件替換ADS1274動態應變應用方案

    24位同步采樣ADC軟硬件替換ADS1274動態應變應用方案
    的頭像 發表于 04-28 09:52 ?151次閱讀
    24位同步采樣ADC<b class='flag-5'>軟硬件</b>替換ADS1274動態應變<b class='flag-5'>器</b>應用方案

    新唐科技推出NuMicro M2A23系列微控制器

    新唐科技推出 NuMicro M2A23 系列微控制器,專為汽車與工業應用設計。該系列能夠在高達 125°C 的環境溫度下運行,并具備多達三
    的頭像 發表于 04-16 16:40 ?351次閱讀

    新唐科技微控制器在觸控應用方面的優勢

    隨著物聯網 (IoT) 和智能家居應用的蓬勃發展,觸控按鍵技術已成為人機互動界面的關鍵。搭載電容式觸控按鍵技術的新唐科技NuMicro 微控制器系列,提供防水、抗噪及高靈敏度的觸控體驗,為各類
    的頭像 發表于 02-27 15:52 ?620次閱讀

    新唐科技M2351系列MCU引領物聯網安全時代

    新唐科技的NuMicro M2351系列作為首批基于Arm Cortex-M23內核的微控制器,通過PSA Certified Level
    的頭像 發表于 02-26 15:53 ?380次閱讀
    新唐科技<b class='flag-5'>M2351</b><b class='flag-5'>系列</b>MCU引領物聯網<b class='flag-5'>安全</b>時代

    英飛凌發布全新高性能PSOC Control微控制器系列

    英飛凌推出基于Arm Cortex-M33的最新高性能微控制器(MCU)系列PSOC Control。在ModusToolbox系統設計工具和軟件的支持下,這款綜合全面的解決方案使開發人員能夠輕松創建高性能、高效率且
    的頭像 發表于 02-20 09:22 ?703次閱讀

    Toshiba推出七款Arm Cortex-M4電機控制微控制器

    M4K組和M470組現有產品的優秀特性,如編碼接口和可編程電機控制功能,進一步降低了電機控制過程中的CPU負載,還保留了閃存、RAM、AD
    的頭像 發表于 02-06 11:10 ?596次閱讀

    兆芯CPU近期軟硬件適配動態

    近期,兆芯攜手多家軟硬件合作伙伴,基于開先KX-7000、開勝KH-40000等自主CPU和信創操作系統環境,持續推進應用生態建設工作,順利完成醫療自主終端、商用收款機、服務操作系統、數據庫管理
    的頭像 發表于 01-15 15:33 ?473次閱讀

    STM32WB0系列無線微控制器滿足低功耗藍牙應用需求

    藍牙技術作為應用最為廣泛的2.4GHz短距離通信技術,對無線微控制器芯片的集成度、功耗、性能、安全性等有較高要求。STM32WB0系列,是兼具高性價比和低功耗的無線微控制器,可充分滿足
    的頭像 發表于 10-12 11:03 ?951次閱讀
    STM32WB0<b class='flag-5'>系列</b>無線<b class='flag-5'>微控制器</b>滿足低功耗藍牙應用需求

    ESP32 微控制器系列指南

    。 對于工程師或制造商來說,熟悉各種 ESP32 硬件平臺和軟件包可能是一項艱巨的任務。本指南將提供與 ESP32 微控制器生態系統相關的技術規格、開
    的頭像 發表于 10-02 18:21 ?4696次閱讀
    ESP32 <b class='flag-5'>微控制器</b><b class='flag-5'>系列</b>指南

    微控制器的結構和應用

    微控制器(Microcontroller Unit,簡稱MCU)作為嵌入式系統的核心部件,其原理和應用在現代科技發展中占據了舉足輕重的地位。本文將從微控制器的原理、基本結構、工作原理、性能特點以及廣泛的應用領域等方面進行詳細闡述,旨在全面介紹
    的頭像 發表于 08-22 10:40 ?2251次閱讀

    stm32boot0和boot1對應哪個p引腳

    STM32系列微控制器是一種廣泛應用于嵌入式系統領域的32位微控制器。在STM32系列微控制器中,BOO
    的頭像 發表于 08-22 09:40 ?5758次閱讀

    YTM32的HA系列微控制器啟動過程詳解

    HA系列微控制器基于Arm Cortex-M7處理內核,集成了Security Boot的功能。Security
    的頭像 發表于 07-15 09:24 ?659次閱讀
    YTM32的HA<b class='flag-5'>系列</b><b class='flag-5'>微控制器</b>啟動過程詳解

    MCX N系列微控制器適用于安全、智能的電機控制和機器學習應用

    學習應用。 NXP全新MCX N系列微控制器搭載Arm Cortex-M33 CPU,配備智能外設和加速、通信和信號處理功能,可擴展性強,易于開發。MCX N的低功耗高速緩存提高了系
    的頭像 發表于 06-05 09:06 ?1412次閱讀

    CY95710M系列和CY95710L系列8FX系列微控制器之間的區別?

    我想知道 CY95710M 系列和 CY95710L 系列 8FX 系列微控制器之間的區別。 我查看了各自的數據表,但沒有發現任何不同之處。
    發表于 06-04 06:48