摘要: 隨著智能手機逐步演變成人們通信、信息交互、金融交易以及娛樂的中心,智能手機的安全問題也越來越多地引起人們的關注。以往在PC機上遇到的病毒、拒絕服務等問題也在智能手機上頻現。現有的專用硬件和多核結構方案在智能手機的安全通信方面存在一定的缺陷。在此提出了一個虛擬化技術應對方案,通過對硬件資源虛擬化,并把虛擬資源按需要隔離成安全可靠的分區用以運行不同的應用。其中一個隔離分區專門用來解決智能手機在通信安全方面面臨的挑戰。
關鍵詞: 智能手機; 虛擬化技術; 移動終端; 通信安全
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0076?03
0 引 言
迅速發展并日益普及的智能手機逐漸演變成了消費者移動通信,信息交互,金融交易和娛樂的中心。然而,隨著智能手機的功能越來越變得接近普通計算機或數據中心計算機,智能手機的安全性也同樣遭受到類似常用計算機遇到的麻煩,表現在:
脆弱性:由于數百萬行的應用代碼,未經嚴格的可靠性驗證,智能手機容易受到病毒、窺探、特洛伊木馬以及其他惡意軟件的困擾。
軟件缺陷:運行在智能手機上的OS不可避免地存在某些缺陷。由于未發現缺陷的存在,而使智能手機不斷受到外界的攻擊。支持標準應用開發的開放OS(如RimOS, WindowsPhone)、開放資源的OS(如Android,Linux)以及運行在智能手機上的應用在安全方面差異很大。
外來攻擊:運行在智能手機上的應用,包括通信客戶端,可能在系統層和進程級受到拒絕服務(DoS)攻擊。尤其是人們所關注的語音、文本消息、以及其他數據流可能會遭到竊聽。另外未經授權一方可能中斷重要的通信,偽造參與者的身份和內容。
在PC領域里,頻繁的緊急安全升級和打補丁,對于移動智能手機是難以接受的,這樣的安全方法會阻止智能手機的發展。因此,安全必須從智能手機生存周期中的設計階段開始。在理想情況下,智能手機的體系結構應該立足于現有的手持設備和平板電腦,部署現成的軟件平臺和應用,運行Android或Linux操作系統。設備要能支持常規通信(語音、文本、社交網絡等)和普通的聊天服務,也要能在類似設備或基礎設施之間進行信息安全交換。但是,這樣的要求很難滿足。首先就是安全通信涉及到常規應用,包括3G語音、VoIP、短消息、多媒體消息服務(SMS/MMS)和視頻等,而運行在安全環境中的客戶端應擁有加密數據流的功能;其次,需要開放網絡。利用無處不在的3G,WiFi和其他網絡實現安全通信。而GPRS,CDMA,802.11等自有的安全體系不足以支持安全和驗證系統需要,因為已經驗證了它們對嗅探、誘騙是脆弱的。還有,開放軟件也是必要的。智能手機越來越多地運行開放OS或開放資源的OS,如Android, Linux等。安全通信移動設備開發人員通常不會替換這些平臺,而是用安全、驗證過的軟件擴充或封裝它們。
1 解決途徑
智能手機在無線領域僅僅是個漫游代理,每一數碼位的安全都很重要。安全必須借助于清晰地分區和隔離實現。隔離可以保證如果一部分受到威脅,其余部分仍然安全。此外,可靠的隔離能使安全檢查從系統層展開。因此,智能手機的功能必須設有防火墻,就像IT網絡和局域網一樣設有防火墻。目前的解決途徑有:
(1)專用硬件。最可靠、最安全的方法就是隔離軟件在不同的硬件上運行程序。移動芯片組設有協處理器,用以加速圖形、視頻、音頻、甚至加密等功能。然而,這些專用協處理器通常被配置成從屬外圍設備,沒有為整個通信協議棧、語音和消息客戶端的運行提供足夠的支持環境。理論上,多個資源可以集成到一個硬件卡上,但是缺乏與不安全的設備發送和接收安全數據流的有效手段。
(2)多核結構。目前,高端智能手機和下一代智能手機的設計越來越多地以兩個或更多的ARM處理器核作為多核應用處理器。理論上,一個或多個處理器專門用于安全移動通信,提供了強有力的與開放OS和開放應用環境的隔離。多數情況下,使用一個CPU核作為移動通信安全處理,因為安全處理會降低整個設備性能。而且,即使用一個專用CPU核運行安全通信處理,但共享物理內存仍然會受到來自運行開放應用OS核的攻擊。
(3)虛擬化結構。構建安全移動平臺的一個全面而簡單的途徑就是引入移動虛擬化技術。虛擬化能在單處理器上運行多個OS環境,每個應用環境在專門的分區中被彼此隔離,并且為通信安全考慮,專設一個安全應用分區,如圖1所示。物理資源如內存和I/O設備也被專門分區。通過優化分區數目以滿足整個系統需要,這樣就允許在專門的分區內安全隔離設備管理功能。系統環境在各自的分區中重用,無需更多的工作。只有OS硬件抽象層部分(HAL)需要以相對低的工作和代價做一些調整。這樣,對網絡資源的訪問只能通過該安全應用接口,以此確保智能手機的安全性。
2 虛擬化方案的實現
虛擬化能使實時環境與OpenOS及常用硬件平臺或處理器上的其他運行環境并行運行。虛擬化軟件支持多種環境,維持系統的實時特性。虛擬化建立在虛擬機監控(VMM)基礎層之上,VMM模塊可進行配置。VMM提供了虛擬化要求的基本特性—內存分區,CPU虛擬化和調度。實現可靠的隔離。對于OS,在隔離分區中運行的不論是RTOS還是OpenOS不能直接訪問分區以外資源,即,它不能讀或寫其他分區,它的I/O訪問也受到限制。核心BSP組件提供了基本設備的虛擬化,如時鐘、定時器和可編程中斷控制器(PIC)。如果多個客體OS在同一處理器上運行,可實現在維持RTOS實時特性下調度客體OS。
資源分區:虛擬機對物理內存分區并安全地彼此隔離,每一分區分配給指定的客體OS。這樣,每一客體OS使用自己的內存管理機制和策略,不需要與其他客體OS接口,不能讀或寫入另一個OS分區。這種方法允許OS,例如Linux和Windows CE使用MMU,而那些沒有MMU的OS如Nucleus和VxWorks則在單處理器上協作運行。某一客體OS使用的I/O設備就只分配給該客體OS。于是,常用設備驅動程序可以不加修改地重用。
資源虛擬化:幾個客體OS所需的硬件資源如CPU, MMU和FPU被虛擬化后在所有的客體OS之間共享。CPU的共享機制基于保證實時客體OS被賦予最高優先級的調度策略。一旦一個客體OS被允許使用CPU,OS則使用其既有的策略調度它的應用和服務。MMU虛擬化后為每一個客體OS所私有。一個客體OS使用MMU與其他客體OS無關。
OS調度策略:為不同的OS提供可配置的調度策略。常用的策略是FIFO調度策略:給客體OS賦予優先級。RTOS的優先級最高,一旦需要,它將搶先任何其他客體OS,因為RTOS運行的是時間相關的關鍵任務。其他OS共享一個指定的優先級,可按FIFO方式調度,或按公平共享調度,取決于配置。
設備虛擬化:客體OS需要共享其他硬件資源,如核心設備與I/O外圍設備。客體OS使用的核心設備通常有:時鐘,定時器以及可編程中斷控制器和UART。使用的I/O外圍設備有:網絡接口控制器,磁盤控制器和串口。
I/O外圍設備:I/O設備如顯示屏、鍵盤、USB、音頻設備、閃存、照相機、藍芽接口和調制解調器等。
專用外圍設備:單一環境使用的I/O外圍設備,例如藍芽接口僅由Linux系統訪問。在這樣的配置中,客體OS可使用已有的驅動管理外圍設備。外圍設備產生的中斷被虛擬化后由核心BSP發送給客體OS。
共享外圍設備:有些I/O外圍設備可以由2個OS的應用訪問。例如,顯示屏可以由實時話音呼叫應用訪問,也可以由Linux系統瀏覽閃存上的文件系統訪問。一個客體OS擁有外圍設備,通過已有設備驅動管理它,好像它是一個專用設備。擁有設備的客體OS同時也運行后端驅動接收和協調來自要訪問該設備的其他客體OS的請求。后端驅動依靠已有設備驅動執行實際I/O操作。其他客體OS不再使用它們的設備驅動,但是使用“前端”驅動,為客體OS提供同一服務。這樣,前端設備驅動與其對等實體的后端驅動通信。這種模式稱作分離驅動模型。
通信:一個典型的OS支持多進程,提供這樣的服務:進程間同步和通信,調度策略,共享訪問系統和網絡接口,以及內存管理。把最合適的虛擬外圍設備放在底層通信機制的頂部保證了通信更好地適應應用需要,而且隱藏了底層的復雜性。這就使得運行在OpenOS中的應用與運行在RTOS中的應用有效的通信,使用最適當的通信方式。
監控:監控服務典型地用于開發中。在平臺上捕捉與調度相關的事件,如硬件中斷。這些事件在本地收集,然后由一個工具進行檢索和分析,該工具運行在與嵌入式設備相連的主系統上。
3 應用實例
隨著智能手機逐漸轉變為消費者移動通信、信息、金融事務處理和娛樂中心,安全、有效的數字權限管理(DRM)是很重要的。以在智能手機上播放視頻為例,虛擬化在一個OpenOS上建立一個專門的基于DRM的播放分區。通過安全應用監控,保證下載到OpenOS環境DRM播放器上的數據不會被的惡意軟件破壞。當智能手機用戶下載一個加密的DRM視頻時,使用安全連接。因為視頻被加密存儲,最符合用戶的期望。為了播放視頻,用戶必須使用可信任的DRM播放器,它是惟一有合適密鑰解碼視頻的播放器。安全應用建立在DRM播放器和OpenOS之間,確保DRM播放器不被加載和運行在OpenOS上的任何軟件或系統模塊所破壞。而且,DRM也能訪問播放視頻的顯示屏,保證解碼后視頻輸出不被捕獲。
4 結 語
用虛擬化技術構建智能手機的安全有以下好處:一個可信賴計算單元就可化解對開發的驗證和限制。在各自隔離的單元內部署現成的開放OS和協議棧。可靈活地實例化新單元以滿足安全體制的特殊需要以及支持它的技術。通過隔離和限制單元間通信API防御惡意軟件和單元間的安全,該開放OS的API可能受到病毒感染出現故障,但不會影響其他單元的安全通信軟件。高性能的快速進程間通信機制。通過單元間監控、優化、負荷平衡抵御拒絕服務(DOS)攻擊。
參考文獻
[1] 李芳社.虛擬化技術在通信基礎設施中的應用[J].現代電子技術,2009,32(8):156?158.
[2] 李芳社.用實時虛擬化技術設計連接設備[J].現代電子技術,2011,34(9):57?59.
[3] 吳建軍,馬文靜.使用VB2005設計Smartphone智能手機應用程序入門[J].福建電腦,2007(10):41?42.
[4] 楊新華,陳蜀宇,樊承澤.Windows CE系統下WAP瀏覽器的研究與設計[J].計算機工程與設計,2010,31(13):3088?3089.
[5] WIGLEY A, MOTH D, POOT P.Microsoft Mobile 移動應用開發寶典[M].張大威,譯.北京:清華大學出版社,2008.
[6] 郝玉峰,程顯峰,李科.面向智能手機語音識別應用的漢語語音數據庫[C]//第十一屆全國人機語音通訊學術會議論文集(一).北京:中國中文信息學會,2011:53?56.
[7] 陳光.基于虛擬化技術開發環境的研究[J].信息技術,2010(2):88?90,107.
[8] 萬兵.基于虛擬化技術的單CPU 3G手機發展趨勢[J].信息通信技術,2010(1):57?60.
[9] 辛軍,陳康,鄭緯民.虛擬化的集群資源管理技術研究[J].計算機科學與探索,2010(4):324?329.
[10] 田冰超.虛擬化技術研究與探索[J].武警學院學報,2010(4):86?89.