包依勤
摘 要:隨著移動(dòng)終端應(yīng)用的日益增長(zhǎng),移動(dòng)終端需要處理重要任務(wù)的需求也越來(lái)越大,對(duì)移動(dòng)設(shè)備操作系統(tǒng)的安全性要求也越來(lái)越高。Android系統(tǒng)作為主流的移動(dòng)設(shè)備操作開放系統(tǒng),目前只憑軟件還不能滿足用戶對(duì)移動(dòng)設(shè)備的安全要求。而如果Android移動(dòng)設(shè)備中采用ARM公司的Trust Zone技術(shù),即可使系統(tǒng)平臺(tái)的安全性得到保證。文章針對(duì)TrustZone技術(shù)在Android系統(tǒng)中的應(yīng)用進(jìn)行了闡述,并對(duì)利用TrustZone技術(shù)保護(hù)移動(dòng)設(shè)備中的屏幕、內(nèi)存等外設(shè),保證支付安全以及DRM受保護(hù)視頻內(nèi)容等操作進(jìn)行了研究。
關(guān)鍵詞:Android;TrustZone;安全支付;DRM
中圖分類號(hào):TP391.081 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)10-00-04
0 引 言
隨著互聯(lián)網(wǎng)和移動(dòng)終端的快速發(fā)展,傳統(tǒng)的手機(jī)已經(jīng)滿足不了用戶的需求,用戶不僅僅只是打電話和發(fā)送短信,而是希望手機(jī)能夠做更多的事情,例如網(wǎng)購(gòu)、看剛上映的電影等,所以,手機(jī)的安全性得到用戶以及移動(dòng)設(shè)備廠商的高度重視。用戶在使用手機(jī)網(wǎng)購(gòu)時(shí),特別擔(dān)心輸入的密碼、銀行卡等信息是否安全。用戶在看付費(fèi)視頻時(shí),視頻內(nèi)容不能被隨意的復(fù)制,否則將損害眾多數(shù)字版權(quán)廠商的利益。因此,安全支付和視頻內(nèi)容版權(quán)保護(hù)就需要手機(jī)廠商和硬件廠商提高手機(jī)的安全性。
這些在傳統(tǒng)的手機(jī)軟件和硬件架構(gòu)中,實(shí)現(xiàn)起來(lái)相當(dāng)復(fù)雜,而且安全可靠性并不是令人非常滿意。一些廠商最原始的設(shè)計(jì)是將安全秘鑰寫到芯片中,但是如果芯片內(nèi)容被上層惡意軟件偽裝成系統(tǒng)服務(wù)進(jìn)行訪問(wèn),必然會(huì)帶來(lái)很大的風(fēng)險(xiǎn)。
然而,Android系統(tǒng)是一個(gè)開放的操作系統(tǒng),Android源代碼開放[1],所以Android系統(tǒng)還不是很安全。同時(shí),針對(duì)Android系統(tǒng)的惡意軟件越來(lái)越多,對(duì)于安全開發(fā)人員來(lái)說(shuō),惡意軟件的數(shù)量以及攻擊方式無(wú)法預(yù)期。用戶在使用安全支付功能時(shí),當(dāng)支付進(jìn)程與惡意進(jìn)程同時(shí)存在Android系統(tǒng)中時(shí),銀行卡、密碼等信息很有可能就被惡意軟件截獲,支付操作就變得非常危險(xiǎn)。當(dāng)用戶在播放付費(fèi)視頻時(shí),視頻內(nèi)容雖然是加密過(guò)的,但是如果密鑰被惡意軟件所截獲,DRM受保護(hù)的視頻內(nèi)容利用密鑰解密后將被惡意軟件任意進(jìn)行復(fù)制,將危及到全球數(shù)字版權(quán)廠商的利益。
本文主要闡述了在Android系統(tǒng)中基于ARM[2]的TrustZone安全軟件架構(gòu)技術(shù),并對(duì)TrustZone安全軟件架構(gòu)下手機(jī)支付模式和DRM視頻播放模式進(jìn)行了分析研究,TrustZone技術(shù)的應(yīng)用使Android系統(tǒng)平臺(tái)的安全性得到了很好的保證,有效地提高了網(wǎng)上支付的安全,維護(hù)了DRM數(shù)字版權(quán)廠商的利益。
1 Android中TrustZone軟件架構(gòu)
1.1 TrustZone技術(shù)
ARM TrustZone? 技術(shù)是系統(tǒng)范圍的安全方法,針對(duì)高性能計(jì)算平臺(tái)上的大量應(yīng)用,包括安全支付、數(shù)字版權(quán)管理(DRM)、企業(yè)服務(wù)和基于 Web 的服務(wù)。TrustZone 技術(shù)與 Cortex處理器[3]緊密集成,并通過(guò) AMBA AXI 總線和特定的 TrustZone 系統(tǒng) IP 塊在系統(tǒng)中進(jìn)行擴(kuò)展。此系統(tǒng)方法意味著可以保護(hù)安全內(nèi)存、加密塊、鍵盤和屏幕等外設(shè),從而可確保它們免遭軟件攻擊。隔離所有 SoC 硬件和軟件資源,使它們分別位于兩個(gè)區(qū)域(用于安全子系統(tǒng)的安全區(qū)域以及用于存儲(chǔ)其他所有內(nèi)容的普通區(qū)域)中。支持 TrustZone 的 AMBA AXI 總線構(gòu)造中的硬件邏輯可確保普通區(qū)域組件無(wú)法訪問(wèn)安全區(qū)域資源,從而在這兩個(gè)區(qū)域之間構(gòu)建強(qiáng)大邊界。將敏感資源放入安全區(qū)域的設(shè)計(jì),以及在安全的處理器內(nèi)核中可靠運(yùn)行軟件可確保資產(chǎn)能夠抵御眾多潛在攻擊,包括那些通常難以防護(hù)的攻擊[4](如使用鍵盤或觸摸屏輸入密碼)。
1.2 Android移動(dòng)設(shè)備開機(jī)啟動(dòng)流程
Android移動(dòng)設(shè)備中包含兩個(gè)操作系統(tǒng),分別為Secure OS和Normal OS 。設(shè)備在開機(jī)引導(dǎo)(如APQ8064)中,BootLoader啟動(dòng)流程分為3個(gè)階段,分別是PBL、SBL1~3和APPSBL。其中,PBL(Primary BootLoader)指的是手機(jī)固件中固化好的啟動(dòng)代碼,SBL(Secondary BootLoader)指第二啟動(dòng)代碼,SBL1~SBL3分別是手機(jī)第二啟動(dòng)的三個(gè)階段,APPSBL(Applications ARM BootLoader)指Android系統(tǒng)的引導(dǎo)代碼。Secure OS(即TrustZone鏡像)是在SBL2中加載并啟動(dòng)的。Normal OS(即Android操作系統(tǒng)),是由APPSBL引導(dǎo)的,包含Android內(nèi)核以及Android的相關(guān)系統(tǒng)服務(wù)。啟動(dòng)流程如圖1所示,從Power On 到Load TZ表明了Secure OS已經(jīng)啟動(dòng)完成,從SBL3到Android OS表明了Normal OS已經(jīng)啟動(dòng)完成,完成了Secure OS和Normal OS,則表明Android移動(dòng)設(shè)備正常啟動(dòng)。
圖1 Android移動(dòng)設(shè)備啟動(dòng)流程
ARM的TrustZone技術(shù)的作用就是:支持把多核系統(tǒng)劃分成關(guān)鍵系統(tǒng)資源運(yùn)行的安全環(huán)境和其他系統(tǒng)資源運(yùn)行的非安全環(huán)境。TrustZone隔離系統(tǒng)的關(guān)鍵部分只能在安全環(huán)境下訪問(wèn)這些部分,其基礎(chǔ)是Cortex-A9 MPCore硬件和AMBA AXI3總線標(biāo)準(zhǔn)。在TrustZone支持系統(tǒng)中,每一AXI會(huì)話包括一個(gè)非安全(NS)比特,用于表示此次會(huì)話來(lái)自非安全還是安全環(huán)境。每次會(huì)話利用這一信息,系統(tǒng)中的從機(jī)可以選擇根據(jù)其TrustZone狀態(tài)進(jìn)行響應(yīng)[5]。
1.3 Secure OS
Secure OS主要實(shí)現(xiàn)了一個(gè)分離內(nèi)核(separation kernel)的功能,與虛擬機(jī)監(jiān)控程序類似,分離(或分區(qū))內(nèi)核安全地隔離Android系統(tǒng)進(jìn)程的環(huán)境。Secure OS是利用ARM提供的TrustZone安全擴(kuò)展電路架構(gòu)來(lái)實(shí)現(xiàn)的,在這個(gè)系統(tǒng)中運(yùn)行的所有程序都是受保護(hù)的、受信任的,擁有非常安全的運(yùn)行空間,擁有自己獨(dú)立的系統(tǒng)堆棧以及內(nèi)存地址,是獨(dú)立于Android系統(tǒng)之外的操作系統(tǒng),與Android操作系統(tǒng)完全分隔。從外設(shè)、內(nèi)存地址空間、進(jìn)程運(yùn)行堆棧上完全分隔,從而可以保證Secure OS中進(jìn)程的安全執(zhí)行,避免Android系統(tǒng)中惡意進(jìn)程的干擾。當(dāng)手機(jī)中的進(jìn)程需要執(zhí)行某些敏感的操作(例如安全支付、讀取DRM密鑰等)時(shí),都需要在這個(gè)系統(tǒng)空間中去認(rèn)證并執(zhí)行,如果認(rèn)證失敗,就會(huì)直接產(chǎn)生中斷,告訴Android系統(tǒng)這個(gè)操作是不安全的,最終執(zhí)行失敗。在Android移動(dòng)設(shè)備中執(zhí)行有關(guān)安全特性的操作時(shí),Secure OS能夠有效的隔離惡意代碼的攻擊,其中,系統(tǒng)空間的隔離是最安全的保障。
1.4 Normal OS
在移動(dòng)設(shè)備中,Normal OS就是Android OS。在此系統(tǒng)中,用戶可以自由安裝互聯(lián)網(wǎng)的軟件,可以瀏覽互聯(lián)網(wǎng)網(wǎng)頁(yè),但其安全性相對(duì)于Secure OS要低很多。由于Android OS采用Linux安全機(jī)制,從系統(tǒng)上能夠保證Android OS一定程度的安全性,可以保證Android OS免受攻擊,但是當(dāng)用戶或者非法分子一旦將Android移動(dòng)設(shè)備取得root管理員權(quán)限后,Android系統(tǒng)就變得十分不安全,互聯(lián)網(wǎng)中的惡意軟件就可以隨意修改設(shè)備中的文件、訪問(wèn)用戶的資料,勢(shì)必給用戶帶來(lái)極大的利益損失。結(jié)合Secure OS利用TrustZone技術(shù),可以有效的保證手機(jī)的安全性,在不缺失Android系統(tǒng)給用戶帶來(lái)的極方便操作以及非常好的用戶體驗(yàn)的同時(shí),又能保障移動(dòng)設(shè)備的安全,可以說(shuō)ARM公司的TrustZone方案完全保障了移動(dòng)設(shè)備廠商等的利益,使用戶用的安心。
1.5 Android安全軟件架構(gòu)的實(shí)現(xiàn)
在Android OS中,要實(shí)現(xiàn)與Secure OS通信,必須在內(nèi)核中集成TrustZone驅(qū)動(dòng),并在Android系統(tǒng)HAL層(Hardware Abstract Layer硬件抽象層)使用TrustZone API實(shí)現(xiàn)本地系統(tǒng)庫(kù),在Framework中實(shí)現(xiàn)TrustZone客戶端服務(wù)進(jìn)程,使得移動(dòng)設(shè)備能夠滿足用戶的某些安全特性的需求。當(dāng)Android OS需要切換到Secure OS執(zhí)行相關(guān)安全操作時(shí),需要向TrustZone客戶端服務(wù)進(jìn)程發(fā)出請(qǐng)求,隨后服務(wù)進(jìn)程調(diào)用TrustZone本地庫(kù)(即集成了TrustZone API系統(tǒng)庫(kù)),隨后轉(zhuǎn)交給內(nèi)核調(diào)用TrustZone驅(qū)動(dòng)去切換CPU工作模式到Monitor Mode,再切換到Secure OS的執(zhí)行空間,有Core核心層分發(fā)請(qǐng)求安全操作事件,User用戶層執(zhí)行安全操作。這種安全架構(gòu)從內(nèi)存空間以及系統(tǒng)隔離方式上保證了操作的安全性,不管Android OS層有多少惡意進(jìn)程,都無(wú)法進(jìn)入Secure OS空間,用戶操作的安全性都能得到很好的保障[6]。
從Android OS切換到Secure OS的過(guò)程如圖2所示。當(dāng)Android OS層的App(例如支付、DRM視頻播放等)需要完成安全性任務(wù)時(shí),向Frameworks層的TZ(TrustZone) client請(qǐng)求;如果是DRM視頻播放任務(wù),則需要通過(guò)Android的DRM service與TZ client請(qǐng)求;如果是支付任務(wù),則直接向TZ client發(fā)出請(qǐng)求。TZ client收到上層的App請(qǐng)求后,通過(guò)調(diào)用HAL層的TZ Native庫(kù),向Kernel層的TZ driver發(fā)出請(qǐng)求,TZ driver處理相應(yīng)的請(qǐng)求,通過(guò)SMC命令,切換到Secure OS中的Monitor模式。在Secure OS空間,通過(guò)Monitor監(jiān)視器完全切換到Secure OS的系統(tǒng)堆??臻g以及進(jìn)程空間,有Secure OS的Core核心層通知Secure OS上層的TZ service服務(wù)處理任務(wù),再由TZ service負(fù)責(zé)分發(fā)安全性任務(wù)請(qǐng)求。此時(shí),已經(jīng)完成Android OS向Secure OS請(qǐng)求安全任務(wù)的請(qǐng)求,最終由Secure OS空間的App層去處理相應(yīng)的安全性任務(wù)請(qǐng)求,根據(jù)不同的任務(wù)請(qǐng)求做出相應(yīng)的動(dòng)作,例如DRM視頻解碼任務(wù),則DRM App獲取密鑰解密視頻內(nèi)容,或者支付任務(wù),則通過(guò)內(nèi)存塊保護(hù)或者總線保護(hù)手段鎖住顯示內(nèi)存空間。在手機(jī)使用中,主要的安全需求包括手機(jī)支付、DRM視頻播放服務(wù)等,為了保證操作或者某些特殊資源訪問(wèn)的安全,需要切換到Secure OS下,執(zhí)行相關(guān)的代碼或者相關(guān)的外設(shè)訪問(wèn)。
圖2 android系統(tǒng)切換流程
2 手機(jī)支付模式分析
在手機(jī)彈出支付頁(yè)面時(shí),Android系統(tǒng)就會(huì)切換到Secure OS中,使用TrustZone安全擴(kuò)展架構(gòu)保護(hù)TouchScreen、Graphics以及內(nèi)存、總線地址等外設(shè),這些外設(shè)只能在Secure OS中被訪問(wèn),而且Secure OS運(yùn)行的都是可靠安全的程序。相對(duì)于Android開發(fā)的操作系統(tǒng),免受惡意軟件的攻擊。
當(dāng)用戶需要使用手機(jī)支付時(shí),Android操作系統(tǒng)就會(huì)請(qǐng)求切換CPU模式,稱之為Monitor Mode,即監(jiān)控模式。在非常安全的環(huán)境下,CPU就會(huì)在Monitor Mode中切換到特權(quán)模式,進(jìn)入Secure OS安全環(huán)境。這樣便保證了Android系統(tǒng)和Secure OS之間軟件空間的獨(dú)立性。由于Secure OS運(yùn)行于TrustZone之上,所以Secure OS有權(quán)限對(duì)TouchScreen以及Graphics外設(shè)訪問(wèn),而普通的系統(tǒng)Android OS是沒(méi)有權(quán)限讀取這部分內(nèi)存以及這些外設(shè)的,所以這就保證了在硬件空間上的獨(dú)立性[7]。
Android手機(jī)支付流程如圖3所示。當(dāng)用戶需要輸入用戶名密碼或者銀行卡號(hào)密碼時(shí),支付軟件向TZ client請(qǐng)求保護(hù)相應(yīng)外設(shè),例如觸摸屏、屏幕、內(nèi)存等外設(shè),隨后TZ client通過(guò)一系列機(jī)制切換到Secure OS,Secure OS核心收到該請(qǐng)求,分發(fā)給上層中的進(jìn)程,安全環(huán)境下的支付進(jìn)程通過(guò)一些服務(wù)獲取觸摸屏上的觸摸信息,即支付信息,例如支付密碼等,隨后將這些信息發(fā)送給支付服務(wù)器。當(dāng)支付服務(wù)器處理支付信息后,向Android OS的支付進(jìn)程反饋支付結(jié)果,Android OS中的支付進(jìn)程最終將支付結(jié)果通過(guò)UI顯示給用戶,讓用戶得知是否支付成功。這種支付模式將所有有關(guān)銀行卡、密碼等敏感的信息全部由Secure OS中的支付進(jìn)程獲取,保證了手機(jī)支付安全性和可靠性。
由此可見(jiàn),TrustZone的安全性可靠保證了手機(jī)購(gòu)物方式的快速發(fā)展,給人們生活帶來(lái)了極大的便利。
圖3 android手機(jī)支付流程
3 DRM視頻播放模式分析
DRM全稱是Digital Rights Management,叫做數(shù)字版權(quán)管理,是一種數(shù)字內(nèi)容版權(quán)保護(hù)技術(shù),目前這種技術(shù)主要用于國(guó)外。因?yàn)閲?guó)外的很多影片公司視頻版權(quán)意識(shí)非常強(qiáng),很忌諱用戶不用支付相應(yīng)的報(bào)酬就可以播放他們自己的視頻,所以都利用DRM的方式保護(hù)自己的視頻版權(quán),用戶需要付費(fèi)觀看,并且不能夠通過(guò)拷貝方式給其他設(shè)備播放或者就是限制設(shè)備播放次數(shù)或者播放截止時(shí)間,使得用戶無(wú)法通過(guò)非法手段竊取視頻內(nèi)容,極大地保護(hù)了視頻內(nèi)容提供商的利益。這些功能雖然在軟件方面設(shè)計(jì)很簡(jiǎn)單,但是對(duì)于Android設(shè)備來(lái)說(shuō),網(wǎng)絡(luò)上存在著大量的惡意軟件,只要用戶將Android設(shè)備root權(quán)限后,惡意軟件就可以非法篡改這些信息,所以關(guān)于DRM的軟件設(shè)計(jì)務(wù)必需要考慮大量惡意進(jìn)程同時(shí)存在危險(xiǎn)性,而通過(guò)TrustZone就完全可以保證其安全。
DRM對(duì)視頻內(nèi)容版權(quán)進(jìn)行保護(hù)的方式主要有兩方面:第一方面是通過(guò)License File,這個(gè)文件用于檢查該視頻的許可證以及一些限制使用參數(shù);第二方面是密鑰,包括私有密鑰和視頻解碼密鑰[8],這兩種密鑰可以順利讓加密好的視頻流進(jìn)行解密。
在移動(dòng)設(shè)備中,需要保證其安全性的就是許可證文件、密鑰和解碼后的視頻流。通常許可證以及密鑰是通過(guò)文件的形式放在存儲(chǔ)器(閃存)上,而這個(gè)存儲(chǔ)器則由Secure OS進(jìn)行管理,并且只有它能訪問(wèn),這樣Android進(jìn)程是無(wú)法訪問(wèn)到這一塊存儲(chǔ)器上的內(nèi)容。Android OS空間的視頻播放軟件即我們常說(shuō)的視頻播放器在播放這類視頻時(shí),都需要向Android Framework層的DRM Service請(qǐng)求,最終所有請(qǐng)求都是通過(guò)DRM Service轉(zhuǎn)換成TZ請(qǐng)求后,與Secure OS空間的DRM進(jìn)程通信。License驗(yàn)證以及密鑰讀取、視頻解碼都是在Secure OS空間里面完成的。
DRM視頻播放的詳細(xì)流程如圖4所示。Movie軟件從視頻提供商獲取已經(jīng)加密的視頻流,向DRM Service發(fā)出請(qǐng)求,DRM Service收到請(qǐng)求后,將加密的視頻流放置在內(nèi)存中,通過(guò)TZ client與Secure OS的DRM管理進(jìn)程進(jìn)行通信。經(jīng)過(guò)上述流程,整個(gè)軟件運(yùn)行空間就切換到Secure OS中,安全環(huán)境中的DRM進(jìn)程讀取License File,如果不存在或者與遠(yuǎn)程提供商服務(wù)器確認(rèn)出錯(cuò),就會(huì)拒絕解密,用戶端呈現(xiàn)出來(lái)的就是無(wú)法播放該視頻。License File以及密鑰認(rèn)證成功后,Decrypto解碼器[9]負(fù)責(zé)將視頻內(nèi)容提供商提供的加密視頻流解密,變成正常的視頻流,最終由Codec對(duì)這個(gè)視頻流進(jìn)行解碼,交給MDP(Mobile Display Process,稱為移動(dòng)顯示處理器)處理及顯示。
圖4 DRM視頻播放流程
因?yàn)镈RM視頻內(nèi)容認(rèn)證以及解密、解碼均是在Secure OS環(huán)境中操作的,所以,Android OS層的任何進(jìn)程或者服務(wù)都無(wú)法竊取到最終的顯示內(nèi)容,所以極大程度地保護(hù)了數(shù)字視頻內(nèi)容。基于TrustZone硬件架構(gòu)的軟件層設(shè)計(jì)保護(hù)了視頻內(nèi)容提供商的利益,為原創(chuàng)視頻以及電影保證了創(chuàng)作的積極性。
通常Android系統(tǒng)空間運(yùn)行的是安全要求不高的進(jìn)程,而Secure OS空間運(yùn)行的是安全性極高的進(jìn)程,所以將需要保護(hù)的文件以及內(nèi)存外設(shè)等安排在Secure OS中訪問(wèn),這樣,就能夠保證Android移動(dòng)設(shè)備播放DRM視頻的安全性。
4 結(jié) 語(yǔ)
Android系統(tǒng)是目前手機(jī)最流行的操作系統(tǒng),ARM架構(gòu)處理器則是大部分移動(dòng)終端的CPU,而人們對(duì)手機(jī)的安全性越來(lái)越重視,這也就要求軟件廠商和硬件廠商都需要保證手機(jī)數(shù)據(jù)的安全性。ARM推出的TrustZone擴(kuò)展外設(shè)保證了硬件上的隔離,Secure OS保證了軟件上的隔離,相當(dāng)于把安全的操作全部放在沙盒中,利用軟硬件的隔離方式,實(shí)現(xiàn)了手機(jī)的安全特性。
參考文獻(xiàn)
[1]鄭力明,廖明華.Android安全機(jī)制分析與解決方案初探[J].科學(xué)技術(shù)與工程,2011,11(26):6350-6355.
[2]李宇成,李國(guó)輝,趙興彩. 基于ARM嵌入式系統(tǒng)的空閑車位檢測(cè)方法[J].科學(xué)技術(shù)與工程,2013,13(21):6118-6123.
[3]杜斌,陳澤華.基于Cortex-M3和互聯(lián)網(wǎng)的分布式測(cè)試系統(tǒng)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2013,13(2):354-360.
[4]秦緒佳,王建奇,朱思達(dá),等.基于GPU的四維醫(yī)學(xué)圖像動(dòng)態(tài)快速體繪制[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011,23(11):1789-1798.
[5] ARM Company. TrustZone? Security Foundation by ARM?.[EB/OL] .http://www.arm.com/zh/products/processors/technologies/trustzone.php.
[6] StefanoZammattio, CliveDavies. 使用ARM的TrustZone技術(shù),針對(duì)安全和非安全應(yīng)用劃分系統(tǒng)[J].電子產(chǎn)品世界,2013(9):21-22.
[7] TOM R., HALFHILL. TrustZone Security Extensions Strengthen ARMv6 Architecture[EB/OL].http://www.arm.com/miscPDFs/4136.pdf,2004.
[8]于啟紅,李繼國(guó).抗密鑰泄漏的基于身份的加密方案[J].科學(xué)技術(shù)與工程,2013,13(28):8310-8314.
[9]楊平,安博文.超分辨率掃描成像系統(tǒng)圖像無(wú)損壓縮算法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(7):210 - 213,244.