掌桥专利:专业的专利平台
掌桥专利
首页

多版本数据完整性云审计方法及系统

文献发布时间:2023-06-19 11:54:11


多版本数据完整性云审计方法及系统

技术领域

本发明涉及云计算技术领域,尤其涉及多版本数据完整性云审计方法及系统。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

云存储服务中为了实现节省存储空间,在数据更新和数据备份常常采用增量的形式保存数据。通过增量的形式保存数据不但能有效地节省存储空间,而且也便于数据回滚。在数据不断修改的过程中,通过增量保存数据就形成了多版本数据。在云数据审计中,如何实现对多版本数据的完整性审计同时,避免用户端和服务器端严重计算和通信开销,成为云数据完整性审计亟待解决的问题。

发明内容

本发明实施例提供一种多版本数据完整性云审计方法,用以降低多版本数据完整性云审计的计算和通信开销,该多版本数据完整性云审计方法包括:

服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;

服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;

服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。

本发明实施例还提供一种多版本数据完整性云审计系统,用以降低多版本数据完整性云审计的计算和通信开销,该多版本数据完整性云审计系统包括:

签名验证模块,用于根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;

运行环境认证模块,用于在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;

完整性验证模块,用于根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多版本数据完整性云审计方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述多版本数据完整性云审计方法的计算机程序。

本发明实施例中,服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。本发明实施例中在当前版本文件的签名验证通过后,通过建立可信容器及服务器可信容器之间的可信通道,在可信容器内实现对当前版本文件及历史版本文件完整性的验证,能够降低多版本数据完整性云审计的计算和通信开销。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例提供的多版本数据完整性云审计方法的实现流程图;

图2为本发明实施例提供的多版本数据完整性云审计方法中步骤101的实现流程图;

图2-1为本发明实施例提供的逆增量版本控制链示意图;

图3为本发明实施例提供的多版本数据完整性云审计方法中步骤201的实现流程图;

图4为本发明实施例提供的多版本数据完整性云审计方法中步骤202的实现流程图;

图5为本发明实施例提供的多版本数据完整性云审计方法中步骤102的实现流程图;

图6为本发明实施例提供的多版本数据完整性云审计方法中步骤103的实现流程图;

图7为本发明实施例提供的多版本数据完整性云审计方法中步骤103的另一实现流程图;

图7-1为本发明实施例提供的某逆增量版本控制链示意图;

图8为本发明实施例提供的多版本数据完整性云审计系统的功能模块图;

图9为本发明实施例提供的多版本数据完整性云审计系统中签名验证模块801的结构框图;

图10为本发明实施例提供的多版本数据完整性云审计系统中客户端签名生成单元901的结构框图;

图11为本发明实施例提供的多版本数据完整性云审计系统中服务器端控制链哈希值生成单元902的结构框图;

图12为本发明实施例提供的多版本数据完整性云审计系统中运行环境认证模块802的结构框图;

图13为本发明实施例提供的多版本数据完整性云审计系统中完整性验证模块803的结构框图;

图14为本发明实施例提供的多版本数据完整性云审计系统中完整性验证模块803的另一结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1示出了本发明实施例提供的多版本数据完整性云审计方法的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

如图1所示,多版本数据完整性云审计方法,应用于包含部署了软件防护扩展指令的服务器及客户端的多版本数据完整性云审计系统中。多版本数据完整性云审计方法包括:

步骤101,服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;

步骤102,服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;

步骤103,服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。

多版本数据完整性云审计方法,应用于多版本数据完整性云审计系统。其中,多版本数据完整性云审计系统包括部署了软件防护扩展指令(Software Guard Extensions,简称SGX)的服务器及客户端。

其中,客户端可以采用增量方式组织和存储文件,优选的客户端采用逆增量的方式组织和存储文件。逆增量存储时文件(数据)存在多个版本,最新版本完整存储,而其它版本采用逆增量的方式存储。具体在对多版本数据的完整性进行云审计时,即客户端采用逆增量的方式发送当前版本文件的签名及用于验证(客户端的)签名的元数据至服务器。服务器进而根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证。

在当前版本文件的签名验证通过后,说明文件是真实有效的,此时服务器向客户端反馈当前版本文件的签名验证通过的消息,进而客户端基于服务器反馈的验证通过的消息,向服务器发送运行环境认证请求。进而,服务器根据客户端发送的运行环境认证请求建立可信容器,以及建立客户端与服务器可信容器之间的可信通道。

在建立可信容器及客户端与服务器可信容器之间的可信通道后,客户端通过建立的可信通道发送当前版本文件对应的文件标识符以及当前版本文件的完整性验证请求,然后服务器根据文件标识符及完整性验证请求,对当前版本文件的完整性进行验证。

在本发明实施例中,服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。本发明实施例中在当前版本文件的签名验证通过后,通过建立可信容器及服务器可信容器之间的可信通道,在可信容器内实现对当前版本文件及历史版本文件完整性的验证,能够降低多版本数据完整性云审计的计算和通信开销。

当前版本文件的签名可能验证通过,也可能验证不通过。在较优的一实施例中,为保障数据安全性,在上述图1所示方法步骤的基础上,多版本数据完整性云审计方法还包括:

服务器在当前版本文件的签名验证未通过时,反馈签名验证未通过的消息至客户端。当前版本文件的签名验证未通过,说明当前版本文件可能是不安全的或者不是有效的文件,此时反馈签名验证未通过的消息至客户端,能够保障数据安全性。

当前版本文件可能是完整的,也可能是不完整的。在较优的一实施例中,为便于了解当前版本文件的完整性状态,在上述图1所示方法步骤的基础上,多版本数据完整性云审计方法还包括:

服务器在验证当前版本文件完整时,反馈当前版本文件完整的消息至客户端;

服务器在验证当前版本文件不完整时,反馈当前版本文件损坏的消息至客户端。

图2示出了本发明实施例提供的多版本数据完整性云审计方法中步骤101的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,签名的元数据包括多版本数据完整性云审计系统的单向哈希函数及安全哈希函数。为了提高客户端数字签名验证的准确性,如图2所示,步骤101,服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证,包括:

步骤201,客户端根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的私钥生成的当前版本文件对应的客户端数字签名;

步骤202,服务器根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的公钥生成当前版本文件对应的服务器端版本控制链哈希值;

步骤203,服务器根据公钥及当前版本文件对应的服务器端版本控制链哈希值,对当前版本文件对应的客户端数字签名进行验证。

多版本数据完整性云审计系统包括服务器及客户端。其中,多版本数据完整性云审计系统的大素数p的绝对值等于多版本数据完整性云审计系统的安全参数l,即:|p|=l。G为大素数p的乘法循环群,g是乘法循环群G的生成元,h(·)及H(·)分别是多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,且定义为H(·):{0,1}

在验证当前版本文件的签名(客户端数字签名)时,客户端采用逆增量方式组织和存储文件。逆增量版本控制的最新版本被完整保存,而其它版本采用逆增量形式保存。图2-1示出了本发明实施例提供的逆增量版本控制链示意。其中,Δi(i=1,2,…,v-2,v-1)表示对第i个版本文件F

进而,客户端根据当前版本文件F

然后,服务器根据当前版本文件对应的文件标识符F

进而,服务器根据公钥pk及生成的当前版本文件F

δ=Verify(pk,σ

其中,δ表示客户端数字签名σ

在本发明实施例中,客户端根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的私钥生成的当前版本文件对应的客户端数字签名;服务器根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的公钥生成当前版本文件对应的服务器端版本控制链哈希值;服务器根据公钥及当前版本文件对应的服务器端版本控制链哈希值,对当前版本文件对应的客户端数字签名进行验证。本发明实施例客户端根据单向哈希函数及安全哈希函数,利用私钥生成客户端数字签名,服务器根据单向哈希函数及安全哈希函数,利用公钥生成服务器端版本控制链哈希值。进而采用公钥及服务器端版本控制链哈希值对客户端数字签名进行验证,能够提高客户端数字签名验证的准确性。

图3示出了本发明实施例提供的多版本数据完整性云审计方法中步骤201的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高客户端数字签名的安全性,如图3所示,步骤201,客户端根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的私钥生成的当前版本文件对应的客户端数字签名,包括:

步骤301,客户端根据当前版本文件对应的文件标识符及多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的客户端聚合值;

步骤302,客户端根据当前版本文件对应的文件标识符及逆增量哈希的客户端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的客户端版本控制链哈希值;

步骤303,客户端根据私钥对当前版本文件对应的客户端版本控制链哈希值,生成当前版本文件对应的客户端数字签名。

客户端在生成当前版本文件F

进而,客户端再根据当前版本文件F

θ

客户端在确定当前版本文件F

σ

其中,SIG(x,θ

在本发明实施例中,客户端根据当前版本文件对应的文件标识符及多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的客户端聚合值;客户端根据当前版本文件对应的文件标识符及逆增量哈希的客户端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的客户端版本控制链哈希值;客户端根据私钥对当前版本文件对应的客户端版本控制链哈希值,生成当前版本文件对应的客户端数字签名。本发明实施例中,客户端通过文件标识符及单向哈希函数确定客户端聚合值,进而通过文件标识符、客户端聚合值、单向哈希函数及安全哈希函数确定客户端版本控制链哈希值,最后客户端利用私钥及客户端版本控制链哈希值,生成客户端数字签名,能够提高客户端数字签名的安全性。

图4示出了本发明实施例提供的多版本数据完整性云审计方法中步骤202的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高服务器端版本控制链哈希值的准确性,如图4所示,步骤202,根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的公钥生成当前版本文件对应的服务器端版本控制链哈希值,包括:

步骤401,服务器根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的服务器端聚合值;

步骤402,服务器根据当前版本文件对应的文件标识符及逆增量哈希的服务器端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的服务器端版本控制链哈希值。

客户端将当前版本文件F

进而,服务器再根据当前版本文件F

θ

在本发明实施例中,服务器根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的服务器端聚合值;服务器根据当前版本文件对应的文件标识符及逆增量哈希的服务器端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的服务器端版本控制链哈希值。本发明实施例中服务器通过文件标识符及单向哈希函数,确定服务器端聚合值,进而服务器根据文件标识符及服务器端聚合值、单向哈希函数及安全哈希函数,确定服务器端版本控制链哈希值,能够提高服务器端版本控制链哈希值的准确性。

图5示出了本发明实施例提供的多版本数据完整性云审计方法中步骤102的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高文件数据安全性,如图5所示,步骤102,服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道,包括:

步骤501,服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求创建可信容器,发送可信容器的哈希值至客户端;

步骤502,客户端通过软件防护扩展指令中的软件证明程序验证服务器发送的可信容器的哈希值与期望哈希值是否一致;

步骤503,在验证服务器发送的可信容器的哈希值与期望哈希值一致时,建立客户端与服务器的可信容器之间的可信通道。

在当前版本文件的签名验证通过后,客户端基于服务器反馈的签名验证通过的消息,发送运行环境认证请求至服务器。服务器根据客户端发送的运行环境认证请求创建可信容器(enclave),同时发送可信容器(enclave)的哈希值给客户端。

客户端在接收到服务器可信容器发送的哈希值后,通过软件防护扩展(SGX)指令中的软件证明(Software Attestation)程序验证服务器发送的可信容器的哈希值与期望哈希值是否一致。在验证服务器发送的可信容器的哈希值与期望哈希值一致时,说明可信容器是可靠的,通过可信容器传输数据是安全的,故而建立客户端与服务器的可信容器之间的可信通道,以通过该可信通道传输文件数据,保障文件数据的安全性。

在本发明实施例中,服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求创建可信容器,发送可信容器的哈希值至客户端;客户端通过软件防护扩展指令中的软件证明程序验证服务器发送的可信容器的哈希值与期望哈希值是否一致;在验证服务器发送的可信容器的哈希值与期望哈希值一致时,建立客户端与服务器的可信容器之间的可信通道。本发明实施例服务器基于运行环境认证请求创建可信容器,客户端验证服务器发送的可信容器的哈希值与期望哈希值一致时,建立客户端与服务器的可信容器之间的可信通道,从而提高文件数据的安全性。

另外,服务器发送的可信容器的哈希值与期望哈希值可能一致,也可能不一致。在较优的一实施例中,为进一步保障数据安全性,在上述方法步骤的基础上,多版本数据完整性云审计方法还包括:

在验证服务器发送的可信容器的哈希值与期望哈希值不一致时,服务器反馈运行环境认证未通过的消息至客户端。

图6示出了本发明实施例提供的多版本数据完整性云审计方法中步骤103的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高数据完整性验证的准确性,如图6所示,步骤103,服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性,包括:

步骤601,服务器根据客户端通过可信通道发送的文件标识符、完整性验证请求及当前版本文件对应的客户端版本控制链哈希值,从可信容器外加载文件标识符对应的当前版本文件及当前版本文件对应的逆增量至可信容器中;

步骤602,服务器在可信容器内根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的可信容器聚合值;

步骤603,服务器根据当前版本文件对应的文件标识符及逆增量哈希的可信容器聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的可信容器版本控制链哈希值;

步骤604,服务器验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值是否一致。

服务器在对当前版本文件F

进而,服务器在可信容器内根据当前版本文件F

进而,服务器再根据当前版本文件F

θ

服务器在确定当前版本文件F

在本发明实施例中,服务器根据客户端通过可信通道发送的文件标识符、完整性验证请求及当前版本文件对应的客户端版本控制链哈希值,从可信容器外加载文件标识符对应的当前版本文件及当前版本文件对应的逆增量至可信容器中;服务器在可信容器内根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的可信容器聚合值;服务器根据当前版本文件对应的文件标识符及逆增量哈希的可信容器聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的可信容器版本控制链哈希值;服务器验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值是否一致。本发明实施例服务器通过在可信容器内基于文件标识符及单向哈希函数确定可信容器聚合值,进而根据文件标识符及可信容器聚合值、单向哈希函数及安全哈希函数,确定可信容器版本控制链哈希值,通过验证可信容器版本控制链哈希值与客户端版本控制链哈希值是否一致,验证文件数据完整性,能够提高数据完整性验证的准确性。

图7示出了本发明实施例提供的多版本数据完整性云审计方法中步骤103的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了便于客户端及时了解文件完整性状态,如图7所示,在上述方法步骤的基础上,步骤103,服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性,还包括:

步骤701,在验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值一致时,服务器反馈文件完整的通知至客户端。

在验证可信容器版本控制链哈希值与客户端版本控制链哈希值一致时,说明当前版本文件及历史版本文件的数据是完整的,为便于客户端及时了解文件完整性状态,此时服务器反馈文件完整的通知至客户端。

在本发明实施例中,在验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值一致时,服务器反馈文件完整的通知至客户端,能够便于客户端及时了解文件完整性状态。

可信容器版本控制链哈希值与客户端版本控制链哈希值可能一致,也可能不一致,在较优的一实施例中,为便于客户端及时了解文件完整性状态,在上述方法步骤的基础上,多版本数据完整性云审计方法还包括:

在验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值不一致时,服务器反馈文件不完整的通知至客户端。

在验证可信容器版本控制链哈希值与客户端版本控制链哈希值不一致时,说明当前版本文件及历史版本文件的数据是不完整的或存在损坏的,为便于客户端及时了解文件完整性状态,此时服务器反馈文件不完整的通知至客户端。

图7-1示出了本发明实施例提供的某逆增量版本控制链示意,从图7-1所示可以看出,当前文件版本为u,最新的(需更新的)文件版本应为u+1,即文件由F

客户端先计算逆增量哈希的客户端聚合值

然后,客户端上传文件的逆增量Δu及客户端数字签名σ

本发明实施例还提供一种多版本数据完整性云审计系统,如下面的实施例所述。由于这些系统解决问题的原理与多版本数据完整性云审计方法相似,因此这些系统的实施可以参见方法的实施,重复之处不再赘述。

图8示出了本发明实施例提供的多版本数据完整性云审计系统的功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

参考图8,所述多版本数据完整性云审计系统所包含的各个模块用于执行图1对应实施例中的各个步骤,具体请参阅图1以及图1对应实施例中的相关描述,此处不再赘述。本发明实施例中,多版本数据完整性云审计系统包括部署了软件防护扩展指令的客户端及服务器。所述多版本数据完整性云审计系统包括签名验证模块801、运行环境认证模块802及完整性验证模块803。

签名验证模块801,用于根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证。

运行环境认证模块802,用于在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道。

完整性验证模块803,用于根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。

在本发明实施例中,签名验证模块801根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;运行环境认证模块802在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;完整性验证模块803根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。本发明实施例在当前版本文件的签名验证通过后,运行环境认证模块802通过建立可信容器及服务器可信容器之间的可信通道,完整性验证模块803在可信容器内实现对当前版本文件及历史版本文件完整性的验证,能够降低多版本数据完整性云审计的计算和通信开销。

图9示出了本发明实施例提供的多版本数据完整性云审计系统中签名验证模块801的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,签名的元数据包括多版本数据完整性云审计系统的单向哈希函数及安全哈希函数。为了提高客户端数字签名验证的准确性,参考图9,所述签名验证模块801所包含的各个单元用于执行图2对应实施例中的各个步骤,具体请参阅图2以及图2对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述签名验证模块801包括客户端签名生成单元901、服务器端控制链哈希值生成单元902及客户端签名验证单元903。

客户端签名生成单元901,用于客户端根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的私钥生成的当前版本文件对应的客户端数字签名。

服务器端控制链哈希值生成单元902,用于根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的公钥生成当前版本文件对应的服务器端版本控制链哈希值。

客户端签名验证单元903,用于根据公钥及当前版本文件对应的服务器端版本控制链哈希值,对当前版本文件对应的客户端数字签名进行验证。

在本发明实施例中,客户端签名生成单元901根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的私钥生成的当前版本文件对应的客户端数字签名;服务器端控制链哈希值生成单元902根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,利用公钥私钥对中的公钥生成当前版本文件对应的服务器端版本控制链哈希值;客户端签名验证单元903根据公钥及当前版本文件对应的服务器端版本控制链哈希值,对当前版本文件对应的客户端数字签名进行验证。本发明实施例客户端签名生成单元901根据单向哈希函数及安全哈希函数,利用私钥生成客户端数字签名,服务器端控制链哈希值生成单元902根据单向哈希函数及安全哈希函数,利用公钥生成服务器端版本控制链哈希值。进而客户端签名验证单元903采用公钥及服务器端版本控制链哈希值对客户端数字签名进行验证,能够提高客户端数字签名验证的准确性。

图10示出了本发明实施例提供的多版本数据完整性云审计系统中客户端签名生成单元901的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高客户端数字签名的安全性,参考图10,所述客户端签名生成单元901所包含的各个子单元用于执行图3对应实施例中的各个步骤,具体请参阅图3以及图3对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述客户端签名生成单元901包括客户端聚合值确定子单元1001、客户端控制链哈希值确定子单元1002及客户端签名生成子单元1003。

客户端聚合值确定子单元1001,用于根据当前版本文件对应的文件标识符及多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的客户端聚合值。

客户端控制链哈希值确定子单元1002,用于根据当前版本文件对应的文件标识符及逆增量哈希的客户端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的客户端版本控制链哈希值。

客户端签名生成子单元1003,用于根据私钥对当前版本文件对应的客户端版本控制链哈希值,生成当前版本文件对应的客户端数字签名。

在本发明实施例中,客户端聚合值确定子单元1001根据当前版本文件对应的文件标识符及多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的客户端聚合值;客户端控制链哈希值确定子单元1002根据当前版本文件对应的文件标识符及逆增量哈希的客户端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的客户端版本控制链哈希值;客户端签名生成子单元1003根据私钥对当前版本文件对应的客户端版本控制链哈希值,生成当前版本文件对应的客户端数字签名。本发明实施例中,客户端聚合值确定子单元1001通过文件标识符及单向哈希函数确定客户端聚合值,进而客户端控制链哈希值确定子单元1002通过文件标识符、客户端聚合值、单向哈希函数及安全哈希函数确定客户端版本控制链哈希值,最后客户端签名生成子单元1003利用私钥及客户端版本控制链哈希值,生成客户端数字签名,能够提高客户端数字签名的安全性。

图11示出了本发明实施例提供的多版本数据完整性云审计系统中服务器端控制链哈希值生成单元902的的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高服务器端版本控制链哈希值的准确性,参考图11,所述服务器端控制链哈希值生成单元902所包含的各个子单元用于执行图4对应实施例中的各个步骤,具体请参阅图4以及图4对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述服务器端控制链哈希值生成单元902包括服务器端聚合值确定子单元1101及服务器端控制链哈希值确定子单元1102。

服务器端聚合值确定子单元1101,用于根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的服务器端聚合值。

服务器端控制链哈希值确定子单元1102,用于根据当前版本文件对应的文件标识符及逆增量哈希的服务器端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的服务器端版本控制链哈希值。

在本发明实施例中,服务器端聚合值确定子单元1101根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的服务器端聚合值;服务器端控制链哈希值确定子单元1102根据当前版本文件对应的文件标识符及逆增量哈希的服务器端聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的服务器端版本控制链哈希值。本发明实施例中服务器端聚合值确定子单元1101通过文件标识符及单向哈希函数,确定服务器端聚合值,进而服务器端控制链哈希值确定子单元1102根据文件标识符及服务器端聚合值、单向哈希函数及安全哈希函数,确定服务器端版本控制链哈希值,能够提高服务器端版本控制链哈希值的准确性。

图12示出了本发明实施例提供的多版本数据完整性云审计系统中运行环境认证模块802的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高文件数据安全性,参考图12,所述运行环境认证模块802所包含的各个单元用于执行图5对应实施例中的各个步骤,具体请参阅图5以及图5对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述运行环境认证模块802包括可信容器建立单元1201、容器哈希值验证单元1202及可信通道建立单元1203。

可信容器建立单元1201,用于在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求创建可信容器,发送可信容器的哈希值至客户端。

容器哈希值验证单元1202,用于通过软件防护扩展指令中的软件证明程序验证服务器发送的可信容器的哈希值与期望哈希值是否一致。

可信通道建立单元1203,用于在验证服务器发送的可信容器的哈希值与期望哈希值一致时,建立客户端与服务器的可信容器之间的可信通道。

在本发明实施例中,可信容器建立单元1201在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求创建可信容器,发送可信容器的哈希值至客户端;容器哈希值验证单元1202通过软件防护扩展指令中的软件证明程序验证服务器发送的可信容器的哈希值与期望哈希值是否一致;可信通道建立单元1203在验证服务器发送的可信容器的哈希值与期望哈希值一致时,建立客户端与服务器的可信容器之间的可信通道。本发明实施例可信容器建立单元1201基于运行环境认证请求创建可信容器,容器哈希值验证单元1202验证服务器发送的可信容器的哈希值与期望哈希值一致时,可信通道建立单元1203建立客户端与服务器的可信容器之间的可信通道,从而提高文件数据的安全性。

图13示出了本发明实施例提供的多版本数据完整性云审计系统中完整性验证模块803的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了提高数据完整性验证的准确性,参考图13,所述完整性验证模块803所包含的各个单元用于执行图6对应实施例中的各个步骤,具体请参阅图6以及图6对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述完整性验证模块803包括加载单元1301、可信容器聚合值确定单元1302、可信容器控制链哈希值确定单元1303及哈希值验证单元1304。

加载单元1301,用于根据客户端通过可信通道发送的文件标识符、完整性验证请求及当前版本文件对应的客户端版本控制链哈希值,从可信容器外加载文件标识符对应的当前版本文件及当前版本文件对应的逆增量至可信容器中。

可信容器聚合值确定单元1302,用于在可信容器内根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的可信容器聚合值。

可信容器控制链哈希值确定单元1303,用于根据当前版本文件对应的文件标识符及逆增量哈希的可信容器聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的可信容器版本控制链哈希值。

哈希值验证单元1304,用于验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值是否一致。

在本发明实施例中,加载单元1301根据客户端通过可信通道发送的文件标识符、完整性验证请求及当前版本文件对应的客户端版本控制链哈希值,从可信容器外加载文件标识符对应的当前版本文件及当前版本文件对应的逆增量至可信容器中;可信容器聚合值确定单元1302在可信容器内根据当前版本文件对应的文件标识符,多版本数据完整性云审计系统的单向哈希函数,确定当前版本文件对应的逆增量哈希的可信容器聚合值;可信容器控制链哈希值确定单元1303根据当前版本文件对应的文件标识符及逆增量哈希的可信容器聚合值、多版本数据完整性云审计系统的单向哈希函数及安全哈希函数,确定当前版本文件对应的可信容器版本控制链哈希值;哈希值验证单元1304验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值是否一致。本发明实施例可信容器聚合值确定单元1302通过在可信容器内基于文件标识符及单向哈希函数确定可信容器聚合值,进而可信容器控制链哈希值确定单元1303根据文件标识符及可信容器聚合值、单向哈希函数及安全哈希函数,确定可信容器版本控制链哈希值,哈希值验证单元1304通过验证可信容器版本控制链哈希值与客户端版本控制链哈希值是否一致,验证文件数据完整性,能够提高数据完整性验证的准确性。

图14示出了本发明实施例提供的多版本数据完整性云审计系统中完整性验证模块803的另一结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了便于客户端及时了解文件完整性状态,参考图14,所述完整性验证模块803所包含的各个单元用于执行图7对应实施例中的各个步骤,具体请参阅图7以及图7对应实施例中的相关描述,此处不再赘述。本发明实施例中,在上述图13所示模块结构的基础上,所述完整性验证模块803还包括反馈单元1401。

反馈单元1401,用于在验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值一致时,反馈文件完整的通知至客户端。

在本发明实施例中,反馈单元1401在验证当前版本文件对应的可信容器版本控制链哈希值与当前版本文件对应的客户端版本控制链哈希值一致时,服务器反馈文件完整的通知至客户端,能够便于客户端及时了解文件完整性状态。

在云存储服务中,为了实现数据更新和数据备份常常采用增量的形式保存数据。通过增量的形式保存数据不但能有效地节省存储空间,而且也便于数据回滚。针对多版本数据的云审计,本发明提出了一种基于SGX的多版本数据完整性云审计方法。根据多版本数据存储方式的特性和实现高效的数据访问,采用逆增量方式组织数据存储。为了减少对多版本数据用户端和服务器端的计算和通信开销和存储开销,该方法引入了Intel的软件防护扩展(Software Guard Extension,SGX)技术,避免了传统的云审计方法为审计多版本数据的完整性在用户端和服务端产生严重的计算和通信开销,同时该方法也减少了为审计数据的完整性带来的用户端和服务端的通信开销。通过使用哈希链的方式保证了数据的新鲜度,以及实现了一次验证多个版本的数据。

本发明提供的多版本数据完整性云审计方法及系统可应用于金融领域,可以理解的是,多版本数据完整性云审计方法及系统还可以应用于除金融领域之外的其它应用领域,本发明对此不作特别的限制。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多版本数据完整性云审计方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述多版本数据完整性云审计方法的计算机程序。

综上所述,本发明实施例中,服务器根据验证签名的元数据对客户端发送的当前版本文件的签名进行验证;服务器在当前版本文件的签名验证通过后,根据客户端发送的运行环境认证请求建立可信容器及客户端与服务器可信容器之间的可信通道;服务器根据客户端通过可信通道发送的文件标识符及完整性验证请求,验证当前版本文件及历史版本文件的完整性。本发明实施例在当前版本文件的签名验证通过后,通过建立可信容器及服务器可信容器之间的可信通道,在可信容器内实现对当前版本文件及历史版本文件完整性的验证,能够降低多版本数据完整性云审计的计算和通信开销。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 多版本数据完整性云审计方法及系统
  • 一种基于区块链的数据完整性审计方法和系统
技术分类

06120113098487