91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

jf_pJlTbmA9 ? 來(lái)源:新唐MCU ? 作者:新唐MCU ? 2023-10-26 17:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

wKgZomUD6oCAXgffAABCijeXHfw935.png

如果下一階段的啟動(dòng)代碼沒(méi)通過(guò) Secure Boot 驗(yàn)證的檢測(cè),此時(shí) Secure Bootloader 會(huì)執(zhí)行USB/UART1 command 模式,等待接收并處理從 Secure ISPTool USB/UART1 接口送進(jìn)來(lái)的 command。

另外在 Secure Bootloader 內(nèi)有開放部分的 API,讓程序開發(fā)人員可以直接使用這些已經(jīng)在Secure Bootloader 代碼內(nèi)有提供的功能。

wKgaomUD6oKAF85zAABc_CXQi8s045.png

本文將以M2351為范例介紹Secure Bootloader 和整個(gè) M2351 內(nèi)存之間的關(guān)系開始,之后會(huì)說(shuō)明如何配置啟動(dòng) Secure Bootloader、Secure Bootloader 工作頻率、如何啟動(dòng) Secure Boot 驗(yàn)證以及Secure Boot 驗(yàn)證時(shí)必要的配置和驗(yàn)證流程。最后會(huì)介紹 USB/UART1 command 模式的功能和特性。

位置和屬性

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

wKgZomUD6oOAY8nhAAAwdm1KDaE880.png

起始開機(jī)區(qū)選擇

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

因此透過(guò)更改配置區(qū)內(nèi) CBS (CONFIG0[7]) 和 MBS (CONFIG0[5]) 的設(shè)定,便可決定 M2351 在上電后的起始開機(jī)區(qū)域?yàn)楹巍?/p>

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

wKgaomUD6oSAds1NAAAd5aIrW70100.png

Bootloader 工作頻率

當(dāng)起始開機(jī)區(qū)運(yùn)行在 Secure Bootloader 時(shí),系統(tǒng)的工作頻率會(huì)切換為 48MHz。

如為有支持 USB 功能的芯片型號(hào)時(shí),Secure Bootloader 啟動(dòng)后會(huì)先檢測(cè)外部 HXT-12MHz 頻率誤差是否有小于 6% 后,再?zèng)Q定系統(tǒng)工作頻率的時(shí)鐘源。如外部 HXT-12MHz 頻率誤差小于 6%,則優(yōu)先以此 HXT-12MHz 來(lái)產(chǎn)生 PLL-48MHz 的時(shí)鐘源,并將此 PLL-48MHz 當(dāng)作系統(tǒng)工作頻率和 USB 裝置的工作時(shí)鐘源。

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

啟動(dòng) Secure Boot 驗(yàn)證

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

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

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

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

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

wKgaomUD6oWAY0LJAAA_HTOKpm0338.png

Secure Boot 配置說(shuō)明

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

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

SBK – Secure Boot Key

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

SBK安全密鑰有效長(zhǎng)度為 256-bits,只能被寫入一次,無(wú)法被讀出

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

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

IB – Information Block

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

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

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

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

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

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

Secure Region Lock

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

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

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

在沒(méi)有開啟Secure區(qū)域保護(hù)的系統(tǒng)里, Secure Bootloader將不會(huì)執(zhí)行 Secure Boot驗(yàn)證流程

Secure Boot 驗(yàn)證流程

下列步驟會(huì)說(shuō)明 Secure Bootloader 執(zhí)行 Secure Boot 驗(yàn)證的流程。

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

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

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

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

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

wKgZomUD6oeAEgiTAAA1NNjwDT0497.png

USB/UART1 Command 模式說(shuō)明

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

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

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

USB 界面

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

UART1 界面

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

可透過(guò)更改配置區(qū)CONFIG3[2:0] 來(lái)決定 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 流程

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

wKgZomUD6oiACnwAAABAnAmqmoU673.png

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

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

歡迎關(guān)注新唐的產(chǎn)品官網(wǎng)以獲取更多的訊息,我們也會(huì)繼續(xù)介紹M2354系列的安全啟動(dòng)做法。

來(lái)源:新唐MCU
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

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

    關(guān)注

    48

    文章

    8375

    瀏覽量

    164559
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    579

    瀏覽量

    89068
  • 軟硬件
    +關(guān)注

    關(guān)注

    1

    文章

    323

    瀏覽量

    20171
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    新唐科技推出基于Arm Cortex-M55內(nèi)核的NuMicro M5531系列微控制器

    在工業(yè)自動(dòng)化、智能物聯(lián)與邊緣計(jì)算飛速演進(jìn)的當(dāng)下,市場(chǎng)對(duì)微控制器(MCU)的性能、功耗、安全性及擴(kuò)展性提出了更高要求。新唐科技深耕MCU領(lǐng)域多年,依托深厚技術(shù)積淀與精準(zhǔn)市場(chǎng)洞察,推出基于Arm
    的頭像 發(fā)表于 02-01 13:58 ?961次閱讀
    新唐科技推出基于Arm Cortex-<b class='flag-5'>M</b>55內(nèi)核的<b class='flag-5'>NuMicro</b> <b class='flag-5'>M</b>5531<b class='flag-5'>系列</b><b class='flag-5'>微控制器</b>

    芯唐南京推出NuMicro CM2051系列微控制器新品

    工業(yè)設(shè)備開發(fā)中,“高性能與低功耗的平衡”和“復(fù)雜環(huán)境的穩(wěn)定適配”是核心競(jìng)爭(zhēng)力訴求。芯唐南京推出NuMicro CM2051系列微控制器Arm Cortex-
    的頭像 發(fā)表于 01-30 15:56 ?788次閱讀

    PSoC 4100M系列微控制器

    PSoC 4100M系列微控制器PSoC 4100M系列微控制器是英飛凌(原Cypress)推出
    發(fā)表于 01-12 09:20

    NXP MCX C系列微控制器:入門級(jí)低功耗解決方案

    景提供了出色的解決方案。 文件下載: NXP Semiconductors MCX C系列微控制器.pdf 產(chǎn)品概述 MCX C系列微控制器由高達(dá)48MHz的Arm? Cortex?
    的頭像 發(fā)表于 12-24 14:00 ?466次閱讀

    新唐科技發(fā)布升級(jí)版NuMicro M2354微控制器

    新唐科技正式推出升級(jí)版 NuMicro M2354 微控制器系列,專為服務(wù) RoT、智能城市、物聯(lián)網(wǎng)與智能電表等應(yīng)用量身打造。
    的頭像 發(fā)表于 10-30 17:49 ?1113次閱讀

    新唐科技NuMicro M253系列微控制器盤點(diǎn)

    NuMicro M253 系列產(chǎn)品是基于Armv8-M指令集架構(gòu)的 Arm Cortex-M23 內(nèi)核的MCU,主頻可達(dá) 48 MHz,支持
    的頭像 發(fā)表于 09-30 09:27 ?1547次閱讀
    新唐科技<b class='flag-5'>NuMicro</b> <b class='flag-5'>M</b>253<b class='flag-5'>系列</b><b class='flag-5'>微控制器</b>盤點(diǎn)

    兆芯加入基礎(chǔ)軟硬件產(chǎn)品漏洞生態(tài)聯(lián)盟

    近日,CCS 2025成都網(wǎng)絡(luò)安全技術(shù)交流系列活動(dòng)——國(guó)家漏洞庫(kù)(CNNVD)基礎(chǔ)軟硬件產(chǎn)品漏洞治理生態(tài)大會(huì)在成都成功舉辦。來(lái)自國(guó)家關(guān)鍵基礎(chǔ)設(shè)施單位、基礎(chǔ)軟硬件企業(yè)、高??蒲袡C(jī)構(gòu)的數(shù)百
    的頭像 發(fā)表于 09-22 13:50 ?827次閱讀

    新唐 M2354 系列,RTU 應(yīng)用的最佳選擇

    M2354 系列框圖: 新唐 M2354 系列具有引人注目的功能,使其成為 RTU 應(yīng)用的最佳選擇: 1. 安全性高
    發(fā)表于 09-05 08:25

    無(wú)法將 XOM 設(shè)置為非安全區(qū)域,為什么?

    M2351 中,我將非安全邊界設(shè)置為0x40000。 非安全區(qū)域應(yīng)為 0x10040000 ~ 0x1007ffff。 然后,我將 XOM 設(shè)置為 0x10060000,但它失敗了。 非
    發(fā)表于 08-27 07:01

    求助,關(guān)于PFM-M2351開發(fā)環(huán)境設(shè)置的問(wèn)題求解

    。 發(fā)展似乎需要三樣?xùn)|西。 1. NuMicro Cortex-M2351 系列 2. 凱爾 MDK Plus v5.24 3. 新唐 Nu-Link 調(diào)試 我知道新唐提供 ke
    發(fā)表于 08-27 06:49

    NuMicro?系列微控制器中具有相同模塊的ADC的每個(gè)通道是否可以同時(shí)采樣?

    NuMicro?系列微控制器中具有相同模塊的ADC的每個(gè)通道是否可以同時(shí)采樣?
    發(fā)表于 08-26 08:08

    如何使用 M032 系列微控制器 (MCU) 實(shí)現(xiàn) USB 磁盤和 FatFs 功能?

    使用 M032 系列微控制器 (MCU) 實(shí)現(xiàn) USB 磁盤和 FatFs 功能
    發(fā)表于 08-20 06:40

    如何使用 M460 系列微控制器 (MCU) 接收和打印 CANFD 總線上的所有消息?

    使用 M460 系列微控制器 (MCU) 接收和打印 CANFD 總線上的所有消息
    發(fā)表于 08-20 06:17

    如何在 M55M1 系列微控制器低功耗模式使用運(yùn)動(dòng)檢測(cè)功能?

    如何在 M55M1 系列微控制器低功耗模式使用運(yùn)動(dòng)檢測(cè)功能。根據(jù)物體檢測(cè)結(jié)果,系統(tǒng)將動(dòng)態(tài)啟用或禁用運(yùn)動(dòng)檢測(cè)塊,實(shí)現(xiàn)最佳性能和能效。
    發(fā)表于 08-19 06:56

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

    新唐科技推出 NuMicro M2A23 系列微控制器,專為汽車與工業(yè)應(yīng)用設(shè)計(jì)。該系列能夠在高達(dá) 125°C 的環(huán)境溫度下運(yùn)行,并具備多達(dá)三
    的頭像 發(fā)表于 04-16 16:40 ?1130次閱讀