日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

armv8-M(cortex-m) Trustzone总结和介绍

發(fā)布時(shí)間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 armv8-M(cortex-m) Trustzone总结和介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、簡(jiǎn)介

先看一張軟件架構(gòu)圖:

1.1、ARMV8-M Trustzone簡(jiǎn)介

TrustZone 技術(shù)的概念并不新鮮。該技術(shù)已在 Arm Cortex-A 系列處理器上使用多年,并且現(xiàn)在已擴(kuò)展到涵蓋 Armv8-M 處理器。

在較高層次上,Armv8-M 的 TrustZone 技術(shù)的概念類似于 Arm Cortex-A 處理器中的 TrustZone 技術(shù)。處理器具有安全和非安全狀態(tài),非安全軟件只能訪問(wèn)非安全存儲(chǔ)器。Armv8-M 的技術(shù)在設(shè)計(jì)時(shí)考慮了小型節(jié)能系統(tǒng)。與 Cortex-A 處理器中的 TrustZone 技術(shù)不同, Armv8-M 的Secure 和 Normal 世界是基于內(nèi)存映射的,轉(zhuǎn)換在異常處理代碼中自動(dòng)發(fā)生

Armv8-M 和 Armv8-A所支持的Trustzone技術(shù)有以下方面的不同:

  • Armv8-M 的 TrustZone 技術(shù)支持 多個(gè)安全entry points,而在 Cortex-A 處理器的 TrustZone 技術(shù)中,Secure Monitor 處理程序是唯一的entry points。
  • 執(zhí)行在安全狀態(tài)時(shí)仍可處理非安全中斷
    在許多具有實(shí)時(shí)處理功能的微控制器應(yīng)用中,確定性行為和低中斷延遲是重要的要求。在運(yùn)行安全代碼時(shí)處理中斷請(qǐng)求的能力至關(guān)重要
  • 通過(guò)允許在安全和非安全狀態(tài)之間共享寄存器組,Armv8-M 實(shí)現(xiàn)的功耗可以類似于 Armv6-M 或 Armv7-M
  • 狀態(tài)切換的低開(kāi)銷允許安全和非安全軟件頻繁交互,這在以下情況下很常見(jiàn)。 安全固件包含軟件庫(kù),例如 GUI 固件或通信協(xié)議棧

在具有 Armv8-M 架構(gòu)安全擴(kuò)展的設(shè)計(jì)中,對(duì)系統(tǒng)安全至關(guān)重要的組件可以放置在安全的世界。這些關(guān)鍵組件包括:

  • 安全引導(dǎo)加載程序。
  • 秘鑰。
  • 閃存編程支持。
  • High value assets(高價(jià)值資產(chǎn))。

    安全(Trusted)和非安全(Non-trusted)軟件可以一起工作,但非安全應(yīng)用程序不能直接訪問(wèn)安全資源。相反,任何對(duì) Secure 資源的訪問(wèn)都可以通過(guò) Secure 軟件提供的 API,這些 API 可以實(shí)現(xiàn)身份驗(yàn)證來(lái)決定如果允許訪問(wèn)安全服務(wù)。通過(guò)這種安排,即使非安全應(yīng)用程序中存在漏洞,黑客
    不能攻擊掉整個(gè)芯片。

1.2、Armv8-M Trustzone背景下的安全需求

安全這個(gè)詞在嵌入式系統(tǒng)設(shè)計(jì)中可以有很多不同的含義。在大多數(shù)嵌入式系統(tǒng)中,安全性可以包括但不限于到:

  • 通訊保護(hù)
    這種保護(hù)可以防止數(shù)據(jù)傳輸被未授權(quán)方看到或攔截,并且可能包括其他技術(shù),例如密碼學(xué)。
  • 數(shù)據(jù)保護(hù)
    這種保護(hù)可防止未經(jīng)授權(quán)的各方訪問(wèn)存儲(chǔ)在設(shè)備內(nèi)的秘密數(shù)據(jù)。
  • 固件保護(hù)
    這種保護(hù)可防止片上固件被逆向工程。
  • 運(yùn)行保護(hù)
    此保護(hù)可防止關(guān)鍵操作出現(xiàn)惡意故意故障。
  • 篡改保護(hù)
    在許多安全敏感產(chǎn)品中,需要防篡改功能來(lái)防止設(shè)備的操作或保護(hù)機(jī)制受到影響。被覆蓋。
    TrustZone 技術(shù)可以直接解決嵌入式系統(tǒng)的以下一些安全要求:
  • 數(shù)據(jù)保護(hù)
    敏感數(shù)據(jù)可以存儲(chǔ)在安全內(nèi)存空間中,并且只能由安全軟件訪問(wèn)。非安全軟件只能訪問(wèn)安全 API 向非安全域提供服務(wù),并且僅在安全檢查或身份驗(yàn)證之后。
  • 固件保護(hù)
    預(yù)加載的固件可以存儲(chǔ)在安全存儲(chǔ)器中,以防止其被逆向工程和受到惡意攻擊。Armv8-M 的 TrustZone 技術(shù)也可以與額外的保護(hù)技術(shù)一起使用。例如,設(shè)備級(jí)讀出保護(hù),一種技術(shù)當(dāng)今業(yè)界常用,可配合Armv8-M的TrustZone技術(shù),保護(hù)最終完成的固件產(chǎn)品。
  • 安全啟動(dòng)
    安全啟動(dòng)機(jī)制使您對(duì)平臺(tái)充滿信心,因?yàn)樗冀K從安全內(nèi)存啟動(dòng)。

TrustZone 技術(shù)還可與面向下一代的高級(jí)微控制器中使用的附加保護(hù)功能一起使用物聯(lián)網(wǎng) (IoT) 產(chǎn)品。例如,為物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)的微控制器可以包含一系列安全功能。
TrustZone 技術(shù)的使用有助于確保所有這些功能只能使用具有有效entry point的 API 來(lái)訪問(wèn),如下所示圖顯示:

通過(guò)使用 TrustZone 技術(shù)來(lái)保護(hù)這些安全功能,設(shè)計(jì)人員可以:

  • 防止不受信任的應(yīng)用程序直接訪問(wèn)安全關(guān)鍵資源。
  • 確保僅在驗(yàn)證和檢查后才重新編程 Flash 映像。
  • 防止固件被逆向工程。
  • 以軟件級(jí)別的保護(hù)存儲(chǔ)機(jī)密信息

無(wú)線通信接口的安全性
在其他一些應(yīng)用場(chǎng)景中,例如帶有經(jīng)過(guò)認(rèn)證的內(nèi)置無(wú)線電堆棧的無(wú)線 SoC,TrustZone 技術(shù)可以保護(hù)標(biāo)準(zhǔn)化操作,例如無(wú)線通信行為。
TrustZone 技術(shù)可以確保客戶定義的應(yīng)用程序不會(huì)使認(rèn)證失效,如下圖所示。

2、Trustzone擴(kuò)展的兩種安全狀態(tài)

Trustzone技術(shù)下的兩個(gè)安全狀態(tài)(Security State): Non-Secure State 和 Secure State.
在TF-M中也稱之為: NSPE(NON-Secure Processing Environment)和SPE(Secure Processing Environment)

關(guān)于reset

  • 如果實(shí)施了安全擴(kuò)展,則標(biāo)記為安全的內(nèi)存區(qū)域和其他關(guān)鍵資源只有在 PE 以安全狀態(tài)執(zhí)行時(shí)才能訪問(wèn)
  • 如果實(shí)施了安全擴(kuò)展, 則在 Cold reset 和 Warm reset時(shí),PE將進(jìn)入Secure狀態(tài)
  • 如果實(shí)施了安全擴(kuò)展, 則在 Cold reset 和 Warm reset時(shí),PE將進(jìn)入NON-Secure狀態(tài)

關(guān)于banked
實(shí)施了安全擴(kuò)展后,下列寄存器都是banked by security:

  • 通用寄存器中的R13(SP)
  • 特殊寄存器中的 : MASK寄存器(PRIMASK, BASEPRI, FAULTMASK)、CONTROL 寄存器、棧指針限制寄存器(MSPLIM ,PSPLIM)
  • System Control Space (SCS)

msr/mrs指令編碼

MRS 和MSR指令編碼中的bit[7]表示操作的是哪組寄存器(Secure or NON-Secure)

補(bǔ)充術(shù)語(yǔ)
RAZ:Read-As-Zero 讀到的總是0
WI :Writes Ignoredx 寫無(wú)效
RAO:Read-As-Oned讀到的總是1
SBZP:Should-Be-Zero-or-Preserved on writes 寫總是0
SBOP : Should-Be-One-or-Preserved on writes. 寫總是1
UNK:unknown 讀寫時(shí)返回值未知
詳見(jiàn):ARM Glossary

cortex-A Trustzone 和 cortex-M Trustzone的對(duì)比:

在cortex-M上,雙系統(tǒng)的切換,使用的是 Secure Gateway (SG) 指令,但只允許在特殊的memory上調(diào)用SG,即使 NSC(non-secure callable)

安全狀態(tài)的切換

切換安全狀態(tài)的方式有以下兩種:

  • 直接函數(shù)調(diào)用和返回(non-secure callable)
  • 異常/中斷的進(jìn)入和退出

3、 內(nèi)存的劃分

如果實(shí)施了安全擴(kuò)展,則 4GB 內(nèi)存空間將劃分為安全非安全內(nèi)存區(qū)域。
安全內(nèi)存空間進(jìn)一步分為兩種類型:安全(S)和非安全可調(diào)用(NSC : Non-secure Callable)

NSC 是一種特殊類型的安全內(nèi)存。這種類型的內(nèi)存是 Armv8-M 處理器允許保存 SG 指令的一種內(nèi)存,使軟件能夠從非安全狀態(tài)轉(zhuǎn)換為安全狀態(tài)。

通過(guò)將 SG 指令的功能限制在 NSC 內(nèi)存中,安全軟件創(chuàng)建者無(wú)需在正常安全內(nèi)存中意外包含 SG 指令或數(shù)據(jù)共享編碼值,包含 NSC 內(nèi)存位置。

通常 NSC 內(nèi)存區(qū)域包含小型分支跳轉(zhuǎn)(entry points)的表。 為了防止非安全應(yīng)用程序分支到無(wú)效入口點(diǎn),這里有Secure Gateway (SG) 指令。

當(dāng)非安全程序調(diào)用安全端的函數(shù)時(shí):

  • API 中的第一條指令必須是 SG 指令。
  • SG 指令必須位于由 安全屬性單元 (SAU :Security Attribution Unit) 或?qū)嵤┒x的屬性單元 ( IDAU : Implementation Defined Attribution Unit) 定義的 NSC 區(qū)域中。

引入NSC內(nèi)存的原因是為了防止其他二進(jìn)制數(shù)據(jù),例如查找表,其值與SG指令的操作碼相同,作為進(jìn)入安全狀態(tài)的入口函數(shù)。 通過(guò)分離 NSC 和 Secure 內(nèi)存類型,包含二進(jìn)制數(shù)據(jù)的 Secure 程序代碼可以安全地放置在 Secure 區(qū)域中,而無(wú)需直接暴露于 Normal 世界,并且只能使用 NSC 內(nèi)存中的有效入口點(diǎn)進(jìn)行訪問(wèn)。

4、Attribution units (SAU and IDAU)

  • SAU :Security Attribution Unit
  • IDAU : Implementation Defined Attribution Unit

復(fù)位的時(shí)候SAU是disabled的
如果SAU是disabled的,且系統(tǒng)中也沒(méi)有包含IDAU,又由于reset時(shí)默認(rèn)的狀態(tài)是Secure Security State,那么系統(tǒng)將無(wú)法切換到Non-secure狀態(tài),所有切換non-secure Security狀態(tài)的操作都會(huì)產(chǎn)生Fault錯(cuò)誤

SAU寄存器的總結(jié)

SAU開(kāi)啟之后:

  • 沒(méi)有在 SAU region 范圍內(nèi)的,都視為安全內(nèi)存
  • SAU_RLAR.NSC=0 表示非安全內(nèi)存
  • SAU_RLAR.NSC=1 表示NSC內(nèi)存

5、Secure和Non-secure的狀態(tài)切換


總結(jié)

以上是生活随笔為你收集整理的armv8-M(cortex-m) Trustzone总结和介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。