廖正赟,郭建勝
(1.鄭州信大捷安移動信息安全工程實驗室,河南 鄭州 450004;2.信息工程大學,河南 鄭州 450004)
移動互聯網的高速發展大大推動了移動電子政務、移動電子商務的快速發展,移動智能終端作為移動互聯網的必不可少承載設備,也已經成為人們隨身攜帶、隨時使用的重要通信工具。在移動支付、移動辦公等高敏感應用中涉及個人隱私、資金安全、商業秘密等高敏感的信息處理,需要從系統設計出發,構建完整的安全解決方案為其提供保障。
信息安全主要包括4個方面: 信息設備安全、數據安全、內容安全和行為安全。信息系統硬件結構的安全和操作系統的安全是信息系統安全的基礎,密碼、網絡安全等技術是關鍵技術,只有從信息系統的硬件和軟件的底層采取安全措施,從整體上采取措施,才能有效地確保信息系統的安全[1-2]。
目前在國內外市場中,較為完善的方案是Apple公司設計的iOS安全體系框架,從系統安全、數據保護、應用安全、網絡安全、設備管控等方面保障iOS設備安全。iOS安全體系分為硬件層和軟件層。硬件層包括密鑰管理、密碼引擎;管理的密鑰主要是Apple根證書、群密鑰、設備密鑰等;密碼引擎對系統提供密碼服務和算法API。在軟件層,加密文件系統通過iOS內核層的硬件驅動調用硬件層的密碼服務;加密文件系統分為操作系統區和用戶區,操作系統區負責iOS系統程序的密碼服務,用戶區負責App應用的密碼服務,以沙箱的形式控制App應用運行。iOS安全體系如圖1所示。

圖1 iOS安全體系框架
在iOS的安全體系中有一個安全硬件模塊Secure Enclave,采用了Apple A7芯片,獨立于應用程序處理器之外,具備自己的安全啟動和個性化軟件更新,為系統提供敏感數據、密鑰存儲和加解密服務,并且限制其他非法軟件的訪問,即使在內核遭到入侵的情況下,也可維護數據保護的完整性。
Secure Enclave是一個典型的密碼嵌入式系統,由軟件和硬件兩部分組成,本文將從Secure Enclave的硬件、處理器內部操作系統、通信機制三方面進行分析,對該系統的安全性進行分析,最后進行了總結與展望。
安全隔離處理器(Secure Enclave Processor,SEP)采用SoC內部集成SoC的形態出現[3]。片上系統(System on Chip,SoC),從狹義角度來說,它是信息系統核心的芯片集成,是將系統關鍵部件集成在一塊芯片上;從廣義角度來說,SoC 是一個微小型系統,國內外學術界一般傾向將 SoC 定義為將微控制器、模擬IP核、數字IP核和存儲器集成在單一芯片上,通常是客戶定制的,或是面向特定用途的標準產品。iOS設備的硬件邏輯組成結構如圖2所示。

圖2 iOS設備處理器邏輯結構圖
硬件架構中包含了兩類處理器:通用應用處理器與安全處理器。CPU處理單元也稱為應用處理器(Application Processor,AP),它包括一個或多個處理器和二級(L2)高速緩存,與SEP相互隔離,對SEP的訪問受到硬件的嚴格控制。SEP內部包括一個或多個處理器核心,安全引導ROM以及一個或多個安全外圍設備。
SEP需要使用超過4 KB的易失性存儲器,內部的SRAM的空間不能滿足要求,因此需要利用外部擴展的存儲器,這一部分的存儲器需要防止AP的篡改。在SoC的存儲器控制器中,通過增加寄存器的方式,為SEP構建了單獨的信任區。AP可以訪問自己的信任區域,但不能訪問SEP信任區域,SEP可以訪問自己的信任區域,但不能訪問CPU信任區域,而SoC的其他組件無法訪問任何信任區域。SEP通過內存映射操作的方式獨占一組外設,這一部分硬件設備不能被應用處理器訪問,這些設備包括:硬件加密引擎、隨機數發生器、熔斷器、GID/UID、安全只讀存儲器。在完成內存映射工作后,SEP通過隨機數發生器產生“真隨機數”,以此隨機數作為輸入,計算出工作密鑰。工作密鑰將存入硬件加密引擎中,SEP將使用該工作密鑰對內存中的數據進行加密保護。加密算法采用AES-256,使用XEX的工作模式。
基于安全引導存儲區的設計,SEP可以實現片內操作系統的安全啟動。SEP的啟動代碼存儲在安全只讀存儲器(ROM)中,而安全ROM對于SEP外部是不可訪問的,因此,不會受到修改引導代碼的影響。 SEP中的處理器可以直接從安全ROM執行,避免將代碼復制到諸如隨機存取存儲器(RAM)的可修改存儲器,SEP與安全ROM呈現的“攻擊面”相對較小。
SEPOS是一個完全獨立的操作系統,擁有私有的內核、驅動程序、服務和應用程序,通用的操作系統在安全性的驗證上較為困難,因此SEPOS采用了L4微內核嵌入式系統的方案,確保提供安全保證的部分盡可能地小,而且便于驗證。L4微內核是由Jochen Liedtke于1993年首次引入的[4],屬于第二代微內核系統,L4解決了前一代微內核性能不佳的問題,并將其性能提高了10~20倍[5]。L4在設計中遵循了信息保護機制中的保護原則[6]。在后來的應用中,L4被開發用于平臺無關性,以及提高安全性、隔離性和健壯性。SEPOS的整體結構如圖3所示[7]。
在SEPOS的啟動過程中,內核首先對系統進行初始化操作,包括初始化內核表,設置內核接口頁(KIP),配置硬件中斷,啟動定時器,初始化映射數據庫,啟動內核調度器。內核調度程序啟動所有中斷和內核線程,以及稱為根進程的初始進程。
在SEPOS中,根進程負責啟動在SEPOS中運行的其余應用程序,并維護關于每個正在運行的任務的上下文信息。這包括有關任務的虛擬地址空間、權限級別、正在運行的線程等的信息。根進程還調用啟動服務器,這是一種基于IPC的服務,它為應用程序提供所需的服務,以便執行諸如映射虛擬內存或啟動新線程等特權任務。
SEPOS的L4內核遵循“最小特權原則”,對外只提供很小一部分的接口。在內核空間中,對于來自用戶空間的系統調用,只有根進程可以響應。其他的應用進程由引導服務創建,在進程創建時,引導服務為每個進程定義了權限級別。應用進程訪問系統方法時,需要經過權限校驗,只響應滿足條件的應用進程。系統方法的權限校驗粒度較細,每一個方法都需要進行獨立的驗證。
當根進程啟動時,它會嘗試在內存中查找兩個表:“根參數”和“應用程序列表”。應用程序列表固化在SEPOS的固件中,列表包含了的系統中所有應用程序的物理地址、虛擬基地址、模塊名稱、程序大小和程序的入口點信息。引導程序在啟動、加載應用時,根據應用程序列表逐項進行檢查,只有完全匹配的應用程序才能正常運行。
SEP系統設計時遵循了隔離性原則,SEP處理器在軟硬件方面都采用了相應的措施與外部組件進行隔離。但是要實現SEP的安全功能,SEP與應用處理器之間需要進行雙向通信。系統設計了“安全郵箱(Secure Mailbox)”機制,本質上是利用AP和SEP處理器都可見的共享內存區域,實現了消息請求和響應機制,Mailbox同時包含了收件箱和發件箱。
AP與SEP之間的內存共享是通過配置SEP的設備I/O寄存器實現的。SEP在設備中分配的內存地址范圍是固定的,系統將設備I/O寄存器映射在該范圍中,通過對不同偏移地址的讀寫,實現消息的發送和接收操作。
消息中斷機制也可以形象地稱為“門鈴”機制,設備可以向框架注冊回調處理方法。當AP向SEP發送消息時,AP將消息寫入安全郵箱的收件箱,并觸發消息終端中斷,告知SEP已經收到新的消息。這個中斷不是由AP本身生成的,因為如果SEP被中斷很長一段時間,這可能導致拒絕服務攻擊。中斷由SEP的硬件過濾器產生,硬件過濾器用于阻止任何外部的讀取或寫入嘗試,并在必要時為SEP生成中斷。但是,SEP的組件可以完全訪問SoC的其他組件(除了指定為AP信任區的存儲器部分除外)。
如果SEP已經接收并處理了消息,就把響應寫入到發件箱。為了讓AP知道響應已經準備就緒,它通過向SoC的中斷控制器發送一個中斷消息來向CPU處理器發出中斷信號。
SEP端點是與SEP內部應用或服務進行通信的對象,SEP管理器負責管理iOS中的所有SEP端點,并提供一個完整的框架為驅動程序提供注冊和通信服務。框架為每一個注冊的SEP端點分配全局唯一的索引值,并抽象出統一的操作方法:接收和發送消息,為每一個SEP端點維護一個消息接收隊列。消息頭結構中使用端點的索引值標識目的地址,管理器提供了一種“郵差”機制,將這些消息傳遞到目的地。
Secure Enclave是一個嵌入式安全子系統。它由可信硬件構成,運行獨立安全操作系統,是密碼服務實現的專用環境,從硬件環境上確保密碼服務系統以及密碼設備平穩運行、安全服務。
在體系設計上引入專用安全芯片系統,為密碼服務提供專用運行環境。在服務系統內部建立構成“私有區域”和“公開區域”的概念,進一步采用多種方法保障“私有區域”的安全,而不需要對公開區域提出很高的安全要求。其優點是不僅可以提高密碼服務實現的效率,更主要的是給邏輯防護設計提供了良好條件,突出了安全防護的重點。
作為嵌入式計算系統,硬件上可以通過高速系統總線與主環境連接,二者之間的
安全通道需要雙方達成安全協議,進行實體認證后通過加密的方式建立安全數據傳輸。
在安全子環境內建立專門用于安全防護的安全核(Security Kernel)。這里的安全防護主要是指在用戶調用密碼服務過程中涉及的有可能危害到密碼服務系統安全的操作防護,如密鑰對象的建立、修改和輸出,關鍵密碼算法的調用等。
從層次位置上說,安全核位于密碼服務層傳遞的應用之下,密碼設備層對象之上,是外界與結構內部對象以及結構內部對象之間的交互聯接點。安全核的防護突出兩點,即對象訪問控制和消息過濾。
安全核的設計貫穿了密碼服務設計中建立在集中管理基礎上的邏輯防護原則。其優點是在管理中實現安全,在安全上提供管理。
采用基于中斷的共享內存方式,實現消息的安全傳輸。特別地設計了兩個中斷控制器,通過硬件過濾器的形式,實現消息的單向擺渡,減少安全系統的攻擊范圍。
Apple的Secure Enclave將安全性融入到軟硬件的設計中,硬件隔離、安全微內核系統和安全通信機制構建了完善的安全框架,很好地解決了敏感數據的安全保護的問題。但是,該方案要求生產者可以完整地掌握SoC元件的生產鏈條,會在一定程度上加長開發設計周期,并使得測試難度更大。在安全操作系統采取的安全措施相互較為獨立,沒有形成整體的呼應。可以借鑒可信計算技術,將系統融合成完整的安全體系。
[1] 沈昌祥. 關于加強信息安全保障體系的思考[M]. 信息安全綜論. 武漢: 湖北科學技術出版社, 2002.
[2] 張煥國, 王麗娜, 黃傳河, 等. 信息安全學科建設與人才培養的研究與實踐[C]. 全國計算機系主任(院長)會議論文集, 2005.
[3] Apple Inc. Security enclave processorfor a system on a chip: US, US8832465[P].2012-09-09.
[4] HEISER G, ELPHINSTONE K. L4 microkernels: the lessons from 20 years of research and deployment[J]. ACM Transactions on Computer Systems, 2016,34(1): 1-29.
[5] LIEDTKE Jochen. On u-kernel construction[J]. Symposium on Operating Systems, 1995(1): 237-250.
[6] SALTZER J H, SCHROEDER M D. The protection of information in computer systems[J]. Proceedings of the IEEE, 1975. 63(9): 1278-1308.
[7] LANGE M, LIEBERGELD S, LACKORZYNSKI A, et al. L4Android: a generic operating system framework for secure smartphones[C].Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. NewYork, USA,2011:39-50.