徐天琦,劉淑芬,韓 璐
(吉林大學 計算機科學與技術學院,長春 130012)
云計算體現了“網絡就是計算機”的思想,將大量計算資源、存儲資源與軟件資源鏈接在一起,形成巨大規模的共享虛擬IT資源池,為遠程計算機用戶提供IT服務[1].云計算以其良好的可擴展性、按需服務及經濟便捷等優勢得到廣泛應用.
與傳統技術相比,云計算信息資源更集中,安全風險更大[2].本文從虛擬化服務器[3]出發,提出一種基于KVM(kernel-based virtual machine)的可信虛擬化架構,使KVM 安全性更能滿足用戶的要求.
虛擬化是云計算的核心技術,它將所有可應用資源高度抽象化,如虛擬內存技術[4]可理解為將物理內存資源高度抽象化;將虛擬化技術應用于云計算可令資源共享更徹底.基于虛擬化技術的云計算平臺架構如圖1所示.
基礎架構平臺上是管理平臺,可同時管理多臺虛擬機;每臺虛擬機可視為一個與其他虛擬機相隔離的硬件環境,即每臺虛擬機均可運行與彼此互不相同的操作系統.虛擬化技術可針對硬件資源、操作系統及應用服務層分別實現,越底層的技術難度越大,業務靈活性越好.如虛擬專用服務器(VPS)用戶具有獨立服務器的功能,可按照需要自行安裝應用程序和數據庫,但操作系統不可更改;而采用服務器集群的虛擬化技術可隨意更改操作系統[5].
云計算的虛擬化技術包含虛擬整合、虛擬拆分和虛擬遷移[6].虛擬整合統一管理云計算基礎架構資源;虛擬拆分將一個物理服務器拆分為若干可服務于不同用戶且互不干擾的虛擬機;虛擬遷移技術可有效幫助云平臺平衡資源消耗和運行成本等.

圖1 虛擬化云計算平臺的抽象架構Fig.1 Abstract architecture of virtual cloud computing platform
云計算安全問題主要包括身份和訪問安全、物理安全、網絡安全、數據安全和虛擬化安全[7].相比傳統技術,虛擬化是云計算特有的,因此傳統安全措施很難在根本上解決虛擬化安全問題.按層次綜合分析,可將虛擬化安全分為兩部分:虛擬化軟件安全和使用虛擬化技術的虛擬化服務器安全[8].表1列出了虛擬化安全分層分析結果.

表1 虛擬化安全分層分析Table 1 Layer analysis of virtualization security
由于一個物理服務器可供多個虛擬機使用,所以當某一虛擬機出現安全問題并危及到該服務器時,很可能影響其他使用此服務器虛擬機的安全,因此虛擬化服務器的安全性十分重要.本文選擇具有TPM安全模塊的虛擬服務器[9],通過將TPM加入KVM架構以增強其安全性.
KVM是基于Linux內核的虛擬化基礎架構,如圖2所示.其原理如下:通過一個可加載的內核模塊KVM Driver,將Linux系統內核轉化為VMM(virtual machine monitor);并在Linux操作系統的用戶模式和內核模式外,添加第三種運行模式 客戶模式(guest mode),虛擬機即運行在該運行模式下.因此,在KVM基礎架構中,虛擬機被視為一個常規的Linux進程,接收Linux本身調度程序的統一調度,從而KVM擁有Linux內核所擁有的所有功能.
與其他裸金屬架構(Xen,VMware ESX等)相比,KVM只是Linux內核中的一個模塊,因此在設計方案中借鑒了QEMU的內容,對其進行修改以滿足KVM對虛擬化及I/O等功能的需要,與QEMU結合的KVM架構如圖3所示[10].但這種解決方案中虛擬機對I/O操作處理流程切換過多,嚴重影響I/O性能;因此,可通過合并客戶操作系統中連續的I/O指令及消除客戶操作系統中的冗余操作進行優化[11].
此外,在可信平臺模塊方面,Xen虛擬機已加入了對虛擬可信平臺模塊的支持,方案實質是采用軟件的方式實現物理可信平臺模塊的功能操作;文獻[12]采用信息代理的方式實現了QEMU的虛擬可信平臺模塊.本文提出一種在QEMU中添加TPM設備的方式實現KVM虛擬化可信平臺模型.

圖2 KVM基本架構Fig.2 Basic KVM architecture

圖3 結合QEMU的KVM架構Fig.3 KVM architecture with QEMU
在虛擬化的云計算平臺抽象架構及結合QEMU的KVM架構基礎上,加入對可信平臺模塊的支持,可設計出如圖4所示新的KVM架構模型.該模型通過使用如下方式建立一個從基礎架構平臺、管理平臺到應用服務平臺均可信的KVM架構:使用帶有TPM設備的物理設施,添加QEMU對虛擬TPM的支持及添加虛擬客戶機操作系統對虛擬TPM的支持.

圖4 KVM可信虛擬化平臺模型Fig.4 KVM trusted virtualization platform model
該模型的基礎架構平臺仍是包括服務器在內的存儲、網絡等商業硬件資源,且這些硬件資源需要支持TPM設備.這是因為擁有TPM模塊是構建可信平臺的前提,在這一層加入TPM設備,能提供平臺所需的密碼等服務.
在可信的硬件環境(基礎架構平臺)上,是已轉化為VMM的Linux內核.該層需要安裝TPM的設備驅動程序,以確保在該平臺上運行的所有進程(虛擬機視為普通進程)都可以擁有操作底層物理TPM設備這一功能.同時,TPM管理器也設置在該層,用于統一管理虛擬機進程中的各虛擬TPM設備.對于KVM云平臺架構,該層即為VMM管理平臺,且具有Linux系統自身具備的安全機制.
在VMM上是服務平臺.這一層需要在QEMU硬件模擬器中加入虛擬TPM設備,以普通進程形式存在的虛擬機可通過這部分實現相應的TPM操作,并認為此即為真實的物理TPM設備.此外,還需要針對QEMU中的虛擬TPM設備,編寫QEMU所在虛擬機操作系統可支持的驅動程序,即可實現如圖5所示的訪問過程.由圖5可見,KVM虛擬機可提供具有封閉性及隔離性的環境,包括TPM在內的安全模塊及驅動流程可確保信息在傳遞過程中的安全性;因QEMU添加了虛擬TPM設備,故在其上運行的虛擬機認為QEMU中即存在真實的物理TPM設備,認為其并非是通過QEMU再向下訪問得到的,這也保證了架構的透明性.

圖5 通過TPM實現相關功能Fig.5 Relative function realized through TPM
綜上所述,在本文提出的架構中,基礎架構平臺—管理平臺—應用服務平臺均表現為相對可信并安全的.由CRTM,TPM及其與主板的連接構成信任根,由此開始,通過可信引導,基礎架構平臺(硬件平臺)、VMM管理平臺(操作平臺)、應用服務平臺(應用)逐級度量認證,并逐級信任,形成了“信任根—硬件平臺—操作平臺—應用”的信任鏈[13],把信任擴展到整個平臺,從而確認了該平臺的可信.
[1]馮登國,張敏,張妍,等.云計算安全研究 [J].軟件學報,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]王哲,區洪輝,朱培軍.云計算安全方案與部署研究 [J].電信科學,2012(8):124-130.(WANG Zhe,OU Honghui,ZHU Peijun.Cloud Computing Security Architecture and Implementation[J].Telecommunications Science,2012(8):124-130.)
[3]王敏,李靜,范中磊,等.一種虛擬化資源管理服務模型及其實現 [J].計算機學報,2005,28(5):856-863.(WANG Min,LI Jing,FAN 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].計算機學報,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]張怡,孫志剛.面向可信網絡研究的虛擬化技術 [J].計算機學報,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].信息技術與信息化,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].信息技術與標準化,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].電信科學,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].郵電設計技術,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].計算機應用,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]張彬彬,汪小林,楊亮,等.修改客戶操作系統優化KVM虛擬機的I/O性能 [J].計算機學報,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的虛擬可信平臺模塊的設計與實現 [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].計算機學報,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.)