基于TPA云联盟的数据完整性验证模型

2018-09-12 02:26田俊峰李天乐
通信学报 2018年8期
关键词:完整性度量组件

田俊峰,李天乐



基于TPA云联盟的数据完整性验证模型

田俊峰1,2,李天乐1,2

(1. 河北大学网络空间安全与计算机学院,河北 保定 071002; 2. 河北省高可信信息系统重点实验室,河北 保定 071002)

针对公有性验证模型中第三方审计机构(TPA, third-party auditor)不可信问题,提出基于TPA云联盟的数据完整性验证模型。首先,设计TPA云联盟的体系结构并定义系统平台的主要功能组件及作用,联盟可以对TPA云成员进行管理和控制。其次,利用可信计算技术和区块链技术对TPA进行详细的设计,确保TPA执行环境和工作流程的可信性。最后,利用TPA云联盟构建数据完整性验证模型,并对模型的正确性、安全性和有效性进行理论和实验分析。

数据完整性验证;区块链;可信计算;第三方审计机构

1 引言

随着移动互联网、物联网、大数据时代的到来,数据量呈指数级增长趋势,个人的存储能力已无法满足现有的存储需求。云存储(cloud storage)[1]是基于云计算衍生出来的概念,即为满足云计算系统海量的数据存储空间而产生的。其通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集成起来协同工作,共同对外提供数据存储和业务访问功能。通过云存储系统,用户可以采用按需付费的方式,利用较小的花费即可在云端得到更强大的存储能力。然而用户将数据存储在云端,并将本地数据删除,失去了对数据的实质性控制。云端是否完整地持有用户的数据、怎样证明云端持有用户数据的正确性等问题引起了学术界的广泛关注。

不可信云存储服务商(CSP, cloud storage provider)是否完整地持有用户的数据,是近年来在云存储安全领域内备受关注的问题。目前,对于验证云存储服务商或入侵者有没有对用户存储的数据进行恶意的删除、修改等行为,研究者们提出2类校验模型:数据持有性证明(PDP, provable data possession)和数据可恢复性证明(POR, proof of retrievability)。前者可以验证数据是否被云端正确地持有;后者可以对丢失、损坏的数据进行一定的恢复。此外,参照验证者身份,验证方案可以分为2种:私有验证方案和公开验证方案。相较于私有验证,设有第三方审计机构TPA的公开验证更好地支持了公开审计、动态更新、验证高效等审计特点。

Ateniese等[2]首先提出了PDP的概念,利用基于RSA的验证方法和同态验证标签(HVT, homomorphic verifiable tag)来进行文件块的完整性验证工作,并利用概率性验证方案,有效地减少了计算代价和通信开销。Wang等[3]采用在同等安全条件下比RSA和DSA更短的BLS签名技术构造数据标签进行验证。由于BLS签名机制的同态特性,可将多个签名聚集为一个签名进行统一验证,使基于BLS签名的验证方案存储代价和通信开销大大减少。此外,基于BLS签名的PDP机制是一种公开验证机制,用户可以将烦琐的审计任务交给TPA来完成,减轻了用户的计算开销,提高了整个方案的效率。在公开审计过程中,第三方可能利用多次审计中的线性组合方程式进行高斯消元,从而窃取用户的数据。针对审计过程中可能泄露用户数据隐私的问题,Wang等[4]采用随机掩码技术,利用随机置换函数保证用户的数据不会泄露给TPA或云存储提供商。针对动态更新验证问题,Erway等[5]首先考虑引入动态数据结构来支持全动态操作,提出基于跳表的PDP机制来验证动态操作。利用认证跳跃表的数据结构,根据云存储服务器返回的认证路径、标签信息和本地存储的认证元数据判断数据块在位置上是否正确。Wang等[6]提出基于Merkle树的数据结构来验证动态更新操作。与Erway等[5]不同的是,数据标签并没有参与动态结构中根节点散列值的计算,而是利用构造的Merkle认证散列树中的根散列值和某个叶子节点的辅助认证信息来保证云存储提供商的动态操作更新的正确性。此外,Wang等[4]提出数据验证文件批审计(batch auditing)的概念。TPA如果同时处理多个审计任务请求时,单个处理起来会非常烦琐和浪费资源。如果将不同的审计请求的线性签名聚合成一个签名,使TPA进行一次审计,则大大提高了审计效率。

以上的公开审计验证模型中,大多数都是在假设TPA是可信的前提下来完成整个数据完整性验证工作的。然而在实际应用中,TPA内部的工作流程及其可信性都需要进一步的研究和证明。虽然可以利用加密数据块以及随机掩码等技术防止原始数据在TPA中泄露。然而,对于用户来说,TPA是一个黑盒子,其内部构造和运作流程都不得而知。在现实中,TPA有可能与CSP串谋对用户进行攻击,即无论CSP中用户数据是否完整,返回给用户的完整性验证结果都是验证成功的。此外,TPA还有可能与用户进行串谋(或被其他CSP竞争者贿赂),故意验证失败CSP生成的证明,这时返回用户的完整性验证结果都是验证失败。

Xu等[7]利用加密的审计方案和复审方案来保证TPA在规定时间内完成数据完整性验证。在此基础上,Huang等[8]采用多个TPA进行审计的授权,如果一个TPA不能被信任,它将会被撤销并被其他TPA替换。然而文献[7-8]的审计方案都定义了“time sever”和“receive sever”,而这2个实体的可信性和安全性有待进一步证明。Wu等[9]提出把TPA的验证工作分为复杂的计算过程和简单的验证过程,前者由第三方审计机构处理,后者由用户自己验证。肖达等[10]利用部署在云存储服务器端的可信硬件来进行审计日志的生成与存储,由于可信硬件的性能有限以及部署在不可信云存储提供商等风险,其安全性和可信性也有待进一步验证。以上方案并没有真正解决使TPA诚实可信地完成云用户的审计任务。

针对如何构建可信TPA以及利用可信TPA诚实可信地完成用户的审计任务,本文做了如下工作。

1) 设计TPA云联盟的体系架构,利用TPA云联盟管理平台对TPA的运行进行管理和控制。

2) 设计TPA的逻辑框架,使其进行审计任务的工作流程透明化、可视化。

3) 构造关于TPA可信度量值以及审计任务参数的区块链,使TPA的状态和行为可追溯。

4) 完成基于TPA云联盟的数据完整性验证模型,在保证可信TPA行为可信的同时,验证存储在不可信云存储商的用户数据的完整性。

2 TPA云联盟的设计方案

本节定义了TPA云联盟的体系架构和功能模块,利用联盟对TPA进行管理和控制,利用可信计算技术和区块链技术对TPA进行设计,包括TPA操作层的关键功能模块以及TPA区块链层可信区块链的形成。

2.1 TPA云联盟

TPA云联盟(CFTPA,cloud federation of TPA),是参考欧洲SUNFISH项目中云联盟(FaaS, federation as a service)[11]与基于TPM联盟的可信云平台管理模型[12],为可信TPA而设计的一种云联盟模型。TPA云联盟保证了TPA可信的运行环境和诚实的验证流程。此外,TPA云联盟可以根据业务与隐私保护等级的不同,将政务、金融、医疗等机构的验证任务分配给符合要求的TPA云成员来进行处理。云联盟中,分布式云成员之间通过P2P方式进行通信和交互,并通过TPA云联盟管理平台进行统一的管理与调度。

TPA云联盟结构如图1所示。虚线内的TPA表示多个TPA构成的TPA云联盟,每个TPA由TPM和vTPM构成,可信计算基,为可信度量提供存储、验证、计算等功能。TPM与vTPM的组合体系结构采用Berger等[13]提出的框架模型,vTPM的采用大大扩展了TPM的应用场景,突破了TPM的性能瓶颈。TPA在vTPM创建的虚拟机中执行相应的审计任务。TPA逻辑结构分为操作层和区块链层。操作层进行数据完整性验证工作流程,区块链层收到操作层的日志记录,形成关于可信度量值与审计日志记录的不可更改区块链。

图1 TPA云联盟结构

TPA云联盟管理平台系统对TPA进行综合的管理与调度,包括可信执行环境度量、组件间的认证、审计方案的分配、TPA云资源的使用与注销等。其主要功能组件有如下定义。

1) 身份管理组件:包括一系列认证功能的集合,认证管理TPA云成员、云用户(CU)和联盟管理员的身份注册、注销等功能,以及认证和管理平台系统中各个组件的身份和正常功能;认证管理TPA云联盟与管理平台的系统交互;认证云用户任务请求并通过VM管理开启相应云资源;认证云用户与TPA通过数据保护组件进行交互;认证平台组件通过加密令牌与区块链的交互。总之,身份管理组件是平台系统中必不可少的组件,是所有任务流和数据流的认证校验基础。

2) VM管理组件:即虚拟机云资源的管理组件。在身份认证通过的情况下,可以根据业务需求和节点状态对TPA云联盟中的云资源进行开启、关闭和挂起等命令。联盟管理员一旦发现TPA行为异常,可对该TPA进行撤销命令,并扣除相应积分。特别地,一旦有云用户向TPA云联盟发起审计任务,VM管理组件会根据参数信息(如花费或SLA协议[14])在TPA云联盟中匹配到合适的TPA资源并提供给云用户,还能提供其他公有云、私有云的交互API。

3) 审计方案管理:可以存储高效优秀的审计方案,并支持用户自定义审计方案(需要通过安全审核);提供对审计方案的加密功能[7-8]。此外,如果对安全隐私要求较强的用户,可采用强加密方案[15]。

4) 数据保护组件:数据保护组件旨在保证云用户数据的安全。包括用户要存储在TPA的元数据以及对CSP返回的证据进行强制随机掩码处理[4]。并采用基于属性的访问控制(AAC, attribute-based access control)[16]协议,保证访问控制协议与所使用的云资源服务相匹配,进而保证组件间的隐私保护。

5) 可信度量组件:负责管理监控各个TPA中TPM可信证据收集与对比校验工作。利用收集到的可信证据与基准数据库进行对比校验,实现对TPA启动时的静态完整性度量(包括BIOS、bootloader、OS、配置文件)和系统运行时的动态完整性度量(包括虚拟机、进程的可执行文件、环境变量)。

2.2 TPA操作层的设计

如图1的TPA逻辑框架所示,TPA的逻辑框架分为操作层和区块链层。TPA的操作层逻辑框架如图2所示。其中,空心粗箭头表示数据的传输,实心细箭头表示指令的发送。接下来,将详细介绍各个模块的功能及其在业务中的作用。

图2 TPA的操作层逻辑框架

1) 接收用户请求模块(AURM, accept CU request module):分析用户发送给TPA的请求。分为3种请求类型:第一种为存储元数据请求,1即用户发送经过预处理过的原始数据到TPA的元数据库;第二种为挑战请求,1即用户要求TPA生成正确格式的挑战发送给CSP;第三种为更新请求,2即用户传达给TPA的更新要求。

2) 接收云存储服务提供商结果模块(APRM, accept CSP result module):接收并处理云存储服务提供商的结果。第一种为CSP返回给TPA的“应答”结果,由3发送给完整性验证模块;第二种为CSP返回给TPA的“更新”结果,由4发送给更新验证模块。

3) 生成挑战模块(GCM, generate challenge module):生成用户进行完整性验证请求的“挑战”命令,并发送给CSP。根据收到的挑战请求1,向元数据库发送相关元数据2生成“挑战”,最终发送给CSP。

4) 生成更新挑战模块(GUCM, generate update challeng module):对用户的更新请求生成更新挑战操作。收到更新挑战请求2后,该模块输入5和相应更新数据的位置信息等,生成更新挑战,并发送给CSP。同时,通过5保证存储在元数据库与存储在CSP中的数据的一致性。

5) 更新验证模块(UVM, update verification module):对CSP发送来的更新结果进行更新验证。输入更新结果4、更新请求、更新后的元数据4,进行三方的更新校验对比。确认CSP的“更新操作”是否正确,将输出对比结果发送给用户。

6) 完整性验证模块(IVM, integrity verification module):是TPA的关键模块,其功能是完成对数据的完整性验证。首先,收到处理后的“应答”结果并向元数据库调取标签信息3;然后,根据挑战、应答3、元数据3,进行数据的完整性验证,并将验证结果发送给用户。

7) 元数据库(MDB, metadata database):是存储用户经过特殊处理之后的元数据的一种特殊数据库,以供生成挑战模块、生成更新模块、更新校验模块、完整性验证模块调取所需数据。

8) 操作日志模块(OLM,operation log module):在规定时间间隔内对TPA操作层的模块间和模块内的操作进行记录,并将数据记录进行封装,然后发送到区块链网络中。

2.3 TPA区块链层的设计

TPA内的区块链层设置在TPA操作层的逻辑底层。在区块链层内,有多个基于可信TPM的区块链节点。网络节点在区块链层内进行关于审计消息的广播和计算,并记录和存储审计状态和结果。所有TPA云联盟成员的区块链层节点构成区块链网络。可信硬件平台保障区块层的节点完整性,区块链网络中的共识算法保障网络节点的一致性。

图3所示为区块链层以及区块链形成的示意。每个TPA的区块链层内的节点如图3虚线椭圆部分所示,图3中有2种类型的节点:领导节点和普通节点。领导节点在全网络中负责把TPA的度量值和某时间段的操作记录打包进区块链中;普通节点负责收集TPA的可信度量值以及审计任务相关参数。2种节点都会在区块链网络中进行监听、接收、计算验证、广播信息等工作。2种节点的设置可以减轻单类型节点工作任务。

图3虚线矩形部分即为区块链示意。区块由区块头和区块体构成。区块头中“前区块的散列值”是指利用SHA256对前区块进行计算,然后保存到当前区块中,其可以保证区块链的链接和数据的不可更改;领导信息指形成此区块的领导信息,即将此轮选举出的节点信息保存在区块中,可供回溯查询相关信息;时间戳确定了区块的写入时间,同时使区块链具有时序的性质,且时间戳可以作为区块数据的存在性证明,有助于形成不可篡改、不可伪造的分布式账本;Merkle根表示TPA中可信证据收集到的度量值进行两两散列运算的最终所得结果。区块体中除了包括在TPA中收集到的各组件、系统、软件运行状态的度量值外,还包括TPA审计任务的相关信息,例如,审计任务ID、云用户的ID、云存储服务商的ID以及此次审计任务的具体方案和资源花费、时间花费等。

图3 TPA区块链层和区块链形成示意

基于PBFT算法[17-18]以及POS权益证明方法[19],并结合本文设计的TPA以及数据完整性验证的特点,提出TPA领导选举共识算法(TPA-LECA,TPA-leader election consensus algorithm),具体步骤如下。

1) 操作记录模块收集工作层的可信证据,在区块链网络中持续广播数据验证信息(CU,CSP,TPA,int, OPR)。其中,CU表示云存储用户的一个度量值,由用户所属行业数据的机密性和重要性以及在TPA云联盟平台的注册时长和良好的用户行为决定;CSP表示云存储提供商的一个度量值,由CSP返回“应答”效率以及数据完整性验证成功情况确定;TPA表示TPA云联盟中的TPA成员的度量值,由TPA的工作效率、完整性度量结果和审计任务参数决定;int表示记录此操作的时间间隔;OPR表示在此时间间隔内TPA操作层进行的操作。

2) 所有节点均独立监听区块链网络中的广播信息并记录。

3) 经过时间间隔后,各节点均把自己监听到的广播信息以及自己的签名(CU,CSP,TPA,int, OPR,)发送到区块链网络,其中,表示权值,为各特征项与权重的乘积之和。

4) 各节点根据表1自动计算各节点的权值,并将权值最大的节点信息向区块链网络中广播。

表1 特征项权值参考

5) 任意节点收到超过个(与节点总数有关,根据系统的容错能力而定)相同回应信息后,则达成共识。此相同信息中的签名者即本轮共识的领导,它负责将可信度量值和操作记录等信息打包进新的区块;作为领导节点的奖励,包含领导节点的TPA节点池会提高相应单个TPA的度量值TPA。

6) 新区块完成后,各节点将之前的信息删除,并开始下一轮的共识。

区块链网络中的各个节点监听全网操作记录以及在接收到操作记录的信息后,需要对操作记录进行合法性的验证。如果发现非法的操作记录,则不写入其记账本;如果非法操作记录包含在领导节点打包的区块中,则放弃本轮共识结果,重新进行下一轮的共识过程。操作记录的验证流程如下所示。

1) 操作记录的数据格式是否符合系统规则,如果不符合则判定为非法。

2) 操作记录的行为是否符合系统规则,如果不符合则判定为非法。

3) 操作记录在区块链中是否已经存在,如果存在则判定为非法。

4) 如果以上判定都不符合,则操作记录被认为是合法的。

3 基于TPA云联盟的数据完整性验证过程

基于TPA云联盟的数据完整性验证(CFTPA-DIV, CFTPA based data integrity verification)模型的参与实体有如下3种。

1) 云用户,也就是拥有原始数据的云存储服务使用者,将原始数据存储在云端服务器。

2) TPA云联盟,代替用户向云存储提供商进行挑战,并验证挑战证据。

3) 云存储提供商,其存储着云用户的数据,且有可能无法保证用户数据的完整性,所以TPA云联盟要对其进行完整性“挑战”。

基于TPA云联盟的数据完整性验证模型的过程示意如图4所示。有别于一般公开审计的数据完整性验证,图4的TPA云联盟执行TPA的工作流程,其与用户和CSP之间构成的完整性验证过程如下所示。

图4 基于可信区块链的数据完整性模型

1) 用户将加密处理后的文件和数据标签存储到CSP,或用户在云端对数据的操作。

2) 将处理后的认证元数据发送到TPA云联盟,或是用户需要进行挑战命令(包括挑战完整性和挑战更新)。

3) 将TPA云联盟生成的完整性挑战或更新挑战发送给CSP。

4) CSP将完整性应答或更新的应答发送给TPA云联盟。

5) TPA云联盟将“挑战—应答”的对比结果发送给用户。

6) CSP提供给用户数据操作的反馈。

3.1 完整性验证方案

CFTPA-DIV完整性验证过程如下所示。

1) 初始化阶段(setup phase)

步骤1 对TPA云联盟中的每个TPA底层TPM模块进行初始化设置,即进行静态的完整性度量。如果出现度量值与默认值不匹配的情况,则发出警报给VM管理,后者撤销此TPA参与此轮审计任务的分配。

步骤2 身份管理组件对TPA云联盟中其他组件进行完整性度量以及正常功能检测。

步骤3 云用户对TPA云联盟提出审计任务,即“生成挑战请求”(前提是已经在TPA云联盟管理平台进行注册)。

2) 挑战阶段(challenge phase)

步骤1 TPA云联盟收到云用户的审计请求后,根据请求数据保护组件执行相应的政策,审计方案管理组件选择合适的审计方案。

步骤2 VM管理组件,综合云用户的审计请求、数据保护政策以及所选择的审计方案和其他参数(包括云用户身份等级、TPA在系统中的积分值)作为参考,将审计任务分配给合适的TPA。

3) 应答阶段(response phase)

4) 验证阶段(verification phase)

正确性证明如下所示。

3.2 更新验证方案

1) 初始化阶段(setup phase)

然后对叶子节点两两向上再进行散列运算(若叶子节点为奇数,则直接对自己进行散列运算)生成MHT的根root,并记录每个叶子节点的辅助认证信息[19],最后将其根root和AAI进行签名。

2) 更新挑战阶段(update challenge phase)

TPA云联盟收到用户的更新挑战请求后,要求TPA验证CSP是否进行相应的更新操作,包括对文件的修改、插入、删除。

3) 更新应答阶段(update challenge phase)

4) 更新验证阶段(update verification phase)

4 安全性分析

本节从可信度量的安全性、区块链的安全性以及可证明安全方面提出4个问题,并分别进行了安全性分析证明。

问题1 TPM模块能否正确地对TPA进行完整性度量。

利用TPM模块设置在TPA的底层硬件,可以收集TPA运行环境中静态度量值,并与基准数据库进行对比验证,如果验证不通过则通过VM管理模块挂起此TPA的云资源。具体可信度量方法可采用树形可信度量模型TSTM来提高度量模型的可拓展性[20]。在TPA工作层进行审计任务时,需要对其进行动态度量,包括TPA进行审计任务时的可信证据收集以及运行环境的可信性动态验证机制。其具体实现可采用“流嵌入法”[21]对TPA工作流程中的命令控制流和数据流嵌入计算度量值的程序。所以根据以上方法和模型的使用,可保证TPM模块正确地对TPA进行完整性度量。

问题2 TPA度量值和TPA操作记录以及审计参数能否正确地保存在区块链中。

在区块链的形成过程中,采用TPA-LECA领导选举共识算法选举出领导节点,对TPA的度量值、操作记录、审计参数的生成和保存进行监督,并将其以正确的格式打包进区块。可信区块链中的领导节点由TPA的区块链层全节点选举而出,其完整性和打包信息的公正性由区块链中其他节点的记账本和计算验证保证。此外,所有网络节点都有自己的归属TPA,即不会有外网的任意节点加入此网络中进行恶意的广播虚假信息。并且,TPA云联盟高级管理员也可以对领导节点的工作进行监督,以此保证了TPA的度量值以及TPA的操作记录、审计参数能够正确完整地保存在区块中,形成区块链。

问题3 区块链在一定容忍度下,是否是不可更改和不可伪造的。

问题4 基于双线性对和Diffie-Hellman问题,CFTPA-DIV方案模型能否在随机预言模型中保证数据的完整性。

即要证明在基于双线性对和Diffie-Hellman困难问题的随机预言模型中,除了回复正确验证信息外,敌手只有可忽略不计的概率赢得敌手游戏。

证明 在这里,CSP被认为是敌手,而TPA被认为是仿真者,其控制着随机预言机。

整理得

进一步整理和化简得

证毕。

综合以上4个问题和安全性分析,可以将可信计算安全性、区块链安全性与完整性验证的安全性进行有效结合,整体上达到了整个验证模型的安全可信。

5 性能分析

5.1 模型的理论分析

在模型分析之前,本文设定在不增加云用户的开销前提下(或减少云用户开销),在TPA和CSP上增加一定开销是可以接受的。CFTPA-DIV模型中的主要审计过程是在TPA云联盟环境下单个TPA的操作层完成的。相较于传统公开型PDP验证模型,本文模型增加了TPA云联盟系统平台的管理功能和TPA区块链层的工作流程来保证TPA为用户提供诚实可靠的数据完整性验证工作。此外,TPA云联盟系统平台中的组件初始化时需要认证和交互。所以在整体的验证过程中计算开销、通信开销、存储开销等方面会有一定的增加。

这里,本文选择与同样针对恶意TPA提出模型方案的Huang等[8]的方案和Wu等[9]的方案进行对比。其中,Huang等[8]的方案是对Xu等[7]的方案进行了改进,利用复审方案来核查TPA是否正确地执行审计任务。Wu等[9]的方案采用一种安全轻量级的审计模型,令用户对恶意TPA进行审计核查。基于TPA云联盟的数据完整性验证方法最大的优势是通过可信计算技术和区块链技术保证了TPA的可信审计过程,规避了TPA的恶意行为。3种方案的特点如表2所示。

表2 相似模型方案对比

Huang等[8]的方案中利用receive server和time server来保证TPA准确准时地完成审计任务,然而引入的server实体的可信性无法被证实。Wu等[9]的方案中将CSP返回的验证结果分为复杂计算和简单计算2个部分,前者由TPA完成专业计算,后者由用户完成简单验证。然而,如果用户最后验证计算失败,将会直接向CSP进行验证。此时用户计算负担不但大大增加,而且TPA与CSP可能已经串谋,用户无法得到真实的验证结果。

从计算开销方面分析CFTPA-DIV模型,即对所有实体参与到数据完整性验证方面的所有计算进行理论分析。假设只进行一次挑战设定数据被分为个数据块,TPA进行挑战时随机选取个数据块。在CFTPA-DIV模型中,主要计算开销分别是在初始化阶段的步骤5计算式(1),云用户要对计算文件标签并生成用户签名。在应答阶段的步骤2中计算式(2)和式(3),CSP接收到TPA的挑战,做出应答生成证据。在验证阶段的步骤1中计算式(4)和式(5),即TPA云联盟中的数据保护组件对CPS发送来的证据进行隐私保护即随机掩码技术;步骤3中验证式(6)是否成立和进行随机置换和随机函数运算。定义在数据完整性验证过程中的相关操作如表3所示,然后分别对3种方案进行计算开销的理论分析,如表4所示。

表3 相关操作及定义

表4 模型方案计算开销

从表4的3种模型方案的计算开销对比来看,CFTPA-DIV模型的用户开销较其他2种模型少。分析原因,是因为在Huang等[8]的方案中用户要进行审计方案的设计以及审计方案的加密等操作,从而增加了用户的计算开销。在Wu等[9]的方案中,用户需要对TPA的计算结果再进行一次配对运算,进而验证TPA是否验证成功。在不考虑Huang的方案中引入不可信server实体和Wu等[9]的方案中如果验证失败用户还需要大量计算的基础上,此2种方案虽然对恶意TPA有一定效果,但是增加了用户的计算开销。而CFTPA-DIV方案则尽量减小用户的开销,使对TPA的审计工作放在TPA的云联盟中进行,并且用户可在TPA云联盟平台对TPA审计过程和状态进行监督。

在Wu等[9]的方案中,需要CSP重新生成签名标签,所以理论计算开销较大。在TPA计算开销方面,Wu等[9]的理论计算开销较其他2种方案少,但是其增加了用户计算开销。Huang等[8]的方案与CFTPA-DIV方案的计算开销需要利用仿真实验来实现进一步的对比分析。

5.2 CFTPA-DIV模型的仿真实验与结果分析

CFTPA-DIV模型是建立在基于可信区块链的TPA基础之上的,所以要首先进行基于可信区块链的TPA的环境搭建。实验物理主机采用Windows10 64位系统,硬件配置如下:英特尔酷睿i5四核3.20 GHz处理器,DDR3 1 600 MHz,8 GB内存,120 GB固态硬盘。在物理主机的VMwareWorkstation12虚拟机创建TPA实例,TPA实例采用Ubuntu 16.04 LTS 64位系统,随后在TPA的系统中,采用基于TPM2.0的软件TPM,即ibmtpm1119代替真实的硬件TPM,并结合ibmtss1119软件协议栈创建vTPM实例。

在vTPM实例中利用C语言实现了原型系统,包括利用PCR寄存器进行完整性度量、对VM的开启及注销以及对该TPA的审计过程形成日志打包进区块链中等功能。然后在搭建的系统中使用Pairing-Based Cryptography(PBC)库版本0.5.14和OpenSSL版本1.0.2g对验证过程提供加密、解密以及配对操作。

首先,对3种方案做定量的实验分析。假设用户的文件块总数与TPA所选取验证文件块数量相同,即==300。根据表4的计算开销对比,在5.2节中搭建好的可信区块链环境中,对CFTPA-DIV中的TPA运算操作进行模拟仿真实验,CU和CSP运算和其他2个方案实验采用Ubuntu 16.04 LTS 64位系统和同样的PBC库、OpenSSL库。分别对3种方案CU、TPA、CSP中的主要计算开销进行20次模拟仿真实验,并对实验结果取平均值。其中,实验中选择椭圆曲线形式为MNT曲线,其基础字段大小为159 bit,嵌入度为6,实验中安全等级选择80 bit,即|v|=80、||=160。选择每个块的大小为40 B。实验结果即其所各自所花费的时间如表5所示。

表5 模型实际计算开销对比

从表5可以看出,在实验选定的数据块数量下,CFTPA-DIV模型在用户端较其他2种方案时间花费较低,TPA的时间花费比其他2种方案时间花费较高,CSP的时间花费相差不大。分析原因可能为,CFTPA-DIV模型在TPA工作的处理上较其他2种方案有组件间交互的影响,而CU时间消耗的较少也达到了预期的目标。

其次,对3种方案分别增加选取块数,同样假设=,并进行多次模拟仿真,实验结果分别如图5和图6所示。

图5 3种方案选取相同块个数下CU花费时间对比

图6 3种方案选取相同块个数下TPA花费时间对比

图5和图6表明,本文方案在减少了用户开销的基础上,实现了利用TPA云联盟中的可信计算技术与区块链技术保证TPA进行审计任务的诚实可信。并且TPA云联盟系统具有可扩展性,可综合其他审计方案做出具体优化部署在审计方案管理组件中,使原本不安全的审计方案在TPA云联盟中变得安全可信。

6 结束语

本文针对数据完整性验证的公开审计第三方审计机构的可信性问题,提出了一种基于可信区块链的数据完整性验证模型。该模型通过设计TPA云联盟系统以及在TPA云成员中构造关于操作记录的区块链,证明了可信TPA的可信性。通过对模型的分析以及仿真实验可以得出,本文模型在正确性的前提下不仅保障了公开审计的安全性,还有效地提高了数据完整性验证的工作效率。该模型可根据安全等级的不同适配相应的审计方案,适用于对安全等级需求较高的行业以及大多数需要公有验证云端数据的用户。并且在互联网与物联网的信息安全、云存储的数据安全等领域的应用研究中具有重要的意义和价值。

[1] WU J, PING L, GE X, et al. Cloud storage as the infrastructure of cloud computing[C]//IEEE International Conference on Intelligent Computing and Cognitive Informatics (ICICCI). 2010:380-383.

[2] ATENIESE G, BURNS R, CURTMOLA R, et al. Provable data possession at untrusted stores[C]//The 14th ACM Conference on Computer and Communications Security. 2007: 598-609.

[3] WANG Q, WANG C, LI J, et al. Enabling public verifiability and data dynamics for storage security in cloud computing[C]//European Conference on Research in Computer Security. 2009: 355-370.

[4] WANG C, WANG Q, REN K, et al. Privacy-preserving public auditing for data storage security in cloud computing[J]. 2010, 62(2):525-533.

[5] ERWAY C, PAPAMANTHOU C, TAMASSIA R. Dynamic provable data possession[C]//ACM Conference on Computer and Communications Security. 2009:213-222.

[6] WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing[J]. IEEE Transactions on Parallel & Distributed Systems, 2011, 22(5):847-859.

[7] XU J. Auditing the auditor: secure delegation of auditing operation over cloud storage[C]//IACR Cryptology ePrint Archive. 2011: 304.

[8] HUANG K, XIAN M, FU S, et al. Securing the cloud storage audit service: defending against frame and collude attacks of third party auditor[J]. IEEE Transactions on Communication, 2014.

[9] WU Y L, LIN X, LU X C, et al. A secure light-weight public auditing scheme in cloud computing with potentially malicious third party auditor[J]. IEICE Transactions on Information & Systems, 2016(10): 2638-2642.

[10] 肖达, 杨绿茵, 孙斌, 等. 面向真实云存储环境的数据持有性证明系统[J]. 软件学报, 2016, 27(9):2400-2413.

XIAO D, YANG L Y, SUN B, et al. Provable data possession system for realistic cloud storage environments[J]. Journal of Software, 2016, 27(9):2400-2413.

[11] FRANCESCO P S , VLADIMIRO S , LUCA N I, et al. FaaS: Federation-as-a-Service[J]. 2016.

[12] 田俊峰, 常方舒. 基于TPM联盟的可信云平台管理模型[J]. 通信学报, 2016, 37(2):1-10.

TIAN J F, CHANG F S. Trusted cloud platform management model based on TPM alliance[J]. Journal on Communications, 2016, 37(2): 1-10.

[13] BERGER S, GOLDMAN K A, PEREZ R, et al. vTPM: virtualizing the trusted platform module[C]//Conference on Usenix Security Symposium. 2006:21.

[14] 张健. 云计算服务等级协议(SLA)研究[J].电信网技术, 2012(2): 7-10.

ZHANG J. Study on cloud computing SLA[J]. Telecommunication network technology, 2012(2):7-10.

[15] SYED S R, KATIE C, ABDUL R. Cloud data integrity using a designated public verifier[C]//HPCC-CSS-ICESS.2015.

[16] HU V C, KUHN D R, FERRAIOLO D F. Attribute-based access control[J]. Computer, 2015, 48(2):85-88.

[17] CASTRO M, LISKOV B. Practical byzantine fault tolerance[C]// OSDI. 1999: 173-186.

[18] 范捷, 易乐天, 舒继武. 拜占庭系统技术研究综述[J]. 软件学报, 2013(6): 1346-1360.

FAN J, YI L T, SHU J W. Research on the technologies of Byzantine system[J]. Journal of Software, 2013, 24(6): 1346-1360.

[19] WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing[J]. IEEE Transactions on Parallel & Distributed Systems, 2011, 22(5):847-859.

[20] 周振吉, 吴礼发, 洪征, 等. 云计算环境下的虚拟机可信度量模型[J].东南大学学报(自然科学版), 2014, 44(1): 45-50.

ZHOU Z J, WU L F, HONG Z, et al. Trustworthiness measurement model of virtual machine for cloud computing[J]. Journal of Southeast University(Natural Science Edition) , 2014, 44(1): 45-50.

[21] 吴昊, 毋国庆. 程序的动态完整性:模型和方法[J]. 计算机研究与发展, 2012, 49(9):1874-1882.

WU H, WU G Q. Dynamical integrity of codes:model and method[J]. Journal of Computer Research and Development, 2012, 49(9): 1874-1882.

Data integrity verification based on model cloud federation of TPA

TIAN Junfeng1,2, LI Tianle1,2

1. Institute of Network Technology, Hebei University, Baoding 071002, China 2. Key Lab on High Trusted Information System in Hebei Province, Baoding 071002, China

Aiming at the untrustworthiness of third-party auditor (TPA) in the publicity verification model, a data integrity verification model based on the cloud federation of TPA was proposed. Firstly, the cloud federation of TPA’s architecture was designed and the main functional components and function of the system platform was defined. The federation could manage and control the TPA cloud members. Secondly, TPA was designed in detail by using trusted computing technology and blockchain technology to ensure the credibility of the TPA execution environment and workflow. Finally, the data integrity verification model was built by using cloud federation of TPA. The correctness, security and effectiveness of the model were analyzed theoretically and experimentally.

data integrity verification, blockchain, trusted computing, third-party auditor

TP309

A

10.11959/j.issn.1000−436x.2018144

田俊峰(1965−),男,河北保定人,河北大学教授、博士生导师,主要研究方向为信息安全与分布式计算。

李天乐(1990−),男,河北沧州人,河北大学硕士生,主要研究方向为信息安全与分布式计算。

2017−06−11;

2018−06−14

李天乐,csscholar2017@163.com

国家自然科学基金资助项目(No.61170254,No.60873203);河北省自然科学基金资助项目(No.F2016201244)

The National Natural Science Foundation of China (No.61170254,No.60873203), The Natural Science Foundation of Hebei Province (No.F2016201244)

猜你喜欢
完整性度量组件
鲍文慧《度量空间之一》
无人机智能巡检在光伏电站组件诊断中的应用
石油化工企业设备完整性管理
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
度 量
桥梁组件搭配分析
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义