徐天琦,刘淑芬,韩 璐
(吉林大学 计算机科学与技术学院,长春 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.)