专利名称:面向网络化操作系统的可信任虚拟运行平台的制作方法
技术领域:
本发明属于计算机基础软件技术领域,主要解决如何设计和构建一个可信任的网络化操作系统虚拟运行平台。针对网络化操作系统虚拟运行平台的主要操作和使用范围, 包括物理服务器管理和可信任性认证,虚拟镜像和虚拟机管理及可信任性认证,虚拟机迁移的可信任性认证等,设计了相应的认证协议和算法。缩略语和关键术语定义
TCC(Trusted Cloud Controller)可信云控制器
CM(Cloud Manager)云管理系统
BIOS (Basic Input Output System)基本输入输出系统
OS (Operating System)操作系统
VMM(Virtual Machine Monitor)虚拟机监视器
TPM(Trusted Platform Module)可信赖平台模块
PCR(Platform Configuration registers)平台配置寄存器
Bootloader 系统引导程序
ETE (External Trusted Entity)外部可信任实体
背景技术:
网络化操作系统通过把用网络连接的大规模计算资源进行统一管理和调度,构成一个计算资源池向用户提供按需收费的服务。它具有数据安全可靠、客户端需求低、能够轻松共享数据等优点。作为一种新型计算模型,网络化操作系统受到了工业界和学术界的广泛关注,越来越多的机构和个人选择以它作为基础设施搭建分布式IT平台。然而,使用网络化操作系统也具有一定的风险。从网络化操作系统资源的使用者和提供者两个角度,上述风险可总结如下1.使用者角度使用者将计算过程或数据部署在远端服务器上,从而失去了对它们的直接控制。在非网络化操作系统模式下,计算在服务器上运行的位置取决于用户的所在地,用户可以物理访问机器、可以直接监控机器的状态、可以令信任的人管理机器;而在网络化操作系统中,由网络化操作系统提供者来管理物理机器,使用者仅能利用网络连接远距离管理虚拟机,因此不具有上述管理机器的能力,即使用者失去了对计算过程和数据的直接控制。2.提供者角度提供者可能并不知道在其系统上运行的使用者服务的具体细节。 使用者使用平台资源或在平台上部署自己的应用,这些行为多变且不具有可预测性。以 !^cebook为例,它允许第三方应用在其平台上的自由发布,并不对其进行详细的验证,用户如果添加了某一恶意应用,则平台或其他使用者的敏感数据可能会遭到恶意应用的窃取和破坏。综上,在网络化操作系统中,不同对象之间的交互可能是敏感多变的,缺乏相互之间的有效信任、缺乏可信赖的故障检测和仲裁机制会损失潜在的用户,因此需要构建信任管理框架来建立、协商和维护系统中不同实体之间的信任行为,保证各方都能按照协议好的情况运行,并在不符合协议情况出现时能够有效检测出来报告给相关方。具体来说,网络化操作系统中包含许多注册的物理节点,虚拟机会被分配到某一物理节点上运行并在需要时迁移到其他节点上,如何验证这些过程中各个实体的完整性与可信任性,如何确保虚拟机始终运行在一个可信任的环境下,都具有十分重要的意义。在上述过程中,可能会遇到的威胁主要包括以下几个方面1.物理节点在启动前或启动过程中的改动需要可检测物理节点的硬件、BIOS、 bootloader或VMM在启动前或启动过程中遭到了恶意修改;2.物理节点在启动后运行时的配置改动需要可检测物理节点的硬件、BIOS、 bootloader或VMM在运行时遭到了恶意修改;3.系统中各个节点间通信的过程,有可能遭遇重放攻击、篡改和假冒等威胁。本专利针对以上3各方面的威胁,通过设立第三方可信认证机构,即可信云控制器,对每一个网络化操作系统中的节点,设计其可信注册及启动机制;经过可信云控制器的认证协议后,方可成为一个可信节点,提供虚拟机可信的宿主运行环境,保证其完整性和正确性遭到的破坏能够在启动过程中被检测出来,并且中断受破坏机器的启动和注册过程。 且对虚拟机的主要操作,即启动过程和迁移过程,设计了相应的可信任保证机制。
发明内容
根据以上分析,本专利提出面向网络化操作系统的可信任虚拟运行平台体系结构,如图1所示。可信任虚拟运行平台包含网络化操作系统平台和外部可信任实体两大部分。外部可信任实体提供了 TCC用来对网络化操作系统平台中物理节点的可信任性进行验证。每个物理节点最下层是硬件平台,其中包含了 TPM,用来保证物理节点启动过程中的可信任性;物理节点上层的软件栈由下到上依次包括BIOS、Bootloader、操作系统内核以及 VMM,而各种不同需求的虚拟机就运行在VMM之上。对其中的主要角色和变量定义说明如下EKputcc =TCC的签署公钥(事先公开)EKpetcc =TCC 的签署私钥TKputcc =TCC的公钥(事先公开)TKpetcc =TCC 的私钥EKpun 物理节点的签署公钥(事先公开)EKpen 物理节点的签署私钥TKpun:物理节点的公钥TKpkn:物理节点的私钥ECLtcc =TCC的预期配置列表(事先公开)CLtcc =TCC的配置列表,在物理节点注册时由TCC发送给物理节点并在物理节点端与ECLra对比CLn 物理节点的配置列表,在物理节点注册时由物理节点发送给TCC,TCC将其保存在本地目录Ks 一次会话中使用的对称密钥
challenge 挑战发送给对方,若对方返回的信息中包含该challenge表明对方可以解密自己的信息wm_stat 虚拟机的状态信息h(wm_stat) :wm_stat 的 Hash 值N 物理节点在可信任虚拟运行平台中的标号本专利针对面向网络化操作系统的可信任虚拟运行平台的4个关键过程及操作设计可信算法,分别是(1)物理节点注册过程,这个过程需要物理节点和TCC相互验证,最后保证物理节点的配置信息保存到TCC本地目录中,用于TCC以后对物理节点真实性的验证;( 虚拟机启动过程,该过程由用户发起,经CM分配一个物理节点,然后该节点在TCC 的控制下完成对虚拟机的启动;C3)虚拟机跨物理节点迁移过程,该过程由CM指定迁移的目的节点,并由TCC验证源节点和目的节点的可信任性,最后虚拟机由源节点迁移到目的节点;(4)物理节点安全启动过程,该过程用来保证物理节点在启动过程中的可信任性。在所有的过程中,用公钥加密是为了保证信息在传输过程中不被泄露,用私钥签名用于验证签名者的身份。物理节点注册过程的算法描述如图2所示。具体步骤如下1)物理节点向TCC发送一个请求challenge以验证TCC的身份;2) TCC将自己的配置列表CLra和刚才接收的challenge用自己TPM模块的签署私钥EKrara签名,并绑定一个请求challenge^回复给物理节点,然后等待物理节点的注册 fn息;3)物理节点用TCC的TPM模块的签署公钥EKputo解析出CLra,与事先收到的TCC 预期配置列表ECLto对比,如果一致即验证的TCC的真实身份。然后物理节点将自己的配置列表(、和刚从接收到的(^3116叫4。。用自己的签署私钥签名,随后用TCC的公钥加密这个签名以及物理节点的公钥TKPUN,这样保证了传输过程中的保密性,最后将这个加密的信息发送给TCC ;4) TCC用物理节点TPM模块的签署公钥EKpkn解析出CLn同时验证了物理节点的真实性,然后TCC将物理节点的公钥以及配置列表保存到本地一个目录中,然后用自己的私钥TKrara对确认信息ACK进行签名,然后发送给物理节点以通知其注册成功。虚拟机启动过程的算法描述如图3所示。步骤如下1) User向CM请求一个虚拟机。User向CM发送的请求包括两部分{vm_stat, h (vm_stat)} Kvm 和 Ichallengeu, KvJ TKputcc ;前者使用 her 本地创建的一个会话密钥Kvm来加密虚拟机的初始化状态vm_Stat以及该状态的Hash值h (vm_stat); 后者使用TCC的公钥TKpura来加密本次请求的标号chalIengi5u和her创建的会话密钥Kvm, 该加密信息最终由TCC来解密得到会话密钥Kvm,然后将其发送给物理节点;2) CM接收到信息后,在可信任虚拟运行平台中选择一个物理节点然后将该信息转发给物理节点;3)物理节点保留下{vm_Stat,h (vm_Stat)} Kvm,并将 IchaIlengeu, KvJ TKputc 连同与TCC会话的标志challenge用自己的私钥签名,然后将签名的结果以及自己在可信任虚拟运行平台中的标号N用TCC的公钥加密,最后将加密的结果发送给TCC,以获得与her的会话密钥Kvm ;
4)TCC接收到消息后用自己的私钥解密,得到物理节点签名的信息以及该物理节点的在可信任虚拟运行平台中的标号,然后TCC通过该标号在本地目录中搜索该物理节点的公钥,并用它验证得到Ichallengeu, Kj TKpurce和本次会话标志challenge,然后TCC用自己的私钥解密前者得到challenge和her与物理节点之间的会话密钥Kvm,最后TCC将 Challenge^Challengeu以及会话密钥Kvm用物理节点的公钥加密并用自己的私钥签名后发送给物理节点;5)物理节点接收到TCC返回的信息后,用TCC的公钥验证并用自己的私钥解密得到challenge和会话密钥Kvm,然后用Kvm加密challenge和自己在可信任虚拟运行平台中的标号,并将加密后的结果发送给User。虚拟机跨物理节点迁移过程的算法描述如图4所示。步骤如下1) CM将物理节点d的标号 发送给物理节点s,以通知物理节点s本机上VM迁移的目的节点是物理节点d;2)物理节点s用自己的私钥对迁移目的节点物理节点d的标号Nd和本次会话的标号challenge进行签名,然后将签名的结果和自己的标号Ns用TCC的公钥加密并发送给TCC,以获得物理节点d的公钥;3) TCC接收到物理节点s的请求,解密后将本次会话标号challenge和物理节点 d的公钥用自己的私钥签名并用物理节点s的公钥加密,并将加密的结果返回给物理节点
S ;4)物理节点s接收到TCC的回复后解密出物理节点d的公钥,然后用自己的私钥对本地生产的与物理节点d的会话密钥和新会话标号challenge^进行签名,并将签名的结果以及自己的标号Ns用物理节点d的公钥加密,然后发送给物理节点d ;5)物理节点d接收到物理节点s的信息后解密出物理节点s的标号Ns和用物理节点s私钥签名的信息,下一步物理节点d需要向TCC请求物理节点s的公钥以验证这个签名,所以,物理节点d用自己的私钥签名新的会话标号Challenged和物理节点s的标号 Ns,然后连同自己的标号 用TCC的公钥加密并传送给TCC ;6) TCC将chal Ienged和物理节点s的公钥用自己的私钥签名并用物理节点d的公钥加密发送给物理节点d ;7)物理节点d接收到TCC的信息并解密出物理节点s的公钥Ns,然后用Ns验证得出与物理节点s的会话密钥Ks ;并用该会话密钥加密challenge-并发送给物理节点s ;8)物理节点s接收到物理节点d的信息后,解密出challenge-并得知物理节点d 已经可以做好接收VM的准备,然后将自己本地VM的状态以及该状态的Hash值用会话密钥 Ks加密发送给物理节点d ;9)物理节点d接收到物理节点s所发送来的VM的状态信息并通过Hash值对比, 如果一致,就在本地运行该VM。物理节点安全启动过程的算法描述如图5所示。使用TPM来作为可信的基础,其本质上是一片含有存储部件和独立密码运算部件的系统安全芯片,能够为平台提供密码服务功能、可信存储功能,对外提供受保护的、系统的、规范的访问接口,TCG组织发布的TPM 规范对其实现原理、功能接口作了详细规定。我们使用它的完整性度量机制来实现安全启动,其方法为通过在信息设备启动过程中对BIOS、bootloader、操作系统、VMM依次进行完整性验证,从而保证信息处理设备的安全启动。图5为TPM安全芯片应用于安全启动的流程。具体步骤如下1)在确保物理节点安全的环境下,如生产线上,或首次应用时,生成BIOS、 bootloader、操作系统、VMM的完整性校验码,存储在TPM安全芯片中;2)在物理节点加电时,其内部的TPM芯片进行基本初始化;3) TPM安全芯片读出BIOS代码,计算其完整性校验码,存放至TPM的一个PCR中;4) TPM安全芯片读出bootloader代码,计算其完整性校验码,存放至TPM的一个 PCR 中;5) TPM安全芯片读出待加载操作系统代码,计算其完整性校验码,存放至TPM的一个PCR中;6) TPM安全芯片读出VMM代码,计算其完整性校验码,存放至TPM的一个PCR中;7)从存储部件中读取预先保存的完整性校验码,判断其与计算出的各完整性校验码是否分别一致,如果全部一致,则CPU逐步运行读取的BIOS代码、bootloader代码、操作系统和VMM ;否则,禁用读出的BIOS代码,并发出不一致部件代码已被非法修改的提示。
图1为面向网络化操作系统的可信任虚拟运行平台体系结构图2为物理节点注册过程图3为虚拟机启动过程图4为虚拟机跨物理节点迁移过程图5为物理节点安全启动过程
具体实施例方式本专利的技术在具体实施时需要注意以下事项1)由外部可信任实体提供可信云管理器来对网络化操作系统平台进行验证。 TCC在本地管理一个目录,该目录中存放有网络化操作系统中可信任物理节点的签署公钥 EKpun,公钥TKpun以及配置列表CLn等信息,此外它还负责以安全的渠道对外公布自己的签署公钥EKpura、公钥TKputo和预期的TCC配置列表CLto。2)本专利另假设以下条件成立a)外部可信任实体的可信任性不需要验证;b)TCC的签署公钥、公钥以及预期配置列表,物理节点的签署公钥以及预期配置列表在系统运行前公布,它们的可信性由外部可信任实体保证,不在本专利的考虑范围;a) TPM的可信任性由TPM生产商保证,也不作为本专利的内容。3)为保证本专利的技术在实际部署中能够施行,需要辅助一些必要的物理防范手段和管理措施。如a)出入管理无关人员未经管理人员批准严禁进入机房,进入机房人员不得携带任何易燃易爆和强磁物品及其它与机房工作无关的物品;b)安全管理计算机房要保持清洁、卫生,并由专人7拉4负责管理和维护(包括温度、湿度、电力系统、网络设备等),值班人员应恪守保密制度,不得擅自泄露中心各种信息资料与数据;c)操作管理值班人员必须密切监视中心设备运行状况以及各网点运行情况,确保安全、高效运行。严格按规章制度要求做好各种数据、文件的备份工作,中心服务器数据库要定期进行双备份,并严格实行异地存放、专人保管,所有重要文档定期整理装订,专人保管,以备后查;d)运行管理各类软件系统的维护、增删、配置的更改,各类硬件设备的添加、更换必需经负责人书面批准后方可进行,必须按规定进行详细登记和记录,对各类软件、现场资料、档案整理存档。
权利要求
1.提出面向网络化操作系统的可信任虚拟运行平台体系结构,如图1所示。可信任虚拟运行平台包含网络化操作系统平台和外部可信任实体两大部分。外部可信任实体提供了 TCC用来对网络化操作系统平台中物理节点的可信任性进行验证。每个物理节点最下层是硬件平台,其中包含了 TPM,用来保证物理节点启动过程中的可信任性;物理节点上层的软件栈由下到上依次包括BIOS、Bootloader、操作系统内核以及VMM,而各种不同需求的虚拟机就运行在VMM之上
2.如权利要求1所述,本专利针对面向网络化操作系统的可信任虚拟运行平台的4个关键过程及操作,设计相应的可信任保证机制及算法,分别是(1)物理节点注册过程;(2) 虚拟机启动过程;(3)虚拟机跨物理节点迁移过程;(4)物理节点安全启动过程。
3.物理节点注册过程的算法描述如图2所示。具体步骤如下1)物理节点向TCC发送一个请求challenge以验证TCC的身份;2)TCC将自己的配置列表CLto和刚才接收的challenge用自己TPM模块的签署私钥 EKpkto签名,并绑定一个请求challenge^回复给物理节点,然后等待物理节点的注册信息;3)物理节点用TCC的TPM模块的签署公钥EKputo解析出CLra,与事先收到的TCC预期配置列表ECLra对比,如果一致即验证的TCC的真实身份。然后物理节点将自己的配置列表0^和刚从接收到的(^3116叫4。。用自己的签署私钥签名,随后用TCC的公钥加密这个签名以及物理节点的公钥TKpun,这样保证了传输过程中的保密性,最后将这个加密的信息发送给TCC ;4)TCC用物理节点TPM模块的签署公钥EKpkn解析出CLn同时验证了物理节点的真实性,然后TCC将物理节点的公钥以及配置列表保存到本地一个目录中,然后用自己的私钥 TKpetcc对确认信息ACK进行签名,然后发送给物理节点以通知其注册成功。
4.虚拟机启动过程的算法描述如图3所示。步骤如下DUser向CM请求一个虚拟机。her向CM发送的请求包括两部分{vm_stat,h(vm_ stat)} Kvm和IchaIlengeu, KvJ TKputcc ;前者使用her本地创建的一个会话密钥Kvm来加密虚拟机的初始化状态vm_Stat以及该状态的Hash值h (vm_stat);后者使用TCC的公钥TKputo 来加密本次请求的标号challenge和her创建的会话密钥Kvm,该加密信息最终由TCC来解密得到会话密钥Kvm,然后将其发送给物理节点;2)CM接收到信息后,在可信任虚拟运行平台中选择一个物理节点然后将该信息转发给物理节点;3)物理节点保留下{vm_Stat,h(VnustatMKvm,并将 IchaIlengeu, KvJ TKputc 连同与 TCC 会话的标志challenge用自己的私钥签名,然后将签名的结果以及自己在可信任虚拟运行平台中的标号N用TCC的公钥加密,最后将加密的结果发送给TCC,以获得与her的会话密Kvm ;4)TCC接收到消息后用自己的私钥解密,得到物理节点签名的信息以及该物理节点的在可信任虚拟运行平台中的标号,然后TCC通过该标号在本地目录中搜索该物理节点的公钥,并用它验证得到IchaIlengeu, KvJ TKputcc和本次会话标志challenge,然后TCC用自己的私钥解密前者得到challenge和her与物理节点之间的会话密钥Kvm,最后TCC将 Challenge^Challengeu以及会话密钥Kvm用物理节点的公钥加密并用自己的私钥签名后发送给物理节点;5)物理节点接收到TCC返回的信息后,用TCC的公钥验证并用自己的私钥解密得到 Challengeu和会话密钥Kvm,然后用Kvm加密challenge和自己在可信任虚拟运行平台中的标号,并将加密后的结果发送给User。
5.虚拟机跨物理节点迁移过程的算法描述如图4所示。步骤如下1)CM将物理节点d的标号 发送给物理节点s,以通知物理节点s本机上VM迁移的目的节点是物理节点d;2)物理节点s用自己的私钥对迁移目的节点物理节点d的标号Nd和本次会话的标号challenge进行签名,然后将签名的结果和自己的标号Ns用TCC的公钥加密并发送给 TCC,以获得物理节点d的公钥;3)TCC接收到物理节点s的请求,解密后将本次会话标号challenge和物理节点d的公钥用自己的私钥签名并用物理节点s的公钥加密,并将加密的结果返回给物理节点s ;4)物理节点s接收到TCC的回复后解密出物理节点d的公钥,然后用自己的私钥对本地生产的与物理节点d的会话密钥和新会话标号chalIenge5s2进行签名,并将签名的结果以及自己的标号Ns用物理节点d的公钥加密,然后发送给物理节点d ;5)物理节点d接收到物理节点s的信息后解密出物理节点s的标号Ns和用物理节点 s私钥签名的信息,下一步物理节点d需要向TCC请求物理节点s的公钥以验证这个签名, 所以,物理节点d用自己的私钥签名新的会话标号challenge^和物理节点s的标号Ns,然后连同自己的标号 用TCC的公钥加密并传送给TCC ;6)TCC将challenge^和物理节点s的公钥用自己的私钥签名并用物理节点d的公钥加密发送给物理节点d ;7)物理节点d接收到TCC的信息并解密出物理节点s的公钥Ns,然后用Ns验证得出与物理节点s的会话密钥Ks ;并用该会话密钥加密challenge-并发送给物理节点s ;8)物理节点s接收到物理节点d的信息后,解密出challenge-并得知物理节点d已经可以做好接收VM的准备,然后将自己本地VM的状态以及该状态的Hash值用会话密钥Ks 加密发送给物理节点d ;9)物理节点d接收到物理节点s所发送来的VM的状态信息并通过Hash值对比,如果一致,就在本地运行该VM。
6.物理节点安全启动过程的算法描述如图5所示。具体步骤如下1)在确保物理节点安全的环境下,如生产线上,或首次应用时,生成BIOS、 bootloader、操作系统、VMM的完整性校验码,存储在TPM安全芯片中;2)在物理节点加电时,其内部的TPM芯片进行基本初始化;3)TPM安全芯片读出BIOS代码,计算其完整性校验码,存放至TPM的一个PCR中;4)TPM安全芯片读出bootloader代码,计算其完整性校验码,存放至TPM的一个PCR中;5)TPM安全芯片读出待加载操作系统代码,计算其完整性校验码,存放至TPM的一个 PCR 中;6)TPM安全芯片读出VMM代码,计算其完整性校验码,存放至TPM的一个PCR中;7)从存储部件中读取预先保存的完整性校验码,判断其与计算出的各完整性校验码是否分别一致,如果全部一致,则CPU逐步运行读取的BIOS代码、bootloader代码、操作系统和VMM ;否则,禁用读出的BIOS代码,并发出不一致部件代码已被非法修改的提示。
全文摘要
本发明设计一种面向网络化操作系统的可信任虚拟运行平台技术,属于计算机基础软件技术领域。该技术针对典型的新型网络应用模式下网络化操作系统的主要业务范围和主要操作所面临的主要威胁,通过设立第三方可信认证机构,即可信云控制器,对每一个网络化操作系统中的节点,设计其可信注册及启动机制;经过可信云控制器的认证协议后,方可成为一个可信节点,提供虚拟机可信的宿主运行环境,保证其完整性和正确性遭到的破坏能够在启动过程中被检测出来,并且中断受破坏机器的启动和注册过程。且对虚拟机的主要操作,即启动过程和迁移过程,设计了相应的可信任保证机制。
文档编号H04L9/32GK102202046SQ20111006126
公开日2011年9月28日 申请日期2011年3月15日 优先权日2011年3月15日
发明者刘川意, 张旸旸, 杨金翠, 袁玉宇, 韩强 申请人:北京邮电大学