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