一种基于云环境分布式虚拟机代理架构及数据完整性保障方法与流程

文档序号:12493386阅读:269来源:国知局
一种基于云环境分布式虚拟机代理架构及数据完整性保障方法与流程

本发明涉及一种基于云环境分布式虚拟机代理架构及数据完整性保障方法,属于可信计算、云计算和信息安全等技术领域。



背景技术:

云计算技术的日益普及、发展,为用户便捷、低成本地使用计算资源打开方便之门,成为了“互联网+”赖以发展的新基础设施。但是,云用户数据的所有权和控制权分离,导致了众多安全问题,例如数据隐私泄漏、数据完整性破坏,因此云用户有必要对其数据进行完整性验证。远程数据完整性验证是解决这一问题的有效方法,其能够在不下载用户数据的基础上,根据事先存储数据标签和“挑战——响应”协议对数据进行验证。目前,数据完整性验证机制根据是否对数据文件采用了容错预处理分为数据持有效证明PDP机制和数据可恢复证明POR机制,为了减少客户端计算、存储和传输开销,这两种机制大都采用了基于第三方审计的方案,而一个理想的支持公开审计方案应具有以下特性:不会增加额外的计算、存储代价,数据隐私性不会泄露,和支持数据的动态操作。同时,如何建立一个安全、可信、高效率的第三方审计机构也是一种重大挑战。

为了保证在云基础设施中数据和计算的完整性,可信云计算技术应运而生。可信云计算从引入可信的外在协调方开始,通过协调方对云端网络中的节点进行认证,维护可信节点,并保证客户虚拟机仅在可信节点上运行。其通过安装可信平台模块芯片并执行一个安全启动过程来进行安装,能够防止特权用户对客户的虚拟机进行监视或修改。

可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。为了保证云计算使用主体之间的信任,尽可能避免安全威胁、及时发现并处理不可信事件,一种基于TPM的可信云计算架构被提出。TPM作为目前普遍认可的可信计算模块,被广泛应用为可信系统的可信根,以此保障基于可信根的所有应用主体行为的可信性。

现有的数据完整性验证协议将注意力集中在数据可能被非法篡改后,进行概率性的验证,不能在数据发生非法篡改时,及时准确的判别正常修改和非法篡改。经计算,如果想要达到99%的验证准确度,当损坏数据块数目与数据块总数比为0.1%时,假设数据块总数为10000块,则挑战数目应为4600块;当损坏比为1%时,挑战数目为460块,因此,在损坏比较低的情况下,所有的完整性协议表现相对不足,另外,引进第三方审计实体将导致数据隐私性泄露给第三方的潜在威胁,虽然可采用随机掩码技术对数据标签进行,但是无疑增加了计算开销。



技术实现要素:

本发明所要解决的技术问题是提供一种采用全新设计模式,能够有效保证数据完整性的基于云环境分布式虚拟机代理架构。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于云环境分布式虚拟机代理架构,包括用于联系用户虚拟机与云服务提供服务器的虚拟机代理,用户虚拟机中设置自验证模块,云服务提供服务器中设置可信任控制芯片,虚拟机代理包括主体模块、附属模块和可信安全保障没模块,其中,主体模块包括初始化模块、数据库模块、数据完整性验证模块和数据主动监测模块,初始化模块用于针对多台用户虚拟机,通过预设指定地址初始化构建代理网络,为各台用户虚拟机初始代理指令,同时用于实现针对用户虚拟机管理与监督;数据库模块用于存储用户虚拟机进行验证的公开验证信息;数据完整性验证模块用于接收云服务提供服务器响应的挑战数据块信息,并通过调用数据库模块中所存储的公开验证信息计算挑战证据;数据主动监测模块用于与用户虚拟机中自验证模块进行协作完成数据监测;

附属模块包括虚拟机代理标识存储模块、虚拟机代理属性存储模块、虚拟机代理状态信息存储模块、通信模块和虚拟机代理映射链接信息存储模块;虚拟机代理标识存储模块用于存储虚拟机代理的唯一标识;虚拟机代理属性存储模块用于存储虚拟机代理的指定属性项目信息;虚拟机代理状态信息存储模块用于存储虚拟机代理执行过程中的状态信息;虚拟机代理映射链接信息存储模块用于存储虚拟机代理与各个用户虚拟机之间的映射链接关系;

可信安全保障模块包括加解密模块、可信评估模块、自销毁模块、信任证模块和安全接口,加解密模块用于针对用户虚拟机的文件进行加解密操作;可信评估模块用于针对所监督的用户虚拟机进行信任评估;自销毁模块用于针对由可信评估模块评估为威胁的用户虚拟机,实现用户虚拟机信息和所操作数据的销毁;信任证模块用于负责用户虚拟机与虚拟机代理初始交互时,提供身份认证操作与本地资源初始操作;安全接口用于实现与外界的通信;

自验证模块用于负责监测用户虚拟机数据,并与虚拟机代理内主体模块中的数据主动监测模块协同完成数据主动监测操作;

可信任控制芯片用于针对各个启动软件实现后续软件的度量,以及度量结果的存储。

作为本发明的一种优选技术方案:所述可信安全保障模块中的安全接口为基于SSH协议的通信接口。

本发明所述一种基于云环境分布式虚拟机代理架构采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计基于云环境分布式虚拟机代理架构,采用可信技术对用户虚拟机进行扩展,创建适合虚拟机代理中各个模块所需的环境,使得整个设计系统具有灵活性、跨平台和可扩展性;而且虚拟机代理是动态生成的,并具有一定的生存周期,因此对其功能进行修改和扩展都非常简便。

相应的,本发明还要解决的技术问题是基于所设计基于云环境分布式虚拟机代理架构,设计全新控制策略,通过虚拟机代理进行数据主动监测和周期性完整性验证,能够提高验证效率,保护用户数据完整性的数据完整性保障方法。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于云环境分布式虚拟机代理架构的数据完整性保障方法,用于目标用户针对其在云环境中所存储的数据实现完整性验证,包括如下步骤:

步骤A.建立虚拟机代理,并构建虚拟机代理分别与用户虚拟机、云服务提供服务器的连接;

步骤B.目标用户通过用户虚拟机,经虚拟机代理建立与云服务提供服务器之间的通信;

步骤C.目标用户通过用户虚拟机,经虚拟机代理与云服务提供服务器通信,验证所存储数据的完整性。

作为本发明的一种优选技术方案,所述步骤A包括如下步骤:

步骤A01.目标用户通过用户虚拟机生成用户RSA非对称密钥和时间戳,并向云服务提供服务器发送虚拟机代理建立请求,其中,虚拟机代理建立请求包含用户RSA公钥和时间戳;

步骤A02.云服务提供服务器响应虚拟机代理建立请求,并生成一个会话密钥,将用户RSA公钥、时间戳和会话密钥用散列函数计算得到一个散列值,此散列值作为可信任控制芯片的第一个度量值;

步骤A03.云服务提供服务器使用用户RSA公钥将会话密钥加密,连同TPM证言和CA证书发送给用户虚拟机;

步骤A04.用户虚拟机首先验证CA证书的合法性,确认后,对TPM证言进行验证,确认是可信任控制芯片的签名,证明当前运行的云服务提供服务器可信;

步骤A05.用户虚拟机用RSA私钥将会话密钥解密,用散列函数将RSA公钥、时间戳和会话密钥进行求值,比较是否和本地值一致,若一致,则证明通信没有受到中间攻击;若不一致,则证明通信受到中间攻击,则结束;

步骤A06.用户虚拟机首先用会话密钥加密虚拟机代理镜像,然后将预先配置的虚拟机代理上传至云端;

步骤A07.云服务提供服务器将待启动的软件的度量值记录在可信任控制芯片中。待启动完毕后,将虚拟机代理标识为活动状态,并执行步骤A03操作,然后进入步骤A08;

步骤A08.执行步骤A04操作,验证虚拟机代理是否建立成功,若成功,用户虚拟机使用会话密钥与虚拟机代理通信,若失败,向云服务提供服务器反馈,返回步骤A01。

作为本发明的一种优选技术方案,所述步骤B包括如下步骤:

步骤B01.取大素数p,Zp是p上的域,设G1,G2,GT是素数p的乘法循环群,g1是G1的生成元,g2是G2的生成元,存在双线性映射l:G1×G2→GT,随机选取a,x∈Zp,用户在本地生成密钥对{SK={a,sk},PK={g1,u,pk}};其中私钥sk=x,

步骤B02.用户虚拟机向云服务提供服务器发送请求,请求云服务提供服务器打开用户虚拟机所对应的虚拟机代理,云服务提供服务器接到用户虚拟机请求,验证其是否合法,若合法,开启虚拟机代理,同时向用户虚拟机返回虚拟机代理的唯一标识,若不合法,返回拒绝连接响应;

步骤B03.用户虚拟机连接虚拟机代理;

步骤B04.用户虚拟机调用数据初始化信息在本地初始化数据信息文件F,并将数据信息文件F(F_Id,Φ={(σi)|1≤i≤n})发送给虚拟机代理,F_Id是数据信息文件F的唯一标志符,Φ是数据信息文件F数据块的标签集合;

步骤B05.用户虚拟机将数据信息文件F上传到虚拟机代理,由虚拟机代理调用标签生成算法为每一数据块生成标签σi,然后通过该代理私钥加密上传数据信息文件F至云服务提供服务器的分布式文件存储系统中,并在虚拟机代理中保存数据信息文件F数据块的标签集合Φ。

作为本发明的一种优选技术方案,所述步骤B03中,用户虚拟机通过SSH协议连接虚拟机代理。

作为本发明的一种优选技术方案,所述步骤B04包括:将数据信息文件F进行分块F={m1、…、mi、…、mn},1≤i≤n,再分别针对各个分块mi进行平均分块,分别分成k个段,即mi={mi,1,…,mi,j,…,mi,k},并且针对各个段编号bn,获得分块mi的签名为σi,如下所示:

其中,H是哈希函数:H:{0,1}*→G1,j为数据段序号:1≤j≤k。

作为本发明的一种优选技术方案,所述步骤C包括如下步骤:

步骤C01.用户虚拟机针对所存储待检测文件,向虚拟机代理发出待检测文件的数据完整性验证请求,数据完整性验证请求chal包括:待检测文件数据块集合IDX={idxi|1≤i≤c,c≤n}和对应的随机数集合R={ri|i∈IDX,r∈Zp}:

接着,虚拟机代理向云服务提供服务器发出待检测文件的数据完整性验证请求;其中,c为待检测的数据块总数,n为待检测文件数据块集合中数据块总数;

步骤C02.云服务提供服务器根据待检测文件的数据完整性验证请求,确定待检测文件所处位置,先向虚拟机代理返回待检测文件的唯一标志符F_Id;

步骤C03.虚拟机代理根据待检测文件的唯一标志符F_Id,获取到待检测文件的相应数据块,计算总数据块M:

其中,mij表示待检测文件数据块集合中第i个数据块、第j段数据,mi={mi,1,…,mi,j,…,mi,k},待检测文件数据块集合IDX={idxi|1≤i≤c,c≤n},根据虚拟机代理数据库中存储的公开信息,计算待挑战数据块标签值的一部分D:

利用标签生成算法计算待检测文件块标签值,虚拟机代理从自身数据库读取待检测文件的数据块标签值计算T,同时计算对应的待检测文件的数据块编号的哈希值B;

其中ti表示待检测文件数据块集合中第i个数据块的数据签名,ri表示数据完整性验证请求chal中第i个数据块所对应的随机数;

生成证据proof={D,B,T},返回给用户虚拟机;

步骤C04.用户虚拟机接收虚拟机代理所返回的证据proof,并计算若等式成立,则证明待检测文件完整,若等式不成立,则证明待检测文件不完整。

本发明所述一种基于云环境分布式虚拟机代理架构的数据完整性保障方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计基于云环境分布式虚拟机代理架构的数据完整性保障方法,基于云环境,采用动态虚拟机代理技术,针对数据进行实时监控,有效保证数据的完整性,提高实际工作安全性和效率。

附图说明

图1是本发明所设计基于云环境分布式虚拟机代理架构的示意图;

图2本发明所设计中基于虚拟机代理的数据主动监测流程图;

图3本发明所设计基于虚拟机代理数据完整性验证协议的示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

如图1所示,本发明设计了一种基于云环境分布式虚拟机代理架构,实际应用中,具体包括用于联系用户虚拟机与云服务提供服务器的虚拟机代理,用户虚拟机中设置自验证模块,云服务提供服务器中设置可信任控制芯片,虚拟机代理包括主体模块、附属模块和可信安全保障没模块,其中,主体模块包括初始化模块、数据库模块、数据完整性验证模块和数据主动监测模块,初始化模块用于针对多台用户虚拟机,通过预设指定地址初始化构建代理网络,为各台用户虚拟机初始代理指令,同时用于实现针对用户虚拟机管理与监督;数据库模块用于存储用户虚拟机进行验证的公开验证信息;数据完整性验证模块用于接收云服务提供服务器响应的挑战数据块信息,并通过调用数据库模块中所存储的公开验证信息计算挑战证据;数据主动监测模块用于与用户虚拟机中自验证模块进行协作完成数据监测。附属模块包括虚拟机代理标识存储模块、虚拟机代理属性存储模块、虚拟机代理状态信息存储模块、通信模块和虚拟机代理映射链接信息存储模块;虚拟机代理标识存储模块用于存储虚拟机代理的唯一标识;虚拟机代理属性存储模块用于存储虚拟机代理的指定属性项目信息;虚拟机代理状态信息存储模块用于存储虚拟机代理执行过程中的状态信息;虚拟机代理映射链接信息存储模块用于存储虚拟机代理与各个用户虚拟机之间的映射链接关系。可信安全保障模块包括加解密模块、可信评估模块、自销毁模块、信任证模块和安全接口,加解密模块用于针对用户虚拟机的文件进行加解密操作;可信评估模块用于针对所监督的用户虚拟机进行信任评估;自销毁模块用于针对由可信评估模块评估为威胁的用户虚拟机,实现用户虚拟机信息和所操作数据的销毁;信任证模块用于负责用户虚拟机与虚拟机代理初始交互时,提供身份认证操作与本地资源初始操作;可信安全保障模块中的安全接口为基于SSH协议的通信接口,安全接口用于实现与外界的通信。自验证模块用于负责监测用户虚拟机数据,并与虚拟机代理内主体模块中的数据主动监测模块协同完成数据主动监测操作。可信任控制芯片用于针对各个启动软件实现后续软件的度量,以及度量结果的存储。

上述技术方案所设计基于云环境分布式虚拟机代理架构,采用可信技术对用户虚拟机进行扩展,创建适合虚拟机代理中各个模块所需的环境,使得整个设计系统具有灵活性、跨平台和可扩展性;而且虚拟机代理是动态生成的,并具有一定的生存周期,因此对其功能进行修改和扩展都非常简便。

基于上述所设计基于云环境分布式虚拟机代理架构,本发明还进一步设计了如下基于云环境分布式虚拟机代理架构的数据完整性保障方法,用于目标用户针对其在云环境中所存储的数据实现完整性验证,实际应用中,如图3所示,具体包括如下步骤:

步骤A.建立虚拟机代理,并构建虚拟机代理分别与用户虚拟机、云服务提供服务器的连接。其中,步骤A具体包括如下步骤:

步骤A01.目标用户通过用户虚拟机生成用户RSA非对称密钥和时间戳,并向云服务提供服务器发送虚拟机代理建立请求,其中,虚拟机代理建立请求包含用户RSA公钥和时间戳。

步骤A02.云服务提供服务器响应虚拟机代理建立请求,并生成一个会话密钥,将用户RSA公钥、时间戳和会话密钥用散列函数计算得到一个散列值,此散列值作为可信任控制芯片的第一个度量值。

步骤A03.云服务提供服务器使用用户RSA公钥将会话密钥加密,连同TPM证言和CA证书发送给用户虚拟机。

步骤A04.用户虚拟机首先验证CA证书的合法性,确认后,对TPM证言进行验证,确认是可信任控制芯片的签名,证明当前运行的云服务提供服务器可信。

步骤A05.用户虚拟机用RSA私钥将会话密钥解密,用散列函数将RSA公钥、时间戳和会话密钥进行求值,比较是否和本地值一致,若一致,则证明通信没有受到中间攻击;若不一致,则证明通信受到中间攻击,则结束。

步骤A06.用户虚拟机首先用会话密钥加密虚拟机代理镜像,然后将预先配置的虚拟机代理上传至云端。

步骤A07.云服务提供服务器将待启动的软件的度量值记录在可信任控制芯片中。待启动完毕后,将虚拟机代理标识为活动状态,并执行步骤A03操作,然后进入步骤A08。

步骤A08.执行步骤A04操作,验证虚拟机代理是否建立成功,若成功,用户虚拟机使用会话密钥与虚拟机代理通信,若失败,向云服务提供服务器反馈,返回步骤A01。

步骤B.目标用户通过用户虚拟机,经虚拟机代理建立与云服务提供服务器之间的通信。

上述步骤B包括如下步骤:

步骤B01.取大素数p,Zp是p上的域,设G1,G2,GT是素数p的乘法循环群,g1是G1的生成元,g2是G2的生成元,存在双线性映射l:G1×G2→GT,随机选取a,x∈Zp,用户在本地生成密钥对{SK={a,sk},PK={g1,u,pk}};其中私钥sk=x,

步骤B02.用户虚拟机向云服务提供服务器发送请求,请求云服务提供服务器打开用户虚拟机所对应的虚拟机代理,云服务提供服务器接到用户虚拟机请求,验证其是否合法,若合法,开启虚拟机代理,同时向用户虚拟机返回虚拟机代理的唯一标识,若不合法,返回拒绝连接响应。

步骤B03.用户虚拟机通过SSH协议连接虚拟机代理。

步骤B04.用户虚拟机调用数据初始化信息在本地初始化数据信息文件F,将数据信息文件F进行分块F={m1、…、mi、…、mn},1≤i≤n,再分别针对各个分块mi进行平均分块,分别分成k个段,即mi={mi,1,…,mi,j,…,mi,k},并且针对各个段编号bn,获得分块mi的签名为σi,如下所示:

其中,H是哈希函数:H:{0,1}*→G1,j为数据段序号:1≤j≤k;然后将数据信息文件F(F_Id,Φ={(σi)|1≤i≤n})发送给虚拟机代理,F_Id是数据信息文件F的唯一标志符,Φ是数据信息文件F数据块的标签集合。

步骤B05.用户虚拟机将数据信息文件F上传到虚拟机代理,由虚拟机代理调用标签生成算法为每一数据块生成标签σi,然后通过该代理私钥加密上传数据信息文件F至云服务提供服务器的分布式文件存储系统中,并在虚拟机代理中保存数据信息文件F数据块的标签集合Φ。

步骤C.目标用户通过用户虚拟机,经虚拟机代理与云服务提供服务器通信,验证所存储数据的完整性。

上述步骤C具体包括如下步骤:

步骤C01.用户虚拟机针对所存储待检测文件,向虚拟机代理发出待检测文件的数据完整性验证请求,数据完整性验证请求chal包括:待检测文件数据块集合IDX={idxi|1≤i≤c,c≤n}和对应的随机数集合R={ri|i∈IDX,r∈Zp}:

接着,虚拟机代理向云服务提供服务器发出待检测文件的数据完整性验证请求;其中,c为待检测的数据块总数,n为待检测文件数据块集合中数据块总数。

步骤C02.云服务提供服务器根据待检测文件的数据完整性验证请求,确定待检测文件所处位置,先向虚拟机代理返回待检测文件的唯一标志符F_Id。

步骤C03.虚拟机代理根据待检测文件的唯一标志符F_Id,获取到待检测文件的相应数据块,计算总数据块M:

其中,mij表示待检测文件数据块集合中第i个数据块、第j段数据,mi={mi,1,…,mi,j,…,mi,k},待检测文件数据块集合IDX={idxi|1≤i≤c,c≤n},根据虚拟机代理数据库中存储的公开信息,计算待挑战数据块标签值的一部分D:

利用标签生成算法计算待检测文件块标签值,虚拟机代理从自身数据库读取待检测文件的数据块标签值计算T,同时计算对应的待检测文件的数据块编号的哈希值B。

其中ti表示待检测文件数据块集合中第i个数据块的数据签名,ri表示数据完整性验证请求chal中第i个数据块所对应的随机数。

最后证据proof={D,B,T},返回给用户虚拟机。

步骤C04.用户虚拟机接收虚拟机代理所返回的证据proof,并计算若等式成立,则证明待检测文件完整,若等式不成立,则证明待检测文件不完整。

实际应用中,用户将数据上传至云端后,数据的控制权交于云服务提供服务器,因此数据监测要求能够及时、有效的检测出异常篡改;如图2示,数据监测包括以下步骤:

步骤1、当访问者发出数据访问请求,首先向虚拟机代理发出请求,查看虚拟机代理是否处于活动状态,若虚拟机代理处于活动状态,则转步骤2,否则,转步骤8;

步骤2、虚拟机代理收到访问请求后,首先由可信安全保障模块进行授权验证,根据访问者属性,给予相应读、写、执行和下载等权限,转步骤3。若验证权限失败转步骤8;

步骤3、虚拟机代理向云服务提供服务器发出数据访问请求,云服务提供服务器根据请求,定位到对应的分布式文件存储系统,将存储时使用虚拟机代理公钥加密后的数据传给虚拟机代理;

步骤4、虚拟机代理使用虚拟机代理私钥将数据解密,计算数据标签Ta,并与存储在虚拟机代理中的文件标签Tt对比,若一致,表明文件正常,未被非法篡改,转步骤5,否则转步骤8;

步骤5、虚拟机代理将文件传输给访问者,访问者获取到文件,可在权限许可内对文件进行处理;

步骤6、访问者对文件进行处理完毕后,向虚拟机代理发出结束请求,虚拟机代理重新利用用户RSA公钥更新文件标签,并用虚拟机代理公钥对文件进行加密上传至云服务提供服务器,云服务提供服务器更新分布式存储系统中的文件,转步骤7;

步骤7、由附属模块将访问者信息记录和文件修改信息写入到日志文件,为问责提供依据,并向发出正常修改信息。

步骤8、拒绝数据访问请求,由附属模块写入日志文件,为问责提供依据,并向用户发送非法篡改警告。

如果用户要将数据保存到分布式文件存储系统,虚拟机代理会在存储前对数据进行加密;反之,如果用户要从分布式文件存储系统中读取数据,虚拟机代理机制会读取后将数据解密。该方法另一个特点是将云操作系统和分布式文件系统进行了隔离,数据加解密由虚拟机代理机制来完成,实现了云操作系统和用户数据的隔离。由于对于云操作系统而言数据始终是已加密的密文,当分布式存储系统被入侵时,攻击者得到的是已加密的密文数据,保证了数据的安全性和机密性。

上述所设计基于云环境分布式虚拟机代理架构的数据完整性保障方法,采用可信技术对用户虚拟机进行扩展,创建适合虚拟机代理各个模块所需的环境,如,自验证模块验证负责用户所属虚拟机本身的完整性,做到事先预防,虚拟机代理负责用户所属虚拟机的管理和完整性验证,做到事后反馈。系统具有灵活性、跨平台和可扩展性;而且虚拟机代理是动态生成的,并具有一定的生存周期,因此对其功能进行修改和扩展都非常简便。并在基于虚拟机代理的租户环境中,当虚拟机自验证模块监测到遭受非法篡改,能够及时通知虚拟机代理和云管理员,警告其所在环境可能处于危险状态,并作出相应措施,如迁移、销毁等。设计中,虚拟机代理本身处于云环境中,可作为用户与云服务提供商之间的可信封装器,能够保存用户与云服务提供商的交互信息,以及纪录云环境中对用户数据操作的不可抵赖的信息,对数据泄露等问题进行有效、可靠的法律依据取证,从而建立完善的问责机制,做到事后取证。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1