劉 莉 孟 杰 徐 寧
(中標軟件有限公司 上海 200030)(上?;A軟件工程技術(shù)研究中心 上海 200030)(li.liu@cs2c.com.cn)
操作系統(tǒng)是對計算機軟件硬件資源(包括對處理器、存儲器、外設、文件和作業(yè)等)實施管理的系統(tǒng)軟件,是連接計算機硬件與上層軟件及用戶的橋梁,其安全性至關(guān)重要.伴隨互聯(lián)網(wǎng)高度普及,針對操作系統(tǒng)的攻擊和威脅,如篡改資源配置、惡意程序被植入執(zhí)行、利用緩沖區(qū)(棧)溢出攻擊、非法接管系統(tǒng)管理員權(quán)限等,呈現(xiàn)多樣化、復雜化趨勢.
圖1 不帶特權(quán)虛擬機的虛擬化可信平臺
在此背景下,以保證系統(tǒng)資源機密性、完整性和可用性[1]為設計目標的安全操作系統(tǒng)應運而生并快速發(fā)展.但其仍有較大提升空間,主要表現(xiàn)在:1)用戶體驗方面.安全操作系統(tǒng)的使用和安全策略的配置缺乏靈活性和兼容性,影響易用性;由于采用大量安全技術(shù),導致系統(tǒng)的性能和效率有所下降.2)安全技術(shù)方面.通過軟件方式實現(xiàn)的安全內(nèi)核越來越復雜和龐大,使得保證安全內(nèi)核自身正確性和完整性的難度不斷增加;惡意攻擊手段的升級,對操作系統(tǒng)自身文件、數(shù)據(jù)和配置信息造成威脅,使得保持操作系統(tǒng)的完整性面臨挑戰(zhàn);操作系統(tǒng)運行狀態(tài)的動態(tài)性和安全策略的靜態(tài)性之間的矛盾,使得安全策略需要匹配更強適應系統(tǒng)環(huán)境變化的能力等[2-3].這些問題制約了安全操作系統(tǒng)的發(fā)展.
近年,可信計算作為新一代安全技術(shù)的重要組成,逐步融入安全操作系統(tǒng)發(fā)展,為實現(xiàn)操作系統(tǒng)自身的完整性、主體行為和客體數(shù)據(jù)的完整性以及優(yōu)化安全與性能之間的平衡提供有效途徑,也成為解決現(xiàn)實網(wǎng)絡安全威脅和支撐國產(chǎn)操作系統(tǒng)長遠發(fā)展的戰(zhàn)略舉措[4-5].
可信計算是通過保持計算環(huán)境及計算邏輯的完整性,為計算平臺提供對惡意代碼、非法操作的自主免疫能力.該技術(shù)已經(jīng)在虛擬化、云計算、工業(yè)控制等領(lǐng)域應用,并與嵌入式設備、物聯(lián)網(wǎng)及云端等技術(shù)方向加速融合.
基于可信計算技術(shù)的應用有很多,如通過與基于虛擬化的平臺進行融合,保障虛擬化平臺的可信性;將可信從虛擬化擴大至云平臺,對云計算環(huán)境的主機、虛擬機進行可信度量,以及對虛擬機內(nèi)部數(shù)據(jù)的安全進行管理,保障用戶能夠使用到合法的虛擬機及數(shù)據(jù)流向安全;基于可信網(wǎng)絡連接和遠程證明等技術(shù),實現(xiàn)工業(yè)控制系統(tǒng)等國家關(guān)鍵基礎設施的安全網(wǎng)絡數(shù)據(jù)傳送及平臺身份證明[6-7].
1) 虛擬化可信平臺
虛擬化可信平臺是基于虛擬安全隔離技術(shù)、通過與可信計算技術(shù)有機結(jié)合實現(xiàn)的系統(tǒng)平臺,使得每個虛擬機(virtual machine, VM)對應一個虛擬可信平臺模塊(trusted platform module, TPM),保證在虛擬TPM平臺之間共享物理TPM平臺資源的同時,實現(xiàn)虛擬TPM之間的特性.
虛擬化可信平臺的架構(gòu)分2種[8]:不帶特權(quán)虛擬機的平臺和帶特權(quán)虛擬機的平臺.
① 不帶特權(quán)虛擬機的平臺
如圖1所示,不帶特權(quán)虛擬機的平臺是通過在物理平臺和虛擬機間增加1個或多個抽象層來實現(xiàn)虛擬化,以與傳統(tǒng)的非虛擬化架構(gòu)實現(xiàn)簡單的兼容.
② 帶特權(quán)虛擬機的平臺架構(gòu)
如圖2所示,帶特權(quán)虛擬機的平臺架構(gòu)是使用特權(quán)虛擬機來代替虛擬機監(jiān)視器進行更復雜或者更危險的操作,以使核心的虛擬機監(jiān)視器更簡單和安全.
2) 可信云
可信云是利用可信計算技術(shù)解決云計算安全的有效方案,其應用主要集中在4個方面:
① 基于可信計算技術(shù),對云計算環(huán)境的主機、虛擬機進行可信度量,對虛擬機內(nèi)部數(shù)據(jù)的安全和虛擬機創(chuàng)建、遷移進行管理,保障用戶能夠使用到合法的虛擬機及數(shù)據(jù)流向安全;
② 應用可信計算的密鑰管理技術(shù),對云計算環(huán)境的密鑰統(tǒng)一高強度管理,防止被盜;
③ 針對云平臺用戶終端的可信識別問題,基于遠程身份證明技術(shù)(openattestation, OAT),研究云節(jié)點身份證明技術(shù),建立統(tǒng)一、集中的驗證系統(tǒng),為網(wǎng)絡中的計算機終端提供可信的身份驗證;
④ 針對虛擬機遷移問題,研究基于可信度量的虛擬機遷移技術(shù),保證云平臺的安全和可信等.
圖2 帶特權(quán)虛擬機的虛擬化可信平臺
如圖3所示,在可信云計算環(huán)境下,由基礎設施可信根出發(fā),首先度量基礎設施、基礎計算平臺軟硬件的可信性;然后由基礎計算平臺創(chuàng)建虛擬計算環(huán)境,并度量虛擬計算資源的可信性;最后支持虛擬環(huán)境下應用服務的可信性,并通過可信云管理平臺進行管理.
圖3 可信計算在云計算環(huán)境下的應用
可信云將主要實現(xiàn)以下功能:
① VM的安全防護.虛擬機監(jiān)視器(virtual machine monitor, VMM)層對不同VM進行動態(tài)和靜態(tài)度量,并為每個VM提供虛擬的TPM;利用可信計算對云計算平臺中的數(shù)據(jù)進行保護;對云計算節(jié)點和VM的運行平臺進行平臺身份證明,保證云計算節(jié)點和VM的可信性.
② 可信資源管理.形成通用云管理模塊,對云計算節(jié)點的物理可信芯片和為VM提供的虛擬化可信芯片提供的可信資源進行管理.
③ VM可信創(chuàng)建和遷移.在對VM進行操作時進行可信的驗證和管理,指定VM在可信的節(jié)點上創(chuàng)建或者只在可信的計算節(jié)點上進行遷移.
④ 度量和安全策略管理.對云計算節(jié)點系統(tǒng)以及對VM的安全和度量策略進行管理.
⑤ 網(wǎng)絡管理.依據(jù)VM的可信狀態(tài)對VM之間的網(wǎng)絡進行管理,為處于不同可信狀態(tài)的VM分配相應的虛擬網(wǎng)絡資源.
3) 工控領(lǐng)域的可信解決方案
如圖4所示,以系統(tǒng)內(nèi)主機為重點分層構(gòu)建可信計算體系,并建立可信的網(wǎng)絡連接機制.具體來說,將系統(tǒng)內(nèi)的不同區(qū)域進行安全等級劃分,實現(xiàn)分層次網(wǎng)絡訪問;將不同終端進行可信等級劃分,實現(xiàn)不同終端的訪問權(quán)限控制;加入縱向加密認證和橫向隔離訪問控制機制,實現(xiàn)了網(wǎng)絡接入控制;通過可信網(wǎng)絡連接機制,可在不安裝病毒軟件的情況下,從源頭杜絕安全事件的發(fā)生,保障系統(tǒng)環(huán)境的安全,解決系統(tǒng)主機終端的防病毒問題.同時,軟硬件投入少于傳統(tǒng)的安全加固手段,節(jié)約了成本.
圖4 可信計算技術(shù)在工控系統(tǒng)環(huán)境的應用
1) 可信計算技術(shù)在嵌入式設備的應用
嵌入式技術(shù)的發(fā)展極大地豐富了終端設備接入網(wǎng)絡的方式,如GPRSCDMA,WLA,Bluetoot,HomeRF等無線接入技術(shù)為獲取信息提供便利,同時也對嵌入式設備的安全性提出更高要求.
目前,國際上,可信計算組織(Trusted Computing Group, TCG)已成立如移動電話和PDA等專門的小組來制定嵌入式設備相關(guān)的可信標準規(guī)范[9];Atmel推出嵌入式TPM;Infineon也致力于嵌入式可信計算平臺的研究,并推出可移動的TPM;此外,Escrypt公司積極倡導嵌入式系統(tǒng)的安全性,針對汽車所面臨的危險,如遭遇盜竊、車主自身的誤操作、下載軟件的安全性等,提出面向汽車領(lǐng)域的可信計算技術(shù)[10].在國內(nèi),高可靠性嵌入式可信芯片、嵌入式實時操作系統(tǒng)的可信軟件基體系等方面也取得了部分研究成果[11-15].
2) 可信計算技術(shù)在物聯(lián)網(wǎng)的應用
物聯(lián)網(wǎng)在接入互聯(lián)網(wǎng)時將面臨眾多安全威脅,可信計算技術(shù)可確保系統(tǒng)參與者返回的結(jié)果的真實性,為保障物聯(lián)網(wǎng)的信息安全提供有效途徑[16].如用于身份認證的生物鑒別設備可使用可信計算技術(shù),確保沒有間諜軟件安裝在電腦或小型計算設備上,防止敏感的生物識別信息被竊取,這對于物聯(lián)網(wǎng)中的傳感器或RFID標簽的安全防控尤其重要.此外,對于有人類參與而非完全自動通過傳感器和RFID標簽采集數(shù)據(jù)的場景,特別是大型科學實驗類的物聯(lián)網(wǎng)應用,可信計算技術(shù)的支持更具有重要意義.
3) 可信計算技術(shù)在云端的應用
可信計算技術(shù)已在國外公有云以及金融行業(yè)等有高安全要求的云計算系統(tǒng)中得到廣泛應用,但在國內(nèi)還處于起步階段.業(yè)內(nèi)著名IT公司和高校研究力量,如中標軟件有限公司(操作系統(tǒng)廠商)、國民技術(shù)(芯片廠商)、百敖軟件有限公司(BIOS廠商)、英特爾(半導體芯片制造商)以及武漢大學等,聯(lián)合推動并實現(xiàn)了在TPM2.0標準版本上,中國商用密碼標準算法SM2,SM3,SM4在云計算中的實際應用.
可信操作系統(tǒng)是可信計算技術(shù)在操作系統(tǒng)產(chǎn)品中應用的成果,它以硬件或固件可信模塊為基礎,通過保證操作系統(tǒng)自身的完整性、主體行為,以預期的方式和意圖發(fā)生以及客體的數(shù)據(jù)完整、保密、可靠,同時支持多種安全策略來適應計算機運行環(huán)境變化,最終實現(xiàn)具有主動防御能力的操作平臺.
通常,可信操作系統(tǒng)的功能包括:可信引導、可信驗證、可信存儲和可信管理等,體系架構(gòu)如圖5所示:
圖5 可信操作系統(tǒng)的體系架構(gòu)
1) 系統(tǒng)可信啟動
引導過程是實現(xiàn)可信計算平臺的基點,基于硬件安全模塊,例如TPMTCM或TPCM的可信引導,保證從BIOS、引導程序到操作系統(tǒng)內(nèi)核,每一個步驟中引導實體的完整性,建立1條從平臺加電到操作系統(tǒng)安全啟動的可信鏈.即在系統(tǒng)的初始化開始就對要獲得控制權(quán)的代碼進行可信驗證,這樣就能保證啟動后的操作系統(tǒng)是處于安全可信的狀態(tài).
2) 可信引導
Intel可信執(zhí)行技術(shù)(trusted execution technology,TXT)通過硬件內(nèi)核和子系統(tǒng)來控制被訪問的計算機資源.諸如病毒、惡意代碼、間諜軟件和其他安全威脅將不會對計算機軟硬件資源構(gòu)成影響.可信引導(trusted boot, Tboot)利用TXT技術(shù)和TPM對系統(tǒng)內(nèi)核或者VMM執(zhí)行度量和認證.Tboot主要包含6個功能:度量啟動、度量環(huán)境的清除、數(shù)據(jù)重置保護、TXT內(nèi)存范圍的保護、TXT啟動控制策略工具和認證啟動,可充分保證系統(tǒng)啟動環(huán)境的可信.通過TXT,可實現(xiàn)操作系統(tǒng)在運行時,對系統(tǒng)配置和應用軟件的多次度量.
3) 可信內(nèi)核
可信內(nèi)核是指在原來安全內(nèi)核基礎上增加了可信度量模塊(CS2C trust measure module, CTMM),可掃描和度量系統(tǒng)內(nèi)的所有文件,包括可執(zhí)行文件、普通文件、模塊ko文件、動態(tài)鏈接庫文件等.CTMM在initrd中加載白名單策略,其中initrd將在grub階段被度量,保證此策略在加載之前不會被篡改.系統(tǒng)運行過程中將可對所有訪問到的普通文件進行可信度量.如果度量失敗,文件的訪問或者執(zhí)行將被拒絕.
一般地,可執(zhí)行文件在運行前都會進行動態(tài)度量,主要包括2個部分:
① 當啟動和裝載可執(zhí)行程序時,在內(nèi)核將可執(zhí)行文件裝載到進程中后,CTMM模塊會度量進程的數(shù)據(jù)段和地址段內(nèi)容,并存儲度量值,用于和該程序下次運行時的度量值進行比較.
② 當內(nèi)核在進程調(diào)度時,CTMM模塊會對進程的數(shù)據(jù)段和地址段進行度量,以確保運行時的度量值與裝載時的預期值是相同的.如果不同,CTMM將會終止進程的運行.
4) 可信身份認證
針對傳統(tǒng)安全操作系統(tǒng)身份認證機制的問題,基于硬件可信芯片TPM,TCM或TPCM的身份認證主要利用可信芯片提供的Hash算法功能模塊和安全信息存儲模塊,在登錄時對系統(tǒng)特權(quán)用戶進行認證.同時也支持在用戶登錄時利用可信芯片和IC卡結(jié)合的認證接口對系統(tǒng)用戶進行多因子可信身份認證.
5) OAT遠程證明
OAT作為遠程身份驗證的平臺,可為網(wǎng)絡中的計算機終端提供可信的身份驗證,OAT由服務器端和客戶端這2部分組成.其中服務器端負責收集客戶端的身份驗證數(shù)據(jù),這些數(shù)據(jù)主要是從客戶端的PCR中采集.服務器端部署有CA證書,每個客戶端的身份證書都是基于這個CA證書頒發(fā)的.
OAT不僅可以對主機平臺的完整性進行驗證,還可以對云平臺中的虛擬機進行身份驗證,保證其可信.
6) 信任鏈在云平臺中的擴展
在實現(xiàn)本機信任鏈的基礎上,為進一步保證云平臺中虛擬機的安全性,可將信任鏈擴展到虛擬機中.信任鏈的擴展如圖6所示:
圖6 信任鏈在云平臺中的擴展
首先從信任根開始,將BIOS和GRUB度量后開始執(zhí)行,然后進入Tboot階段,執(zhí)行TXT Launch指令時,根據(jù)制定的策略對Tboot本身、虛擬機管理器或內(nèi)核以及SINIT的模塊等進行測量,并把測量值擴展到PCR,為后面對平臺運行狀態(tài)的驗證奠定了基礎.
其中,Agent機制是為了實現(xiàn)可信鏈向虛擬機內(nèi)部傳遞而設計,主要包括2部分:客戶端和服務器端.客戶端負責幫助服務器端搜集宿主機和宿主機上虛擬機的狀態(tài)信息;服務器端則負責信息的匯總、解析和處理.
本文介紹了可信計算技術(shù)應用在虛擬化、云計算、工業(yè)控制等領(lǐng)域的現(xiàn)狀及其融入嵌入式設備、物聯(lián)網(wǎng)及云端等技術(shù)方向的可能,重點闡述了可信操作系統(tǒng)(可信計算技術(shù)應用于操作系統(tǒng)發(fā)展的產(chǎn)物)概念、體系架構(gòu)和涉及的關(guān)鍵技術(shù),為增強操作系統(tǒng)自身安全、形成可信軟硬一體化解決方案、提升用戶體驗進行有益探索.
[1]鄭顯義, 史崗, 孟丹. 系統(tǒng)安全隔離技術(shù)研究綜述[J]. 計算機學報, 2017, 40(5): 1057-1079
[2]石文昌. 安全操作系統(tǒng)開發(fā)方法的研究與實施[D]. 北京: 中國科學院軟件研究所, 2001
[3]梁洪亮. 支持多安全政策的安全操作系統(tǒng)的研究和實施[D]. 北京: 中國科學院軟件研究所, 2003
[4]沈昌祥. 把握操作系統(tǒng)發(fā)展契機[EB/OL]. (2014-07-23) [2017-12-10]. http://theory.people.com.cn/
[5]沈昌祥, 張大偉, 劉吉強, 等. 可信3.0戰(zhàn)略: 可信計算的革命性演變[J]. 中國工程科學, 2016, 18(6): 53-57
[6]Trusted Computing Group. TCG trusted network connect TNC architecture for interoperability[EB/OL]. (2012-05-03) [2017-12-10]. http://www.trustedcomputinggroup.org
[7] 譚勵, 楊明華, 韓婉嬌, 等. 面向工控系統(tǒng)的安全可信技術(shù)[J]. 計算機工程與設計, 2017, 38(1): 47-52
[8]Trusted Computing Group. TCG virtualized trusted platform white paper version 1.0[EB/OL]. (2007-10-23) [2017-12-10]. http://www.trustedcomputinggroup.org
[9]Trusted Computing Group. TCG applications[OL]. (2016-07-07) [2017-12-10]. http://www.trustedcomputinggroup.org/developers
[10]Trusted Computing Group. Secure embedded platforms with trusted computing: Automotive and other systems in the Internet of things must be protected[EB/OL]. (2012-06-01) [2017-12-10]. https://trustedcomputinggroup.org/secure-embedded-platforms-trusted-computing-automotive-systems-internet-things-must-protected/
[11]潘秋凡. 嵌入式可信計算平臺設計技術(shù)[D]. 西安: 西安電子科技大學, 2014
[12]張心. 基于可信計算技術(shù)的嵌入式安全保護體系研究[D]. 武漢: 華中科技大學, 2009
[13]李然. 基于TPM的可信嵌入式平臺的設計與實現(xiàn)[D]. 哈爾濱: 哈爾濱工業(yè)大學, 2012
[14]王博. 基于TPM的嵌入式可信終端的研究與設計[D]. 成都: 電子科技大學, 2011
[15]徐明迪, 楊連嘉. 嵌入式實時操作系統(tǒng)可信技術(shù)研究[J]. 計算機工程, 2014, 40(1): 130-133
[16]吳振強, 周彥偉, 馬建峰. 物聯(lián)網(wǎng)安全傳輸模型[J]. 計算機學報, 2011, 34(8): 1351-1364