国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式系統(tǒng)安全防護方案比較與應(yīng)用案例分析*

2022-12-22 11:32陳祥國宋君強
計算機工程與科學 2022年3期
關(guān)鍵詞:嵌入式處理器世界

陳祥國,尚 凡,宋君強

(國防科技大學氣象海洋學院,湖南 長沙 410073)

1 引言

如果說上一個十年第二代互聯(lián)網(wǎng)技術(shù)解決了人類全天候的移動互聯(lián)問題,那么,下一個十年以5G技術(shù)為首的第三代互聯(lián)網(wǎng)技術(shù)將大概率解決以人為核心的萬物互聯(lián)問題。據(jù)保守估計,至2030年,將有包含汽車、手表和臺燈等在內(nèi)的5 000億個物聯(lián)網(wǎng)IoT(Internet of Things)節(jié)點直接連接互聯(lián)網(wǎng),可期市場規(guī)模將超4萬億美元[1]。嵌入式計算機設(shè)備將分布于智能家居、智能穿戴服飾、無人駕駛汽車、工業(yè)生產(chǎn)線和植入式醫(yī)療設(shè)備等領(lǐng)域[2-4]。

截至目前,IoT領(lǐng)域仍有大量亟需解決的關(guān)鍵核心問題,包含多接入點大帶寬的互聯(lián)網(wǎng)接入技術(shù)、高能效比嵌入式計算芯片技術(shù)、規(guī)范完備的IoT協(xié)議棧、高可靠嵌入式操作系統(tǒng)和低功耗小尺寸傳感器技術(shù)等。與此同時,存在巨大硬件差異的百億級別嵌入式計算設(shè)備安全問題已然成為當前計算機系統(tǒng)研究、設(shè)計的熱點話題[5]。經(jīng)梳理總結(jié),本文給出如下幾種主要的嵌入式設(shè)備安全問題及挑戰(zhàn):(1)IoT節(jié)點數(shù)量幾乎無限制增多導致的網(wǎng)絡(luò)安全危機,如傳統(tǒng)的分布式拒絕服務(wù)攻擊已經(jīng)可以借助大量的IoT節(jié)點實現(xiàn)前所未有的攻擊規(guī)模[6];(2)嵌入式設(shè)備內(nèi)置數(shù)據(jù)存在泄露風險,如存放至IoT節(jié)點中的用戶指紋、面部特征等敏感信息;(3)嵌入式系統(tǒng)控制權(quán)限暴露引發(fā)被控制對象的安全風險,如心臟起搏器被攻擊后,可獲取起搏器電脈沖信號控制權(quán)限[7];(4)逆向工程嵌入式系統(tǒng)網(wǎng)絡(luò)協(xié)議,使用其他設(shè)備模擬IoT節(jié)點,非法上傳數(shù)據(jù)致使收集錯誤數(shù)據(jù);(5)逆向工程嵌入式系統(tǒng)產(chǎn)品導致軟件知識產(chǎn)權(quán)泄露等風險。

面向物聯(lián)網(wǎng)時代,以IoT智能節(jié)點為代表的嵌入式系統(tǒng)安全防護問題已經(jīng)成為當前亟需考慮并嘗試解決的系統(tǒng)性難題。然而,由于嵌入式系統(tǒng)應(yīng)用場景不同,其硬件體系結(jié)構(gòu)品類繁多、硬件資源相對稀少、印制板面積及能源供給相對緊張,很難找到通用的安全防護方法。本文對現(xiàn)有嵌入式系統(tǒng)安全防護技術(shù)進行總結(jié)梳理與方案比較,并重點介紹TrustZone安全防護技術(shù)的實現(xiàn)原理及應(yīng)用案例。

2 嵌入式系統(tǒng)相關(guān)安全防護技術(shù)

以應(yīng)用為中心,硬件/軟件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗嚴格要求的專用微型計算機系統(tǒng)均可稱為嵌入式計算機系統(tǒng)[8]。按照其服務(wù)對象以及功能的不同,可粗略分為2大類:(1)智能終端設(shè)備;(2)微控制設(shè)備。

智能終端設(shè)備與人直接完成交互操作,強調(diào)系統(tǒng)圖形、圖像處理能力與功能可擴展特性。智能手機是這類嵌入式系統(tǒng)的主要代表。微控制設(shè)備一般指安裝、嵌入至待測或待控制系統(tǒng)內(nèi)部,完成原始信息采集、處理和控制的微型計算機系統(tǒng),其一般需要滿足響應(yīng)延遲小、響應(yīng)行為可控、功耗低、可靠性高和硬件尺寸小等特點,如植入式醫(yī)療設(shè)備、智能門鎖和GPS接收機模塊等均可視為微控制設(shè)備。2類嵌入式系統(tǒng)應(yīng)用場景不同,可采取的安全防護手段也有一定差異。

2.1 嵌入式系統(tǒng)安全防護技術(shù)難點

相較于通用計算機系統(tǒng),嵌入式系統(tǒng)安全防護需要面臨諸多技術(shù)難點,簡要總結(jié)如下:(1)設(shè)備單價低廉、總量極大且所處位置分散不易集中統(tǒng)一管理,面臨物理攻擊的風險極高;(2)嵌入式系統(tǒng)硬件尺寸受安裝使用位置限制,可選取的物理級別安全防護方法較少;(3)能源供給能力不足,對嵌入式芯片功耗有嚴格限制,芯片處理能力遠低于通用計算機的芯片處理能力;(4)應(yīng)用場景迥異、硬件結(jié)構(gòu)差異顯著,無法提供通用的安全防護方案;(5)嵌入式節(jié)點產(chǎn)品數(shù)特別是IoT節(jié)點數(shù)量龐大,對于硬件成本具有較高的敏感性。

同時,智能終端設(shè)備與微控制設(shè)備的防護技術(shù)需求和技術(shù)難點也有所不同。智能終端設(shè)備一般使用較高性能嵌入式處理器(如ARM Cortex-A處理器),對音視頻處理能力有較高要求,內(nèi)置數(shù)據(jù)存儲空間大,對系統(tǒng)實時性要求較低。其采用的安全防護技術(shù)應(yīng)盡可能側(cè)重考慮敏感數(shù)據(jù)訪問、支付安全及數(shù)字信息版權(quán)管理等方面。微控制設(shè)備對系統(tǒng)響應(yīng)速度、實時性有較高要求,數(shù)據(jù)存儲空間有限,處理器性能較低(主頻約8~400 MHz,如ARM Cortex-M微控制器)、內(nèi)存空間較小(1 KB~2 MB)。其可采取的安全防護技術(shù)應(yīng)能夠在較小性能損失情況下,側(cè)重于提供輸入輸出接口(或其他硬件資源)控制權(quán)限管理、遠程或硬件身份認證、安全網(wǎng)絡(luò)通信、小規(guī)模敏感數(shù)據(jù)保護等功能。

2.2 嵌入式安全防護技術(shù)梳理

目前,可用于嵌入式系統(tǒng)的安全防護策略可分為如下5類。圖1所示為基于軟件操作系統(tǒng)內(nèi)核的安全防護技術(shù),其主要應(yīng)用于早期智能手機的安全防護管理中。高性能應(yīng)用級嵌入式系統(tǒng)處理器設(shè)置多種處理器運行模式,如ARM Cortex-A處理器提供USER用戶(USR)、IRQ中斷和SYSTEM系統(tǒng)等9種工作模式[9]。不同工作模式下,運行不同類型的程序代碼。例如,在系統(tǒng)模式下運行操作系統(tǒng)內(nèi)核代碼、用戶模式下運行普通用戶級程序。用戶程序不能直接訪問敏感硬件資源(例如存儲在Flash存儲器中的敏感數(shù)據(jù))或敏感程序代碼(如數(shù)據(jù)加密程序),只可以通過操作系統(tǒng)提供的API函數(shù)間接、受限地使用敏感資源。在這類安全防護技術(shù)中,操作系統(tǒng)內(nèi)核被假定認為是安全可靠的。然而,隨著操作系統(tǒng)代碼復(fù)雜度不斷增高,操作系統(tǒng)內(nèi)核漏洞不斷被披露,系統(tǒng)被攻破的可能性也在不斷提高。應(yīng)用程序可利用系統(tǒng)漏洞完成越權(quán)攻擊[10],非法訪問敏感資源。

Figure 1 Security protection technology based on software operating system kernel

隨著嵌入式系統(tǒng)行業(yè)越來越重視安全防護,各半導體芯片供應(yīng)商提出了一些簡易安全防護技術(shù),熔絲位技術(shù)[11]是其中比較典型的一類。圖2為用于微控制芯片的熔絲位安全防護技術(shù)原理示意圖。微控制芯片內(nèi)CPU核可使用片內(nèi)總線訪問主存RAM及其他外設(shè),但訪問Flash存儲器需經(jīng)過熔絲位部件完成語義檢查。設(shè)置的熔絲位只允許讀、寫語義正確的Flash訪問通過。部分微控制采用一次可編程OTP(One Time Programmable)存儲器替代熔絲位,完成數(shù)據(jù)保護功能。熔絲位部件只允許單次設(shè)置,設(shè)置后無法修改。常見的熔絲位設(shè)置有:禁止修改、寫入Flash數(shù)據(jù);禁止調(diào)試端口讀取Flash數(shù)據(jù);禁止從RAM中引導CPU啟動等。該技術(shù)靈活性較低,一般僅用于小容量敏感數(shù)據(jù)保護、軟件知識產(chǎn)權(quán)保護等場景。

Figure 2 Fuse bit security protection technology

由于簡易防護技術(shù)靈活性、通用性較差,半導體供應(yīng)商提出了多種靈活度較強的可編程硬件級安全防護技術(shù)。圖3a為外部加密協(xié)處理器技術(shù),該技術(shù)在片上系統(tǒng)SoC(System on Chip)外部的印制板上增設(shè)用于安全防護的加密協(xié)處理器,協(xié)處理器與SoC之間使用板上總線連接。加密協(xié)處理可實現(xiàn)可編程數(shù)據(jù)加/解密算法程序、保存敏感數(shù)據(jù)等功能。該技術(shù)SoC與協(xié)處理器互聯(lián)總線暴露在芯片封裝外部,留下了硬件攻擊的隱患。如圖3b所示的技術(shù)將加密協(xié)處理器移至SoC內(nèi)部,作為安全IP模塊供處理器訪問。該技術(shù)克服了部分互聯(lián)總線安全及性能缺陷,但增加了SoC硅片面積與生產(chǎn)設(shè)計成本。圖3a和圖3b 2種技術(shù)受協(xié)處理器性能及總線的制約,加/解密算法執(zhí)行速度較低,且SoC內(nèi)部外設(shè)訪問權(quán)限、外部硬件資源訪問權(quán)限依然暴露給了用戶或系統(tǒng)程序,存在一定的軟件攻擊風險[12]。

如圖3c所示的技術(shù)摒棄了加密協(xié)處理器組件,而是將包含CPU核、內(nèi)部總線、RAM、Flash ROM及其他敏感外設(shè)在內(nèi)的硬件資源劃分為安全區(qū)域/非安全區(qū)域或增設(shè)安全/非安全模式。安全資源只有在CPU處于安全狀態(tài)時才能被訪問,安全狀態(tài)與非安全狀態(tài)下的程序、內(nèi)存空間、存儲空間完全隔離。使用硬件的方式(增設(shè)總線信號等措施)確保2狀態(tài)相互間信息交互只能經(jīng)由特殊的模式切換方式完成。由于安全/非安全模式分時共享同一CPU物理核心,因此該技術(shù)在幾乎不增加硅片面積的條件下,使加/解密及敏感資源訪問程序的執(zhí)行性能不受協(xié)處理器性能的制約。正因如此,可認為該技術(shù)為典型的硬件虛擬化技術(shù),即在單個物理CPU上虛擬出2個完全獨立的邏輯CPU,分別用于運行安全程序和非安全程序。Intel公司的SGX(Software Guard Extensions)[13]技術(shù)及ARM公司的TrustZone技術(shù)[14]均采用該種虛擬化安全防護技術(shù)。早在2003年,ARM公司推出應(yīng)用TrustZone技術(shù)的Cortex-A處理器,2016年ARM公司將TrustZone技術(shù)遷移至Cortex-M處理器[15,16],同年推出尺寸最小的支持TrustZone技術(shù)的微控制器內(nèi)核Cortex-M22與Cortex-M23。

Figure 3 Three programmable hardware security protection technologies

2.3 安全防護技術(shù)的比較評估

從安全性、開發(fā)難易程度、計算效率、實現(xiàn)靈活性、通用性、硬件成本和能耗增加7個維度比較2.2節(jié)中的5種安全防護技術(shù),具體如表1所示。表1中按照1~5級對各安全防護技術(shù)進行打分,5為最優(yōu),1為最差。由表1可知,以TrustZone為代表的基于硬件虛擬化技術(shù)的安全防護技術(shù)在多個方面都有著優(yōu)異表現(xiàn)。其采用基于硬件完成安全防護,硬件防護電路分散在SoC內(nèi)部各處,并經(jīng)簡易的IP修改就能夠?qū)崿F(xiàn)所有外設(shè)的安全防護檢查,其安全性高于內(nèi)置加密協(xié)處理技術(shù)。同時,采用TrustZone技術(shù),所有敏感數(shù)據(jù)存取和計算操作均使用原有物理處理器核心,其計算性能不會受加密協(xié)處理器限制。

Table 1 Comparison of various security protection technologies

截止2020年,基于ARM授權(quán)的芯片出貨量已達1 600億顆,占據(jù)90%以上智能終端設(shè)備市場份額及50%以上微控制設(shè)備市場份額。因此,基于ARM內(nèi)核的TrustZone安全防護技術(shù)有望成為首個事實上的嵌入式安全防護解決方案業(yè)界標準。

3 ARM TrustZone

TrustZone是ARM公司推出的一種專注于安全事務(wù)處理的硬件級別虛擬化技術(shù)。TrustZone技術(shù)在同一個物理CPU硬件內(nèi)核上增設(shè)安全和非安全2種模式(又稱為安全世界/非安全世界):安全世界運行高可信程序代碼、可信執(zhí)行環(huán)境TEE(Trusted Execution Environment)操作系統(tǒng),存放敏感數(shù)據(jù);非安全世界執(zhí)行用戶級應(yīng)用程序,運行普通級別操作系統(tǒng),存儲一般類型數(shù)據(jù)。安全世界/非安全世界運行時保持物理級隔離,即同一時刻、同一硬件內(nèi)核只處于安全世界或非安全世界。2種世界的相互切換通過專用指令完成。針對智能終端設(shè)備與微控制設(shè)備,ARM公司分別于2003年和2016年推出了TrustZone-A和TrustZone-M安全虛擬化技術(shù)。

3.1 TrustZone-A工作原理

Cortex-A處理器架構(gòu)采用TrustZone-A技術(shù),其主要瞄準智能終端設(shè)備(如智能手機)市場,調(diào)強更高的處理器性能、更好的圖形處理能力及更靈活的軟件安裝擴展能力。該類設(shè)備一般采用復(fù)雜度較高的操作系統(tǒng)內(nèi)核,如Linux、iOS,以實現(xiàn)較好的軟件擴展能力。鑒于其安裝軟件的靈活性強、存儲敏感數(shù)據(jù)種類多,TrustZone-A硬件隔離程度也相對較高。

TrustZone-A技術(shù)分別在內(nèi)部總線、處理器核IP、中斷控制器和地址空間控制器部件進行硬件級修改[17,18],并在敏感外設(shè)上增加安全訪問識別電路或增設(shè)TrustZone保護控制器單元集中管理敏感硬件設(shè)備。圖4為應(yīng)用TrustZone-A技術(shù)后,處理器核安全世界/非安全世界切換原理框圖。原有ARMv6處理器模式可分為特權(quán)和用戶2大類:IRQ、SVC、SYS等屬于特權(quán)模式[19],操作系統(tǒng)內(nèi)核使用此類模式完成硬件資源管理與中斷處理工作;USR為用戶模式,用于應(yīng)用程序執(zhí)行普通操作。在引入TrustZone-A技術(shù)的ARMv7和ARMv8處理器中,處理器模式增加安全世界和非安全2個世界,2個世界下各有特權(quán)、用戶2類模式。同時,安全世界下增設(shè)的監(jiān)控模式,為安全世界與非安全世界唯一的信息調(diào)用通道。

Figure 4 TrustZone-A processor secure/non-secure world switching principle

TrustZone-A技術(shù)不僅需要對CPU核心進行相關(guān)的安全修改,還需要對相應(yīng)的內(nèi)部總線、地址空間控制器和外設(shè)總線轉(zhuǎn)接橋等部件進行修改、完善。圖5為ARM TrustZone-A技術(shù)白皮書中給出的安全SRAM儲存空間訪問原理示意圖[19]。

Figure 5 Principle of TrustZone-A processor security protection implementation

支持TrustZone-A技術(shù)的ARM處理器核使用AXI總線與AXI-to-APB總線橋模塊連接。圖5中,APB總線上掛載了保護控制器TZPC(TrustZone Protection Controller)、實時時鐘RTC(Real-Time Clock)、鍵盤鼠標接口KMI(Keyboard and Mouse Interface)、定時器Timer 4個外設(shè)。其中RTC和Timer為非安全設(shè)備,TZPC為全時安全設(shè)備(總是處于安全狀態(tài)),KMI為分時安全設(shè)備(可設(shè)置部分時間處于安全狀態(tài))。同時,處理器核還通過AXI總線與內(nèi)存適配器TZMA(TrustZone Memory Adapter)連接,TZMA管理內(nèi)部SRAM、外部DRAM等存儲器,其可根據(jù)CPU狀態(tài)、訪存地址和訪存地址保護設(shè)置處理CPU訪存事務(wù)。TZPC可在CPU處于安全世界時完成參數(shù)設(shè)置,TZPC被設(shè)置后,可向TZMA下達內(nèi)存安全區(qū)域設(shè)置信息。TZMA根據(jù)配置信息檢測CPU訪存指令語義,若CPU處于非安全世界并嘗試訪問安全區(qū)域地址單元或資源,則拒絕訪問。與此類似,當KMI被設(shè)置為安全狀態(tài)時,僅有安全世界代碼可以讀取鍵盤數(shù)據(jù),非安全世界應(yīng)用無法獲知鍵盤鍵入信息,以確保用戶密碼等信息不被監(jiān)聽或泄露。

非安全世界用戶模式用于執(zhí)行應(yīng)用級軟件,不能直接訪問系統(tǒng)敏感信息及資源。非安全世界特權(quán)模式用于執(zhí)行復(fù)雜操作系統(tǒng)。安全世界用戶模式用于執(zhí)行數(shù)據(jù)加解密、生物信息匹配和敏感信號處理等應(yīng)用,該類應(yīng)用統(tǒng)稱為可信應(yīng)用TA(Trusted Application)。安全世界特權(quán)模式用于運行高可信執(zhí)行環(huán)境TEE,如OP-TEE[20]、Trusty[21]等。TEE系統(tǒng)完成可信應(yīng)用的維護管理、調(diào)度與硬件資源分配等功能。與此同時,TEE系統(tǒng)還肩負著監(jiān)控模式的管理任務(wù),負責2個世界的切換操作。

致力于安全芯片基礎(chǔ)設(shè)施統(tǒng)一標準的制定組織GlobalPlatform[22],在2010年發(fā)布了整套TEE系統(tǒng)實現(xiàn)接口標準,從接口、協(xié)議實現(xiàn)等層面對TEE系統(tǒng)進行規(guī)范定義。各區(qū)域軟件布局如圖6所示。盡管GlobalPlatform完成了部分軟件接口的標準化,但基于安全方面的考慮,各嵌入式設(shè)備提供商均未開放各自可信執(zhí)行環(huán)境設(shè)計實現(xiàn)細節(jié),也不開放可信應(yīng)用加載權(quán)限。智能設(shè)備提供商負責完成安全世界中,包含可信執(zhí)行環(huán)境及可信應(yīng)用的所有程序?qū)崿F(xiàn)。非安全應(yīng)用程序開發(fā)人員僅能通過設(shè)備提供商提供的非安全操作系統(tǒng)API函數(shù)完成敏感事務(wù)請求。對普通應(yīng)用程序而言,TEE及可信應(yīng)用為內(nèi)存不可見的、功能獨立的系統(tǒng)函數(shù)調(diào)用棧。在應(yīng)用TrustZone-A技術(shù)的嵌入式系統(tǒng)中,非安全世界的普通操作系統(tǒng)確保設(shè)備的軟件擴展能力,安全世界的可信操作系統(tǒng)保證了設(shè)備處理敏感事務(wù)的軟件執(zhí)行環(huán)境安全。

Figure 6 TrustZone-A platform software types and processing status distribution

3.2 TrustZone-A監(jiān)控器設(shè)計

在TrustZone-A安全防護技術(shù)中,安全世界與非安全世界的切換必須經(jīng)由監(jiān)控處理器模式完成。運行在監(jiān)控模式下的代碼像投遞員一樣負責完成2個世界之間的消息交互。在系統(tǒng)實施攻擊時,監(jiān)控模式下的代碼是重要的攻擊端面[14],因此,監(jiān)控模式代碼(下稱監(jiān)控器)的設(shè)計是TrustZone-A安全防護技術(shù)的重點內(nèi)容。

監(jiān)控器一般需完成如下功能:(1)當在2個世界之間切換時,監(jiān)控器程序必須在離開當前世界前,把該世界的所有上下文狀態(tài)保存至當前世界堆??臻g,并恢復(fù)待進入世界的上下文環(huán)境;(2)在2個世界之間完成安全的信息交互,實現(xiàn)受限的消息傳遞,最大程度減少公用資源中可能殘留的非法信息交互。

出于程序健壯性方面的考慮,監(jiān)控器執(zhí)行時,需禁止響應(yīng)中斷、禁止監(jiān)控器代碼可重進入,盡量減小監(jiān)控器尺寸,以避免復(fù)雜情況導致的安全隱患。在ARMv7及以前的芯片中,監(jiān)控器一般被集成在可信執(zhí)行環(huán)境操作系統(tǒng)中(如OP-TEE),由可信操作系統(tǒng)負責實現(xiàn)。而自ARMv8推出后,ARM公司發(fā)布的開源可信固件ATF(ARM Trusted Firmware)[23]涵蓋了監(jiān)控器代碼,進一步規(guī)范了監(jiān)控器設(shè)計實現(xiàn)。

監(jiān)控器是安全世界與非安全世界之間的唯一信息通道,因此,從原理上講攻擊程序檢測及防護功能可以在監(jiān)控器中實現(xiàn)。監(jiān)控器在接收非安全世界應(yīng)用程序的敏感事務(wù)請求時,統(tǒng)計請求成功、失敗情況,分析請求失敗原因,隨即可推測其是否存在異常攻擊行為。若應(yīng)用試圖使用暴力手段掃描可信程序攻擊端面,導致多次敏感事務(wù)請求失敗,則可通知普通操作系統(tǒng)內(nèi)核守護進程,殺死攻擊應(yīng)用程序或主動清除敏感數(shù)據(jù)信息,其原理如圖7所示。

Figure 7 Monitor-based attack detection and protection

3.3 可信啟動鏈

計算機系統(tǒng)啟動過程是安全系統(tǒng)生命周期中最容易遭受攻擊的時段[14]。許多攻擊者試圖在設(shè)備斷電期間或系統(tǒng)未完全加載之前,通過替換、篡改存儲在SoC外部、Flash存儲器中的系統(tǒng)鏡像,完成系統(tǒng)攻擊。

為防止此類攻擊行為,在系統(tǒng)啟動過程中需設(shè)計一條完整、安全的啟動引導鏈路,驗證系統(tǒng)鏡像是否被惡意篡改。該啟動過程起始驗證信息被稱為可信根RoT(Root of Trust),常常被存放至難以被篡改的SoC芯片內(nèi)部。由可信根至所有操作系統(tǒng)可信加載完畢的啟動鏈路,稱為可信啟動鏈。TrustZone-A和TrustZone-M均支持可信啟動鏈。圖8為基于TrustZone的可信啟動流程圖。

Figure 8 Trusted boot process in TrustZone

圖8中灰色框為安全世界操作或只可在安全世界訪問的敏感數(shù)據(jù)信息。操作系統(tǒng)鏡像驗證簽名可采用基于公鑰的簽名算法協(xié)議,如RSA-PSS(RSA-Probabilistic Signature Scheme)協(xié)議。在此類協(xié)議中,受信任的供應(yīng)商(設(shè)備硬件供應(yīng)商、TEE開發(fā)方、普通系統(tǒng)開發(fā)方)使用其私鑰生成需部署代碼的簽名,并將簽名與二進制鏡像文件一并推送至設(shè)備。嵌入式設(shè)備中包含供應(yīng)商的公鑰,可用于驗證二進制文件是否由可信供應(yīng)商發(fā)布,或判斷其是否被惡意篡改。初級公鑰不需要保密,但必須以某種安全的方式存儲在設(shè)備中,該方式應(yīng)滿足不易被攻擊者修改或替換的要求。

系統(tǒng)上電時,CPU首先運行在安全狀態(tài),執(zhí)行SoC內(nèi)部引導程序。引導程序可使用OTP存儲器中的可信公鑰(此為可信根),驗證TEE系統(tǒng)引導程序鏡像簽名是否屬于設(shè)備提供商、鏡像是否被惡意篡改,若驗證正確則可跳轉(zhuǎn)至TEE系統(tǒng)引導程序引導TEE系統(tǒng)。依此方法可順序引導運行TEE系統(tǒng)、普通系統(tǒng)引導程序和普通系統(tǒng)鏡像。在驗證普通系統(tǒng)簽名后,退出安全狀態(tài),進入非安全狀態(tài),跳轉(zhuǎn)至普通系統(tǒng)引導啟動流程。

可信公鑰應(yīng)由設(shè)備供應(yīng)商或設(shè)備TEE開發(fā)方提供并寫入OTP存儲器[17,18]。OTP封裝至SoC內(nèi)部,一般認為OTP是系統(tǒng)中唯一無法被輕易修改的存儲組件,半導體制造商為了進一步保護OTP存儲器遭受物理攻擊,還會在芯片設(shè)計時做相應(yīng)的混淆設(shè)計處理。

上述啟動過程中,TEE系統(tǒng)驗簽通過后,應(yīng)常駐SoC片內(nèi)存儲空間,并設(shè)置該地址空間區(qū)域為安全區(qū)域,以減小敏感代碼、數(shù)據(jù)被動態(tài)窺探的風險。受限于SoC硅片面積,TEE系統(tǒng)及可信應(yīng)用應(yīng)盡可能小巧,才能實現(xiàn)完整片內(nèi)存儲的要求。

3.4 TrustZone-M基本原理

與智能終端設(shè)備相比,微控制設(shè)備在功耗、實時性、響應(yīng)可確定性、魯棒性和中斷延遲等方面,有著更為苛刻的要求,如電動汽車電機調(diào)速系統(tǒng)需要在微秒級周期內(nèi)采集傳感器信息并實時輸出控制響應(yīng)信號。因此,ARM公司并沒有將多年成功應(yīng)用于Cortex-A處理器的TrustZone技術(shù)直接移植到Cortex-M處理器中,而是重新設(shè)計了針對低功耗、低延遲應(yīng)用的TrustZone-M技術(shù)。

在較高的抽象層面上,2種TrustZone技術(shù)保持了一定的相似性,即在同一個物理處理器核心中增設(shè)安全和非安全2個世界,非安全世界的軟件無法直接訪問安全世界的敏感代碼及數(shù)據(jù)。2種TrustZone的主要區(qū)別有:

(1)TrustZone-M支持設(shè)置多個安全世界進入點,可實現(xiàn)更靈活的安全世界/非安全世界切換。安全世界代碼可任意調(diào)用非安全世界函數(shù),非安全世界中代碼可通過“多進入點”調(diào)用安全世界預(yù)留API函數(shù)。而在TrustZone-A中,監(jiān)控模式是唯一的切換點。

(2)TrustZone-M中,CPU處于安全世界時,非安全世界的中斷或者異常可以搶占CPU完成快速中斷服務(wù)響應(yīng)。中斷延遲并不會由于TrustZone-M的引入而顯著增大,以確保系統(tǒng)的低延遲中斷特性。

(3)為了滿足低功耗需求,TrustZone-M中2種世界共享絕大多數(shù)的寄存器組,但獨立設(shè)置堆棧等寄存器。在切換世界時,除參數(shù)傳遞外,多余的共享寄存器必須安全壓棧并清空,避免信息泄露。

(4)TrustZone-M具備多點的世界切換特性,切換開銷遠小于TrustZone-A,TrustZone-M中的軟件編程也更加靈活。

為實現(xiàn)低切換開銷,TrustZone-M主要采用地址映射方式完成安全世界/非安全世界切換功能。這種方式取消了TrustZone-A中的監(jiān)控模式,通過增設(shè)SAU(Secure Attribution Unit)和IDAU(Implementation Defined Attribution Unit)[16]2個屬性驗證部件,實時判斷數(shù)據(jù)或程序地址是否屬于安全地址空間。若地址屬于安全空間,則CPU處于安全世界;否則處于非安全世界。其原理如圖9所示。

Figure 9 TrustZone-M address security verification principle with SAU and IDAU

SAU是一個可編程的安全狀態(tài)控制器,其編程模型與內(nèi)存保護單元MPU(Memory Protection Unit)類似。安全世界下,可以通過SAU完成4 GB地址空間的安全地址和非安全地址區(qū)域設(shè)置。在所有支持TrustZone-M的處理器中,SAU都是存在的,但其可定義區(qū)域的個數(shù)由芯片供貨商確定。為了進一步增加芯片安全特性,并提升設(shè)置靈活性,TrustZone-M為芯片供應(yīng)商預(yù)留了可選IDAU部件。芯片供應(yīng)商可使用IDAU定義固定的地址區(qū)域的安全屬性。最終,地址空間的安全屬性由SAU和IDAU 2個單元共同決定。

3.5 TrustZone-M安全狀態(tài)切換

通過SAU和IDAU部件,RAM、ROM及外設(shè)地址空間可被設(shè)置為3種安全屬性:非安全NS(Non-Secure)區(qū)域、安全S(Secure)區(qū)域和非安全可調(diào)用NSC(Non-Secure Collable)區(qū)域。

NS區(qū)域存儲非安全可執(zhí)行代碼,存儲非敏感數(shù)據(jù),分布非敏感外設(shè)訪問寄存器。NS區(qū)域代碼只能夠訪問非敏感地址,若需要使用敏感功能需經(jīng)由非安全可調(diào)用區(qū)域NSC間接調(diào)用。S區(qū)域存儲安全可執(zhí)行代碼,存儲敏感數(shù)據(jù),分布敏感外設(shè)訪問寄存器。S區(qū)域代碼可以訪問安全世界資源,也可直接使用非安全區(qū)域函數(shù)或數(shù)據(jù)。NSC區(qū)域?qū)儆谔厥獾陌踩珔^(qū)域。NSC存儲空間是非安全世界唯一可調(diào)用的安全地址區(qū)域。NSC區(qū)域中保存了安全世界提供的所有可訪問API函數(shù)調(diào)用點,并通過SG(Secure Gateway)指令實現(xiàn)由非安全世界向安全世界的切換。SG指令僅在NSC區(qū)域中才被認為是有效指令,在其他區(qū)域的SG指令不會被認為是安全狀態(tài)切換指令,以此確保非法的安全狀態(tài)切換攻擊不會被有效執(zhí)行。

圖10中①、②、③箭頭展示了非安全世界代碼調(diào)用安全世界API函數(shù)流程。非安全代碼片段中使用BL指令調(diào)用NSC區(qū)域中安全世界Func_A函數(shù)對應(yīng)調(diào)用點SG指令,CPU進入安全世界,而后分支轉(zhuǎn)向安全世界代碼Func_A入口;Func_A執(zhí)行完畢后,調(diào)用BXNS指令退出并轉(zhuǎn)入非安全世界。由于NSC的引入,安全世界Func_A函數(shù)的絕對地址被隱藏,確保了敏感函數(shù)的安全。

Figure 10 Code calling process of TrustZone-M secure/non-secure world

圖10中④、⑤、⑥、⑦箭頭展示了安全世界代碼調(diào)用非安全世界函數(shù)流程。安全世界代碼使用BLXNS指令,分支跳轉(zhuǎn)至R0寄存器保存的地址,該地址指向非安全世界函數(shù)Func_C;硬件自動完成安全世界堆棧壓棧操作,并將特殊值FNC_RETURN存入寄存器LR中;隨后CPU切換至非安全世界,并跳轉(zhuǎn)到Func_C函數(shù)運行,執(zhí)行完畢后Func_C調(diào)用BX退出函數(shù);硬件觀察到LR中保存了FNC_RETURN,則將CPU切換至安全狀態(tài),并自動從安全堆棧中出棧,跳轉(zhuǎn)到原有安全程序片段執(zhí)行。

除函數(shù)調(diào)用外,中斷和異常處理也有可能導致CPU安全狀態(tài)切換。在支持TrustZone-M的Cortex-M處理器中,每個中斷可以被配置為安全中斷或非安全中斷,修改中斷安全配置需要在安全世界中完成。安全中斷由安全世界中的中斷服務(wù)程序處理,反之由非安全世界的中斷服務(wù)程序處理。無論CPU所處何種世界,2種中斷均可被響應(yīng)。若發(fā)生的中斷安全級別與當前CPU安全狀態(tài)一致時,中斷延遲與普通Cortex-M處理器的一致。但是,當CPU處于安全狀態(tài),且發(fā)生非安全中斷時,CPU會將所有寄存器內(nèi)容壓入安全棧,并將所有寄存器清空后,才會進入非安全中斷服務(wù)程序,避免了安全世界寄存器數(shù)據(jù)泄露至非安全世界。寄存器清空操作會導致約20個CPU周期的中斷延遲。

在不同廠商提供的微控制器中,TrustZone-M往往會和芯片供應(yīng)商提供的輔助安全防護措施配合使用。如意法半導體公司在STM32L5系列芯片中使用數(shù)據(jù)讀出保護技術(shù)RDP(ReaDout Protection,類似熔絲位機制)[18]和TrustZone技術(shù)相結(jié)合,為程序開發(fā)者提供產(chǎn)品不同研制階段的數(shù)據(jù)安全防護手段。通過提升RDP級別,可永久封閉微控制器調(diào)試通道,禁止一切外部手段直接獲取、修改敏感數(shù)據(jù)。

3.6 TrustZone-M應(yīng)用案例

圖11為使用TrustZone-M技術(shù)實現(xiàn)敏感控制信號保護的應(yīng)用案例原理框圖。方案中采用非對稱加密算法實現(xiàn)報文信息簽名及加密功能。嵌入式微控制器只會接受合法遠程上位機指令,完成敏感控制信號輸出狀態(tài)切換。非安全世界實現(xiàn)系統(tǒng)主進程循環(huán)、TCP協(xié)議棧和網(wǎng)卡硬件驅(qū)動代碼。安全世界實現(xiàn)公鑰存儲、隨機數(shù)生成算法、加密/驗簽算法、安全鏡像管理和敏感I/O口控制驅(qū)動代碼。遠程上位機實現(xiàn)顯控界面、網(wǎng)絡(luò)協(xié)議棧和私鑰存儲。由于TrustZone-M技術(shù)的引入,非安全世界漏洞,如TCP協(xié)議棧的漏洞,并不能用于獲取敏感I/O控制權(quán)限。系統(tǒng)安全通信流程如圖12所示。

系統(tǒng)安全通信流程包含如下步驟:(1)遠程上位機使用私鑰生成“請求修改I/O權(quán)限”報文,發(fā)送至微控制器;(2)微控制器在非安全模式下收到該TCP報文后,將該報文轉(zhuǎn)發(fā)至安全世界;(3)安全世界代碼使用公鑰驗證報文簽名,若遠程上位機身份合法,則使用偽隨機數(shù)生成算法生成隨機數(shù),而后使用公鑰對隨機數(shù)完成加密。該隨機數(shù)密文將作為本次通信權(quán)限驗證試題,經(jīng)非安全世界轉(zhuǎn)發(fā)至遠程上位機;(4)遠程上位機收到驗證試題后,使用私鑰完成解密,將測試結(jié)果及待修改I/O命令一起,經(jīng)私鑰簽名后發(fā)送至微控制器;(5)微控制器安全區(qū)域收到測試結(jié)果后,若測試通過,則根據(jù)I/O修改命令完成I/O口輸出狀態(tài)設(shè)置,并將狀態(tài)上報遠程上位機。上述過程中,隨機數(shù)測試題與對稱加密技術(shù)中的單次有效密鑰分發(fā)技術(shù)類似。該操作可避免非法上位機通過監(jiān)聽二進制控制報文,實施敏感I/O修改攻擊。

Figure 11 Principle of the sensitive control signal protection scheme

Figure 12 A case of communication flow of secure communication protocol

4 結(jié)束語

本文在列舉并比較多種嵌入式計算機系統(tǒng)安全防護手段后,深入剖析了基于硬件虛擬化的ARM TrustZone技術(shù)軟/硬件系統(tǒng)組成、工作原理及設(shè)計實現(xiàn)要點。分析了TrustZone-A和TrustZone-M 2種技術(shù)方案的區(qū)別,并給出了2種技術(shù)適用場景與實現(xiàn)特點。給出了可信啟動流程實現(xiàn)原理,并簡要討論了基于TrustZone-A監(jiān)控模式代碼的異常程序檢測及防護實現(xiàn)可行性。針對典型應(yīng)用場景,給出了基于TrustZone-M技術(shù)的安全防護方案及安全通信協(xié)議實現(xiàn)實例。

正如文獻[14]所述,面對未來的嵌入式系統(tǒng)應(yīng)用場景,“安全”已不再是可選項。作為當今世界最大的嵌入式處理器知識產(chǎn)權(quán)供應(yīng)商的ARM公司,其提出的TrustZone技術(shù)無疑將成為首選的嵌入式系統(tǒng)安全防護方案之一。可以預(yù)期,基于TrustZone技術(shù)的理論研究、攻防技術(shù)升級將成為未來5~10年該領(lǐng)域的熱點內(nèi)容。

猜你喜歡
嵌入式處理器世界
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
嵌入式PLC的設(shè)計與研究
嵌入式單片機在電機控制系統(tǒng)中的應(yīng)用探討
我愛你和世界一樣大
彩世界
奇妙有趣的數(shù)世界
世界上所有的幸福都是自找的
ADI推出新一代SigmaDSP處理器
火線熱訊