999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統安全防護方案比較與應用案例分析*

2022-12-22 11:32:50陳祥國宋君強
計算機工程與科學 2022年3期
關鍵詞:嵌入式系統

陳祥國,尚 凡,宋君強

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

1 引言

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

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

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

2 嵌入式系統相關安全防護技術

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

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

2.1 嵌入式系統安全防護技術難點

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

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

2.2 嵌入式安全防護技術梳理

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

Figure 1 Security protection technology based on software operating system kernel

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

Figure 2 Fuse bit security protection technology

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

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

Figure 3 Three programmable hardware security protection technologies

2.3 安全防護技術的比較評估

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

Table 1 Comparison of various security protection technologies

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

3 ARM TrustZone

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

3.1 TrustZone-A工作原理

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

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

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

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

Figure 5 Principle of TrustZone-A processor security protection implementation

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

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

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

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

3.2 TrustZone-A監控器設計

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

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

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

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

Figure 7 Monitor-based attack detection and protection

3.3 可信啟動鏈

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

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

Figure 8 Trusted boot process in TrustZone

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

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

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

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

3.4 TrustZone-M基本原理

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

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

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

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

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

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

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

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

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

3.5 TrustZone-M安全狀態切換

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

NS區域存儲非安全可執行代碼,存儲非敏感數據,分布非敏感外設訪問寄存器。NS區域代碼只能夠訪問非敏感地址,若需要使用敏感功能需經由非安全可調用區域NSC間接調用。S區域存儲安全可執行代碼,存儲敏感數據,分布敏感外設訪問寄存器。S區域代碼可以訪問安全世界資源,也可直接使用非安全區域函數或數據。NSC區域屬于特殊的安全區域。NSC存儲空間是非安全世界唯一可調用的安全地址區域。NSC區域中保存了安全世界提供的所有可訪問API函數調用點,并通過SG(Secure Gateway)指令實現由非安全世界向安全世界的切換。SG指令僅在NSC區域中才被認為是有效指令,在其他區域的SG指令不會被認為是安全狀態切換指令,以此確保非法的安全狀態切換攻擊不會被有效執行。

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

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

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

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

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

3.6 TrustZone-M應用案例

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

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

Figure 11 Principle of the sensitive control signal protection scheme

Figure 12 A case of communication flow of secure communication protocol

4 結束語

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

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

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲精品视频网| 亚洲av无码人妻| 大乳丰满人妻中文字幕日本| 欧美曰批视频免费播放免费| 中文字幕无码制服中字| 精品亚洲国产成人AV| 亚洲国内精品自在自线官| 久久青青草原亚洲av无码| 国产SUV精品一区二区6| 国产95在线 | 亚洲二三区| 九九精品在线观看| 伊人久久大香线蕉综合影视| 高潮毛片免费观看| AV熟女乱| 国内精品免费| 亚洲综合18p| AV片亚洲国产男人的天堂| 曰AV在线无码| 日韩AV无码一区| 久久综合九色综合97婷婷| 国产网站一区二区三区| 欧美日韩精品一区二区视频| 亚洲成年人片| 国产欧美精品一区二区| 91香蕉国产亚洲一二三区| 91极品美女高潮叫床在线观看| 精品三级网站| 亚洲成人免费看| 四虎永久在线精品影院| 国内精品视频区在线2021| 欧美亚洲国产视频| 国产精品手机在线观看你懂的| 国产国模一区二区三区四区| 激情五月婷婷综合网| 九色综合伊人久久富二代| 日本a级免费| 国产精品一线天| 操国产美女| 国产人人乐人人爱| 58av国产精品| 国产福利在线观看精品| 国产欧美综合在线观看第七页| 亚洲一区二区三区香蕉| 国产91精品久久| 欧美成人午夜视频免看| 精品久久蜜桃| 婷婷综合亚洲| 国产亚洲男人的天堂在线观看| 人妻精品久久无码区| 国产系列在线| 欧美激情视频一区二区三区免费| 亚洲欧美色中文字幕| 国产一在线| 国产丝袜无码一区二区视频| 日韩第一页在线| 青青操国产视频| 免费毛片a| 国产小视频免费观看| 亚洲欧美在线精品一区二区| 熟妇丰满人妻| 9久久伊人精品综合| 中文字幕久久亚洲一区 | 国产门事件在线| 国产激情在线视频| 国产欧美日韩综合一区在线播放| 久久久精品无码一区二区三区| 婷婷丁香色| 免费精品一区二区h| 国产成人免费手机在线观看视频| 国产一级做美女做受视频| 五月丁香伊人啪啪手机免费观看| 亚洲高清日韩heyzo| 尤物视频一区| 毛片大全免费观看| 中文字幕在线免费看| 国产欧美亚洲精品第3页在线| 日本人妻一区二区三区不卡影院 | 色妞永久免费视频| 欧美69视频在线| 国产成人a在线观看视频| 国产免费网址|