TrustZone是什么
基本的安全方式有加密和完整性保護等,加密通過密碼口令或是秘鑰方式,鑒權用來檢查資源是否可用,如果資源遭遇破壞則會導致鑒權失敗。由于存在多種攻擊方式,軟件方式包括軟件病毒、惡意軟件等,而硬件方式可以通過JTAG引腳、I/O引腳檢測、電流電壓檢測、顯微鏡查看電路等進行攻擊,所以需要從硬件軟件層面設計有效系統(tǒng)來對抗攻擊。TrustZone是ARM為了防止設備有效資源被拷貝、破壞或篡改,防止被惡意攻擊,對資產(chǎn)包括有形和無形資產(chǎn)進行,以防止惡意軟件、硬件監(jiān)視、硬件干預等方式破壞或獲取設備信息。Trustzone從處理器、總線、外設等系統(tǒng)層面進行保護,同時考慮減少額外的資源開銷。注意時間、開銷允許的情況下,不可能阻止所有可能的攻擊,只是在一定的時間和資源(錢)的限制內(nèi),能夠保證不會受到相應的攻擊。
TrustZone 將軟件硬件部分分為安全世界和正常世界,正常世界器件不可訪問安全世界區(qū)域器件、存儲空間等。TrustZone可以作為實現(xiàn)TPM功能的HSM (hardware Secure module) 模塊來使用。對于外設的權限控制TrustZone通過AXI-APB橋來實現(xiàn),以此兼容外設需求。
ARMv8的特征
ARMv8中包含了trustZone功能,同時提供了SHA、AES等一些加密加速器處理(? 沒有注意到TRNG 真隨機數(shù)處理的相關模塊)。另外相對于v7,v8中還提供了64位數(shù)據(jù)的指令處理,同時增加了SIMD ( Single Instruction Multi Data) 的指令處理。所以在v8中有AArch64和AArch32的處理模式,在AArch64模式下支持128比特的SIMD,在AArch32模式下支持64比特的SIMD處理模式,同時v8有三種配置模式,A Application配置,指示虛擬地址系統(tǒng)VMSA(Virtual Memory System Architecture)及MMU,支持A64、A32、T32指令集;R Real-time配置,支持MPU,支持PMSA(Protected Memory System Architecture),支持A32和T32指令集;M 微控制配置。支持PMSA,低延時中斷處理,支持T32變種指令集。三種模式對能力和功耗做了權衡,可適應不同的使用場景。v8 AArch64重新定義了四種等級EL0-EL3模式,其中EL0為最低模式,EL0 用戶應用模式;EL1 系統(tǒng)相關功能特權模式;EL2 為Hypervisor 虛擬功能模式;EL3 Monitor用于切換Secure和Non-Secure兩種模式。對應32模式增加了Hypervisor和 Monitor 兩種模式分隊對應EL2和EL3模式,用戶模式為EL0,其他FIQ、IRQ、system等模式對應EL1。為了實現(xiàn)Secure world和Non-Secure world的分離,增加了NS比特位的處理,例如CP15 SCR( Secure Configuration Register ) NS的配置。
TrustZone的結構
整體結構: 兩個虛擬world使用同一個物理處理器實現(xiàn),亦即一個實體核有兩虛擬核模式,非安全核只能訪問非可信系統(tǒng)資源,而安全核可以訪問所有資源。兩種模式不可共存,時分復用,通過Monitor mode(軟件實現(xiàn)兩種模式的信息切換)切換。進入monitor通過軟件指令Secure Monitor Call (SMC) instructio或硬件機制( FRQ、FIQ、external Data Abort and Prefetch Abort ) 。
軟件調(diào)度實現(xiàn)
在實現(xiàn)兩個不同安全模式切換時,采用Monitor進行兩個世界的上下文切換,而對于兩個模式的配合可以使用多種不同的方式。安全世界可以擁有自己的操作系統(tǒng),獨立于非安全世界;同樣安全功能也可以作為正常模式調(diào)用的子模式,或是采用兩種極端模式的折中方式。
安全啟動與可信鏈
常見到secure boot、trusted boot、meased boot等,方式有些類似,都是采用簽名加密等方式來保證啟動及軟件的完整和安全性,當然處理方式細節(jié)及概念細節(jié)上也存在些許差別,例如關于安全啟動和可信引導 secure boot、trusted boot,前者保證boot程序正確,后者引導的程序未被修改,采用數(shù)字簽名技術。可信根 ( 需要NVRAM或OTP One-Time-Progrm方式存儲 ) 需要從硬件初始化開始保證每個模塊代碼的載入都是可靠可信的,可信鏈即表達了按照鏈式方式保證每個步驟都是可靠的。
TrustZone典型啟動過程
硬件安全的一些理解
通過頻率、電源供電等檢測、電路、時鐘、時序、端口等硬件方式可以得到硬件的具體執(zhí)行內(nèi)容,例如正常乘法和加法消耗時間可能就不相同。為了避免這些硬件攻擊方式,硬件可以在物理特性上保證消除不同處理的特征差異,如統(tǒng)一執(zhí)行周期,加入指令噪聲,插入特殊或空指令等;而防止ROM / FLASH等內(nèi)容被讀出進行反匯編,則可以采用加密接口的ROM、FLASH等;防止總線數(shù)據(jù)被讀取,可以進行極性反轉(zhuǎn)等操作;同樣檢測數(shù)據(jù)是否被修改,可以進行奇偶校驗等處理。當然這些處理將帶來更多的資源,更多的功耗,所以需要必要的進行權衡取舍,簡化無效處理。
-
加速器
+關注
關注
2文章
807瀏覽量
38091 -
trustzone
+關注
關注
0文章
20瀏覽量
12565 -
ARMv8
+關注
關注
1文章
35瀏覽量
14195
原文標題:TrustZone、ARMv8及硬件安全處理的一些基礎知識理解
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
embOS如何支持Arm TrustZone
![embOS如何支持Arm <b class='flag-5'>TrustZone</b>](https://file1.elecfans.com/web2/M00/A5/A9/wKgaomUNFW2AAyViAAA6t9h4ies359.png)
TrustZone結構化消息是什么?
介紹Cortex-A和Cortex-M的TrustZone之間的差異
了解體系結構-適用于AArch64的TrustZone介紹
STM32 MCU TrustZone開發(fā)調(diào)試技巧分享
ARM TrustZone技術對Zynq SoC的作用
![ARM <b class='flag-5'>TrustZone</b>技術對Zynq SoC的作用](https://file.elecfans.com/web1/M00/98/FC/o4YBAF0VQuuACKsvAADp8aAZP40955.jpg)
RA6快速設計指南 [8] 使用TrustZone?
![RA6快速設計指南 [8] 使用<b class='flag-5'>TrustZone</b>?](https://file1.elecfans.com/web2/M00/8C/52/wKgZomSqLKiALgWMAAADbu4X9Ec624.gif)
Arm? TrustZone? 技術簡介
![Arm? <b class='flag-5'>TrustZone</b>? 技術簡介](https://file1.elecfans.com/web2/M00/8C/14/wKgaomSlQIKACGndAAAsmQnvcDI759.png)
STM32 MCU TrustZone開發(fā)調(diào)試技巧分享
![STM32 MCU <b class='flag-5'>TrustZone</b>開發(fā)調(diào)試技巧分享](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32L5中如何關閉TrustZone
![STM32L5中如何關閉<b class='flag-5'>TrustZone</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32 TrustZone 開發(fā)調(diào)試技巧
![STM32 <b class='flag-5'>TrustZone</b> 開發(fā)調(diào)試技巧](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32H5 DA 之初體驗(帶 TrustZone)
![STM32H5 DA 之初體驗(帶 <b class='flag-5'>TrustZone</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論