赵钦,蔡杰杰,蔡耀君,周飞,彭新永
(广西壮族自治区信息中心,广西 南宁 530200)
近年来,区块链技术因其较高的安全性与不可篡改的特性,逐渐得到越来越多的重视及应用[1-3]。该技术由比特币的概念衍生而来,比特币是由中本聪于2008 年所提出的,最初被用作基于点对点网络基础支撑的数字货币。在比特币流行的过程中,逐步融合了分布式存储、P2P 架构(Peer-To-Peer)和共识算法的区块链技术成为各国政府与企业关注的重点之一,并将其应用于其他领域中[4-9]。自2016 年起,在大数据时代背景下,我国中央机构便多次强调信息整合的重要性,尤其是加强数据安全共享管理[10-11]。传统保障数据共享安全的方法为线下传输数据,但随着数据量的迅速增长,该方式已无法满足实时分享的要求,且容易因人为失误而造成数据的丢失。更严重的是,其难以对数据传输过程进行全程监管,数据的流向则更不易被追踪。针对上述问题,由于区块链技术具有去中心化、防篡改与可审计的特点,越来越多的学者开始将其应用于数据共享研究中。2020 年,国家发展和改革委员会将区块链技术纳入新基建范畴,这意味着该技术成为新一轮数字经济建设的重要基石[12-13]。
该文针对数据共享过程中的安全性与“信息孤岛”问题,基于分布式区块链技术提出了一种数据安全保障技术。该技术通过对数据安全管理及对请求用户的访问进行控制,从而提高了数据共享过程中的安全性。
现阶段基于区块链技术的数据安全保障技术已取得诸多重要成果,然而在进行数据共享时,仍存在较多问题:
1)区块链存储数据的容量有限,无法满足日益增长的海量数据储存;
2)集中式存储由于形态固定、抗灾能力弱及维护成本较高等弊端,无法作为补充储存方式;
3)在进行数据补充时,缺乏对数据本身机密性的安全保护措施;
4)在数据共享时,数据分享者需保持较高的系统检查频率来满足共享请求的及时响应,由此造成了较高的成本。
针对上述问题,该文展开了基于分布式区块链的数据安全保障技术研究,形成分布式数据安全的共享方案[14-16]。数据安全保障技术可分为两个部分:分布式数据安全存储模型与分散管理细粒度动态访问控制模型。在分布式数据安全存储模型中,区块链补充数据存储在具有分布式特点的IPFS(Inter Planetary File System)中,其通过哈希寻址的方式来进行查询,并利用对称加密(Symmetric-key Algorithm)的方式避免数据泄露。在此过程中,为了增强数据加密对称密匙与数据存储地址的安全性,该文采用了分散式密文策略属性基加密,来阻挡由于用户身份以及属性管理权限过度集中所引起的数据安全隐患。
该文所提出的基于分布式区块链的数据安全保证技术框架如图1 所示,根据功能其可分为分布式数据管理和访问控制两个部分。其中,数据存储层用于用户数据的存储,其为共享数据提供安全的存储空间。考虑到数据共享时的安全性,使用IPFS 星际文件系统存储用户的分布式数据。而区块链引擎层为用户接入层与数据存储层二者间的连接,其是用户各类重要信息存储、操作及审计的执行者。用户接入层则提供了该模型主要的功能接口,主要有访问控制和数据管理两个模块。
图1 数据安全保障技术框架
该文用于数据安全保障技术的分布式区块链基本单元为区块,其由区块头及区块体组成,具体如图2 所示。
在进行数据共享时,参与主体主要有两类:数据提供者与数据请求者。该次使用区块链、智能合约及IPFS 技术来实现区块链链上数据及链下数据的关联,及保障整个共享过程的安全性。
IPFS 是星际文件系统的简称,与HTTP 协议不同的是,其是分布式、点对点的超媒体协议。IPFS 基于内容寻址的存储方式,使得相同内容的信息不会被重复存储;其去中心化的内容分布,使得用户能够在分散的互联网服务下获得数据,避免了较多网络访问引发的网络拥堵。IPFS 的结构如图3 所示。
图3 IPFS结构
数据共享过程主要分为两步:数据提供者上传相关数据及数据请求者下发请求,具体步骤如下:
1)数据提供者利用对称密匙将数据加密处理;
2)数据提供者将待共享的数据存储在IPFS 中,并保存该存储地址;
3)数据提供者利用访问控制单元为对称密匙加密;
4)数据提供者通过数据管理合约,并将数据储存的相关信息保存至链状态数据库中;
5)数据请求者通过调用数据列表,在所有数据中定位所需数据的位置;
6)数据请求者向访问控制单元发出申请,经审核后得到相关数据存储地址及解密密匙;
7)数据请求者下载相关数据,并利用解密后的对称密匙对数据进行解密。
在上述过程中,对原始数据的加密可用下式表示:
其中,D代表原始数据;K为对称密匙;Dc为经过对称密匙加密后的数据信息。数据提供者通过构建策略树T,并利用属性权限公匙PK和全局参数GP将对称密匙K加密,得到加密后的对称密匙CI。在数据管理合约注册后,数据才能被存储在区块链中。注册需要元信息数据名称Ndata,数据关键词KW,密文请求访问策略req,加密后的对称密匙CI,这些信息构成了元信息集合MI,如下所示:
数据请求者通过在数据管理合约中查找所需数据的元信息,来确定目标数据是否存在。同时获取加密的对称密匙CI,并向属性机构请求用户模式UK,再将二者与GP结合便可得到数据的对称密匙K,具体过程如下:
上文对分布式数据共享管理进行了探究,为了加强对称密匙与数据信息在共享时的安全性,该文使用智能合约来实现基于属性的细粒度访问控制。同时,增加数据提供者的访问控制动态权限许可判断能力。基于属性的细粒度动态访问控制机制流程如图4 所示。
图4 细粒度动态访问控制机制流程
该文提出的基于属性的细粒度动态访问控制机制主要涉及四个阶段:属性集初始化阶段、密文发布阶段、数据请求阶段及数据解密阶段。其中,在属性集初始化阶段,属性授权机构给属性集中的每一个属性i两个随机指数a、b,并将全局参数GP与属性空间U结合,得到权限密匙SK及权限公匙PK,具体如下所示:
在密文发布阶段,策略制定者通过策略树得到权限矩阵、全局参数GP和权限公匙,由此对目标信息进行加密。
在受控请求阶段,数据请求者在查询、定位到目标数据后,通过向数据管理合约发出请求来获取加密信息CT;数据请求合约调用动态访问策略DP对数据请求者部分动态属性进行权限判定。ATT为所有请求者的属性集合;而att为某一时刻数据请求者当下的动态属性,二者间的联系可表示为:
若动态属性的判定结果为can-pass,即通过了密文请求检验,则数据请求合约向数据请求者发放系统密文CT。然后,数据请求者可向属性机构申请用户密匙与相关信息,并用于密文的解密。
为了验证上述方案的可行性及有效性,进行了性能测试。该测试涉及区块链查询、属性加解密与IPFS 上传下载功能,分别就消耗时间与传输速率进行性能评估。
在硬件环境配置上,使用了四台服务器作为区块链引擎,均为64 位16 GB 内存、双核Intel Core i7的处理器和1 TB 机械硬盘,开发语言环境为Golang 1.11。另使用两台笔记本电脑作为用户端,且电脑配置相同:内存容量为16 GB,操作系统为Windows7 64 位。处理器为Intel Core i7-8550U,开发语言环境为Java 1.8。
性能测试使用的数据来自Centers for Disease Control and Prevention 的数据集。在进行加解密实验时,测试信息的长度均为168 B。通过调整属性加密策略中属性机构的数量来评估加解密模块的性能,每个属性机构选取用户的三个属性进行访问控制策略的验证。每种属性机构数量各测试10 次,测试结果如图5 所示。从图中可以看出,随着属性机构数量的增多,加密、解密时间均呈线性增长的趋势,且加密时间显著多于解密时间。
图5 加解密消耗时间对比
在进行IPFS 储存单元的数据上传、下载性能测试时,考虑到不同容量大小数据包对测试的影响,分别创建了容量大小为20 MB、40 MB、60 MB、80 MB、100 MB、120 MB 和140 MB 的数据包。在公网及局域网进行写入与读取时间测试,测试结果如图6所示。
图6 访问控制后的IPFS消耗时间
从图中可以看出,随着数据包容量的增大,在进行数据写入时,无论是公网还是局域网,消耗时间均在增加。但公网环境下,消耗时间点的增速逐渐增大,而局域网环境下的增速相对较小。且100 MB 容量的数据包,在公网环境的写入时间为68 s,而在局域网环境下写入时间仅为36 s。在进行数据读取测试时,公网和局域网环境下消耗时间的变化趋势与写入时间相同,100 MB 容量的数据包,在公网环境的读取时间为88 s,在局域网环境下读取时间为24 s。此外,公网环境下,读取数据的时间增长速度也显著增大。
该文通过分析传统数据共享模式时,影响数据安全的因素,在分布式区块链技术的基础上深入研究了一套数据安全保障技术方案。该方案将分布式区块链与IPFS 相融合,有效提升了数据存储的安全性;同时采用基于属性的细粒度访问控制技术,进一步提高了数据共享与传输过程的安全性。测试结果验证,该文所述方案具有良好的有效性及可行性。