基于区块链的数据共享访问控制模型
摘要
在大数据时代,不同企业或者部门间迫切需要进行数据共享。针对共享数据如何进行细粒 度控制、数据的追溯和机密性保护等问题,提出了基于区块链的数据共享访问控制模型。本模型首 先采用区块链技术保证数据溯源和不可篡改;其次使用联盟链的智能合约机制,进行粗粒度的访问 控制,减少并过滤区块链的恶意攻击;最后基于改进的权重属性基加密机制对数据进行细粒度的控 制与和机密性保护,并减少数据加解密时间开销。通过安全性分析和实验仿真结果表明,该模型很好地解决了数据共享问题。
内容目录:
1 预备知识
1.1 访问结构
1.1.1 定义 1:访问结构
1.1.2 定义 2:权重门限访问结构
1.1.3 定义 3:属性分割算法
1.2 同态加密算法
1.3 区块链技术
2 数据共享访问控制模型
3 方案描述
3.1 系统初始化阶段
3.2 数据存储阶段
3.3 数据搜索与共享阶段
4 模型分析
4.1 安全性分析
4.1.1 加密算法安全性
4.1.2 数据的机密性和完整性
4.1.3 CB 安全性分析
4.2 模型的对比
5 实验与结果分析
6 结 语
在大数据时代背景下,随着互联网技术的发展,不同的企业或者部门之间数据共享成了一个迫切需求。在数据共享领域,研究人员针对数据的隐私和安全性,从医疗、物联网、云存储等应用场景进行 了一系列研究。
文献 [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)不同企业或者单位,相同级别权限不一 致的数据访问控制问题。
本文针对以上问题,提出一种基于区块链的数 据共享访问控制模型,通过利用联盟链的链下计算链上存储方式实现数据的共享和可追溯,通过基于权重属性基的加密机制保证了数据的机密性和细粒 度访问控制。
01
预备知识
1.1 访问结构
1.1.1 定义 1:访问结构
定义访问结构 [11]:设 为参与者集合, ∀B,C, 若 B ⊆ C 且 B ⊆ C , 则 C ∈ A ,称集合
是单调的。一个访问结构A 是一个非空集合
的子集, 即
。 在 A 中的集合称为授权集合,不在A 中的集合称为 非授权集合。
1.1.2 定义 2:权重门限访问结构
定义权重门限访问结构 :设 U为全体属性的集合,令 ω ∶ U→N为一个权重函数 ,T ∈N为门限值, 定义,则
为N的权重门限访问结构。
1.1.3 定义 3:属性分割算法
属性分割算法的输入是一个属性集合,系统根据属性的重要性将属性分割, 并赋予不同的权值。对于属性集中的每个属性
允许系统 中的最大权值为
,权值为整数。将属性集中 的每个属性
依据权重进行分割,分割后属性
对 应于
, 设定分割后的最小份额为 1, 其构成的集合称为属性权重分割集
。
1.2 同态加密算法
Paillier 等人提出了新的同态加密算法—— Paillier 公钥加密。该算法具有同态加法的性质,并在随机语言模型下具有抵抗适应性攻击的特点。算法流程如下文所述。
(1)密钥生成。首先随机选取两个大素数 p 和 q,这两个大素数必须满足条件; 其 次 计 算 n=pq 和
; 最后再次随机选择整数
,必须满足条件 式
,其中 L 可以表示为式
。那么可得公钥就是
,私钥就是
。
(2)加密算法。对于一个给定的明文,首先 随机选择一个整数,公钥为
,那么加密 结果为
。
(3)解密算法。对于一个给定的密文, 使用用户私钥
,解密结果为
。
1.3 区块链技术
区块链技术是一种去中心化、去信任化的分布式数据库技术方案。采用如图 1 所示的 Merkle 树的结构,按照区块生成的时间顺序链接一起,并通过区块头的哈希值保证区块的完整性。
图 1Merkle 树
区块链的智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,主要包括代码、合约值、合约状态 3 个部分,位于区块链的中间协议层。智能合约的工作原理如图 2 所示,通过判断合约的状态值是否满足预定义的一系列的场景和条 件等,如果得到满足就及时地响应相关动作。
图 2 智能合约
02
数据共享访问控制模型
基于区块链的数据访问控制模型如图 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 提供存储加密数据功能。
03
方案描述
基于区块链的数据访问控制模型,主要分为系 统初始化阶段、数据存储阶段和数据搜索与共享阶 段 3 个阶段。
3.1 系统初始化阶段
本阶段主要包含 CP-AEB 生成密钥和 Paillier 算法生成密钥。
CP-AEB 生成密钥包含 Setup 和 keyGen两个步骤。
(1)Setup 步 骤。TC 输 入 安 全 参 数λ 和 属 性 集 A, 输 出 公 开 参 数 PK 和 主 密 钥。输入安全参数
,设p 是一大素数,定义
是
阶数为
的两个乘法循环群,令
为群 G0生成元,定义双线性映 射
。安全参数 λ决定群的大小。TC 随机选择两个随机数
,计算
和
,生成公开参数
和主密钥
。
(2)KeyGen 步 骤。表 示 系 统中用户的属性集合;A* 是属性 A 对应的权重 属性分割集,
, b 是属性 A* 对应的 权重属性分割集的和
表示系统中用户的属性所有参数集合。TC 输入 DRU 以用户的属性所有参数集合 A' 和主密钥 MK, 输 出 属 性 权 重 私 钥
。 系 统 随 机选取
,并为 A' 每个属性
选择一个随机值
,则属性权重私钥为
Paillier算法生成密钥,
, 其中。
3.2 数据存储阶段
DO 分别计算出元数据(存储索引密文 CT,数 据关键字和摘要密文 CH,原数据哈希值), 并 将其存入 CB 中, 实现链下计算和链上存储。具体 的计算步骤如下:
(1)从 TC 中获取对称密钥 key,将明文数据 M对称加密得到密文 。将
上传至云存储服务器,获得存储位置索引loc。
(2)构造访问策略 T,如图 4 所示,先通过预处理,将每个属性权重相加,得到权重值的和b作为叶子节点,从而减少 CP-ABE 计算的开销。
图 4 访问策略权限树
(3) 通过 CP-ABE, 将访问策略 T、存储位 置索引loc、对称密钥 key,通过加密算法得到密 文,设根节点满足
是属性所有参数集合,则:
(4)选随机数,计算关键子和数据摘 要的同态加密密文
。
(5)计算元数据的哈希值
(6)将元数据格式存入 CB 中。
3.3 数据搜索与共享阶段
DRU 访问数据的流程如图 5 所示,先通过智 能合约机制去验证用户的身份密级和文件的保护期 限; 如果满足的情况下,再查询 CB 的数据关键字 和摘要信息;并通过 CP-ABE 验证访问策略结构树 验证通过后解密得到数据的索引地址和对称密钥; 从云服务器下载密文数据,使用对称密钥解密得到明文,并对比哈希值确保数据的完整性。具体的步骤如下文所述。
图 5 数据搜索与共享访问流程
(1) DO 设定智能合约规则,设置数据的密级 和保密期限。DRU 调用智能合约验证自身密级和数据的密级一致性, 并针对数据的保密期限进行审查, 符合智能合约规定的密级和保密期限执行步骤(2), 否则直接拒绝访问。设定智能合约的定时轮询检测功能,如果文件期限有问题,则直接提醒数据的拥 有者, 针对 CB 元数据进行更改重新上链。具体的算法伪代码如下文所述。
(2) DRU 在 CB 查询中关键字或摘要的密文,获取数据文件索引密文 CT 和哈希值 使用属性权重私钥SK 验证 DRU 是否满足访问控 制树 T,其中 q 是 T 的一个节点,设 γ 是访问控制树 T 的一个根节点,如果满足的情况下,计算
。获得原始数据的文件索引 loc 和对称密钥
(3)从云存储服务器下载数据密文,并解密数据得到明文
(4)计算哈希值,校验数据的一致性。
04
模型分析
4.1 安全性分析
本模型采用链下计算链上存储的数据共享方式,因此从数据链下加密计算方向和链上存储方向分析数据的安全性。
4.1.1 加密算法安全性
在本模型中,结合数据加密标准(Data Encryption Standard,DES)、Paillier 算 法、CP-ABE 等 多 种 加密技术,其中 DES 算法可以保证算法的安全性。Paillier 同态加密算法 证明了在随机语言模型下,该算法能够抵抗适应性攻击,具有很好的同态特性;CP-ABE 算法 通过选择属性和选择明文攻击下的不可区分性(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 模型对比
05
实验与结果分析
为了更准确地评估本模型的实际性能,本 文对 CP-ABE 算法、Pailler 算法和智能合约机制 进行实验仿真。实验的硬件环境: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 不同方案加解密时间开销
本文的模型是基于区块链的元数据来进行 CP- ABE 加解密,因此数据的长度有限。本文选择 256 字节和 512 字节的数据进行实验仿真。如图 7 所示,结果表明 CP-ABE 加解密时间开销随着属性策略的 增加时间变长,但是在实际应用在可接收范围内。
图7 CP-ABE不同明文长度加解密时间开销
本模型采用 Pailler 算法针对搜索关键字和摘要 进行加密,根据文件摘要的长度特点本文选择长度 为 1024 字节、2048 字节、3072 字节、4096 字节进 行实验仿真。如图 8 所示,随着数据长度的增加, 加解密时间增加,但是在实际应用,加密时间在可 接收范围内。
图 8 Pailler 加解密时间开销
本模型通过将智能合约机制进行仿真实验,如图 9 所示,随着元数据数目增加时间开销越低,满足实际使用需求。
图 9 智能合约机制的时间开销对比
06
结 语
本文提出了一个基于区块链的数据访问控制模型,通过采用 CB 的方式,可以保证接入 CB 的节点的安全性,实现共享数据的追溯。通过模型分析和实验仿真表明,本模型可以解决数据共享的安全和访问控制问题。本文的主要贡献如下:
(1)由于数据在不同的企业或者部门中流转,传统的检索方法是针对关键字相关检索,无法预览共享数据摘要,造成重复多次无用下载,增加宽度开销和存储服务器资源使用等,本模型提供了基于同态加密算法针对共享数据的摘要进行加密,保护数据摘要的机密性同时满足预览需求。
(2)传统的 CP-ABE 仅对数据请求者的属性做了访问控制,然而数据共享中,不同部门具有相同组织架构但是对数据访问权限不同的特殊性,本模型通过增加属性的权重,解决数据共享不同部门的访问控制需求,并通过改进 CP-ABE 机制,减少数据加解密开销。
(3)由于共享数据的密级应小于或者等于数据请求者密级要求,本模型利用联盟链智能合约机制,优先进行数据密级匹配,减少联盟链中数据恶意查询和下载的开销。
