基于区块链和雾计算的去中心化云端数据完整性审计方案

2023-11-18 09:08杨小东王秀秀李茜茜王彩芬
电子与信息学报 2023年10期
关键词:完整性合约密钥

杨小东 王秀秀 李茜茜 周 航 王彩芬

①(西北师范大学计算机科学与工程学院 兰州 730070)

②(深圳技术大学大数据与互联网学院 深圳 518118)

1 引言

随着云存储技术不断发展成熟,云服务器可以通过互联网为用户提供高效快捷的外包存储服务[1]。与此同时,存储在云端的数据面临着许多安全威胁[2],而云服务商(Cloud Service Providers,CSP)也可能为了自身利益谎称存储在云端的数据是完整的[3]。因此,数据完整性验证对云存储安全具有重要的意义。

传统的审计方案一般将审计任务外包给一个第三方审计者(Third-Party Audit,TPA)[4],采用随机抽样的方法,在无需下载文件的情况下便可以验证其完整性。审计方案按照数据的可恢复性可以分为数据持有性证明(Provable Data Possession,PDP)[5]和数据可恢复性证明(P roofs of Retrievability,POR)[6]。这些传统的验证机制大多基于公钥基础设施(Public Key Infrastructure,PK I),但是PK I中存在着复杂的证书的生成、存储、分发和撤销[7]等问题。为了解决传统密码体制中证书管理的问题,一些学者设计了基于身份的签名方案[8–10]。然而在基于身份的签名方案中,用户签名私钥都由一个完全可信第三方生成,即私钥生成中心(Private Key Generator,PKG),因此存在密钥托管问题。相比基于PK I和身份的签名方案,无证书签名方案[11–13]很好地解决了证书管理和密钥托管问题。

在以上方案中,审计任务都依赖TPA并且假定TPA完全可信。事实上,TPA可能会为了自身利益与CSP串通将错误的审计结果返回给用户。因此,用户对于审计结果的正确性无从得知。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,具有可追踪、不可篡改、匿名与开放等特点。为解决云审计方案中过度依赖完全可信第三方审计者的问题,不少学者将区块链技术应用到审计模型中。文献[14]提出了一个针对拖延审核员的无证书公开认证方案,但是用户端的计算开销过高。W ang等人[15]提出了基于区块链的数据完整性验证方案,使用一个可信的审计员代替TPA,但是方案存在密钥和证书管理的问题。

此外,这些方案都只关注对个人数据的完整性验证,并未考虑数据在多个用户之间的安全共享问题。文献[16]设计了一种组共享数据的完整性验证方案,但是方案基于群签名算法,计算开销较大。密码累加器最早由Nguyen提出[17],可用于验证元素在集合中的成员关系。文献[18,19]将密码累加器用作共享数据的身份验证,减少了组内成员的验证延迟,受此启发,本文将使用密码累加器实现访问用户授权和身份认证。

雾节点(Fog Node,FN)作为物联网设备与云之间的中间件,具有基础的计算和存储能力,可以满足对数据处理和传输的需求。使用雾节点辅助云计算可以减轻云服务器的计算开销并且提高通信效率。T ian等人[20]提出了雾云计算中的公共审计方案,方案中使用雾节点对存储数据进行预处理。在基于属性的云端数据安全共享方案中[21,22],雾节点经常以外包计算方式执行部分解密工作从而减轻客户端的计算开销。

在上述研究的基础上,本文设计了一个基于无证书的云端数据完整性验证方案,方案使用雾节点和智能合约代替审计端实现了去中心化。具体贡献如下:

(1)审计模型的去中心化。使用雾节点和智能合约代替TPA的审计工作,从而解决了传统审计方案中过度依赖可信TPA的问题。

(2)基于智能合约的公平支付。使用雾节点和智能合约进行完整性验证,只有通过完整性验证,CSP才可以获得服务报酬。

(3)基于无证书签名的数据完整性验证。基于无证书签名体制,解决了传统审计方案中复杂的密钥托管和证书管理问题。

(4)用户的访问授权和身份认证。针对多用户共享问题,使用加密累加器对有效用户进行访问授权,即只有通过身份认证的合法用户才能使用云端数据。

2 准备知识

2.1 复杂性假设

定义1 C D H(C o m p u t a t i o n a l D i f f e-Hellm an)问题:已知G 是一个循环乘法群,g是G 的生成元,(g,gα,gβ)∈G3,其中α,β ∈未知,那么群上G 的CDH问题是计算gαβ ∈G。

定义2 CDH假设:如果任何一个概率多项式时间算法 A ,能求解G 上的CDH问题的概率是可忽略,则C D H 假设是成立的,可以被定义为

2.2 安全模型

本文方案基于无证书签名体制,其安全模型包含两类敌手,分别是不诚实的用户和半诚实的密钥生成中心(Key Generation Center,KGC),使用Ⅰ类敌手A1和Ⅱ类敌手A2进行模拟。

Ⅰ类敌手A1:无法获取系统主密钥和部分密钥,但是可以替换合法用户公钥和秘密值;

Ⅱ类敌手A2:可以获得系统主密钥和部分密钥,但是不能查询和替换合法用户公钥。

本文在随机预言机模型中模拟了敌手A1、A2分别与挑战者C之间的游戏Ⅰ、游戏Ⅱ。该类模型在文献[1,11]已有详细的证明,此处不再赘述。

3 系统模型及智能合约设计

3.1 系统模型

本文设计了基于区块链和雾计算的去中心化云端数据完整性验证方案。如图1所示,系统模型包括如下角色,KGC,CSP,数据拥有者(Data Owner,DO)、数据使用者(Users)、FN和区块链(B lock Chain,BC)。

图1 系统模型图

(1)KGC:负责生成系统主密钥和部分密钥。

(2)CSP:负责存储数据并保证数据的安全性和完整性。

(3)DO:具有授权数据使用者和定期向CSP发起完整性验证挑战的权利。

(4)Users:是DO授权的数据使用者,当Users使用数据时,CSP需要对其权限进行验证。

(5)FN:负责完整性验证过程中复杂的运算以减少区块链的计算开销。

(6)BC:是一个底层不可篡改的数据库,存储了智能合约算法、交易和证据。本文利用以太坊区块链作为底层公共区块链。

3.2 智能合约设计

本文智能合约实现证据存储、完整性验证和公平支付。为了节约成本,智能合约的设计尽可能简短。方案设计了3种智能合约,具体如合约1~合约3。

智能合约T 0:根据存储需求,实现向区块链存储数值的功能。

智能合约T 1:保证完整性验证通过时,DO向CSP支付服务费用。

智能合约T 2:实现数据完整性验证和公平支付。将雾节点存储的计算值进行验证,如果验证通过,激活智能合约T 1,支付CSP服务金额;否则,CSP将不能得到任何报酬。

4 本文方案

4.1 系统建立

4.1.1系统初始化

4.1.2用户授权

假如数据使用者U s e r s 的成员数N,使用idi(i∈[1,N])表示其成员的唯一身份标识,DO使用密码累加器进行授权。具体如下:

合约1 智能合约T0

合约3 智能合约T2

如果等式(1)和等式(2)成立,则该用户为授权用户,否则为非授权用户。

4.1.3签名生成

(1)文件初始化:DO将文件 F分为n块F=f1||f2||...f n,对于fi(i∈[1,n]),随机选取si∈,计算对称密钥k i=prf(s i,f i)。使用密钥ki分别对数据块f i进行对称加密得到mi=ENC(f i,k i),令M={m i}。

(2) 块签名:对于密文mi,DO随机选择计算块标签ςi=m iβi和块签名,其中ωi=H3(F,n,m i)。

(3)签名验证:DO上传密文 M、对称密钥{k i}、块标签{ςi}和 块签名{τi}到CSP。CSP验证等式(3)是否成立。

如果等式(3)成立,CSP存储文件,否则返回一个错误信息。

4.2 完整性验证

4.2.1挑战生成

(1)数据拥有者DO从集合{1,2,...,n}随机选择c个数生成子集Q ,并选择一个随机数a∈,生成挑战集合c hal={a,Q}发送给CSP。

(2)数据拥有者DO部署智能合约T 0,T 1和T2到智能合约平台。

4.2.2证据生成

当收到来自数据拥有者的挑战信息之后,CSP计算{r j}={π(a,j)|j ∈Q},从而计算响应证据和并发送给雾节点。最后CSP调用智能合约T 0存储响应证据和R 。

4.2.3证据验证

(2)当 S1和S2被存储之后,DO调用智能合约T 2验证S1和 S2是否相等。若验证通过,激活智能合约T 1支付CSP服务费用;否则,向DO返回一个验证失败的消息。

5 方案分析

5.1 正确性分析

为了验证存储在云端数据的完整性,智能合约验证S1=S2是否成立。如果对于挑战chal={a,Q}和响应证据和R ,总能返回一个正确信息,那么说明CSP完整存储了用户文件。等式的正确性为

5.2 安全性证明

问、部分密钥询问、秘密值询问、H2询问、公钥询问、替换公钥询问、和签名询问的次数分别是qH1,qpa,qse,qH2,qpk,qpr和qT,A1赢得游戏Ⅰ的优势是ε。在A1没有停止的情况下,C与A1完整交互的概率是(1-λ)qpaqT,C输出正确结果的概率是ε′≥ελ(1-λ)qpaqT≥ε/((qpa+qT)·2e),对应的时间成本为t′≤t+O(qH1+qpa+qse+qH2+qpk+qpr+qT)。因此,挑战者C不能以一个不可忽略的概率赢得游戏Ⅰ。证毕

引理2在CDH困难问题下,本文方案对Ⅱ类敌手A2是安全的。

证明 假设Ⅱ类敌手A2能以一个不可忽略的概率ε赢得游戏Ⅱ,则可以构造一个挑战者C以一个不可忽略的概率来解决CDH问题。

游戏Ⅱ 本文对游戏Ⅱ的设计和大多数无证书签名方案相似。游戏Ⅱ与游戏Ⅰ的区别在于攻击者的不同,A2知道系统主密钥,但是不知道秘密值并且不能替换公钥。游戏Ⅱ和文献[11]的步骤基本相似,包括系统建立、H1询 问、秘密值询问、H2询问、公钥询问、签名询问和伪造这几个步骤,这里不做赘述,只对游戏Ⅱ结果进行分析。本t′≤t+O(qH1+q se+qH2+qpk+q T)。因此,挑战者C不能以一个不可忽略的概率赢得游戏Ⅱ。证毕

6 性能分析

6.1 性能比较

将本文方案与几个现有研究成果进行比较,分析方案性能的优缺点。从表1可以看出,与文献[11,14,15]相比,本文方案基于区块链,实现了多用户共享、审计去中心化、外包计算和公平支付,同时避免了密钥和证书管理的问题。

表1 性能比较

6.2 计算开销

文献[11,14]和本文方案均为基于无证书的完整性验证方案,本节对文献[11,14]和本文方案进行计算开销对比。实验计算机配备了i5-6 500的处理器、8 GB内存和W indows 10 64位操作系统。基于PBC(Pairing-Based Cryptography)库,使用C编程语言仿真模拟CSP,TPA和FN。表2给出了实验所涉及的一些密码学的符号定义和运算时间,并使用n和c分别表示文件分块数和挑战数据块个数。如表3所示,可以看出,块签名生成时,这3类方案的计算开销相差较小,可以忽略;在证据生成阶段,文献[11]方案的计算开销高于本文和文献[14]方案;在签名验证和证据验证阶段,相比于文献[11,14]方案,本文方案计算开销最小,具有明显的优势。

表2 相关运算时间

表3 计算开销对比(m s)

实际环境中,本文方案完整性验证延迟主要包括CSP和雾节点的计算延迟、智能合约T 2的验证延迟和网络往返时间。而往返时间主要依赖于网络环境,因此实验不予考虑。实验中,智能合约使用Solidity语言编写,通过以太坊测试网络Rinkeby进行部署和测试。经测试,智能合约在Rinkeby网络的交易时间大约为20 s。

6.3 智能合约成本测试

在以太坊中,使用gas值的大小表示每笔交易消耗的成本,本文方案的交易包括智能合约的部署和调用。通过以太坊测试网络Rinkeby,对方案中每笔交易所消耗的成本进行了测试。如表4所示,实验结果表明,智能合约部署和调用都需要消耗gas值。相比于智能合约调用,将智能合约首次部署到以太坊的消耗较高,而所有gas的消耗都在可以接受的范围之内。

7 结束语

本文提出了基于无证书签名体制的云端数据完整性验证方案。方案使用雾节点和智能合约代替第三方审计者从而实现去中心化,基于无证书密码体制可以避免密钥和证书管理问题,同时具有多用户共享和公平支付的功能。在随机预言机模型下证明了本文方案是安全的,能够抵御I类和II类攻击。性能分析表明,相比现有同类无证书签名方案,本文方案具有较高的计算效率和较低的存储成本。未来将扩展工作,以实现方案支持在多云环境下的批量验证和数据动态操作。

猜你喜欢
完整性合约密钥
探索企业创新密钥
稠油热采水泥环完整性研究
密码系统中密钥的状态与保护*
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
精子DNA完整性损伤的发生机制及诊断治疗
桩身完整性检测中缺陷的综合判别
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望