云图书馆虚拟环境可信验证过程的设计实现
吴坤1, 颉夏青2, 吴旭2,3
1. 长春金融高等专科学校文化基础部 长春 130028
2. 北京邮电大学图书馆 北京 100876
3. 北京邮电大学可信分布式计算与服务教育部重点实验室 北京 100876
吴坤 E-mail:wukun3928@sohu.com

吴坤, 吴旭: 提出研究思路, 设计研究方案;
颉夏青: 进行实验、数据采集和分析;
吴坤, 颉夏青: 论文起草;
吴旭: 论文最终版本修订。

摘要

【目的】

通过对云图书馆虚拟环境进行可信验证保证用户资源与服务所在的虚拟环境的可信。

【方法】

建立基于可信第三方的验证模型, 通过可信第三方分别对用户和云图书馆平台进行可信验证的方法, 设计并实现云图书馆虚拟环境的可信验证过程。

【结果】

能够以较小的系统开销确保虚拟机请求过程、分配过程以及启动过程的可信, 保证云图书馆平台分配给用户的虚拟机是可信的。

【局限】

虚拟机使用、虚拟机迁移等过程的可信验证所带来的系统开销, 有待进一步实验和验证。

【结论】

本研究能够向用户保证其所请求的虚拟机的可信, 建立用户与云图书馆平台的信任关系。

关键词: 云图书馆; 虚拟环境; 可信验证
Design and Implementation of Trustworthiness Validation in Cloud Library Virtualized Environment
Wu Kun1, Xie Xiaqing2, Wu Xu2,3
1. Ministry of Culture Foundation , Changchun Finance College, Changchun 130028, China
2. Beijing University of Posts and Telecommunications Library, Beijing 100876, China
3. Key Laboratory of Trustworthy Distributed Computing and Service (BUPT), Ministry of Education,Beijing 100876, China
Abstract

[Objective]

To ensure the trustworthiness of cloud library virtualized environment which contains users’ resources and services by trustworthiness validation.

[Methods]

By establishing a validation model in which the Third Trusted Party respectively validates the cloud library platform providers and users, this paper designs and implements the trustworthiness validation process of cloud library virtualized environment.

[Results]

This paper can ensure the trustworthiness in process of request, allocation and startup of virtual machine with little overhead, and ensure that the virtual machine assigned to users is trusted.

[Limitations]

The overhead of validation in virtual machine’s usage and migration needs to be verified.

[Conclusions]

The research can ensure trustworthiness of virtual machine to build the trustworthiness between cloud library users and platform providers.

Keyword: Cloud library; Virtualized environment; Trustworthiness validation
引 言

云图书馆利用虚拟化技术将各种资源进行抽象而获得近乎无限的计算能力, 使之能够为云图书馆用户提供取用自由、按需付费的计算和服务, 其伸缩性和灵活性不仅能够简化图书馆资源与服务的管理、维护难度, 而且为图书馆的信息共享、资源共享提供了新的思路。但是云图书馆的用户需要将数据和服务部署在云图书馆中, 也就丧失了对资源的直接控制权, 取而代之的是对虚拟环境的间接管理权。在这种情况下, 一方面云图书馆平台提供商可以通过超级权限对用户数据或服务进行任意操作, 另一方面恶意用户也可以通过旁路攻击等方式取得虚拟机的控制权而资源或服务的所有者一无所知。因此, 虚拟化技术带来的直接影响之一就是造成了云图书馆用户对云图书馆平台的天然不信任, 这种不信任大大降低了用户使用云图书馆的积极性, 成为云图书馆进一步发展面临的重要问题之一。

为了提高用户对云图书馆平台的信任度, 本文重点对云图书馆用户资源与服务所在的虚拟环境的可信验证进行了研究、设计与实现。

2 云平台虚拟环境可信的研究现状

针对云图书馆虚拟环境的安全、可信问题, 目前国内外研究成果很少, 多侧重于云图书馆安全威胁的分析和管理策略的研究[ 1, 2, 3, 4, 5, 6, 7, 8, 9]。可信计算是一种信息系统安全新技术, 目前已经成为国内外信息安全领域的新热潮, 为解决云图书馆信任问题提供了新的解决方案。

McCune等[ 10, 11, 12]提出了SEA(Secure Execution Architecture)[ 10]的方案, 将代码运行在一个完全隔离的环境中来保证其可信的思想。Flicker[ 11]则是这种思想的一种实现, 它通过动态可信根技术实现了对敏感代码的强隔离, 即使BIOS和操作系统都不可信, 只需要添加250行代码就可以可信地执行敏感代码。Flicker[ 11]的创新之处在于最小化了可信执行的TCB(Trusted Computing Base), 但是对硬件的要求较高。TrustVisor[ 12]是对Flicker的改进, 同样是在一个相对不安全的环境中保护敏感代码的完整性并通过远程认证向第三方证明其可信。相比Flicker, TrustVisor的TCB也非常小(约 6 000行代码), 但系统性能得到了极大的改善。Schiffman等[ 13]建立了CV(Cloud Verifier)服务, 为用户提供完整性证据来验证云平台的完整性和访问控制执行能力; CV实现了整个云平台范围可信验证的同时, 有效减少了系统的验证开销, 避免系统瓶颈问题。CertiCloud[ 14]则从用户的角度来定义和保护用户虚拟机的可信, 主要包括两个协议, 即TCRR(TPM-based Certification of a Remote Resource)和VerifyMyVM。其中, TCRR是利用可信平台模块实现对远程物理系统的完整性验证, 并且完成由用户定义的对称密钥的分发, 这些对称密钥将会用作网络通信和数据加密等相关的加密; VerifyMyVM允许用户按需以可信的方式检测虚拟机是否有异常行为。

综上所述, 目前解决云计算虚拟环境及其部署的应用程序可信的方案主要有两个方面, 即完整性验证和远程认证, 首先对数据、应用提供相应的保护措施, 如加密、验证等, 同时将应用程序的状态通过可信的方式让用户了解, 最终取信于用户。这为解决云图书馆虚拟环境的可信提供了一种解决方法, 但实际应用于图书馆时, 还需要结合云图书馆的实际情况进行分析、设计。

3 云图书馆虚拟环境可信验证过程的设计

为了建立云图书馆用户对云图书馆虚拟环境的信任, 本文设计引入可信第三方作为云图书馆平台与用户之间的信任桥梁。可信第三方具有较高的权威性, 云图书馆平台和用户彼此互不信任, 只信任可信第三方。基于可信第三方的验证模型如图1所示, 可信第三方分别对用户和云图书馆平台进行可信验证, 对于用户的验证是通过线下颁发证书Cert(User)来进行, 而对云图书馆平台的验证包括对云图书馆平台提供商的验证和对云图书馆平台本身的验证。同样, 对云图书馆平台提供商的验证也是通过线下发放营业执照、身份认证等方式来进行, 验证通过后颁发证书Cert(CSP); 而验证云图书馆平台则通过远程认证来完成。

图1 云图书馆可信验证模型

与其他云计算平台如Eucalyptus[ 15]相同, 云图书馆平台组件管理也采用分级管理的模式, 自上而下分别是云图书馆管理器(Cloud Library Manager, CLM)、集群管理器(Cluster Manager, CM)和用户虚拟机运行的节点(Node)。其中, CLM是云图书馆平台对外的唯一接口, 负责管理整个系统; CM控制虚拟机的执行, 管理虚拟机之间和虚拟机与外部环境之间的虚拟网络, 提供与计算节点(Node)有关的服务, 收集和报告关于集群的一系列信息; 而Node的主要功能是启动、管理和终止虚拟机, 与运行其上的用户虚拟机构成云图书馆平台的虚拟环境。考虑云图书馆的本质是对虚拟化的计算和存储的信息资源池进行动态部署、动态分配/重分配、实时监控的系统, 向用户提供满足个性化要求的软件应用服务、信息存储与获取服务以及平台服务, 虚拟环境可信是云图书馆可信架构的基础环节, 也是云图书馆与传统图书馆的根本区别, 因此对虚拟环境的可信验证过程进行了详细设计, 其中符号含义如表1所示:

表1 符号说明

在以用户为中心的服务模式下, 用户是可信验证的发起方, 因此云图书馆虚拟环境的可信验证是从用户提交启动虚拟机请求的那一刻开始的。由于CLM是用户访问云平台的唯一入口, 所以验证过程中用户的交互对象只有CLM。用户作为验证的发起端, 但却不是验证的驱动者, 验证过程的驱动者是CLM, 它负责最终将虚拟机启动信息返回给用户。具体的验证流程的设计如图2所示:

图2 云图书馆虚拟环境可信验证流程设计

(1) 用户User发起验证请求(序号1);

(2) CLM接收用户请求后, 追加CLM相关信息以供TTP验证, 将消息打包后发送给TTP(序号2);

(3) CLM对用户和CLM分别进行验证, 验证通过后将解析用户请求, 并转发给CLM(序号3);

(4) CLM将用户请求再次进行封装后, 转发给CM为虚拟机分配的主机Node(序号4);

(5) Node接收到启动虚拟机的请求后, 首先对消息进行完整性验证, 验证通过则开始安全启动虚拟机, 完成可信证据ML的收集, 并将其进行封装后返回给可信第三方。出于虚拟机本身的安全考虑, 其相关信息暴露越少越好, 因此可信第三方只能验证信息是否可信, 而不知道实际的虚拟机配置、IP等对用户非常重要的信息(序号5);

(6) 可信第三方对虚拟机返回的信息进行验证, 验证通过后返回给CLM, 由CLM转交用户。CLM实际负责消息的转发, 因此部分只有用户或可信第三方可以查看的信息将不能被CLM获取, 这可以通过各实体的公私钥实现(序号6);

(7) 用户获得虚拟机配置信息, 再次验证信息的完整性和会话的唯一性, 成功启动虚拟机(序号7)。

4 云图书馆虚拟环境可信验证过程的技术实现

云图书馆虚拟环境可信验证过程的实现需要利用可信平台模块[ 16]作为可信根, 由于目前中国大陆市场上无法购买到可信平台模块芯片, 因此利用vTPM[ 17]仿真软件搭建实验环境来完成验证过程。

虚拟机每次启动都需要进行一次验证, 但由于同一个用户在使用虚拟机过程中并不会频繁地进行虚拟机重启, 所以每次重启验证也是可以接受的。根据图2设计的数据流, 本文定义了7种报文类型, 具体名称和描述如表2所示:

表2 云图书馆虚拟环境可信验证报文类型

云图书馆虚拟环境可信验证过程的实现如下:

(1) 云图书馆用户的客户端生成会话密钥和唯一的随机序列ChallengeU, 用自己的私钥加密; 与用户证书的哈希值一起封装后, 用TTP的公钥加密, 这样CLM只能对信息进行追加而不能破解, 且只有可信第三方可以读取到请求内容和用户身份。

(2) CLM将用户请求附上自己的证书的哈希值发送给可信第三方等待验证。

(3) 可信第三方同时验证用户以及CLM证书的哈希值, 这个过程是通过与数据库中所储存的证书的哈希值进行比对完成的, 验证结果为可信的同时就完成了完整性校验; 若结果为可信, 可信第三方将用户请求转换为CLM可解析的格式, 发送给CLM。

(4) CLM调用CM为用户指定生成虚拟机的物理机, 将启动请求发送给虚拟机所在物理机。由于这是一个新的子会话, 所以CLM使用新生成的随机序列和会话密钥。

(5) 物理机安全启动虚拟机, 由可信平台模块生成虚拟机启动序列, 完成可信证据ML(Measurement List)的收集。物理机将启动信息用CLM的公钥加密, 避免可信第三方知道虚拟机的具体细节; 考虑到ML的重要性, 所以启用新的会话密钥KS”

(6) 可信第三方用私钥对消息5 NODE_ VMINFO_TTP进行解密后, 利用Node的公钥可获得会话密钥KS”, 进一步利用KS”获得ML并对它进行验证; 验证通过以后, 将消息的剩余部分即虚拟机启动信息返回给CLM。

(7) CLM用步骤(4)中生成的会话密钥KS可获得虚拟机启动信息; 将它与用户的请求所附的随机序列发送给用户; 用户可以通过验证随机序列来判断会话的有效性, 虚拟机启动过程验证完毕。

验证过程中, 用户的客户端发起启动请求, 主要完成两个功能:

(1) 发送启动请求给CLM, 需要调用writePtsTlv将请求写入数据通道。

(2) 接收CLM返回的启动信息, 需要调用readPtsTlv读取, 后定义自己的处理函数对信息进行解析, 获得启动信息。

Node主要负责虚拟机的安全启动过程并完成可信证据的收集, CLM需要完成较多的中间功能, 包括向TTP请求验证用户身份, 按照一定的策略指定物理机启动虚拟机, 最后将虚拟机信息返回给用户。其主要的处理过程关键代码如下:

/*CLM驱动虚拟机可信验证*/

int verifier_VM_StartUp()

{ /*建立与TTP连接*/

ssh_pid = ssh_connect(CLM, TTP); /*CLM发出请求CLM_TRANS_USER*/

len = writePtsTlv(ctx, sock, CLM_TRANS_USER);/*CLM读取TTP返回的信息, 保存在read_tlv中*/

read_tlv = readPtsTlv(sock);/*CM处理read_tlv内容*/

rc = deal TTP_ACK_STARTUP (read_tlv);/*建立与物理机连接*/

ssh_pid = ssh_connect(CLM,NODE);/*CLM发出请求CLM_STARTVM_NODE

len = writePtsTlv(ctx, sock, CLM_STARTVM_NODE);/*CLM读取TTP返回的启动信息, 保存在read_tlv中*/

read_tlv = readPtsTlv(sock);/*CM处理read_tlv内容*/

rc = dealTTP_TRANS_VMINFO (read_tlv);/*回应用户启动请求, 返回启动信息*/

len = writePtsTlv(ctx, sock, CM_RETURN_USER);}

5 云图书馆虚拟环境可信验证性能测试

云图书馆虚拟环境可信验证过程的设计目标是为了向云图书馆用户证明用户虚拟机的可信, 而这一验证过程的引入必然带来额外的系统代价。

云图书馆虚拟环境可信验证过程带来的系统代价可以通过运行时间来进行测试。可信验证过程中, 消息的传输过程受网络状态的影响较大, 测试结果波动较大, 参考价值较小, 因此为了消除网络延时, 将不同的验证实体部署在同一台服务器上, 通过端口来进行区分。

测试过程同样是在仿真环境下进行的, 为了保证测试结果的准确性, 随机选取5台配置相同的服务器作为虚拟机载体, 并对虚拟机进行如下配置: CPU: Core2 Duo T7700, 2.40GHz; 内存: 4GB; 二级缓存: 4MB; 硬盘: 30GB; 操作系统: Fedora15。

可信验证过程所需要时间可分为两个部分, 即可信证据ML的收集过程和节点与可信第三方的远程验证过程, 因此本文相应设计了两组实验来分别测试两部分的性能。

(1) 可信证据的收集过程, 也就是虚拟机完成安全启动过程的时间。对于虚拟机的启动过程, 通过对可信的虚拟机与非可信的普通虚拟机系统进行测试。测试方法是分别在两台配置相同的物理机上启动普通和可信虚拟机, 在系统启动时调用“clock_ gettime()”函数获取当时系统的单调时间(MONOTONIC); 系统启动成功后再获取启动结束时间; 时间精确到ns。实验结果如表3所示, 1组为普通组, 2组为可信组, 表中为5次实验的启动时间。可知, 普通的Fedora15 虚拟机启动时间平均约为24.8s, 可信Fedora15则平均需要约30.7s, 可信启动带来的代价平均约为6s。由于服务器的启动时间对于用户来说是透明的, 因此不会影响到用户体验; 而对于云图书馆用户来说, 6s的时间代价也在可接受的范围内。

表3 节点可信启动时间测试结果(单位: ns)

(2) 节点向第三方进行可信验证的过程。节点与可信第三方可信验证过程效率主要由验证端与被验证端处理信息的效率和消息传输的时间组成。消息传输的时间与网络的状况有直接的关系, 在局域网中(即可信第三方与被验证的节点在同一个局域网)进行测试时, 验证过程所需时间在10-20s, 而且波动较大, 所以为排除网络状态对验证过程的影响, 将可信第三方验证程序部署在被验证虚拟机上, 通过端口来区分不同的实体。5台物理服务器分别进行测试, 每台服务器测试10次, 测试数据如图3所示, 5台主机分别测试的平均时间相近, 均在2s-2.5s之间。

图3 启动时间测试结果

另外, 在安全性方面, 云图书馆虚拟环境可信验证过程能够抵抗重放攻击、中间人攻击, 基于可信平台模块的加密处理和密钥管理、存储机制也保证了该验证过程中密钥本身的安全性, 进而保证了加解密过程的安全性。同时, 由于验证过程在虚拟启动前已经开始, 验证开始前恶意用户或管理员对虚拟环境的更改可以在验证过程中检测出来, 导致验证结果为“不可信”; 验证过程中系统不可被修改, 所以验证结果具有有效性和真实性, 也就具备可信性。

6 结 语

针对云图书馆虚拟化带来的信任问题, 本文首先针对云图书馆虚拟环境可信展开研究, 在此基础上引入可信第三方作为可信的桥梁, 设计并实现了云图书馆虚拟环境的可信验证过程, 提高了用户对云图书馆平台的信任度。实验证明可信验证的引进确实给系统带来了数秒的处理时间延时, 但是在实际的运行工作中这个时间几乎是感受不到的, 对于用户也是可以接受的; 而且相比其带来的可信效益, 可以忽略不计。

云图书馆虚拟环境可信验证保证了虚拟机请求过程、分配过程以及启动过程的可信, 在此基础上, 还可以验证虚拟机使用、迁移等过程, 保证虚拟机整个生命周期的可信, 但其验证过程所带来的系统开销尚待进一步实验和验证。

参考文献
[1] 陈臣, 高军. 云计算环境下数字图书馆虚拟机安全部署策略研究[J]. 现代情报, 2013, 33(7): 64-66.
(Chen Chen, Gao Jun. Study for Virtual Machine Security Deployment Policy for Digital Library in Cloud Computing[J]. Modern Information, 2013, 33(7): 64-66. ) [本文引用:1] [CJCR: 0.801]
[2] 陈臣, 马晓亭. 云计算环境下数字图书馆虚拟机资源分配及部署策略研究[J]. 图书馆工作与研究, 2013(6): 46-48.
(Chen Chen, Ma Xiaoting. Study on Virtual Resources’ Allocation and Deployment Strategies of Digital Library in Cloud Computing Environment[J]. Library Work and Study, 2013(6): 46-48. ) [本文引用:1] [CJCR: 2.036]
[3] 袁援, 凌卉. 云计算技术驱动下构建数字图书馆虚拟化环境的探讨[J]. 情报理论与实践, 2010, 33(12): 119-123, 128. (Yuan Yuan, Ling Hui. Exploration of Constructing the Virtualized Environment of Digital Library Driven by the Cloud Computing Technology[J]. Information Studies: Theory & Application, 2010, 33(12): 119-123, 128. ) [本文引用:1] [CJCR: 1.5]
[4] 马晓亭, 陈臣. 云安全 2. 0 技术体系下数字图书馆信息资源安全威胁与对策研究[J]. 现代情报, 2011, 31(3): 62-66.
(Ma Xiaoting, Chen Chen. Research on Information Security Threats and Security Strategy of Digital Library under the Cloud Security 2. 0 System Environment[J]. Modern Information, 2011, 31(3): 62-66. ) [本文引用:1] [CJCR: 0.801]
[5] 马晓亭, 陈臣. 云计算环境下数字图书馆信息资源安全威胁与对策研究[J]. 情报资料工作, 2011(2): 55-59.
(Ma Xiaoting, Chen Chen. On the Threat to the Security of Digital Library Information Resource and Its Tactics: Under the Environment of Cloud Computing[J]. Information and Documentation Services, 2011(2): 55-59. ) [本文引用:1] [CJCR: 1.169]
[6] 张叶红. 数字图书馆云计算安全架构及其管理策略[J]. 图书馆学研究, 2010(11): 30-34.
(Zhang Yehong. Cloud Computing Security Architecture and Policies of Digital Library[J]. Research on Library Science, 2010 (11): 30-34. ) [本文引用:1]
[7] 林晓群. 可信技术在图书馆信息安全防护体系的应用研究[J]. 农业图书情报学刊, 2010, 22(10): 62-64.
(Lin Xiaoqun. Study on the Application of Trusted Computing in Library’s Security Architecture[J]. Jounal of Library and Information Sciences in Agriculture, 2010, 22(10): 62-64. ) [本文引用:1]
[8] 王长全, 艾雰, 姚建文. 云计算环境下数字图书馆信息资源安全策略研究[J]. 情报杂志, 2010, 29(3): 184-186, 161. (Wang Changquan, Ai Fen, Yao Jianwen. Research on Information Security Strategy of Digital Library under the Cloud Computing Environment [J]. Journal of Intelligence, 2010, 29(3): 184-186, 161. ) [本文引用:1] [CJCR: 0.951]
[9] Tang K. Research on Security Strategies of Digital Library Based on Cloud Computing Platform[J]. Advanced Materials Research, 2013, 734-737: 3171-3174. [本文引用:1]
[10] McCune J M, Parno B, Perrig A, et al. How Low Can You Go? Recommendations for Hardware-supported Minimal TCB Code Execution [C]. In: Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, Seattle, USA. New York: ACM, 2008: 14-25. [本文引用:2]
[11] McCune J M, Parno B J, Perrig A, et al. Flicker: An Execution Infrastructure for TCB Minimization [C]. In: Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008, Glasgow. New York: ACM, 2008: 315-328. [本文引用:3]
[12] McCune J M, Li Y, Qu N, et al. TrustVisor: Efficient TCB Reduction and Attestation[C]. In: Proceedings of the 2010 IEEE Symposium on Security and Privacy. Washington D C: IEEE Computer Society, 2010: 143-158. [本文引用:2]
[13] Schiffman J, Moyer T, Vijayakumar H, et al. Seeding Clouds with Trust Anchors[C]. In: Proceedings of the 2010 ACM Workshop on Cloud Computing Security Workshop (CCSW’10), Chicago, USA. New York: ACM, 2010: 43-46. [本文引用:1]
[14] Bertholon B, Varrette S, Bouvry P. CertiCloud: A Novel TPM-based Approach to Ensure Cloud IaaS Security [C]. In: Proceedings of the 4th International Conference on Cloud Computing(CLOUD 2011). Washington D C: IEEE Computer Society, 2011: 121-130. [本文引用:1]
[15] Eucalyptus Systems, Inc. Eucalyptus-Open Source AWS Compatible Private Clouds [EB/OL]. [2013-11-20]. http://www.eucalyptus.com/. [本文引用:1]
[16] Trusted Computing Group. Trusted Platform Module [EB/OL]. [2013-11-20]. http://www.trustedcomputinggroup.org/developers/trusted_platform_module/. [本文引用:1]
[17] Berger S, Caceres R, Goldman K A, et al. vTPM: Virtualizing the Trusted Platform Module[C]. In: Proceedings of the 15th Conference on USENIX Security Symposium. USENIX Association Berkeley, 2006: Article No. 21. [本文引用:1]