APP下载

基于区块链的支持访问控制的可搜索加密方案

2021-06-10许宗莲王崇宇朱晓明朱宇坤陈瑞东

无线电通信技术 2021年3期
关键词:密文密钥加密

许宗莲,王崇宇,朱晓明,朱宇坤,陈瑞东

(1.电子科技大学,四川 成都 611731;2.中国电子科技集团公司第五十四研究所,河北 石家庄 050081)

0 引言

区块链技术[1]经过十多年的发展,在应用场景与实现功能上都得到了极大的扩展与完善,其去中心化的信任机制挑战了传统的第三方中心机构在网络系统中的地位,为用户提供了一种新的网络安全保障方案。分布式存储是区块链的本质特征,区块链系统内全部节点都存储和维护同一份完全相同的账本数据,这一点导致了大量的数据存储冗余和计算冗余,造成不必要的资源浪费和成本开销,影响了区块链在大规模数据业务环境下的应用扩展。此外,区块链数据混合式存储也面临数据机密性、数据完整性等方面的安全挑战。区块链节点都存储着完整的链上数据副本,若不对链上数据进行加密处理,其余用户可轻易获取他人数据,严重危害用户的个人隐私。此外,将数据存储到链下,存储安全性、数据的可获得性、完整性、机密性都应是重点关注的问题,以避免数据的泄露、篡改与缺失。

针对上述问题,近年来研究人员将加密技术应用到区块链外包存储架构中,针对外包数据验证[2-3]、数据访问控制[4-6]、加密方案安全性[7]以及用户隐私保护[8]等问题,研究基于区块链的加密数据搜索方案与数据的访问控制策略,减小不可靠的外包服务器可能带来的安全威胁。

目前的研究成果各有侧重,单一特点的加密技术应用不足以解决区块链外包存储所面临的安全威胁。本文提出了一种面向大规模数据业务的区块链安全存储技术,结合多种加密技术,同时解决区块链外包存储技术面临的安全问题,实现数据的加密存储、加密搜索与访问控制。

1 区块链安全存储技术

1.1 区块链技术

区块链技术的设计理念打破了传统网络结构中必须依赖中心机构节点的观念,为对等参与者实现业务平等沟通,也为保障数据可信可靠共享提供了新的解决方案。

顾名思义,区块链的数据结构是以区块为数据基本存储单位并依次按顺序链接构成,内部节点身份对等,根据共识机制设定的规则产生并发送新区块,使区块链具有不可篡改、共同维护、点对点通信的特点。因此区块链的早期应用是作为完全同步的分布式数据库,为加密货币系统记录重要的交易数据。随着区块链技术的发展与演变,智能合约被引入该系统中,成为用户扩展区块链功能的关键技术。

在区块链平台上编译执行的程序被称为智能合约,具有自动执行、不可修改的特点。合约程序一旦上传至链上,程序代码便不能再修改,只能按照预先编写设计的程序流程运行计算,只要区块链系统中各个节点的输入状态相同,执行程序一致,运行结果就能保持不变,体现了各个节点的一致性与同步性。以太坊[9]是目前最受欢迎的区块链平台,智能合约运行在以太坊虚拟机(Ethereum Virtual Machine,EVM)上,极大地避免了程序运行错误、崩溃等意外情况对系统造成的不利影响。

通过智能合约实现数据检索方案,存储数据与执行程序一经上传不可篡改,能够有效避免用户、检索节点与外包节点等参与方的欺骗行为,确保数据存储及检索过程的安全可靠。如Li等人[10]提出一种基于区块链的SSE方案,能够自动检查搜索结果的正确性,维护数据检索方与数据提供方的公平性;Huang等人[11]提出了一种基于区块链的数据共享方案,鼓励用户共享数据,并提供用户自定义功能,定义可访问属性策略。Guo等人[8]采用前向安全的加密方案,利用区块链存储外包数据信息,验证加密检索结果的正确性。因此,本文通过智能合约实现加密方案,使区块链作为数据共享平台,确保参与各方的公平信任。

1.2 区块链安全存储与搜索访问技术

区块链上任意节点都能够获取完整的区块链数据,明文存储的方式无法保证数据的机密性,泄露用户隐私。因此,研究者引入访问控制与数据加密技术保护数据安全,防止无授权的数据访问,避免隐私信息泄露。

利用可搜索加密技术实现链上数据加密及密文搜索是当前常见的一种解决方案。可搜索加密搜索的对象是加密密文,因此需要事先选择搜索关键词,加密生成查询目标密文。常见的可搜索加密方案包括对称可搜索加密(Symmetric Searchable Encryption,SSE)[12]与公钥可搜索加密(Public Key Encryption with Keywords Search,PEKS)[13]等。在构建链上可搜索加密方案时,研究人员将关注点放在加密搜索安全性及性能上的提升,区块链仅仅作为方案实现的平台,提供可信的数据存储及检索功能。如,杜瑞忠等人[7]提出一种基于区块链的公钥可搜索加密方案,该方案通过智能合约检索数据内容,防止关键词猜测攻击,限制数据发送时的恶意行为;牛淑芬等人[3]研究了适用于区块链的支持多关键词检索的可搜索加密方案,将加密索引与数据以交易的形式存储到区块链上,解决了服务器不诚实检索的问题;李涵[14]在区块链P2P存储系统上,使用改进的对称可搜索加密实现对存储数据索引的加密搜索,在提供搜索数据动态更新功能的同时,保证了搜索方案的前向安全性。此类方案采用一般的加密搜索方案,不能对检索用户进行分类与识别,拥有检索令牌的用户可获得该令牌能够检索的所有结果,缺乏对用户身份的访问控制,不利于数据的安全共享。

属性加密方案(Attribute-based Encryption,ABE)被用于实现链上数据的访问控制与隐私保护。属性加密方案中,只有当用户私钥与密文关联的属性与访问结构符合时,才能够解密密文。由于加密策略不同,属性加密具有两种类型,分别是密钥策略属性加密方案(Key-Policy ABE,KP-ABE)[15]和密文策略属性加密方案(ciphertext-policy ABE,CP-ABE)[16]。前者密文与属性关联,私钥与访问结构关联;后者密文与访问结构关联,私钥与属性关联。不论哪种加密策略,都可以实现对数据的访问控制。如,刘彦松等人[5]在构建区块链的链上数据安全共享体系时,采用属性加密与同态加密计算技术,保障了数据共享过程中的数据安全与用户隐私。汪金苗等人[6]则关注到属性加密方案中单一授权中心的权限集中问题,基于区块链系统分布式节点身份对等的特点,提出了基于多属性权威属性加密的区块链隐私保护与访问控制方法,将多授权属性中心分散到区块链共识节点上,解密条件需要从节点中获取完整的私钥构件才能得到解密私钥,增强了方案的抗共谋攻击能力。此外,属性加密方案也被用于密文搜索。康晋华[4]提出了一个具有关键词搜索性质的CP-ABE方案,属性符合访问结构之后,再进行关键词检索。分析上述研究成果,考虑到属性加密所需的计算开销较大,在加密检索过程中使用属性加密将带来较大的负担,因此,为了增加访问控制功能,只将属性加密技术应用于检索结果的加密中,并不对检索令牌进行属性加密,尽量避免增加检索开销。

2 可搜索加密方案

2.1 基本架构

本文提出一种基于区块链的链上链下混合式存储架构,链下存储原始数据,减小链上存储数据规模,降低区块链节点的资源浪费和存储需求。混合式存储架构如图1所示,可分为用户层、应用层、区块链层和外包存储层。

用户层主要包括数据拥有者、数据使用者和密钥生成中心。

应用层为用户提供数据服务、密钥服务、身份认证服务,用户向密钥生成中心请求密钥,通过身份认证体系生成可验证的用户身份,用户在应用层实现数据加解密及验证功能,并进行链上的链下数据存储与数据查询功能。

区块链层包括API接口、分布式账本、智能合约引擎与共识算法等组成部分,分布式账本存储加密索引数据,智能合约引擎用于编译、执行智能合约,共识算法保持和维护区块链数据的一致性。

外包存储层用于存储大规模数据,可以是数据库、星际文件系统(InterPlanetary File System,IPFS)和云存储服务器等。

图1 区块链混合式存储架构Fig.1 Blockchain hybrid storage architecture

2.2 实现方法

基于上述存储架构,本文选择云服务器作为外包存储方式,采用对称加密、PEKS以及CPABE三种加密方案分别对原始数据、搜索关键词以及原始数据索引进行加密,构建了一个基于区块链的数据安全存储方案,确保数据外包存储与链上存储的安全性与机密性。该方案包括5个实体:数据拥有者(Data Owner ,DO)、数据使用者(Data User, DU)、区块链(blockchain,BC)、云服务提供商(Cloud Service Provider,CSP)以及密钥生成中心(Key Generation Center,KGC)。

本方案中,搜索关键词与原始数据索引分开加密,比只使用可搜索加密方式的方案增加了访问控制的能力,比只使用属性加密的方式降低了属性加密的开销。采用PEKS避免密钥泄露给第三方,降低密文猜测攻击的风险;采用CPABE数据拥有者可根据个人需求设计访问结构,更加灵活方便。对原始文件进行签名,可用于验证云服务器等外包存储设备返回的文件是否一致,避免伪造、修改等行为。

图2 区块链安全存储方案Fig.2 Blockchain secure storage solution

密钥生成中心是一个可靠安全的第三方平台,为数据拥有者提供属性加密与公钥可搜索加密的密钥参数。在存储数据之前,DO首先向密钥生成中心请求PEKS的公钥PKSE和私钥SKSE,CPABE的公开参数PK和主密钥MK。数据加密存储的方案如下所示:

① DO生成对称加密密钥key,使用对称加密算法DES加密原始数据file,得到密文CTfile←EncryptDES(file,key);

② DO将密文CTfile上传至CSP,CSP返回密文存储位置location;

③ DO根据获得的主密钥MK构造访问结构A,使用CPABE加密密文存储位置location与密钥key,得到文件索引密文CTindex←EncryptABE(PK,A,key,location);

④ DO从原始数据中选择若干个搜索关键词组W={w1,…,wn},其中n为关键词个数,采用PEKS加密关键词组,得到关键词密文CTkeyword←EncryptPEKS(PKSE,W);

DU在检索和解密之前,需要从密钥生成中心获得PEKS的私钥SKSE,以及CPABE分配给DU的属性解密私钥SKABEDU。数据检索下载的方案如下所示:

① DU生成关键词组W′={w′1,…,w′m,使用解密私钥计算陷门T′W←Trapdroor(SKSE,W′),并发送至区块链;

② 区块链查询链上存储的关键词密文,通过Test(PKSE,CTkeyword,T′W)判断是否检索成功,将检索到的关键词密文CTkeyword对应的文件索引密文CTindex与文件签名sigDO(file)返回给DU;

③ DU使用私钥SKABE验证是否符合文件索引密文CTindex的访问结构,符合条件则解密得到原始数据密文的密钥与存储位置DecryptABE(SKABEDU,CTindex)→key,location;

④ 根据location向CSP请求原始数据密文CTfile′,然后解密得到原始数据文件file′=DecryptDES(key,CTfile′),再计算解密文件的签名与链上存储的文件签名是否一致,如果相等则说明获得的文件就是目标文件。

2.3 安全性分析

在本方案中,结合DES、PEKS、CPABE等多种加密技术与数字签名技术,实现了区块链大规模数据的安全存储,其安全性保障体现在以下几点。

(1) 数据机密性

链上链下存储的数据都是加密或处理过的密文数据,如原始文件密文、关键词密文、数据索引密文与文件签名等。普通用户即使获取到密文数据,在没有密钥的情况下,仍然不能读出相应的明文信息。在加密搜索过程中,查询者将使用私钥加密的关键词与验证使用的公钥发送给区块链节点,节点也不能知道关键词明文信息。因此,保护了数据机密性。

分离立交桥梁工程是高速公路重要组成部分,由于其规模性、复杂性常常要面临许多难以预测的安全风险[1],这通常会导致施工期间人身伤亡事故的发生.因此,对分离立交桥梁工程施工风险进行分析就显得十分重要[2].

(2) 数据完整性

在本方案中,数据完整性体现在两方面:其一是区块链的数据完整性,由区块链共识机制实现,恶意用户不能随意修改链上存储的数据;其二是原始数据完整性校验,依托链上数据进行。云服务器等外包存储服务并不是完全可靠的,可能将错误文件或者修改过的文件返回给用户,用户可通过链上存储的文件签名验证返回文件的完整性。

(3) 访问控制

CPABE的访问策略由数据拥有者决定。将访问策略与生成的密文关联,密文存储上链后,查询者首先要通过可搜索加密查询得到该密文,再验证个人属性是否符合密文的访问结构,属性由可信的第三方平台密钥生成中心分配,或者由数据拥有者分配,符合访问结构时密文才能够解密成功。

3 实验与结果分析

本文在操作系统为Ubuntu 18.04.3 LTS,硬件环境为Intel(R) Xeon(R) Gold 5115 CPU@2.40 GHz,内存16 GB的实验环境上进行实验。使用python语言,基于Crypto、PBC函数库与CPABE,构建加密函数方案,测试方案性能。

本文提出设计方案的特点在于结合多种加密方案,分别实现加密搜索、访问控制与隐私保护的功能,其加密的主要开销也体现在3次加密过程中。因此在本文的性能测试方案以测试3种加密方案性能为主,总的加解密开销仅需要对3种时间进行线性叠加即可。本文分别使用DES加密原始文件、PEKS加密搜索关键词、CPABE加密原始文件密文索引及密钥。其中,DES加密性能由原始文件大小决定,文件越大加密时间越长。因此在测试过程中,以10 Mbit为步长,从10~50 Mbit选择5个文件作为加密文件参与测试;PEKS加密搜索性能与关键词数量有关,关键词个数越多所需时间越长,以10个为步长,从10~100选择关键词个数用于测试;CPABE加密内容,格式确定长度有限,不会影响到加密所需时间,但是加密选取访问结构与解密所用的属性个数对性能影响较大,同样以10个为步长,从10~50,确定5个属性个数。加密时间通过多次测量求平均值的方式得到。

图3~图5分别是对上述3种加密方案的性能测试结果,分别测试了文件大小、关键词个数以及属性个数对加密方案的影响。可以看出,加密方案性能与上述3个条件成正相关关系。其中,对加密方案性能影响较大的是原始文件大小。

图3 DES加密和解密时间Fig.3 Encryption and decryption time of DES

图4 PEKS加密与陷门生成时间Fig.4 Encryption and trapdoor generation time of PEKS

图5 CPABE加密与解密时间Fig.5 Encryption and decryption time of CPABE

在本次实验中,尽管DES加密方式计算开销相对较小,但是所需加密文件大小远远大于PEKS与CPABE加密方案,因此DES加解密所需时间显著超过PEKS与CPABE加密方案所需的时间,这一特殊设计在于模拟实际应用场景下,外包数据较大不便于存储到区块链上的情况,其索引大小与关键词大小远小于原始数据。在PEKS和CPABE的测试结果中,虽然随着关键词和属性个数增加,所需时间增加,但是在数据量较小的情况下,时间开销是可接受的。上述测试结果说明,该加密方案是可行的。

4 结束语

本文提出了一种面向大规模数据业务的区块链安全存储架构及相应的加密方案,使用云存储服务器拓展区块链的存储能力,设计并提出了链上链下混合式存储的基本架构及其工作流程;针对链上数据信息泄露及外包服务器不可信任的问题,结合对称加密、可搜索加密、属性加密技术,构造了一个区块链的安全存储技术的实现方案,实现链上数据加密检索、访问控制、数据验证、隐私保护等多种功能。本方案是一个相对通用的加密框架,内部相应的加密模块优化改进后同样适用。因此,其安全性及性能完全依赖于采用的对称加密、可搜索加密、属性加密等加密模块的安全性与性能,其在前后向隐私、加密检索效率与功能等方面,仍有很大的提升空间。

猜你喜欢

密文密钥加密
一种支持动态更新的可排名密文搜索方案
一种新型离散忆阻混沌系统及其图像加密应用
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
密码系统中密钥的状态与保护*
一种基于熵的混沌加密小波变换水印算法
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
加密与解密
一种基于密文分析的密码识别技术*