車載操作系統(tǒng)信息安全技術(shù)介紹
目前主流的車載操作系統(tǒng)信息安全技術(shù)是基于ARM Trust Zone的TEE技術(shù)。ARM Trust Zone是基于硬件的安全功能,通過對硬件架構(gòu)進(jìn)行修改,在處理器層次引入了兩個(gè)不同權(quán)限的保護(hù)域——安全域和普通域,任何時(shí)刻處理器僅在其中的一個(gè)環(huán)境內(nèi)運(yùn)行。同時(shí)這兩個(gè)域完全是硬件隔離的,具有不同的權(quán)限,普通域中運(yùn)行的應(yīng)用程序或操作系統(tǒng)訪問安全域資源受到嚴(yán)格的限制,反過來安全域中運(yùn)行的程序可以正常訪問普通域中的資源。兩種域之間的硬件隔離和不同權(quán)限等屬性為代碼和數(shù)據(jù)提供了有效安全機(jī)制,普通域用于運(yùn)行操作系統(tǒng),提供了正常執(zhí)行環(huán)境(Rich Execution Environment,REE);安全域則使用安全小內(nèi)核(TEE-kernel)提供可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE),機(jī)密數(shù)據(jù)可以在TEE中被存儲(chǔ)和訪問。即使普通域中操作系統(tǒng)被破壞入侵或ROOT,攻擊者也無法讀取或篡改TEE,保護(hù)關(guān)鍵業(yè)務(wù)與數(shù)據(jù)。TEE支持設(shè)備安全啟動(dòng)、安全升級保護(hù)、敏感信息保護(hù)、安全管理等,對關(guān)鍵業(yè)務(wù)實(shí)時(shí)保護(hù),TEE不需要額外的硬件支持,可由軟件控制自主切換。
(1)信息通訊的安全防護(hù)
系統(tǒng)可使用非對稱加密技術(shù)、鑒權(quán)技術(shù)、證書管理和認(rèn)證技術(shù)、安全協(xié)議技術(shù)、防火墻技術(shù)、VPN等技術(shù),對系統(tǒng)通信進(jìn)行信息安全防車載操作系統(tǒng)總體技術(shù)要求研究報(bào)告護(hù)。
(2)系統(tǒng)服務(wù)層的信息安全防護(hù)
系統(tǒng)可使用訪問控制、惡意行為檢測、加密存儲(chǔ)等技術(shù),對系統(tǒng)服務(wù)層進(jìn)行信息安全防護(hù)。其中訪問控制機(jī)制,依據(jù)安全策略控制用戶、進(jìn)程等主體對文件、數(shù)據(jù)庫等客體進(jìn)行訪問。禁止不必要的服務(wù)(如FTP服務(wù)等),禁止非授權(quán)的遠(yuǎn)程接入服務(wù),禁止ROOT用戶直接登錄,且限制用戶提權(quán)操作,刪除或禁用無用賬號。
(3)系統(tǒng)應(yīng)用的信息安全防護(hù)
系統(tǒng)應(yīng)用可通過混淆、加殼防護(hù)、防反編譯、安全應(yīng)用管理器等技術(shù)進(jìn)行信息安全防護(hù)。
(4)密碼加密安全
常見密碼算法類型包括對稱加密算法、非對稱加密算法、雜湊算法。
?對稱加密算法:數(shù)據(jù)加密標(biāo)準(zhǔn)DES、高級數(shù)據(jù)加密標(biāo)準(zhǔn)AES、國際數(shù)據(jù)加密算法IDEA、分組密碼算法SM4。
?非對稱加密算法:RSA、橢圓曲線密碼算法ECC、數(shù)字簽名算法DSA、橢圓曲線公鑰密碼算法SM2。
?雜湊算法:MD5(不安全)、SHA1(160比特、不安全)、SM3、SHA256,用于保障數(shù)據(jù)完整性、數(shù)字簽名、MAC設(shè)計(jì)。
隨著國密算法的引入,國密安全模塊逐漸成為系統(tǒng)中的組成部分。國密安全服務(wù)通過固化在只讀存儲(chǔ)中的根證書和CA平臺進(jìn)行交互,當(dāng)系統(tǒng)收到外部請求,服務(wù)先將請求報(bào)文中的證書部分進(jìn)行校驗(yàn)比對,再通過證書附著的公鑰對請求內(nèi)容進(jìn)行驗(yàn)簽,以此確認(rèn)報(bào)文真實(shí)可靠,通過這種方式可以服務(wù)對外部進(jìn)入的軟件升級包、控制命令、推送消息等進(jìn)入的消息進(jìn)行驗(yàn)證,防止其被篡改。同時(shí),組合AES、3DES以及國密的SM2和SM4構(gòu)成的對稱、非對稱加密組合為通訊的私密性提供有效的保護(hù)。國密安全服務(wù)能夠?yàn)榭偩€通訊、網(wǎng)絡(luò)連接、數(shù)據(jù)存儲(chǔ)等其他模塊提供加密、驗(yàn)簽、簽名和密鑰存儲(chǔ)、證書管理等功能。
ARM Trust Zone
為提高系統(tǒng)的安全性,ARM早在ARMv6架構(gòu)中就引入了Trust Zone技術(shù),且在ARMv7和ARMv8中得到增強(qiáng),Trust Zone技術(shù)能提供芯片級別對硬件資源的保護(hù)和隔離,當(dāng)前在手機(jī)芯片領(lǐng)域已被廣泛應(yīng)用。
一個(gè)完整的片上系統(tǒng)(SoC)由ARM核、系統(tǒng)總線、片上RAM、片上ROM以及其他外圍設(shè)備組件構(gòu)成。只有支持Trust Zone技術(shù)的ARM核配合安全擴(kuò)展組件,才能為整個(gè)系統(tǒng)提供芯片硬件級別的保護(hù)和隔離。
SoC硬件框
支持Trust Zone技術(shù)的ARM核在運(yùn)行時(shí)將工作狀態(tài)劃分為兩種:安全狀態(tài)和非安全狀態(tài)。當(dāng)處理器核處于安全狀態(tài)時(shí)只能運(yùn)行TEE側(cè)的代碼,且具有REE側(cè)地址空間的訪問權(quán)限。當(dāng)處理器核處于非安全狀態(tài)時(shí)只能運(yùn)行REE側(cè)的代碼,且只能通過事先定義好的客戶端接口來獲取TEE側(cè)中特定的數(shù)據(jù)和調(diào)用特定的功能。
系統(tǒng)通過調(diào)用安全監(jiān)控模式調(diào)用(secure monitor call,smc)指令實(shí)現(xiàn)ARM核的安全狀態(tài)與非安全狀態(tài)之間的切換。而ARM核對系統(tǒng)資源的訪問請求是否合法,則由SoC上的安全組件通過判定ARM核發(fā)送到SoC系統(tǒng)總線上的訪問請求中的安全狀態(tài)讀寫信號位(Non-secure bit,NS bit)來決定。只有當(dāng)ARM核處于安全狀態(tài)(NS bit=0)時(shí)發(fā)送到系統(tǒng)總線上的讀寫操作才會(huì)被識別為安全讀寫操作,對應(yīng)TEE側(cè)的數(shù)據(jù)資源才能被訪問。反之,當(dāng)ARM核處于非安全狀態(tài)(NS bit=1)時(shí),ARM核發(fā)送到系統(tǒng)總線上的讀寫操作請求會(huì)被作為非安全讀寫操作,安全組件會(huì)根據(jù)對資源的訪問權(quán)限配置來決定是否響應(yīng)該訪問請求。這也是Trust Zone技術(shù)能實(shí)現(xiàn)對系統(tǒng)資源硬件級別的保護(hù)和隔離的根本原因。
在ARMv8架構(gòu)中使用執(zhí)行等級(Execution Level,EL)EL0~EL3來定義ARM核的運(yùn)行等級,其中EL0~EL2等級分為安全態(tài)和非安全態(tài)。ARMv8架構(gòu)與ARMv7架構(gòu)中ARM核運(yùn)行權(quán)限的對應(yīng)關(guān)系如圖所示。
ARMv7/v8運(yùn)行權(quán)限對比
一、ARM安全擴(kuò)展組件
Trust Zone技術(shù)之所以能提高系統(tǒng)的安全性,是因?yàn)閷ν獠抠Y源和內(nèi)存資源的硬件隔離。這些硬件隔離包括中斷隔離、片上RAM和ROM的隔離、片外RAM和ROM的隔離、外圍設(shè)備的硬件隔離、外部RAM和ROM的隔離等。實(shí)現(xiàn)硬件層面的各種隔離,需要對整個(gè)系統(tǒng)的硬件和處理器核做出相應(yīng)的擴(kuò)展。這些擴(kuò)展包括:
·對處理器核的虛擬化,也就是將AMR處理器的運(yùn)行狀態(tài)分為安全態(tài)和非安全態(tài)。
·對總線的擴(kuò)展,增加安全位讀寫信號線。
·對內(nèi)存管理單元(Memory Management Unit,MMU)的擴(kuò)展,增加頁表的安全位。
·對緩存(Cache)的擴(kuò)展,增加安全位。
·對其他外圍組件進(jìn)行了相應(yīng)的擴(kuò)展,提供安全操作權(quán)限控制和安全操作信號。
二、AXI總線上安全狀態(tài)位的擴(kuò)展
為了支持Trust Zone技術(shù),控制處理器在不同狀態(tài)下對硬件資源訪問的權(quán)限,ARM對先進(jìn)可擴(kuò)展接口(Advanced eXtensible Interface,AXI)系統(tǒng)總線進(jìn)行了擴(kuò)展。在原有AXI總線基礎(chǔ)上對每一個(gè)讀寫信道增加了一個(gè)額外的控制信號位,用來表示當(dāng)前的讀寫操作是安全操作還是非安全操作,該信號位稱為安全狀態(tài)位(NS bit)或者非安全狀態(tài)位(Non-Secure bit)。
·AWPROT[1]:總線寫事務(wù)——低位表示安全寫事務(wù)操作,高位表示非安全寫事務(wù)操作。
·ARPROT[1]:總線讀事務(wù)——低位表示安全讀事務(wù)操作,高位表示非安全讀事務(wù)操作。
當(dāng)主設(shè)備通過總線發(fā)起讀寫操作時(shí),從設(shè)備或者外圍資源同時(shí)也需要將對應(yīng)的PROT控制信號發(fā)送到總線上。總線或者從設(shè)備的解碼邏輯必須能夠解析該P(yáng)ROT控制信號,以便保證安全設(shè)備在非安全態(tài)下不被非法訪問。所有的非安全主設(shè)備必須將安全狀態(tài)位置成高位,這樣就能夠保證非安全主設(shè)備無法訪問到安全從設(shè)備。如果一個(gè)非安全主設(shè)備試圖訪問一個(gè)安全從設(shè)備,將會(huì)在總線或者從設(shè)備上觸發(fā)一個(gè)錯(cuò)誤操作,至于該錯(cuò)誤如何處理就依賴于從設(shè)備的處理邏輯和總線的配置。通常這種非法操作最終將產(chǎn)生一個(gè)SLVERR(slave error)或者DECERR(decode error)。
三、AXI-to-APB橋的作用
Trust Zone同樣能夠保護(hù)外圍設(shè)備的安全,例如中斷控制、時(shí)鐘、I/O設(shè)備,因此Trust-Zone架構(gòu)還能用來解決更加廣泛的安全問題。比如一個(gè)安全中斷控制器和安全時(shí)鐘允許一個(gè)非中斷的安全任務(wù)來監(jiān)控系統(tǒng),能夠?yàn)镈RM提供可靠的時(shí)鐘,能夠?yàn)橛脩籼峁┮粋€(gè)安全的輸入設(shè)備從而保證用戶密碼數(shù)據(jù)不會(huì)被惡意軟件竊取。
AMBA3規(guī)范包含了一個(gè)低門數(shù)、低帶寬的外設(shè)總線,被稱作外設(shè)總線(Advanced Peripheral Bus,APB),APB通過AXI-to-APB橋連接到系統(tǒng)總線上。而APB總線并不具有安全狀態(tài)位,為實(shí)現(xiàn)APB外設(shè)與Trust Zone技術(shù)相兼容,APB-to-AXI橋?qū)⒇?fù)責(zé)管理APB總線上設(shè)備的安全。APB-to-AXI橋會(huì)拒絕不匹配的安全事務(wù)設(shè)置,并且不會(huì)將該事務(wù)請求發(fā)送給外設(shè)。
四、Trust Zone地址空間控制組件
Trust Zone地址空間控制組件(Trust Zone Address Space Controller,TZASC)是AXI總線上的一個(gè)主設(shè)備,TZASC能夠?qū)脑O(shè)備全部的地址空間分割成一系列的不同地址范圍。在安全狀態(tài)下,通過編程TZASC能夠?qū)⑦@一系列分割后的地址區(qū)域設(shè)定成安全空間或者是非安全空間。被配置成安全屬性的區(qū)域?qū)?huì)拒絕非安全的訪問請求。
使用TZASC主要是將一個(gè)AXI從設(shè)備分割成幾個(gè)安全設(shè)備,例如off-Soc、DRAM等。ARM的動(dòng)態(tài)內(nèi)存控制器(Dynamic Memory Controller,DMC)并不支持安全和非安全分區(qū)的功能。如果將DMC接到TZASC上,就能實(shí)現(xiàn)DRAM支持安全區(qū)域和非安全區(qū)域訪問的功能。需要注意的是,TZASC組件只支持存儲(chǔ)映射設(shè)備對安全和非安全區(qū)域的劃分與擴(kuò)展,但不支持對塊設(shè)備(如EMMC、NAND flash等)的安全和非安全區(qū)域的劃分與擴(kuò)展。
TZASC組件示意
五、Trust Zone內(nèi)存適配器組件
Trust Zone內(nèi)存適配器組件(Trust Zone Memory Adapter,TZMA)允許對片上靜態(tài)內(nèi)存(on-SoC Static Memory)或者片上ROM進(jìn)行安全區(qū)域和非安全區(qū)域的劃分。TZMA支持最大2MB空間的片上靜態(tài)RAM的劃分,可以將2MB空間劃分成兩個(gè)部分,高地址部分為非安全區(qū)域,低地址部分為安全區(qū)域,兩個(gè)區(qū)域必須按照4KB進(jìn)行對齊。分區(qū)的具體大小通過TZMA的輸入信號R0SIZE來控制,該信號來自TZPC的輸出信號TZPCR0SIZE。即通過編程TZPC可以動(dòng)態(tài)地配置片上靜態(tài)RAM或者ROM的大小。
使用TZMA組件的鏈接示意
六、Trust Zone保護(hù)控制器組件
Trust Zone保護(hù)控制器組件(Trust Zone Protection Controller,TZPC)是用來設(shè)定TZPCDECPORT信號和TZPCR0SIZE等相關(guān)控制信號的。這些信號用來告知APB-to-AXI對應(yīng)的外設(shè)是安全設(shè)備還是非安全設(shè)備,而TZPCR0SIZE信號用來控制TZMA對片上RAM或片上ROM安全區(qū)域大小的劃分。TZPC包含三組通用寄存器TZPCDECPROT[2:0],每組通用寄存器可以產(chǎn)生8種TZPCDECPROT信號,也就是TZPC最多可以將24個(gè)外設(shè)設(shè)定成安全外設(shè)。TZPC組件還包含一個(gè)TZPCROSIZE寄存器,該寄存器用來為TZMA提供分區(qū)大小信息。
TZPC組件接口示意
當(dāng)上電初始化時(shí),TZPC的TZPCDECROT寄存器中的位會(huì)被清零,同時(shí)TZPCR0SIZE寄存器會(huì)被設(shè)置成0x200,表示接入到TZMA上的片上RAM或者ROM的安全區(qū)域大小為2MB。通過修改TZPC的寄存器配置的值可實(shí)現(xiàn)用戶對資源的特定配置。
TZPC使用示例
七、Trust Zone中斷控制器組件
在支持Trust Zone的SoC上,ARM添加了Trust Zone中斷控制器(Trust Zone Interrupt Controller,TZIC)。TZIC的作用是讓處理器處于非安全態(tài)時(shí)無法捕獲到安全中斷。TZIC是第一級中斷控制器,所有的中斷源都需要接到TZIC上。TZIC根據(jù)配置來判定產(chǎn)生的中斷類型,然后決定是將該中斷信號先發(fā)送到非安全的向量中斷控制器(Vector Interrupt Controller,VIC)后以nIRQ信號發(fā)送到處理器,還是以nTZICFIQ信號直接發(fā)送到處理器。
TZIC在SoC中的使用示意
通過對TZIC的相關(guān)寄存器進(jìn)行編程,可對TZIC進(jìn)行配置并設(shè)定每個(gè)接入到TZIC的中斷源的中斷類型。TZIC具有眾多寄存器,細(xì)節(jié)說明可以參考相關(guān)ARM的文檔。在TZIC中用來設(shè)置中斷源類型的寄存器為TZICIntSelect,如果TZICIntSelect中的某一位被設(shè)置成1,則該相應(yīng)的中斷源請求會(huì)被設(shè)置成快速中斷請求(Fast Interrupt Request,F(xiàn)IQ)。如果某一位被設(shè)置成0,則該中斷源的中斷請求會(huì)被交給VIC進(jìn)行處理。如果VIC的IntSelect將獲取到的中斷源設(shè)置成FIQ,那么該中斷源會(huì)被再次反饋給TZIC進(jìn)行處理。
八、Cache和MMU的擴(kuò)展
在支持Trust Zone的SoC上,會(huì)對MMU進(jìn)行虛擬化,使得寄存器TTBR0、TTBR1、TTBCR在安全狀態(tài)和非安全狀態(tài)下是相互隔離的,因此兩種狀態(tài)下的虛擬地址轉(zhuǎn)換表是獨(dú)立的。
存放在MMU中的每一條頁表描述符都會(huì)包含一個(gè)安全狀態(tài)位,用以表示被映射的內(nèi)存是屬于安全內(nèi)存還是非安全內(nèi)存。虛擬化的MMU共享轉(zhuǎn)換監(jiān)測緩沖區(qū)(Translation Lookaside Buffer,TLB),同樣TLB中的每一項(xiàng)也會(huì)打上安全狀態(tài)位標(biāo)記,只不過該標(biāo)記是用來表示該條轉(zhuǎn)換是正常世界狀態(tài)轉(zhuǎn)化的還是安全世界狀態(tài)轉(zhuǎn)化的。
Cache也同樣進(jìn)行了擴(kuò)展,Cache中的每一項(xiàng)都會(huì)按照安全狀態(tài)和非安全狀態(tài)打上對應(yīng)的標(biāo)簽,在不同的狀態(tài)下,處理器只能使用對應(yīng)狀態(tài)下的Cache。
九、Trust Zone技術(shù)對資源隔離的實(shí)現(xiàn)
ARM處理器核的虛擬化和資源隔離是Trust Zone實(shí)現(xiàn)安全需求的根本。支持Trust Zone的處理器核具有虛擬化,也即將一個(gè)物理核分成安全狀態(tài)和非安全狀態(tài)。當(dāng)處理器處于非安全狀態(tài)時(shí),只能訪問屬于非安全的外設(shè)和內(nèi)存,而不能訪問安全的資源;當(dāng)處理器處于安全態(tài)時(shí),處理器既可以訪問安全資源,也可以訪問非安全的資源,只有當(dāng)處理器核為安全世界狀態(tài)時(shí)才可能發(fā)出PROT的安全訪問信號。
十、中斷源的隔離
在原來的ARM芯片中,使用VIC來對外部中斷源進(jìn)行控制和管理,支持Trust Zone后,ARM提出了TZIC組件,在芯片設(shè)計(jì)時(shí),該組件作為一級中斷源控制器,控制所有的外部中斷源,通過編程TZIC組件的相關(guān)寄存器來設(shè)定哪個(gè)中斷源為安全中斷源FIQ,而未被設(shè)定的中斷源將會(huì)被傳遞給VIC進(jìn)行處理。一般情況下VIC會(huì)將接收到的中斷源設(shè)定成普通中斷請求(Interrupt Request,IRQ),如果在VIC中將接收到的中斷源設(shè)定成FIQ,則該中斷源會(huì)被反饋給TZIC組件,TZIC組件會(huì)將安全中斷源送到安全世界狀態(tài)中進(jìn)行處理。
十一、片上RAM和片上ROM的隔離
芯片內(nèi)部存在小容量的RAM或者ROM,以供芯片上電時(shí)運(yùn)行芯片ROM或者存放芯片自身相關(guān)的數(shù)據(jù)。Trust Zone架構(gòu)對該部分也進(jìn)行了隔離操作。隔離操作通過使用TZMA和TZPC組件來實(shí)現(xiàn)。
TZMA用來將片上RAM或者ROM劃分成安全區(qū)域和非安全區(qū)域,安全區(qū)域的大小則由接入的TZPCR0SIZE信號來決定。而TZPCR0SIZE的值可以通過編程TZPC組件中的TZPCR0SIZE寄存器來實(shí)現(xiàn)。
當(dāng)處理器核訪問片上RAM或者ROM時(shí),TZMA會(huì)判定訪問請求的PROT信號是安全操作還是非安全操作,如果處理器發(fā)出的請求為非安全請求而該請求又嘗試去訪問安全區(qū)域時(shí),TZMA就會(huì)認(rèn)為該請求為非法請求。這樣就能實(shí)現(xiàn)片上RAM和ROM的隔離,達(dá)到非安全態(tài)的處理器核無法訪問片上安全區(qū)域的RAM和ROM。
十二、片外DRAM的隔離
一個(gè)完整的系統(tǒng)必然會(huì)有片外RAM,對片外RAM的隔離是通過TZASC組件實(shí)現(xiàn)的,ARM本身的DMC可以將DRAM分割成不同的區(qū)域,這些區(qū)域是沒有安全和非安全分類。將DMC與TZASC相連后再掛到總線上,通過對TZASC組件進(jìn)行編程可以將DRAM劃分成安全區(qū)域和非安全區(qū)域。當(dāng)主設(shè)備訪問DRAM時(shí),除需要提供物理地址之外,還會(huì)發(fā)送PROT信號。TZASC組件首先會(huì)判定主設(shè)備需要訪問的DARM地址是屬于安全區(qū)域還是非安全區(qū)域,然后再結(jié)合接收到的PROT信號來判定該次訪問是否有效。如果PROT信號為非安全訪問操作,且訪問的DRAM地址屬于安全區(qū)域,則TZASC就不會(huì)響應(yīng)這次訪問操作,這樣就能實(shí)現(xiàn)DRAM中安全區(qū)域和非安全區(qū)域的隔離。
十三、外圍設(shè)備的隔離
其他外圍設(shè)備都會(huì)掛載到APB總線上,然后通過AXI-to-APB橋連接到AXI總線上,AXI-to-APB結(jié)合TZPC組件的TZPCDECROT的值及訪問請求的PROT信號來判定該訪問是否有效。當(dāng)處理器需要訪問外圍設(shè)備時(shí),會(huì)將地址和PROT信號發(fā)送到AXI總線上。
AXI-to-APB橋會(huì)對接收到的請求進(jìn)行解析,獲取需要訪問的所需外圍設(shè)備,然后通過查詢TZPCDECROT的值來判斷外設(shè)的安全類型,再根據(jù)PROT信號就能判定該請求的安全類型。如果該請求是非安全請求,但需要訪問的外圍設(shè)備屬于安全設(shè)備,則AXI-to-APB會(huì)判定該訪問無效。通過對TZPC中的TZPCDECROT寄存器進(jìn)行編程能夠設(shè)置外設(shè)的安全類型,從而做到外設(shè)在硬件層面的隔離。
十四、ARM可信固件
ARM可信任固件(ARM Trusted Firmware,ATF)是由ARM官方提供的底層固件,該固件統(tǒng)一了ARM底層接口標(biāo)準(zhǔn),如電源狀態(tài)控制接口(Power Status Control Interface,PSCI)、安全啟動(dòng)需求(Trusted Board Boot Requirements,TBBR)、安全世界狀態(tài)(SWS)與正常世界狀態(tài)(NWS)切換的安全監(jiān)控模式調(diào)用(secure monitor call,smc)操作等。ATF旨在將ARM底層的操作統(tǒng)一使代碼能夠重用和便于移植。
ATF的源代碼共分為bl1、bl2、bl31、bl32、bl33部分,其中bl1、bl2、bl31部分屬于固定的固件,bl32和bl33分別用于加載TEEOS和REE側(cè)的鏡像。整個(gè)加載過程可配置成安全啟動(dòng)的方式,每一個(gè)鏡像文件在被加載之前都會(huì)驗(yàn)證鏡像文件的電子簽名是否合法。
ATF主要完成的功能如下:
·初始化安全世界狀態(tài)運(yùn)行環(huán)境、異常向量、控制寄存器、中斷控制器、配置平臺的中斷。
·初始化ARM通用中斷控制器(General Interrupt Controller,GIC)2.0版本和3.0版本的驅(qū)動(dòng)初始化。
·執(zhí)行ARM系統(tǒng)IP的標(biāo)準(zhǔn)初始化操作以及安全擴(kuò)展組件的基本配置。
·安全監(jiān)控模式調(diào)用(Secure Monitor Call,smc)請求的邏輯處理代碼(Monitor模式/EL3)。
·實(shí)現(xiàn)可信板級引導(dǎo)功能,對引導(dǎo)過程中加載的鏡像文件進(jìn)行電子簽名檢查。
·支持自有固件的引導(dǎo),開發(fā)者可根據(jù)具體需求將自有固件添加到ATF的引導(dǎo)流程中。
十五、ATF與TEE的關(guān)系
為規(guī)范和簡化Trust Zone OS的集成,在ARMv8架構(gòu)中,ARM引入ATF作為底層固件并開放了源碼,用于完成系統(tǒng)中BootLoader、Linux內(nèi)核、TEEOS的加載和啟動(dòng)以及正常世界狀態(tài)和安全世界狀態(tài)的切換。
ATF將整個(gè)啟動(dòng)過程劃分成不同的啟動(dòng)階段,由BLx來表示。例如,TEEOS的加載是由ATF中的bl32來完成的,安全世界狀態(tài)和正常世界狀態(tài)之間的切換是由bl31來完成的。在加載完TEEOS之后,TEEOS需要返回一個(gè)處理函數(shù)的接口結(jié)構(gòu)體變量給bl31。當(dāng)在REE側(cè)觸發(fā)安全監(jiān)控模式調(diào)用指令時(shí),bl31通過查詢該結(jié)構(gòu)體變量就可知需要將安全監(jiān)控模式調(diào)用指令請求發(fā)送給TEE中的那個(gè)接口并完成正常世界狀態(tài)到安全世界狀態(tài)的切換。
ARMv8架構(gòu)之后ARM提供了ATF,BootLoader、TEE鏡像文件、Linux內(nèi)核鏡像文件、recovery鏡像文件都是由ATF來進(jìn)行引導(dǎo)和加載而不是由ChipRom來完成的。ChipRom只會(huì)去驗(yàn)證ATF中bl1的合法性,后續(xù)引導(dǎo)過程同樣也是按照鏈?zhǔn)津?yàn)簽的方式進(jìn)行,符合TBBR規(guī)范。在ARMv8架構(gòu)中整個(gè)安全引導(dǎo)的流程如圖所示。
ARMv8的Secure Boot流程
在ARMv8架構(gòu)中,如果系統(tǒng)需要支持TEE,則幾乎都必須使用由ARM提供的ATF作為底層固件。
十六、ARM V9 CCA機(jī)密計(jì)算
Arm CCA建立在Armv8-A中已經(jīng)廣泛使用的隔離技術(shù)之上。Arm CCA提供額外的安全架構(gòu),即使在使用中也能保護(hù)數(shù)據(jù)和代碼,并能夠更好地控制誰可以訪問數(shù)據(jù)和算法。這項(xiàng)在Armv9-A中引入的技術(shù)將通過降低與共享數(shù)據(jù)相關(guān)的風(fēng)險(xiǎn)并幫助開發(fā)人員實(shí)施強(qiáng)大的隱私控制來幫助釋放數(shù)據(jù)的真正力量和潛力。
Arm CCA引入了兩項(xiàng)新功能:支持Realms和動(dòng)態(tài)Trust Zone。
1、機(jī)密計(jì)算Realms
Arm機(jī)密計(jì)算架構(gòu)引入了Realm Management Extension(RME),該擴(kuò)展支持稱為Realm的新型可證明隔離環(huán)境。該環(huán)境建立在Trust Zone Normal和Secure世界上,增加兩個(gè)額外的世界,每個(gè)世界都有自己的安全狀態(tài)和專用的物理地址空間。RME還允許在運(yùn)行時(shí)在世界之間移動(dòng)內(nèi)存,而新硬件會(huì)檢查每個(gè)內(nèi)存訪問,阻止那些世界之間的隔離邊界不允許的訪問。
RME保護(hù)主流計(jì)算工作負(fù)載,例如虛擬機(jī)或容器免受特權(quán)軟件和硬件代理的影響,包括hypervisor程序、普通世界內(nèi)核甚至Trust Zone應(yīng)用程序。
非常適合保護(hù)在公共云環(huán)境和主機(jī)操作系統(tǒng)的安全性和完整性難以審核或保證的任何平臺中運(yùn)行的工作負(fù)載。
數(shù)據(jù)和代碼不受任何平臺服務(wù)和其他執(zhí)行環(huán)境的影響:
?管理軟件,包括創(chuàng)建Realm的任何管理程序或內(nèi)核
?The host OS
?Other Realms
?Devices not trusted by the Realm
?Realm受到Trust Zone代碼的保護(hù)
Realms、Normal和Secure世界之間的關(guān)系
2、動(dòng)態(tài)Trust zone技術(shù)
除了支持Realm之外,Realm Management Extension還允許在Normal和Secure世界之間按需移動(dòng)內(nèi)存。這允許Trust Zone使用的內(nèi)存量根據(jù)給定用例動(dòng)態(tài)擴(kuò)展。稱之為Arm動(dòng)態(tài)Trust Zone技術(shù)。
Trust Zone動(dòng)態(tài)內(nèi)存更有效地利用寶貴的DRAM提高了使用Trust Zone進(jìn)行內(nèi)存密集型操作的靈活性例如媒體解碼、內(nèi)容保護(hù)和機(jī)器學(xué)習(xí)模型的保護(hù)。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229652 -
ARM
+關(guān)注
關(guān)注
134文章
9084瀏覽量
367387 -
trustzone
+關(guān)注
關(guān)注
0文章
20瀏覽量
12535 -
車載操作系統(tǒng)
+關(guān)注
關(guān)注
0文章
12瀏覽量
7303
原文標(biāo)題:ARM Trust Zone技術(shù):硬件級的安全保護(hù)
文章出處:【微信號:談思實(shí)驗(yàn)室,微信公眾號:談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論