王磊,魯萌
(1.中國(guó)電信股份有限公司廣州研究院,廣東 廣州510630;2.中國(guó)信息通信研究院,北京 100191)
基于用戶卡的可信執(zhí)行環(huán)境初始化方案
王磊1,魯萌2
(1.中國(guó)電信股份有限公司廣州研究院,廣東 廣州510630;2.中國(guó)信息通信研究院,北京 100191)
智能終端具備的可信執(zhí)行環(huán)境在加載環(huán)節(jié)存在加載證書權(quán)威性問題。在分析可信執(zhí)行環(huán)境(TEE)初始化架構(gòu)和初始化方案的基礎(chǔ)上,利用信任鏈技術(shù),設(shè)計(jì)提出了將運(yùn)營(yíng)商用戶卡作為可信根,進(jìn)行智能終端可信執(zhí)行環(huán)境初始化的方案,為電信運(yùn)營(yíng)商利用用戶卡資源參與可信執(zhí)行環(huán)境的產(chǎn)業(yè)鏈建設(shè)提供思路。
用戶卡;卡初始化;可信執(zhí)行環(huán)境
隨著集成電路、移動(dòng)智能操作系統(tǒng)和移動(dòng)應(yīng)用的快速發(fā)展,移動(dòng)智能終端的計(jì)算、存儲(chǔ)和通信能力不斷提升,但同時(shí)也面臨更多的安全威脅和風(fēng)險(xiǎn)。智能終端在安全支付、企業(yè)服務(wù)和基于Web的服務(wù)中扮演著越來越重要的角色,終端安全正成為保護(hù)消費(fèi)者和企業(yè)利益的強(qiáng)制性要求。
移動(dòng)嵌入式處理器主流供應(yīng)商ARM提出了一套基于TrustZone技術(shù)的系統(tǒng)級(jí)安全解決方案,該技術(shù)是在盡量不影響系統(tǒng)功耗和性能的前提下,通過硬件來實(shí)現(xiàn)安全環(huán)境與普通環(huán)境的隔離,并通過軟件提供基本的安全服務(wù)和接口,構(gòu)建由軟硬件結(jié)合的系統(tǒng)級(jí)安全。方案通過將保護(hù)措施集成到ARM處理器、總線架構(gòu)和系統(tǒng)外設(shè)IP地址等措施,保證安全內(nèi)存、加密塊、鍵盤和顯示器等外設(shè)免遭軟件攻擊,并建立一個(gè)隔離的可信執(zhí)行環(huán)境 (trusted execution environment,TEE)為安全敏感應(yīng)用提供安全服務(wù)[1]。
在基于TrustZone架構(gòu)的TEE初始化過程中,一個(gè)可靠的可信根是整個(gè)系統(tǒng)安全的基石,但目前該可信根一般由片上系統(tǒng)固化的設(shè)備密鑰來提供,這種方式會(huì)存在系統(tǒng)密鑰更新困難、無法針對(duì)每個(gè)用戶進(jìn)行個(gè)性化的TEE初始化等問題[2]。從而使攻擊者有機(jī)會(huì)采用如離線攻擊等方式干擾終端TEE初始化過程,或通過對(duì)可信根進(jìn)行旁路攻擊,增加系統(tǒng)運(yùn)行惡意代碼的風(fēng)險(xiǎn)。
2.1 TrustZone軟硬件架構(gòu)
TrustZone將單顆CPU內(nèi)核隔離成安全和普通兩個(gè)邏輯區(qū)域:安全內(nèi)核和普通內(nèi)核,CPU以時(shí)分方式執(zhí)行普通和安全內(nèi)核的代碼,該架構(gòu)通過處理器硬件擴(kuò)展的方式來保證安全內(nèi)存和安全外設(shè)可以拒絕非安全事務(wù)的訪問而無需使用專用安全處理器,從而達(dá)到節(jié)省芯片面積和功耗的目的。為了隔離所有的SoC資源,該架構(gòu)首先對(duì)內(nèi)存進(jìn)行了隔離,CPU在安全環(huán)境(即TEE)和普通環(huán)境(即rich execution environment,REE)下的進(jìn)程有獨(dú)立的物理地址空間,TEE有權(quán)訪問兩個(gè)環(huán)境的地址空間,但REE只能訪問普通環(huán)境的地址空間。TEE和REE通過監(jiān)控模式在兩個(gè)環(huán)境間進(jìn)行通信和切換,REE可通過安全監(jiān)控調(diào)用指令(secure monitor call,SMC)或者硬件中斷方式進(jìn)入監(jiān)視模式;TEE進(jìn)入監(jiān)視模式的方式相對(duì)靈活,可通過直接寫程序狀態(tài)寄存器(current program status register,CPSR)或硬件中斷進(jìn)入監(jiān)視模式。為防止惡意軟件采用中斷向量方式對(duì)系統(tǒng)造成破壞,架構(gòu)還對(duì)中斷向量進(jìn)行了擴(kuò)展,在普通環(huán)境和安全環(huán)境分別采用 IRQ和 FIQ作為中斷源。TrustZone的硬件架構(gòu)如圖1所示。
圖1 TrustZone硬件架構(gòu)
在上述硬件架構(gòu)的基礎(chǔ)上,TrustZone將安全性從普通操作系統(tǒng)(即rich OS,ROS)中分離出來,并實(shí)現(xiàn)新的安全操作系統(tǒng)(即trust OS,TOS),并具備獨(dú)立的中斷處理、調(diào)度、進(jìn)程和內(nèi)容管理表,TOS和ROS間的交互被限制在消息傳遞和共享內(nèi)存?zhèn)鬟f數(shù)據(jù)。TrustZone定義了一套API標(biāo)準(zhǔn),其中REE下的API提供運(yùn)行于REE的可信應(yīng)用訪問TEE中的應(yīng)用及與應(yīng)用進(jìn)行數(shù)據(jù)交換的底層通信接口;TEE下的API向TEE中的可信應(yīng)用提供訪問操作系統(tǒng)核心服務(wù)(如可信存儲(chǔ))的接口[3]。TrustZone的軟件架構(gòu)如圖2所示。
圖2 TrustZone軟件架構(gòu)
2.2 基于TrustZone的TEE架構(gòu)設(shè)計(jì)
智能卡及終端安全的標(biāo)準(zhǔn)組織GP(Global Platform)基于TrustZone技術(shù)制定了TEE標(biāo)準(zhǔn),TEE可作為一個(gè)獨(dú)立的執(zhí)行環(huán)境,駐留在其所連接的支持TrustZone主處理器上的安全區(qū)域,從而確保在TEE中實(shí)現(xiàn)敏感數(shù)據(jù)的存儲(chǔ)、處理和保護(hù),其TEE系統(tǒng)架構(gòu)如圖3所示[4]。
2.3 常規(guī)TEE初始化過程
基于TrustZone的TEE設(shè)備在開啟時(shí),其初始化過程分為兩個(gè)階段:通過安全初始化的方式啟動(dòng)TEE;然后基于TEE的安全服務(wù),通過可信初始化的方式啟動(dòng)REE,一級(jí)認(rèn)證一級(jí),一級(jí)信任一級(jí)[5]。初始化過程如圖4所示。
當(dāng)移動(dòng)設(shè)備啟動(dòng)時(shí),安全初始化過程首先執(zhí)行固定區(qū)域ROM里的代碼,啟動(dòng)TEE BootLoader,然后加載TOS并開啟各種安全服務(wù)。在安全初始化過程中,每個(gè)執(zhí)行的模塊須對(duì)下一個(gè)模塊的代碼執(zhí)行完整性校驗(yàn),完整性校驗(yàn)依賴于存儲(chǔ)在SoC上的代碼完整性證書,如果校驗(yàn)失敗,則引導(dǎo)過程終止。TEE啟動(dòng)后會(huì)開啟可信驗(yàn)證服務(wù),可利用其提供的可信功能接口進(jìn)行后續(xù)代碼的完整性度量,因此REE的初始化引導(dǎo)過程將只進(jìn)行完整性度量和記錄,不做校驗(yàn),度量結(jié)果由可信驗(yàn)證服務(wù)提供完整性保護(hù)。由此可見,安全初始化的信任根為SoCROM,可信初始化的信任根為TEE及其中的安全服務(wù),從而形成一條完整的信任鏈。
一個(gè)安全可靠的可信根是整個(gè)移動(dòng)系統(tǒng)安全的基礎(chǔ),而目前基于TrustZone架構(gòu)的可信根是由SoC上固化的設(shè)備密鑰充當(dāng)?shù)模@種方式會(huì)使系統(tǒng)密鑰更新存在困難,而且設(shè)備密鑰固化存儲(chǔ)在設(shè)備上,入侵者可能通過旁路或逆向工程等手段獲得密鑰,從而導(dǎo)致整個(gè)平臺(tái)的安全性風(fēng)險(xiǎn)。此外,該方式也存在無法針對(duì)每個(gè)用戶進(jìn)行個(gè)性化的TEE初始化的問題。因此,如何在不變更TrustZone架構(gòu)的前提下,向系統(tǒng)提供一個(gè)可靈活更改并防御軟件攻擊的信任根,是一個(gè)需重點(diǎn)考慮的問題。此外,TEE雖然向應(yīng)用程序提供了一個(gè)隔離的執(zhí)行環(huán)境,但卻未向用戶或遠(yuǎn)程者證明這個(gè)環(huán)境是可信的,上述不足可以通過基于用戶卡的TEE初始化方案加以彌補(bǔ)。
圖3 GP TEE系統(tǒng)架構(gòu)
圖4 常規(guī)TE E初始化過程
TEE初始化是終端準(zhǔn)備和設(shè)置TEE的過程,是TEE啟動(dòng)后到正常使用過程中的關(guān)鍵環(huán)節(jié),經(jīng)過這個(gè)環(huán)節(jié),TEE才可以向用戶提供服務(wù)。TEE初始化過程中,需要對(duì)TEE進(jìn)行一系列的設(shè)置,并寫入一系列的初始化參數(shù),其中關(guān)鍵操作是寫入TEE的信任根 (包括各類基礎(chǔ)密鑰),只有完成了這個(gè)步驟TEE才可能成為一個(gè)可信實(shí)體,并具備向外部提供安全服務(wù)的能力。而用戶卡存儲(chǔ)了移動(dòng)用戶信息、加密密鑰等內(nèi)容,可以實(shí)現(xiàn)身份認(rèn)證、完整性度量以及用戶數(shù)據(jù)加密/解密等功能,因其具有運(yùn)算功能,能夠通過自身安全機(jī)制確保自身內(nèi)部靜態(tài)數(shù)據(jù)和智能終端傳輸 過 程 中 數(shù) 據(jù) 的 安 全 。TEEMP (trusted execution environment management platform,可信環(huán)境管理平臺(tái))實(shí)現(xiàn)對(duì)終端TEE環(huán)境中TA(trusted application,可信應(yīng)用)、SD(secure domain,安全域)的管理,執(zhí)行安裝、卸載、更新、鎖定和解鎖等操作;并同時(shí)對(duì)TEE進(jìn)行管理,執(zhí)行密鑰更新、鎖定、解鎖和恢復(fù)出廠等操作。
本方案利用用戶卡的安全存儲(chǔ)能力,并通過智能終端與TEEMP之間的雙向安全認(rèn)證過程,實(shí)現(xiàn)TEEMP向智能終端TEE中安全地寫入TEE配置參數(shù),完成移動(dòng)智能終端的TEE初始化?;谟脩艨ǖ腡EE初始化方案架構(gòu)如圖5所示。
4.1 初始化方案框架設(shè)計(jì)
該方案要求支持UICC架構(gòu)的用戶卡已經(jīng)預(yù)置或動(dòng)態(tài)下載了TEEMP的證書,并且智能終端的TEE中已預(yù)置終端證書及私鑰,支持OMA接口,具備訪問用戶卡的能力。終端TEE能夠通過安全通道訪問終端REE,并能夠通過REE接口API訪問用戶卡。TEEMP已經(jīng)預(yù)置了REE中認(rèn)證應(yīng)用CA的根證書,用于驗(yàn)證終端證書,并已經(jīng)配置了終端TEE的個(gè)人化參數(shù),用于TEE初始化。針對(duì)智能終端基于用戶卡的TEE初始化,涉及如圖6所示的方案框架。
圖5 基于用戶卡的可信執(zhí)行環(huán)境初始化方案架構(gòu)
圖6 基于用戶卡的TEE初始化框架
TEE會(huì)首先獲取用戶卡中的TEEMP證書,并通過TEE與TEEMP間的安全通道(HTTPS)與TEEMP進(jìn)行雙向認(rèn)證,認(rèn)證通過后,TEEMP傳遞初始化數(shù)據(jù)對(duì)TEE進(jìn)行初始化。
4.2 初始化流程
終端在啟動(dòng)時(shí)會(huì)自動(dòng)檢測(cè)TEE的初始化狀態(tài),如發(fā)現(xiàn)TEE尚未初始化,則會(huì)觸發(fā)自動(dòng)初始化過程。當(dāng)用戶更換UIM卡后,系統(tǒng)在啟動(dòng)時(shí)可檢測(cè)到TEE服務(wù)提供方已更換,用戶可以選擇重新對(duì)TEE進(jìn)行初始化,否則無法繼續(xù)使用終端原TEE配置。TEE初始化的總體業(yè)務(wù)流程如圖7所示。
圖7 TEE初始化的總體業(yè)務(wù)流程
具體流程如下:終端啟動(dòng)時(shí),會(huì)首先檢查用戶卡狀態(tài)并判斷TEE是否已經(jīng)完成初始化。當(dāng)檢測(cè)到TEE未初始化時(shí),會(huì)通過機(jī)卡安全通道向用戶卡獲取TEEMP證書,如果用戶卡無法給出TEEMP證書,則說明該用戶卡并非運(yùn)營(yíng)商發(fā)行的用于初始化TEE的常規(guī)用戶卡,TEE只需執(zhí)行無需用戶卡參與的常規(guī)初始化過程,建立 TEE,而無需對(duì)運(yùn)營(yíng)商的SD、TA等TEE進(jìn)行初始化。一旦TEE從用戶卡中獲取到TEEMP證書后,會(huì)通過ROS建立與TEEMP間的安全通道,將TEEMP證書傳遞給TEEMP,進(jìn)行卡有效性校驗(yàn)和 TEEMP的有效性校驗(yàn)。TEE與TEEMP間的雙向校驗(yàn)完成后即協(xié)商會(huì)話密鑰,并使用該密鑰對(duì)兩者之間傳遞TEE初始化相關(guān)數(shù)據(jù)的會(huì)話進(jìn)行加密保護(hù)。
在這一過程中,終端TEE與TEEMP間的基于證書的雙向認(rèn)證流程如圖8所示。
圖8 終端TEE與TEEMP間的基于證書的雙向認(rèn)證流程
終端 TEE首先通過驗(yàn)證 TEEMP證書的方式對(duì)TEEMP的合法性進(jìn)行驗(yàn)證,然后TEEMP采用相同方式驗(yàn)證終端合法性。當(dāng)雙方完成驗(yàn)證后,開始會(huì)話密鑰協(xié)商過程并確定加密方案和會(huì)話密鑰,會(huì)話密鑰確定后即開始TEE初始化數(shù)據(jù)的加密傳輸過程。
4.3 初始化方案評(píng)估
TrustZone系統(tǒng)的軟硬件組合向用戶提供了定制TEE初始化方案的可能。采用用戶卡進(jìn)行TEE初始化的方案借助了一個(gè)可信實(shí)體——用戶卡,能夠保證終端啟動(dòng)后信任鏈仍然有效,可以有效防止以CA等軟件形式對(duì)TEE進(jìn)行初始化時(shí),終端操作系統(tǒng)可能面臨的風(fēng)險(xiǎn)。
用戶卡是電信運(yùn)營(yíng)商聯(lián)系用戶的重要紐帶,采用用戶卡對(duì)用戶TEE初始化后,運(yùn)營(yíng)商能夠借助TEEMP對(duì)用戶TEE進(jìn)行有效管理:一方面能夠有效避免第三方平臺(tái)可能存在的客戶隱私泄露和權(quán)限濫用問題;另一方面能夠保證在用戶換卡后,通過號(hào)碼關(guān)聯(lián)用戶原有配置并自動(dòng)完成用戶TEE的初始化,并可以對(duì)用戶TEE進(jìn)行動(dòng)態(tài)地可信更新,保證用戶可信環(huán)境的有效性。
而針對(duì)TrustZone架構(gòu)下,TEE雖保證了TA的運(yùn)行安全,但無法通過自身功能向用戶或遠(yuǎn)程應(yīng)用提供證明憑證的問題,本方案可以結(jié)合運(yùn)營(yíng)在TEE中的TA提供遠(yuǎn)程證明功能加以實(shí)現(xiàn)。TEE可以保證TA運(yùn)行TEE中,而TA可以遠(yuǎn)程證明TOS是可信的。
由本文的分析可知,TEE作為一種基于硬件隔離的安全解決方案,在有效地提升移動(dòng)終端安全性的同時(shí)也面臨一些不足。采用用戶卡對(duì)TEE進(jìn)行初始化的方案能夠滿足終端開機(jī)后對(duì)TEE進(jìn)行動(dòng)態(tài)可信初始化的需求,此外,該方法還可實(shí)現(xiàn)TEE的動(dòng)態(tài)可信更新,對(duì)于對(duì)數(shù)據(jù)安全性要求較高的行業(yè)類終端,可以充分利用卡+終端的能力保證客戶終端安全。
[1]ANWAR W,LINDSKOG D,ZAVARSKY P,et al.Redesigning secure elementaccesscontrolforNFC enabled Android smartphones using mobile trusted computing[C]//The 2013 IEEE International Conference on Information Society,June 24-26, 2013,Toronto,Canada.New Jersey:IEEE Press,2013:27-34.
[2]ZHENG X Y.Analysis and research of TrustZone technology[J]. Chinese Journal of Computers,2016(9):1912-1928.
[3]Global Platform device technology.TEE system architecture version 1.0.technical report GPD_SPE_009,global platform.org [R/OL].(2011-12-01)[2016-12-02].http://www.globalplatform. org/specificationsdevice.asp.
[4]GlobalPlatform Inc.GlobalPlatform device technology TEE system architecture version 1.0[EB/OL].(2011-12-01)[2016-12-02].http://www.globalplatform.org/specificationsdevice.asp.
[5]Unified extensible firmware interface specification,version 2.4 [EB/OL].(2014-12-01)[2016-12-02].https://www.baidu.com/ link?url=V5ABpKe6y6sK0qCg18NU4Ia42HpUazbjaKTbRzA3h8 uS0_cIzXjXjHoYVM78gY_G&wd=&eqid=a20d780700003c 540000000358845f61.
[6]焦四輩,楊正軍,國(guó)煒,等.智能終端可信執(zhí)行環(huán)境安全性分析[J].互聯(lián)網(wǎng)天地,2016(8):8-13. JIAO S B,YANG Z J,GUO W,et al.Analysis of security on intelligent terminal trusted execution environment[J].China Internet, 2016(8):8-13.
Initialization scheme of the trusted execution environment based on the user card
WANG Lei1,LU Meng2
1.Guangzhou Research Institute of China Telecom Co.,Ltd.,Guangzhou 510630,China 2.China Academy of Information and Communication Technology,Beijing 100191,China
Smartphones with a trusted execution environment(TEE)has an authority issue of the certificate with the loading stage.Based on the analysis of the initialization architecture and initializing scheme of the trusted execution environment,by using trust chain technology,a scheme was proposed to initialize the trusted terminal of the operator’s card as the trusted root,and ideas were provided for the telecom operators to use the user card resources to participate in the construction of the industrial chain of the trusted execution environment.
user card,card initialization,trusted execution environment
TN918
A
10.11959/j.issn.1000-0801.2017034
2016-12-02;
2017-01-23
王磊(1982-),男,現(xiàn)就職于中國(guó)電信股份有限公司廣州研究院,主要研究方向?yàn)橹悄芙K端安全、物聯(lián)網(wǎng)技術(shù)和安全方案。
魯萌(1984-),女,現(xiàn)就職于中國(guó)信息通信研究院,主要研究方向?yàn)榇髷?shù)據(jù)安全。