基于区块链的数据共享访问控制模型*

2022-01-25 14:11尚松超陈勃翰颜光伟
通信技术 2021年12期
关键词:访问控制密文密钥

尚松超,陈勃翰,颜光伟,刘 扬

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

在大数据时代背景下,随着互联网技术的发展,不同的企业或者部门之间数据共享成了一个迫切需求。在数据共享领域,研究人员针对数据的隐私和安全性,从医疗、物联网、云存储等应用场景进行了一系列研究。文献[1]在2007 年提出一种更加灵活可实现的密文策略属性基加密方案(Ciphertext Policy Attribute-Based Encryption,CP-ABE),其中由属性集作为因子关联密钥,由访问策略结构树作为因子关联密文。文献[2]验证了基于属性加密的多关键字搜索方案中外包私钥的正确性。文献[3]提出了带权重的属性基加密方案,通过权重访问策略树实现访问控制,从而降低密文的计算和存储开销。文献[4]提出了一种高效的基于非对称素数阶群而构建的基于属性基加密(Attribute-Based Encryption,ABE)方案,减少树形访问结构中双线性对的运算,同时降低数据属主端的加密和数据消费者端的解密开销。文献[5]中,通过优化同态加密算法的方案,建立加密关键字索引方法实现数据的隐私保护和检索。文献[6]中,提出了基于可搜索加密和同态加密的匹配方法,解决物联网云中数据的隐私泄露。文献[7]提出将数据分类处理,如用户的个人隐私相关数据放入用户链中,需要特殊处理的交易记录以及分享的病例和诊疗方法放入外部链中。通过这个方法实现数据的共享,并通过代理重加密保证数据的安全可靠。文献[8]提出使用可搜索加密技术(Public Key Searchable Encryption,PEKS)进行关键字的加密和搜索,CP-ABE 机制和数字签名技术实现数据的细粒度访问控制和完整性保护。文献[9]提出了一种基于区块链的电子病例数据搜索方案,基于属性加密机制实现了云数据的细粒度访问控制,并利用属性签名技术验证了电子病例数据源的真实性。文献[10]提出了一种面向电子健康记录的基于密文策略的权重属性加密方案,通过分别计算属性值和权重属性值的CP-ABE 加解密,实现数据的细粒度访问控制。然而以上数据共享模型或者方案中,存在如下问题:

(1)应用软件恶意查询等情况下,无法实现阻拦;

(2)数据搜索以关键字为索引,无法实现数据预览摘要,必须下载数据文件,造成宽度开销;

(3)不同企业或者单位,相同级别权限不一致的数据访问控制问题。

本文针对以上问题,提出一种基于区块链的数据共享访问控制模型,通过利用联盟链的链下计算链上存储方式实现数据的共享和可追溯,通过基于权重属性基的加密机制保证了数据的机密性和细粒度访问控制。

1 预备知识

1.1 访问结构

1.1.1 定义1:访问结构

定义访问结构[11]:设{p1,p2,…,pn}为参与者集合,∀B,C,若B⊆C且B⊆C,则C∈A,称集合是单调的。一个访问结构A是一个非空集合{p1,p2,…,pn}的子集,即。在A中的集合称为授权集合,不在A中的集合称为非授权集合。

1.1.2 定义2:权重门限访问结构

定义权重门限访问结构[12]:设U为全体属性的集合,令ω∶U→N为一个权重函数,T∈N为门限值,定义,且Γ={A⊂UU∶ω(A)≥T},则Γ为N的权重门限访问结构。

1.1.3 定义3:属性分割算法

属性分割算法[13]的输入是一个属性集合,系统根据属性的重要性将属性分割,并赋予不同的权值。对于属性集A={α1,α2,…,αn}中的每个属性αi允许系统中的最大权值为ωi=ω(αi),权值为整数。将属性集中的每个属性αi依据权重进行分割,分割后属性αi对应于(αi,1)(αi,2),…,(αi,ωi),设定分割后的最小份额为1,其构成的集合称为属性权重分割集A*。

1.2 同态加密算法

Paillier 等人[14]提出了新的同态加密算法——Paillier 公钥加密。该算法具有同态加法的性质,并在随机语言模型下具有抵抗适应性攻击的特点。算法流程如下文所述。

(1)密钥生成。首先随机选取两个大素数p和q,这两个大素数必须满足条件gcd[pq,(p-1)(q-1)]=1;其次计算n=pq和λ=lcm(p-1,q-1);最后再次随机选择整数,必须满足条件式μ=[L(gλmodn2)]-1modn,其中L可以表示为式。那么可得公钥就是(n,g),私钥就是(λ,u)。

(2)加密算法。对于一个给定的明文,首先随机选择一个整数r∈ZN,公钥为(n,g),那么加密结果为c=gm·rnmodn2。

1.3 区块链技术

区块链技术是一种去中心化、去信任化的分布式数据库技术方案[15]。采用如图1 所示的Merkle树的结构,按照区块生成的时间顺序链接一起,并通过区块头的哈希值保证区块的完整性。

图1 Merkle 树

区块链的智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,主要包括代码、合约值、合约状态3 个部分,位于区块链的中间协议层。智能合约的工作原理如图2 所示,通过判断合约的状态值是否满足预定义的一系列的场景和条件等,如果得到满足就及时地响应相关动作。

图2 智能合约

2 数据共享访问控制模型

基于区块链的数据访问控制模型如图3 所示,涉及可信中心(Trust Centre,TC)、数据拥有者(Data Owner,DO)、数据请求者(Data Request User,DRU)、联盟链(Consortium Blackchain,CB)、云储存服务商(Cloud Storage Service Provider,CSP)5个主体。为了加强数据的监管和可追溯性,保证接入节点的安全性,本模型采用半中心化的CB。此外,本模型采用全同态加密算法将数据摘要和关键字进行加密保护;利用CP-ABE 机制实现原始文件的细粒度访问控制和机密性要求;通过签名值对比判定数据的一致性。在数据的检索方面,首先通过智能合约机制优先过滤一部分非法访问,其次将关键字索引密文存入CB 中实现快速检索。

图3 数据共享访问控制模型

(1)TC 负责向首次进入CB的每个数据使用者颁发数字证书。每个数据使用者向TC 提交相关注册信息(身份信息、单位、职务、密级等),只有TC 身份认证授权后才能获得公私钥以及属性私钥和数字证书。

(2)DO 主要将数据共享给其他DRU。主要通过制定智能合约规则和访问控制策略结构树实现数据的细粒度访问控制和机密性,将数据信息摘要提取并加密模糊处理实现数据可预览。

(3)DRU 若要获取数据,则需满足相应权限才能访问数据。

(4)CB 节点由不同部门单位、同部门不同级别单位、其他研究性机构等构成,并共同维护区块链。CB 存储数据摘要密文和元数据,以防止数据被恶意篡改。

(5)CSP 提供存储加密数据功能。

3 方案描述

基于区块链的数据访问控制模型,主要分为系统初始化阶段、数据存储阶段和数据搜索与共享阶段3 个阶段。

3.1 系统初始化阶段

本阶段主要包含CP-AEB 生成密钥和Paillier算法生成密钥。

CP-AEB 生成密钥包含Setup 和keyGen 两个步骤。

(1)Setup步骤。TC输入安全参数λ和属性集A,输出公开参数PK和主密钥MK,Setup(1λ,A)→(PK,MK)。输入安全参数λ,设p是一大素数,定义G0、G1是Zp阶数为g的两个乘法循环群,令g为群G0生成元,定义双线性映射e∶G0×G0→G1。安全参数λ决定群的大小。TC随机选择两个随机数α,β∈Zp,计 算h=gβ和u=e^(g,g)α,生成公开参数PK={G0,g,h,u}和主密钥MK={gα,β}。

(2)KeyGen步骤。A={α1,α2,…,αn}表示系统中用户的属性集合;A*是属性A对应的权重属性分割集,A*=(b1,b2,…,bl),b是属性A*对应的权重属性分割集的和;则A'={α1,α2,…,αn,b}表示系统中用户的属性所有参数集合。TC输入DRU以用户的属性所有参数集合A'和主密钥MK,输出属性权重私钥Key Gen(A',MK)→SK。系统随机选取l∈Zp,并为A'每个属性cj选择一个随机值lj∈Zp,则属性权重私钥为SK=(D=g(α+l)/β,Paillier 算法生成密钥,keyGen(p,q)→(pk,sk),其中pk=(n,g),sk=(λ,u)。

3.2 数据存储阶段

DO 分别计算出元数据(存储索引密文CT,数据关键字和摘要密文CH,原数据哈希值HM),并将其存入CB 中,实现链下计算和链上存储。具体的计算步骤如下:

(1)从TC 中获取对称密钥key,将明文数据M对称加密得到密文C1,C1=EncAES(key,M)。将C1上传至云存储服务器,获得存储位置索引loc。

(2)构造访问策略T,如图4 所示,先通过预处理,将每个属性权重相加,得到权重值的和b作为叶子节点,从而减少CP-ABE 计算的开销。

图4 访问策略权限树

(3)通过CP-ABE,将访问策略T、存储位置索引loc、对称密钥key,通过加密算法得到密文EncABE(T,key,loc)→CT,设根节点满足q'r(0),t∈Zp,A'是属性所有参数集合,则:

(4)选随机数r∈ZN,计算关键子和数据摘要的同态加密密文CH,CH=EncHE(M,r)。

(5)计算元数据的哈希值HM,HM=Hash(M)。(6)将元数据格式存入CB 中。

3.3 数据搜索与共享阶段

DRU 访问数据的流程如图5 所示,先通过智能合约机制去验证用户的身份密级和文件的保护期限;如果满足的情况下,再查询CB的数据关键字和摘要信息;并通过CP-ABE 验证访问策略结构树验证通过后解密得到数据的索引地址和对称密钥;从云服务器下载密文数据,使用对称密钥解密得到明文,并对比哈希值确保数据的完整性。具体的步骤如下文所述。

图5 数据搜索与共享访问流程

(1)DO 设定智能合约规则,设置数据的密级和保密期限。DRU 调用智能合约验证自身密级和数据的密级一致性,并针对数据的保密期限进行审查,符合智能合约规定的密级和保密期限执行步骤(2),否则直接拒绝访问。设定智能合约的定时轮询检测功能,如果文件期限有问题,则直接提醒数据的拥有者,针对CB 元数据进行更改重新上链。具体的算法伪代码如下文所述。

(2)DRU 在CB 查询中关键字或摘要的密文,获取数据文件索引密文CT和哈希值HM。使用属性权重私钥SK验证DRU 是否满足访问控制树T,其中q是T的一个节点,设γ是访问控制树T的一个根节点,如果满足的情况下,计算R=DecryptNode(CT,SK,γ)=e(g,g)γt,获得原始数据的文件索引loc和对称密钥keyAES。

(3)从云存储服务器下载数据密文C1,并解密数据得到明文Decrypt(C1,keyAES)=C~/e(C,D)/R)→M。

(4)计算哈希值,校验数据的一致性。

4 模型分析

4.1 安全性分析

本模型采用链下计算链上存储的数据共享方式,因此从数据链下加密计算方向和链上存储方向分析数据的安全性。

4.1.1 加密算法安全性

在本模型中,结合数据加密标准(Data Encryption Standard,DES)、Paillier 算法、CP-ABE 等多种加密技术,其中DES 算法可以保证算法的安全性。Paillier 同态加密算法[14]证明了在随机语言模型下,该算法能够抵抗适应性攻击,具有很好的同态特性;CP-ABE 算法[16]通过选择属性和选择明文攻击下的不可区分性(in-distinguish ability against selective access structure and chosen plaintext attack,IND-SASCPA)游戏,证明了该算法可以达到抵抗选择明文攻击下的安全性。本文采用权重属性集作为叶子节点和文献[16]采用普通属性集作为叶子节点的研究方法相同,因此证明方法也相同,可以达到抵抗选择明文攻击下的安全性要求。

4.1.2 数据的机密性和完整性

在本模型中DES 对称加密保证了云服务器存储的数据为密文,通过Pailler 算法同态加密保证了关键字和数据摘要为密文,通过CP-ABE 加密保证了数据文件索引和对称密钥为密文。因此,在数据流转过程中保证了数据的机密性,并通过元数据的哈希值,保证了原文件的完整性。

4.1.3 CB 安全性分析

在本模型中采用CB的方式,即数据区块通过Merkle 树构造,并按照时间顺序链接保证区块消息不能任意修改,除非全网51%的节点被篡改。此外,本链中通过TC的监管,保证了接入节点的安全性,且本模型将关键字和数据摘要的密文以及地址索引和对称密钥密文存储在CB 上,因此具备防篡改能力。

4.2 模型的对比

通过对比本文数据共享处理的模型和其他场景模型的数据共享功能分析,得到表1。可以看出,相比文献[5]、文献[6]、文献[10]中的模型,本模型具有明显优势。相比于文献[8],本模型采用权重属性基加密,可以实现更精细的粒度控制,且适用范围更广;本模型采用关键字和摘要同态加密,可以实现摘要的预览从而减少带宽开销。

表1 模型对比

5 实验与结果分析

为了更准确地评估本模型的实际性能,本文对CP-ABE 算法、Pailler 算法和智能合约机制进行实验仿真。实验的硬件环境:Intel®Core TM i5-7500 3.4 GHz的CPU、随机存取存储器(Random Access Memory,RAM)为8 GB。实验环境构造:在VMware Workstation 12 上安装Ubuntu 16.04.7;采用Hyperledger Fabric的版本v1.4,进行重构设计智能合约。

本文在不同的属性策略条件下,选择512 字节的数据,对比文献[10]和本文模型的CP-ABE 加解密开销。如图6 所示,结果表明本模型在加解密方面有明显的优势。其中,文献[10]将属性值和属性权重值相分离,计算了两次CP-ABE 加解密,而本模型采用权重属性总计算值作为属性因子进行加解密可以减少大量开销。

图6 CP-ABE 不同方案加解密时间开销

本文的模型是基于区块链的元数据来进行CPABE 加解密,因此数据的长度有限。本文选择256字节和512 字节的数据进行实验仿真。如图7 所示,结果表明CP-ABE 加解密时间开销随着属性策略的增加时间变长,但是在实际应用在可接收范围内。

图7 CP-ABE 不同明文长度加解密时间开销

本模型采用Pailler 算法针对搜索关键字和摘要进行加密,根据文件摘要的长度特点本文选择长度为1024 字节、2048 字节、3072 字节、4096 字节进行实验仿真。如图8 所示,随着数据长度的增加,加解密时间增加,但是在实际应用,加密时间在可接收范围内。

图8 Pailler 加解密时间开销

本模型通过将智能合约机制进行仿真实验,如图9 所示,随着元数据数目增加时间开销越低,满足实际使用需求。

图9 智能合约机制的时间开销对比

6 结语

本文提出了一个基于区块链的数据访问控制模型,通过采用CB的方式,可以保证接入CB的节点的安全性,实现共享数据的追溯。通过模型分析和实验仿真表明,本模型可以解决数据共享的安全和访问控制问题。本文的主要贡献如下:

(1)由于数据在不同的企业或者部门中流转,传统的检索方法是针对关键字相关检索,无法预览共享数据摘要,造成重复多次无用下载,增加宽度开销和存储服务器资源使用等,本模型提供了基于同态加密算法针对共享数据的摘要进行加密,保护数据摘要的机密性同时满足预览需求。

(2)传统的CP-ABE 仅对数据请求者的属性做了访问控制,然而数据共享中,不同部门具有相同组织架构但是对数据访问权限不同的特殊性,本模型通过增加属性的权重,解决数据共享不同部门的访问控制需求,并通过改进CP-ABE 机制,减少数据加解密开销。

(3)由于共享数据的密级应小于或者等于数据请求者密级要求,本模型利用联盟链智能合约机制,优先进行数据密级匹配,减少联盟链中数据恶意查询和下载的开销。

猜你喜欢
访问控制密文密钥
一种跨策略域的林业资源访问控制模型设计
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
密码系统中密钥的状态与保护*
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
内外网隔离中ACL技术的运用
TPM 2.0密钥迁移协议研究