APP下载

基于区块链的可审计数据分享方案

2020-04-07,*,,

关键词:哈希管理员标签

, *, ,

(1. 武警工程大学密码工程学院,陕西西安710086;2. 网络与信息安全武警部队重点实验室(武警工程大学),陕西西安710086)

与传统的本地计算相比,云服务器具有强大计算能力和数据管理能力,采用按需付费的模式帮助客户降低数据维护和管理成本[1]。因此,越来越多的组织和个人将数据上传到云端,进行数据管理和共享[2]。这些工作方式的改变带来了生产力革命,但同时也给数据安全和用户隐私带来了新的问题和挑战[3]。云计算中最常见的应用是文件共享和协作,允许同一组中的用户上传和共享数据。他们可以同时访问该文件并修改外包数据的不同部分。但是,由于云存储的存在,用户放弃了对数据的物理控制,因此无法保证外包数据的完整性和正确性。并且,当多个用户向同一数据块发起修改请求时,存在冲突的可能。因此,迫切需要一种支持动态数据,可以防止修改冲突的公共审计方案。

为了保护云服务器中数据的正确性和完整性,研究者提出了许多基于不同技术的方案。Provable data possession (PDP)[4]是完整性验证问题的基本解决方案,在现有的PDP方案中,用户同时将数据和签名外包给云服务器,用户可以发送质询以验证数据的完整性。由于个人用户的计算能力有限,为了减轻用户的负担,通常会使用第三方机构(TPA)来代替用户进行审核工作。但是,半可信的TPA可能会在审核过程中获取用户和数据的信息。因此,研究人员提出了一些隐私保护方案,包括数据隐私[5-6]和身份隐私[7-8]。TIAN等[9]提出了一种基于群签名的同态可验证群签名方案,旨在保护用户数据隐私。该方案使用线性哈希表记录用户的操作并提高审计效率,但是,此方案无法验证哈希表本身的正确性,并且拓展的动态哈希表由半可信的TPA来进行维护,TPA可能与CSP(cloud service provider)进行合谋,修改拓展的动态哈希表的内容,从而达到攻击目的。其次,管理员具有创建和修改线性哈希表的权限,存在管理员恶意修改用户记录的可能,而用户却没有能力证明哈希表的正确性。基于此,本文将区块链引入方案的设计中,制衡管理员和TPA的权限。

区块链是一种数据结构,通过密码学按时间顺序链接[10],其加密结构确保它是不可伪造和不可变的,每个块包含前一个块的加密哈希值、相应的时间戳和事务数据[11]。通常,事务数据表示为默克尔哈希树根,这种设计使得块内容难以篡改。由于区块链在不可篡改、隐私保护和分发方面的优势,从而引起了研究人员的兴趣[12-14]。HUANG等[15]提出了一种基于区块链的数据共享方案,主要解决数据修改过程中可能存在的冲突问题,但该方案中,区块链结构完全由云服务器创建,且用户不持有最后一个区块的哈希值,导致并不能实现区块链不可篡改的特性。

为了保护用户的信息和数据安全,设计一种能够解决上述所有问题的隐私保护方案至关重要。本文提出一种基于区块链的可审计的云存储共享数据方案,在传统的数据共享方案的基础上,引入区块链技术进一步限制管理员的权限,防止管理员对记录的恶意修改。在管理员每次创建区块后,管理员会将区块链上的最后一个块的哈希值,分发给所有群成员,从而实现区块链不可篡改的特性。且在审计过程中,TPA无法获得有关数据块和组用户之间连接的任何信息。

1 相关知识

1.1 双线性映射与困难性假设

定义1(双线性映射) 假设P为大素数,G1、G2、GT是3个阶为P的乘法循环群,g1和g2分别为群G1和G2的生成元。称(G1,G2,GT)为双线性映射群,如果存在一个映射e:G1×G2→GT满足以下性质:

b)可计算性:在群上存在可高效运算的映射e。

c)非退化性:对生成元g1、g2,有e(g1,g2)≠1。

假设1Discrete Log (DL)问题。

P[y=gx:y←G,x←A(y)]。

假设2Computational co-Diffe-Hellman (co-CDH)问题。

1.2 系统模型

在本文中,我们假设存在3种不同的实体,如图1所示。

图1 系统模型Fig.1 System model

用户(User):包括普通用户和管理员。普通用户可以共享和修改共享数据,管理员由用户组指定,负责维护用户列表、审核数据和记录用户操作。

第三方机构(TPA):提供公共审计服务,负责向云服务器发起质询,验证数据完整性,之后向管理员反馈校验结果。

云服务提供商(CSP):为用户提供灵活的数据共享、存储和数据计算服务。

1.3 数据结构

为了实现身份可追溯性,本文设计了一个基于区块链的数据修改记录结构来跟踪用户的操作。管理员可以最终提交用户的操作,每个区块链包含用户的所有有效操作信息和相应的文件信息。每个区块包含区块头和操作信息,所有块按时间顺序链接以形成区块链。为了防止后来者对已经存在的区块进行恶意修改,每个区块头中包含一个由前一个区块哈希值构成的指针,每个块的事务信息部分记录用户对每个数据块的操作,包括时间、数据块编号和具体操作。

管理员为每个文件创建一个区块链。当用户成功提交操作时,管理员将信息打包生成一个区块并连接到前一个块,如果是创世块,则前向指针为空,随后,管理员将区块的哈希值分发给全体用户。当用户将文件上传到CSP时,用户将构建基于Rank的默克尔哈希树(RB-MHT)。RB-MHT由QI等提出[16],其利用等级来描述块索引并支持多个分支。

(1)

2 基于区块链的可审计数据分享方案

本节将给出方案的细节。除了审计方案的具体描述外,还将给出批量审计和群成员动态管理的介绍。

图2 基于区块链的可审计数据分享协议流程Fig.2 Process of blockchain-based auditable data sharing protocol

2.1 可审计的数据共享方案

我们提出的可审计的数据共享外包方案由5个过程组成(图2):

(b) Sign:为了外包一个文件F,用户首先将文件F分为n块,表示为F=(m1,…,mn)。然后,用户使用私钥skj为每个数据块mi生成一个可验证的标签:

σi=(H(mi)·g1mi)skj。

(2)

(3)

(d) ProofGen:收到TPA的审计信息后,将首先通过审计序列搜索默克尔哈希树T中的叶子节点wi{i∈IIDX},同时生成辅助验证信息Ωi{i∈IIDX}。通过{wi,Ωi},TPA可以快速重构哈希树T。然后,CSP将数据进行盲化,计算数据证据

(4)

和标签证明

(5)

将数据完整性证明P={{μ,Φ,{wi,Ωi|i∈IIDX}返回给TPA。

(e) Verify:当TPA收到CSP返回的数据证明P后,TPA利用{wi,Ωi}和管理员公钥pk1重构哈希默克尔和验证树根L(wR)的正确性,即验证

(6)

是否成立。如果式(6)不成立,说明CSP产生了数据损坏,向用户返回失败;否则,TPA继续验证

(7)

如果式(7)成立,则向用户返回“Ture”。

通过以上过程,TPA无法了解到关于用户数据的任何信息。

2.2 批量审计

通过批量审计的应用,TPA可以一次性处理多组数据完整性审计,并且这些审计可以来自不同的用户组。首先,使用Cchal表示来自不同文件的审计请求,当CSP收到请求后,计算

然后将标签按照式(8)进行聚合:

(8)

最后,TPA验证完整性证明的正确性,即验证:

(9)

2.3 群成员管理

组管理的任务由组管理员完成,通常包括添加和删除用户。

本文设计了一个相对简单的用户管理模型,以减轻集团经理的负担。当需要添加用户时,组管理员首先将用户添加到用户列表,然后通知CSP添加允许用户更改数据的权限。然后,用户在本地计算机上运行KeyGen函数以生成密钥对。

当用户需要离开时,为了保护数据安全,组管理员需要首先找到未被用户修改的数据块,然后向TPA提交审计请求。TPA根据组管理员的请求直接审核相应的数据块。如果TPA成功返回,则组管理器将用户从用户列表中删除,并通知CSP删除相应的权限。

3 安全及效率分析

3.1 安全分析

定理1在数据完整性审计过程中,TPA无法获取任何关于数据以及数据和用户之间关系的信息。

证明本文提出的协议中,CSP返回给TPA的数据证明中的数据被随机盲化聚合,标签通过代理签名的思想转化为被管理员签名的标签。

(10)

通过式(10)可以看出TPA得到的最终结果与普通用户无关。

定理2CSP无法使用伪造的数据证明,通过数据完整性审计。

证明为了回复TPA的挑战请求Cchal={{(i,λi)|i∈IIDX},{γi|i∈U}},CSP必须提供相应的证明P={μ,Φ,{wi,Ωi|i∈IIDX}}。如果{wi,Ωi}错误,则式(6)无法通过验证,即使其他证明是正确的。根据文献[17],BLS-HVAs在不知道签名者私钥的情况下,无法被伪造。因此,我们只需证明被挑战块的数据证明μ是不可伪造的。

我们设计了一个游戏,为了响应TPA的挑战,CSP提供一个伪造的证明P′={μ′,Φ,{wi,Ωi|i∈IIDX}},其中

(11)

如果CSP使用伪造的证明通过验证,则CSP获胜;否则,CSP失败。假设CSP获胜,则由

(12)

对应正确的证明,可以得到

(13)

根据双线性映射的性质,我们可以得到

(14)

式(14)与假设相矛盾,因此CSP无法通过伪造证明通过数据完整性审计。证毕。

3.2 实验模拟

为了具体评估方案的性能,我们对本文提出的方案进行了实验模拟。方案使用Intel Core i5-4200H 3.8 GHz和8 GiB内存的PC机进行模拟。使用Java 11调用Bouncy Castle和JPBC密码学库进行实现。所有的数据均为20轮测试结果的平均值。

本节给出了本文提出的方案和不同情况下的审计效率。图3显示了在不同数量的块,块大小为4 KiB的情况下,标签生成效率与数量呈正比。图4显示了在不同数据块大小的情况下,标签的生成效率不变。图5给出了在使用批量审计的情况下,TPA的验证效率随着审计数量的增加而提高。

图3 不同数据块大小的审计效率Fig.3 Time cost of verification in different block size

图4 不同块数量下的标签生成效率Fig.4 Time cost of signature generation in different block number

图5 批量审计效率Fig.5 Time cost of batch verification

4 结束语

本文着眼于数据外包和验证过程中参与实体的权限所带来的安全问题,通过引入区块链技术,实现了对管理员和TPA等参与实体的限制,在保证用户数据信息安全的同时,实现了隐私保护。安全分析和实验结果表明,该方案在实现安全功能的前提下具有较好的效率。由于区块链采用类私有链,虽然限制了管理员权限,但是依然存在一定的数据风险,因此以后应改进为采用公链实现。

猜你喜欢

哈希管理员标签
我是小小午餐管理员
哈希值处理 功能全面更易用
我是图书管理员
我是图书管理员
文件哈希值处理一条龙
可疑的管理员
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
标签化伤害了谁
基于OpenCV与均值哈希算法的人脸相似识别系统