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