徐天琦,劉淑芬,韓 璐
(吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,長春 130012)
云計(jì)算體現(xiàn)了“網(wǎng)絡(luò)就是計(jì)算機(jī)”的思想,將大量計(jì)算資源、存儲資源與軟件資源鏈接在一起,形成巨大規(guī)模的共享虛擬IT資源池,為遠(yuǎn)程計(jì)算機(jī)用戶提供IT服務(wù)[1].云計(jì)算以其良好的可擴(kuò)展性、按需服務(wù)及經(jīng)濟(jì)便捷等優(yōu)勢得到廣泛應(yīng)用.
與傳統(tǒng)技術(shù)相比,云計(jì)算信息資源更集中,安全風(fēng)險(xiǎn)更大[2].本文從虛擬化服務(wù)器[3]出發(fā),提出一種基于KVM(kernel-based virtual machine)的可信虛擬化架構(gòu),使KVM 安全性更能滿足用戶的要求.
虛擬化是云計(jì)算的核心技術(shù),它將所有可應(yīng)用資源高度抽象化,如虛擬內(nèi)存技術(shù)[4]可理解為將物理內(nèi)存資源高度抽象化;將虛擬化技術(shù)應(yīng)用于云計(jì)算可令資源共享更徹底.基于虛擬化技術(shù)的云計(jì)算平臺架構(gòu)如圖1所示.
基礎(chǔ)架構(gòu)平臺上是管理平臺,可同時(shí)管理多臺虛擬機(jī);每臺虛擬機(jī)可視為一個(gè)與其他虛擬機(jī)相隔離的硬件環(huán)境,即每臺虛擬機(jī)均可運(yùn)行與彼此互不相同的操作系統(tǒng).虛擬化技術(shù)可針對硬件資源、操作系統(tǒng)及應(yīng)用服務(wù)層分別實(shí)現(xiàn),越底層的技術(shù)難度越大,業(yè)務(wù)靈活性越好.如虛擬專用服務(wù)器(VPS)用戶具有獨(dú)立服務(wù)器的功能,可按照需要自行安裝應(yīng)用程序和數(shù)據(jù)庫,但操作系統(tǒng)不可更改;而采用服務(wù)器集群的虛擬化技術(shù)可隨意更改操作系統(tǒng)[5].
云計(jì)算的虛擬化技術(shù)包含虛擬整合、虛擬拆分和虛擬遷移[6].虛擬整合統(tǒng)一管理云計(jì)算基礎(chǔ)架構(gòu)資源;虛擬拆分將一個(gè)物理服務(wù)器拆分為若干可服務(wù)于不同用戶且互不干擾的虛擬機(jī);虛擬遷移技術(shù)可有效幫助云平臺平衡資源消耗和運(yùn)行成本等.
圖1 虛擬化云計(jì)算平臺的抽象架構(gòu)Fig.1 Abstract architecture of virtual cloud computing platform
云計(jì)算安全問題主要包括身份和訪問安全、物理安全、網(wǎng)絡(luò)安全、數(shù)據(jù)安全和虛擬化安全[7].相比傳統(tǒng)技術(shù),虛擬化是云計(jì)算特有的,因此傳統(tǒng)安全措施很難在根本上解決虛擬化安全問題.按層次綜合分析,可將虛擬化安全分為兩部分:虛擬化軟件安全和使用虛擬化技術(shù)的虛擬化服務(wù)器安全[8].表1列出了虛擬化安全分層分析結(jié)果.
表1 虛擬化安全分層分析Table 1 Layer analysis of virtualization security
由于一個(gè)物理服務(wù)器可供多個(gè)虛擬機(jī)使用,所以當(dāng)某一虛擬機(jī)出現(xiàn)安全問題并危及到該服務(wù)器時(shí),很可能影響其他使用此服務(wù)器虛擬機(jī)的安全,因此虛擬化服務(wù)器的安全性十分重要.本文選擇具有TPM安全模塊的虛擬服務(wù)器[9],通過將TPM加入KVM架構(gòu)以增強(qiáng)其安全性.
KVM是基于Linux內(nèi)核的虛擬化基礎(chǔ)架構(gòu),如圖2所示.其原理如下:通過一個(gè)可加載的內(nèi)核模塊KVM Driver,將Linux系統(tǒng)內(nèi)核轉(zhuǎn)化為VMM(virtual machine monitor);并在Linux操作系統(tǒng)的用戶模式和內(nèi)核模式外,添加第三種運(yùn)行模式 客戶模式(guest mode),虛擬機(jī)即運(yùn)行在該運(yùn)行模式下.因此,在KVM基礎(chǔ)架構(gòu)中,虛擬機(jī)被視為一個(gè)常規(guī)的Linux進(jìn)程,接收Linux本身調(diào)度程序的統(tǒng)一調(diào)度,從而KVM擁有Linux內(nèi)核所擁有的所有功能.
與其他裸金屬架構(gòu)(Xen,VMware ESX等)相比,KVM只是Linux內(nèi)核中的一個(gè)模塊,因此在設(shè)計(jì)方案中借鑒了QEMU的內(nèi)容,對其進(jìn)行修改以滿足KVM對虛擬化及I/O等功能的需要,與QEMU結(jié)合的KVM架構(gòu)如圖3所示[10].但這種解決方案中虛擬機(jī)對I/O操作處理流程切換過多,嚴(yán)重影響I/O性能;因此,可通過合并客戶操作系統(tǒng)中連續(xù)的I/O指令及消除客戶操作系統(tǒng)中的冗余操作進(jìn)行優(yōu)化[11].
此外,在可信平臺模塊方面,Xen虛擬機(jī)已加入了對虛擬可信平臺模塊的支持,方案實(shí)質(zhì)是采用軟件的方式實(shí)現(xiàn)物理可信平臺模塊的功能操作;文獻(xiàn)[12]采用信息代理的方式實(shí)現(xiàn)了QEMU的虛擬可信平臺模塊.本文提出一種在QEMU中添加TPM設(shè)備的方式實(shí)現(xiàn)KVM虛擬化可信平臺模型.
圖2 KVM基本架構(gòu)Fig.2 Basic KVM architecture
圖3 結(jié)合QEMU的KVM架構(gòu)Fig.3 KVM architecture with QEMU
在虛擬化的云計(jì)算平臺抽象架構(gòu)及結(jié)合QEMU的KVM架構(gòu)基礎(chǔ)上,加入對可信平臺模塊的支持,可設(shè)計(jì)出如圖4所示新的KVM架構(gòu)模型.該模型通過使用如下方式建立一個(gè)從基礎(chǔ)架構(gòu)平臺、管理平臺到應(yīng)用服務(wù)平臺均可信的KVM架構(gòu):使用帶有TPM設(shè)備的物理設(shè)施,添加QEMU對虛擬TPM的支持及添加虛擬客戶機(jī)操作系統(tǒng)對虛擬TPM的支持.
圖4 KVM可信虛擬化平臺模型Fig.4 KVM trusted virtualization platform model
該模型的基礎(chǔ)架構(gòu)平臺仍是包括服務(wù)器在內(nèi)的存儲、網(wǎng)絡(luò)等商業(yè)硬件資源,且這些硬件資源需要支持TPM設(shè)備.這是因?yàn)閾碛蠺PM模塊是構(gòu)建可信平臺的前提,在這一層加入TPM設(shè)備,能提供平臺所需的密碼等服務(wù).
在可信的硬件環(huán)境(基礎(chǔ)架構(gòu)平臺)上,是已轉(zhuǎn)化為VMM的Linux內(nèi)核.該層需要安裝TPM的設(shè)備驅(qū)動(dòng)程序,以確保在該平臺上運(yùn)行的所有進(jìn)程(虛擬機(jī)視為普通進(jìn)程)都可以擁有操作底層物理TPM設(shè)備這一功能.同時(shí),TPM管理器也設(shè)置在該層,用于統(tǒng)一管理虛擬機(jī)進(jìn)程中的各虛擬TPM設(shè)備.對于KVM云平臺架構(gòu),該層即為VMM管理平臺,且具有Linux系統(tǒng)自身具備的安全機(jī)制.
在VMM上是服務(wù)平臺.這一層需要在QEMU硬件模擬器中加入虛擬TPM設(shè)備,以普通進(jìn)程形式存在的虛擬機(jī)可通過這部分實(shí)現(xiàn)相應(yīng)的TPM操作,并認(rèn)為此即為真實(shí)的物理TPM設(shè)備.此外,還需要針對QEMU中的虛擬TPM設(shè)備,編寫QEMU所在虛擬機(jī)操作系統(tǒng)可支持的驅(qū)動(dòng)程序,即可實(shí)現(xiàn)如圖5所示的訪問過程.由圖5可見,KVM虛擬機(jī)可提供具有封閉性及隔離性的環(huán)境,包括TPM在內(nèi)的安全模塊及驅(qū)動(dòng)流程可確保信息在傳遞過程中的安全性;因QEMU添加了虛擬TPM設(shè)備,故在其上運(yùn)行的虛擬機(jī)認(rèn)為QEMU中即存在真實(shí)的物理TPM設(shè)備,認(rèn)為其并非是通過QEMU再向下訪問得到的,這也保證了架構(gòu)的透明性.
圖5 通過TPM實(shí)現(xiàn)相關(guān)功能Fig.5 Relative function realized through TPM
綜上所述,在本文提出的架構(gòu)中,基礎(chǔ)架構(gòu)平臺—管理平臺—應(yīng)用服務(wù)平臺均表現(xiàn)為相對可信并安全的.由CRTM,TPM及其與主板的連接構(gòu)成信任根,由此開始,通過可信引導(dǎo),基礎(chǔ)架構(gòu)平臺(硬件平臺)、VMM管理平臺(操作平臺)、應(yīng)用服務(wù)平臺(應(yīng)用)逐級度量認(rèn)證,并逐級信任,形成了“信任根—硬件平臺—操作平臺—應(yīng)用”的信任鏈[13],把信任擴(kuò)展到整個(gè)平臺,從而確認(rèn)了該平臺的可信.
[1]馮登國,張敏,張妍,等.云計(jì)算安全研究 [J].軟件學(xué)報(bào),2011,22(1):71-83.(FENG Dengguo,ZHANG Min,ZHANG Yan,et al.Study on Cloud Computing Security [J].Journal of Software,2011,22(1):71-83.)
[2]王哲,區(qū)洪輝,朱培軍.云計(jì)算安全方案與部署研究 [J].電信科學(xué),2012(8):124-130.(WANG Zhe,OU Honghui,ZHU Peijun.Cloud Computing Security Architecture and Implementation[J].Telecommunications Science,2012(8):124-130.)
[3]王敏,李靜,范中磊,等.一種虛擬化資源管理服務(wù)模型及其實(shí)現(xiàn) [J].計(jì)算機(jī)學(xué)報(bào),2005,28(5):856-863.(WANG Min,LI Jing,F(xiàn)AN Zhonglei,et al.A Service Model for Virtual Resource Management and Its Implementation[J].Chinese Journal of Computers,2005,28(5):856-863.)
[4]李亞瓊,宋瑩,黃永兵.一種面向虛擬化云計(jì)算平臺的內(nèi)存優(yōu)化技術(shù) [J].計(jì)算機(jī)學(xué)報(bào),2011,34(4):684-693.(LI Yaqiong,SONG Ying,HUANG Yongbing.A Memory Global Optimization Approach in Virtualized Cloud Computing Environments[J].Chinese Journal of Computers,2011,34(4):684-693.)
[5]張怡,孫志剛.面向可信網(wǎng)絡(luò)研究的虛擬化技術(shù) [J].計(jì)算機(jī)學(xué)報(bào),2009,32(3):417-423.(ZHANG Yi,SUN Zhigang.Virtualization Technology for Trustworthy Network Research[J].Chinese Journal of Computers,2009,32(3):417-423.)
[6]談圳.云計(jì)算虛擬化技術(shù)研究 [J].信息技術(shù)與信息化,2012,157(1):54-57.(TAN Zhen.The Reasearch of Cloud Computing Virtualization Technology[J].Information Technology and Informatization,2012,157(1):54-57.)
[7]王惠蒞,楊晨,楊建軍.云計(jì)算安全和標(biāo)準(zhǔn)研究 [J].信息技術(shù)與標(biāo)準(zhǔn)化,2012(5):16-19.(WANG Huili,YANG Chen,YANG Jianjun.Information Security and Standard of Cloud Computing [J].Information Technology & Standardization,2012(5):16-19.)
[8]房晶,吳昊,白松林.云計(jì)算的虛擬化安全問題 [J].電信科學(xué),2012,28(4):135-140.(FANG Jing,WU Hao,BAI Songlin.Virtualization Security Issues in Cloud Computing[J].Telecommunications Science,2012,28(4):135-140.)
[9]魏亮.云計(jì)算安全風(fēng)險(xiǎn)及對策研究 [J].郵電設(shè)計(jì)技術(shù),2011(10):19-22.(WEI Liang.Cloud Computing Security Risks and Countermeasures[J].Designing Techniques of Posts and Telecommunications,2011(10):19-22.)
[10]劉鋒,雷航,李曉瑜.Kernel-Based Virtual Machine事件跟蹤機(jī)制的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用,2008,28(增刊2):285-287.(LIU Feng,LEI Hang,LI Xiaoyu.Tracing Mechanism for Kernel-Based Virtual Machine[J].Journal of Computer Applications,2008,28(Suppl 2):285-287.)
[11]張彬彬,汪小林,楊亮,等.修改客戶操作系統(tǒng)優(yōu)化KVM虛擬機(jī)的I/O性能 [J].計(jì)算機(jī)學(xué)報(bào),2010,33(12):2312-2320.(ZHANG Binbin,WANG Xiaolin,YANG Liang,et al.Modifying Guest OS to Optimize I/O Virtualization in KVM [J].Chinese Journal of Computers,2010,33(12):2312-2320.)
[12]劉紹方,余綜,牛峰.基于QEMU的虛擬可信平臺模塊的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(3):822-826.(LIU Shaofang,YU Zong,NIU Feng.Design and Implementation of QEMU-Based Virtual Trusted Platform Module[J].Computer Engineering and Design,2011,32(3):822-826.)
[13]徐明迪,張煥國,趙恒,等.可信計(jì)算平臺信任鏈安全性分析 [J].計(jì)算機(jī)學(xué)報(bào),2010,33(7):1165-1176.(XU Mingdi,ZHANG Huanguo,ZHAO Heng,et al.Security Analysis on Trust Chain of Trusted Computing Platform [J].Chinese Journal of Computers,2010,33(7):1165-1176.)