虚拟可信根实例及其自身状态数据的安全迁移方法与流程

文档序号:17721540发布日期:2019-05-22 02:12阅读:234来源:国知局
虚拟可信根实例及其自身状态数据的安全迁移方法与流程
本发明属于信息安全领域,具体涉及一种虚拟可信根实例及其自身状态数据的迁移方法。
背景技术
:随着云计算技术的飞速发展,人们对于计算机上应用软件的安全性要求也越来越高,云安全问题已经成为了阻碍云计算发展的瓶颈。在这种背景下,可信计算应运而生,而可信平台模块(trustedplatformmodule,tpm)、可信平台控制模块(trustedplatformcontrolmodule,tpcm)和可信密码模块(trustedcryptographymodule,tcm)则是可信计算领域的核心部件。可信平台模块tpm由ibm公司提出,可信平台模块tpm是内置在计算机主板上的安全芯片,用于为计算机提供安全存储、密钥生成和加解密等可信安全服务。国产可信密码模块tcm提供了对称加密算法、非对称加密算法以及散列算法等密码算法,而可信平台控制模块tpcm在这个基础上,添加了主动度量的功能,相比可信平台模块tpm和可信密码模块tcm,可信平台控制模块tpcm功能更加完善。可信计算起初用于物理机,每个物理机上只有一个物理tpcm芯片,在云环境中,一台物理机上需要部署多个虚拟机,如果要让一个物理tpcm芯片为多个虚拟机提供可信服务,就必须实现硬件tpcm芯片的可信复用。为了保证虚拟机的安全,当创建一个新的虚拟机的时候,同时创建一个与之绑定的虚拟可信根vtpcm实例(virtualtrustedcryptographymodule),该虚拟可信根为虚拟机提供的功能与tpcm芯片为物理机提供的服务与功能相同。专利cn101405694a提出了一种迁移虚拟可信平台模块tpm实例以及保留该实例的唯一性和完整性的方法,该专利中可信平台模块tpm的虚拟化采用了基于虚拟机监视器xen的虚拟化架构,实现了虚拟可信平台模块vtpm实例的迁移。本发明采用了基于虚拟机内核模块kvm的虚拟化架构,基于云平台openstack实现了虚拟可信根vtpcm实例的迁移。基于虚拟机内核模块kvm架构下的虚拟机镜像不需要修改源码,而运行在虚拟机监视器xen架构下的虚拟机的内核需要对源码进行修改,因此需要更新虚拟机监视器xen版本的时候,就需要重新编译整个内核,因此基于虚拟机内核模块kvm的虚拟化方案对各个平台的兼容性更强,由于采用了不同的虚拟化架构,因此不同于虚拟可信根vtpm的迁移方法:在目标平台创建一个空的虚拟可信根vtpm实例,然后依据待迁移实例的自身状态数据进行恢复,而本发明采用了保留源平台上的状态数据,整体迁移到目标平台上再进行运行状态恢复的方式,实现起来更为简单,并且容错率更高。因而,对于不同类别的vtpcm自身状态数据,提出了基于迁移源数据的不同的迁移方式。技术实现要素:本发明提供了一种虚拟可信根vtpcm实例及其自身状态数据的迁移方法。其目的是维护虚拟可信根迁移前后的状态。本发明的特征在于:是在一个虚拟可信根vtpcm实例及其自身状态数据迁移系统中依次按以下步骤实现的:步骤(1),构建一个虚拟可信根vtpcm实例及其自身状态数据迁移系统,包括:一个共享存储控制器,简称控制节点以及与所述控制节点分别无线连接的一组计算节点,简称计算节点群,其中:控制节点,设有:cpu以及分别与所述cpu互连的无线收发模块,共享数据存储器以及共享数据库,其中:共享数据存储器,内设有:被控制系统在一个完整运行过程中按时间顺序在不同采样间隔内采集到的虚拟可信根vtpcm实例的自身状态数据组,共享数据库中,设有:各计算节点的ip,编号及其按具体技术作用而区别的功能标识dp,计算节点,设有:物理芯片可信平台控制模块,简称tpcm,无线收发模块,所有的虚拟可信根vtpcm实例及其自身状态数据暂存器组,其中:tpcm,设有:至少内置有:对称加密算法、非对称加密算法、散列算法以及mkimage工具中的影像值形成算法的算法存储模块,虚拟可信根vtpcm组,用数组{vtpcm1,vtpcm2,…,vtpcmn,…,vtpcmn}表示,n为虚拟可信根实例总数,以无线方式从所述控制节点中接收能实现本地计算节点的具体技术作用的自身状态数据,虚拟可信根vtpcm实例及其自身状态数据暂存器组,其中,虚拟可信根vtpcm实例是指与采样时刻t采到的状态数据相对应的以实例形式表示的虚拟可信根vtpcm,其中包括:对各时刻采集到的不同运行状态数据分别用同一种散列算法扩展而得到的各种不同的自身状态数据,对各种不同的自身状态数据用mkimage工具得到的各种不同的影像值,对各种不同的影像值,用同一种对称加密算法得到的各种不同的基准值,所述虚拟可信根vtpcm实例反应了从原始的状态数据演变成为可信校验用的基准值的全过程,用以恢复vtpcm实例的运行状态的逻辑操作序列文件logfile,虚拟可信根vtpcm实例的自身状态数据包括:直接可读可写数据和单向运算得出的数据,其中:直接可读可写数据,存储于非易失性随机访问存储器nvram,至少包括:传输会话句柄、永久性标志位和计数器的值,采用直接动态读写方式迁移,单向运算得出的数据,是指寄存于24个平台配置寄存器pcr中由可信计算组织tcg定义的表证了各平台配置寄存器pcr用的重要度量值pcr值,存储于计算节点的用虚拟平台配置寄存器vpcr标识的内存中,这是一种只能进行单向运算得出的数据,采取迁移其单向运算的输入数据即源数据的迁移方式,这两种数据迁移方式的共同点是保留源平台的状态数据,整体迁移到目标平台上再进行状态恢复的方式,对于直接可读可写数据中的传输会话句柄、永久性标志位和计数器的值这类无需通过运算得出的数据采用直接把数据加密打包,连同虚拟可信根vtpcm实例整体迁移到目标平台的方式进行迁移,所述tpcm,虚拟可信根vtpcm实例分别通过所述无线收发模块与控制节点相连,各虚拟可信根vtpcm分别维护自身的状态数据,步骤(2),虚拟可信根vtpcm实例及其自身状态数据按以下步骤实现本发明的目的:步骤(2.1),系统初始化:步骤(2.1.1),控制节点的cpu为各计算节点设定ip,dp以及编号,同时设定虚拟可信根vtpcm实例个数为n个,步骤(2.1.2),控制节点把共享数据库的虚拟可信根vtpcm实例自身状态数据以无线方式输入到各计算节点的虚拟可信根vtpcm实例组中,完成初始时刻对所述全部vtpcm实例自身状态数据的分配,步骤(2.2),控制节点设定源平台a是指执行所述迁移任务的计算节点,目标平台b是指被迁入的计算节点,按以下步骤进行迁移:步骤(2.2.1),控制节点的cpu判断,所述动态迁移指令是控制节点管理人员出于被控系统控制方案的改变或硬件结构的改变而下达的,则执行步骤(2.2.1.1),所述动态迁移请求是某一个计算节点管理人员出于对本地计算节点功能的扩展或计算节点硬件结构的改变而请求的,则执行步骤(2.2.2),步骤(2.2.1.1),控制节点的cpu为本地管理人员指定的源平台a从全部计算节点中选择一个功能标识dp相同或相似且内存空间又充足的目标平台b,同时下令对应的虚拟可信根vtpcm实例及其自身状态数据迁移到目标平台b,步骤(2.2.1.2),源平台a和目标平台b进行身份认证,确保平台的可信性,步骤(2.2.1.3),在目标平台b上使用可信平台控制模块tpcm的非对称加密sm2算法,创建保护操作密钥,然后目标平台b将保护操作密钥的公钥发送到源平台a上,步骤(2.2.1.4),在源平台a上使用虚拟可信根vtpcm实例的对称加密sm4算法创建对称加密密钥,对源平台a上的虚拟可信根vtpcm实例自身的状态数据以及操作序列文件logfile进行加密,使用目标平台b发送过来的保护操作密钥的公钥加密源平台a上创建的对称加密密钥,步骤(2.2.1.5),将加密好的虚拟可信根vtpcm实例自身的状态数据以及虚拟可信根vtpcm实例进行打包,发送到目标平台b上,步骤(2.2.1.6),目标平台b使用保护操作密钥的私钥解密源平台a发送过来的数据,得到对称加密密钥,然后使用对称加密密钥解密迁移过来的虚拟可信根vtpcm实例自身的状态数据,得到源平台a上vtpcm的自身状态数据和操作序列文件logfile,步骤(2.2.1.7),依据操作序列文件logfile的操作顺序,在目标平台b上对从源平台a迁移过来的虚拟可信根vtpcm实例进行运行状态恢复,步骤(2.2.1.8),目标平台b上的虚拟可信根vtpcm实例恢复成功,在源平台a上将虚拟可信根vtpcm实例删除,步骤(2.2.2),执行步骤(2.2.1.2)-步骤(2.2.1.8),完成虚拟可信根vtpcm实例从源平台到目标平台的迁移。本发明使用可信平台控制模块tpcm代替了可信平台模块,用虚拟机内核模块kvm的虚拟化代替了虚拟机监视器xen的虚拟化,客服了专利cn101405694a中的缺点,实现了虚拟可信根vtpcm实例及其自身状态数据的源数据式得迁移方式,提高了系统软件的传输效率。附图说明图1是本发明的系统框图。图2是虚拟可信根vtpcm实例及其自身状态数据迁移时的迁移系统结构框图;图3是本发明的虚拟可信根实例迁移过程流程图。图4是本发明的虚拟可信根vtpcm实例状态恢复流程图。具体实施方式虚拟可信根自身的状态数据包括了非易失性随机访问存储器(non-volatilerandomaccessmemory,nvram)存储的非易失性数据,传输会话句柄,永久性标志位和pcr值等。nvram存储的是当前虚拟可信根的一些非易失性数据,就是重启计算机不会被清空的数据;传输会话则用于数据的传输,当源和目的双方需要进行数据传输时,首先建立一个会话,然后才能进行数据传输;永久性标志位记录了虚拟可信根vtpcm实例运行过程中用到的一些标志位,永久性标志位的结构定义如下:tpcm_permanent_flagsvalueownershipfalsereadpubekfalsedisableownerclearfalsedeactivatedtrue……表中永久性标志位tpcm_permanent_flags是一个结构体,该结构体有多个值,本发明中列举了其中几项进行举例说明,表中的ownership表示是否能够创建所有者;readpubek表示的是在没有所有者授权的情况下是否能读取背书密钥ek;disableownerclear表示的是所有者授权的清除命令是否激活;deactivated表示的是没有激活的标志位的状态。平台配置寄存器pcr主要用于寄存重要的度量值,一共有24个,可信计算组织(trustedcomputinggroup,tcg)的规范定义了各个平台配置寄存器pcr的用途,如下表所示:pcr用途0核心bios,通电自检bios1主板配置2rom代码3rom配置数据4初识程序导入5初识程序导入配置数据6状态转移(待机和休眠等)7保留做oem用8~未指定平台配置寄存器pcr一个很重要的特性是只能通过两种方式来改变它的值,一种是扩展(extend)操作,一种是重置(reset)操作,重置操作的结果是将所有值置为0,而扩展操作是将pcr的当前值连接上新的度量值,再将连接后的值进行散列运算,并存为新的pcr值,以第i个平台配置寄存器pcr的值为例,计算方法是取出第i个平台配置寄存器pcr的值,在后边连接上要扩展的度量值,然后对该值进行散列运算,再次存入到第i个平台配置寄存器pcr当中,完成一次扩展操作。可以看出,虽然能够轻易地将虚拟平台配置寄存器vpcr的值读出来,但无法将该值写入到迁移之后对应的虚拟平台配置寄存器vpcr当中,因此这一类只能进行单向运算得出的数据,本发明采取迁移源数据的方式。源数据指的是单向运算的输入数据,例如,现在第k个平台配置寄存器pcr的值为0,要将“abc”扩展进去,扩展进去的值经过散列运算得到了“def”,这个过程中的“abc”就是源数据。将待迁移数据分为两类之后,对于不同类型的待迁移数据,本发明采取了不同的迁移恢复策略。对于永久性标志位、传输会话句柄等不需要经过运算得出的数据,直接将数据加密打包,连同虚拟可信根vtpcm实例迁移到目标平台,而pcr值这种只能单向运算得出的数据,则将源数据进行加密打包,然后依据虚拟可信根的操作序列文件logfile,在迁移到目标平台之后的虚拟可信根vtpcm实例上使用源数据扩展来进行虚拟可信根vtpcm实例自身的运行状态恢复。数据的传输采用的是json数据格式,传输起来较为方便,目标平台拿到迁移过去的数据之后解析出来,比较容易获取相应数据,本发明中为了方便查看,以表格的形式示例:如下所示的是一个虚拟平台配置寄存器vpcr值源数据的格式:item\index12…pcr_sourcevalue“abc”“defg”…表格列出了虚拟平台配置寄存器vpcr值的源数据,其中item表示的是项,item项中的pcr_sourcevalue表示的是pcr源数据,index中的1、2、…表示相应平台配置寄存器,一共有24个,在这里用两个来举例,其对应的值为扩展操作使用的源数据。如下所示是一个永久性标志位数据的json数据:item\namereadpubekownershipendorsementkey…permanent_data--pubkey…permanent_flagtruefalse-………………表格中列出了一个永久性标志位的数据,item项中的permanent_data表示的是永久标志位中的数据,是一个结构体,它所对应的项目中有一个endorsementkey,这个就是虚拟可信根vtpcm实例的背书密钥ek,它的值是pubkey;item项中的permanent_flag表示的是一些标志位,同样也是一个结构体,结构体中readpubek表示在没有所有者授权的情况下能否读取ek;另一个标志位ownership表示的则是是否有权限建立一个所有者。表格中所有值为“-”的地方表示该项item没有对应的属性值。操作序列文件logfile记录了虚拟可信根在源平台进行的操作序列,形式采用了linuxshell的格式来进行记录,在目标平台上,迁移之后的虚拟可信根vtpcm实例要依据该文件进行运行状态恢复,操作序列文件logfile的格式如下:输入:创建对称加密密钥输出:对称加密密钥symkey输入:读取第一个平台配置寄存器pcr的值输出:第一个平台配置寄存器pcr的值输入:将“aaaa”扩展到第一个平台配置寄存器pcr中输出:第一个平台配置寄存器pcr扩展之后的值如图2所示是本发明实施例虚拟可信根vtpcm实例迁移的整体架构图,本发明中,虚拟可信根vtpcm实例运行在源平台a上,源平台a上一共运行着n个虚拟可信根vtpcm实例及其自身运行状态组,目标平台b上也运行着多个虚拟可信根vtpcm实例并维护自身运行状态,现在要将第i个虚拟可信根vtpcm实例vtpcmi及其自身状态数据从源平台a迁移到目标平台b。图3是虚拟可信根vtpcm实例及其自身状态数据迁移的整体流程图。具体迁移步骤如下:步骤1:构建一个由源平台a和目标平台b以及控制节点组成的虚拟可信根vtpcm实例及其自身状态数据迁移系统,源平台a上和目标平台b上都运行着n个虚拟可信根vtpcm实例并维护自身状态数据,源平台a收到控制节点的指令或者出于自身平台需要要将虚拟可信根vtpcm实例迁移到目标平台b;步骤2:源平台a和目标平台b进行身份认证,通过平台自身特有的平台身份认证密钥(platformidentitykeys,pik)来完成身份认证;步骤3:目标平台b使用可信平台控制模块tpcm的非对称加密sm2算法创建保护操作密钥,并将保护操作密钥的公钥pubkey发送到源平台a;步骤4:源平台a通过待迁移的虚拟可信根vtpcm实例的对称加密sm4算法创建对称加密密钥symkey,通过对称加密密钥symkey对源平台a上的虚拟可信根vtpcm实例自身的状态数据以及操作序列文件logfile进行加密,然后使用目标平台b发送过来的保护操作密钥的公钥pubkey加密对称加密密钥symkey;步骤5:源平台a将加密好的虚拟可信根vtpcm实例自身的状态数据组和虚拟可信根vtpcm实例打包通过控制节点发送到目标平台b;步骤6:目标平台b得到源平台a发送过来的打包的虚拟可信根vtpcm实例及其自身状态数据后,使用保护操作密钥的私钥privkey解密虚拟可信根vtpcm实例及其自身的状态数据,得到状态数据和操作序列文件logfile,数据恢复流程图如图4所示;步骤7:在目标平台b上,在从源平台a迁移过来的虚拟可信根vtpcm实例上通过虚拟可信根vtpcm实例自身的状态数据和操作序列文件logfile对虚拟可信根vtpcm实例的自身运行状态进行恢复,数据恢复流程图如图4所示;步骤8:在源平台a上将迁移到目标平台b上的虚拟可信根vtpcm实例删除,完成迁移操作。本发明提出了一种虚拟可信根实例及其自身状态数据的迁移方法,通过对虚拟可信根实例自身状态数据和操作序列文件logfile的打包迁移,并在目标平台依据上述文件进行虚拟可信根实例自身状态的恢复,完成虚拟可信根实例及其自身状态数据的迁移操作。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1