APP下载

基于门限代理重加密和IPFS的数据去中心化安全共享方案

2021-02-25乔双全王劲松

天津理工大学学报 2021年1期
关键词:公钥密文解密

乔双全,王劲松

(天津理工大学计算机科学与工程学院,天津300384)

随着信息技术的发展,大数据的量级正以指数级的速度增长,数据已经成为促进产业发展的重要驱动力.但是当前大数据产业面临着“人人有数据,人人缺数据”的“数据孤岛”式困境,将这些分散的大数据互连共享,从而获得数据中潜在的巨大价值,是科研、政务、商业、公共服务等领域共同存在的迫切需求[1].传统的多方数据共享方案大多是基于第三方云存储系统的,这种模式依赖于中心化的存储服务,存在单点故障和隐私安全风险.当数据的所有权由数据拥有者掌控转变为由公有云等第三方实体管理者所掌控时,威胁场景会发生根本变化[2].在这种情况下,数据共享者不仅面临着来自网络攻击者对本地数据的攻击威胁,还将承担云存储提供商遭受内部或外部恶意攻击的风险.此外,集中式的数据存储机制容易遭受单点故障问题,数据的可靠性完全取决于云存储服务商的软硬件的可靠性.应对这些威胁的方法主要包括加强数据访问控制策略、改进内部监督机制以及改进灾难恢复和数据备份机制等,但这些措施实际上仅仅将威胁转化为信任问题.事实上,并没有实际有效的机制来防止这些中心化的云存储服务商无意或有意地破坏这些措施.

为了确保数据的隐私安全,在共享数据的时候,需要对数据进行加密处理.广泛使用的公钥加密方案提供了很好的安全性,但其加密性能不高,特别是在多方数据共享的情况下,数据发送者必须针对多个解密者使用其公钥进行重复的加密操作.当数据提供者是算力不足的设备时,多次重复的加密操作大大增加了设备的运算负担.

在数据共享的研究领域中,目前已有广泛使用的基于点对点(Peer-to-Peer,P2P)技术的去中心化的文件共享方案,如基于BitTorrent内容分发协议的共享方案,和基于分布式哈希表(Distributed Hash Table,DHT[3])技术的共享方案.但这些技术仅仅做到了数据的去中心化共享,没有使用加密技术保证数据的隐私性和安全性.基于云计算的数据共享方案中,研究人员提出了多种保护数据安全及隐私的方法.Li等人[4]提出了一种新的基于属性的数据共享方案,适用于云计算中资源有限的移动用户.Dong等人[5]提出了一种利用密文策略属性加密结合身份加密的数据共享方案,来提供安全可靠的云数据共享服务.Liu等人[6]提出一种利用组签名和动态广播加密技术的多用户数据共享方案,允许任何云用户匿名地与他人共享数据.然而这些方案仍然依赖于云服务进行数据共享,无法从源头上解决中心化带来的数据安全问题和隐私问题.

本文提出一种新的去中心化的安全的数据共享方案,该方案的创新点如下:1)采用门限代理重加密方法解决了多方数据共享场景下加密低效的问题,可以保证数据安全并降低共谋风险.2)采用IPFS技术解决了数据的中心化问题,并提高了多方数据共享场景下的数据传输效率.

1 理论基础

1.1 代理重加密

代理重加密(Proxy Re-Encryption,PRE)的概念最早由Blaze、Bleumer和Strauss在文献[7]中提出.代理重加密是一种特殊类型的公钥加密,它允许代理将由加密者公钥加密的密文转换为由解密者公钥加密的密文,在这个过程中代理无法获取有关原始数据的任何信息.代理需要获取拥有密文的原始加密者通过其私钥和解密者的公钥生成的重加密密钥,然后使用该重加密密钥对密文进行转换.解密者从代理获取重加密后的密文,然后可以使用自己的私钥解密文件.

图1描述了一个典型的代理重新加密模型,该模型由授权者Alice、被授权者Bob和代理Proxy组成.数据所有者Alice拥有公钥pkA,她(或者拥有pkA的实体)可以用pkA对消息m进行加密,从而生成只有她才能使用其密钥skA解密的密文cA.Alice决定将消息m的访问权限委托给拥有密钥对(pkB,skB)的Bob.为此,Alice创建一个重加密密钥:rkA→B=rekey(skA,pkB)并将其发送给代理.代理用rkA→B对cA重新加密,得到用pkB加密的密文cB.Bob可以用他的密钥skB解密cB,得到原始消息m.

图1代理重加密Fig.1 Proxy re-encryption

1.2 门限代理重加密

门限代理重加密采用了t-of-n架构的多代理方案,将重加密权限分散到了n个代理节点,分割了单代理节点的信任风险,并允许在有部分代理节点发生故障的情况下,仍可完成重加密操作.每个代理节点对密文进行重加密操作生成重加密后的密文片段,解密者只要收集达到门限值t数量的重加密的密文片段后,就可以使用自己的私钥解密密文.

门限代理重加密方案基于KEM/DEM混合加密实现,Cramer和Shoup[8]最早对混合加密进行了系统化研究,并提出密钥封装机制(Key Encryption Mechanism,KEM)和数据封装机制(Data Encryption Mechanism,DEM)的概念.

在典型的门限代理重加密场景中,实体分为数据发送者Alice、n个代理节点Proxyi(i=1,2,…,n)和数据接收者(Bob).加密、重加密和解密的过程如下:

Alice首先运行KEM的密钥生成算法,通过自己的公钥pkA生成一个对称密钥K和K的密文c1,使用K加密消息m得到密文c2,并把c1和c2发送给Bob;

Alice获取Bob的公钥pkB,运行KEM的密钥生成算法,通过自己的私钥pkA和Bob的公钥pkB生成n个重加密密钥片段ki(i=1,2,…,n),并把ki发送给代理节点Proxyi;

代理节点Proxyi运行KEM的密钥生成算法,通过ki对c1进行重加密操作,生成密文片段ci,并把ci发送给Bob;

Bob从n个代理节点收集至少达到阈值t数量的有效密文片段ci,然后可以用自己的私钥skB和至少t个有效密文片段ci将密文c1恢复成对称密钥K;

Bob运行DEM的数据解密算法,通过对称密钥K解密密文c2得到原始消息m.

1.3 IPFS

星际文件系统(InterPlanetary File System,IPFS)是一个用于在分布式文件系统中存储和共享数据的协议和对等网络.它综合了现有的对等网络协议和系统的成功思想,包括分布式哈希表(Distributed Hash Table,DHT)、BitTorrent、Git和SFS,将这些技术融合、发展,使之成为一个拥有以上技术所有优秀特性的综合的内聚系统.

IPFS也是一个分布式的超媒体传输协议,旨在补充甚至取代传统的超文本传输协议HTTP.传统的HTTP协议是中心化的,当你从网站下载文件时,HTTP协议一次只能从一台计算机下载文件,而不是同时从多台计算机下载文件.与HTTP协议不同,IPFS可以在对等模式下同时从多台计算机下载相同的文件,从而可以容忍单点失效问题.IPFS的另一个重要特征是内容寻址,这也与HTTP协议有着根本的不同(当你使用HTTP协议访问网络上的文件时,你必须知道文件的网址,这意味着HTTP是通过网址定位互联网上的文件).当使用IPFS添加文件时,文件以及其中的所有块都将被赋予一个称为加密哈希的唯一指纹,该指纹在IPFS网络中唯一标识该文件.其他节点可以通过加密哈希访问文件.当其他节点有相同的文件时,可以使用加密哈希同时从多个节点下载该文件.

2 基于门限代理重加密和IPFS的数据共享机制

2.1 数据共享模型

本方案的模型如图2所示,该模型描述了多方数据共享场景下的数据的加密、重加密、解密以及传输的过程.该模型中存在以下实体:

Alice:Alice是数据发送者,她用自己的公钥加密数据文件,并为代理节点生成重加密密钥片段.

Bob,Carl,David:Bob、Carl和David是数据接收者,他们从IPFS网络中获取加密的数据文件,并用各自的私钥解密文件.

Proxy1~ProxyN:Proxy1~ProxyN是N个代理节点,他们使用数据接收者的公钥对用Alice公钥加密的文件进行重加密操作.

Eve:Eve是假想的潜在攻击者,他可以对系统进行恶意攻击.

模型中所有的实体都处于同一个IPFS私有网络,数据存储在本地,不存在中心化的存储节点.每个实体可以通过本地的IPFS网关获取IPFS网络中的数据文件.数据上传到IPFS网络后会生成对应的IPFS加密哈希地址,用于在私有网络中唯一标志该文件,私有网络中任何得到该地址的实体都可以在IPFS网络中下载该文件.并且在多方数据共享的场景下,如果数据被多个节点下载过,那么在新节点下载该数据时便可以在多个节点中同时下载,从而显著提高多方数据共享时的数据传输效率.并且因为该方案不依赖于中心化的存储服务,因此可以避免中心化带来的单点故障问题和隐私泄露问题.

该模型使用门限代理重加密保证数据的隐私,在多方数据共享的场景下,数据发送者只需要使用自己的公钥对数据进行一次加密,然后授权给解密者解密权限,多个代理节点会对加密数据进行重加密操作,生成对应的密文片段.解密者收集到足够的(达到门限值)密文片段后,可以使用自己的私钥解密数据.因为t-of-n架构的代理重加密机制,本方案允许部分代理节点失效,从而在代理重加密层面避免了中心化的单点失效问题,并且多代理节点的存在,增加了解密者与代理节点共谋的难度,降低了共谋攻击的风险.

图2数据共享模型Fig.2 File sharing model

2.2 威胁模型

本文通过讨论系统中实体的威胁行为来定义系统的威胁模型.定义如下:

数据发送者:本文假定数据发送者是诚实的,即数据是真实的,但是系统中存在恶意节点冒充真实数据发送者的可能性.

数据接收者:本文假定数据接收者是恶意的,他们可以和代理节点共谋而绕过重加密的限制,并且可以在系统之外勒索数据提供者.

代理节点:本文假定代理节点是半可信的,他们中的某些节点可能会偷窥数据内容或者执行不诚实加密.

潜在攻击者:潜在攻击者是恶意的,他们在系统内部或外部并想要破化该系统.

本文不考虑以下问题:数据接收者主动泄露解密的数据.如果他们被授予加密数据的解密权限,那么他们就被授予数据的读取权限,因此一旦信息被发布,任何访问控制系统都不能阻止它被泄露.

2.3 数据共享流程

下面根据图2所示模型图介绍该模型下数据共享的流程:

1Alice使用自己的公钥pkA对文件F进行加密,生成加密文件Fe.然后将其上传到IPFS网络,生成对应的IPFS加密哈希地址;

2Alice使用其私钥skA,Bob的公钥pkB、Carl的公钥pkC以及David的公钥pkD,分别为Bob、Carl和David生成对应的重加密密钥keyr,每个数据接收者对应的重加密密钥由N个重加密密钥片段组成,每个密钥片段称为kFrag;

3Alice使用每个代理节点的公钥对密钥片段kFrag进行加密,然后将这N个加密后的密钥片段发给代理节点,每个代理获得其中一个片段.令k为密钥片段的数量,t为门限值;

4每个代理节点Proxyi使用自己的私钥解密kFrag,并从IPFS网络中获取加密文件Fe,并用获得的重加密密钥片段kFrag对该密文进行重加密操作,生成重加密后的密文片段Ci,并将其上传到IPFS网络;

3 安全分析

本文将根据2.2节所述的威胁模型讨论系统的安全问题.

3.1 身份伪造问题

公钥加密算法允许任何人通过A的公钥对数据进行加密,因此存在恶意用户冒充A用户使用其公钥对数据进行恶意加密的可能.为了防止该情况发生,本文采用数字签名的方式向数据接收者验证发送者的身份.数据签名如果直接发送给数据接受者,存在被监听的可能,这会泄露数据发送者的身份隐私,因为验证数据所有者的公共数字签名可以直接确定数据的发送者.本文采用以下方法解决该问题将数字签名作为共享数据的一部分,因此在密文被解密之前不可能验证签名.

使用不同的密钥对进行签名和加密(特别是考虑到共谋攻击的可能性).

3.2 共谋攻击问题

在传统的代理重加密方案中,由于只存在单一的代理节点,如果该代理节点和解密者串通,将重加密密钥直接泄露给解密者,解密者就可以随意解密数据,从而绕过基于条件或时间的任何约束,称之为共谋攻击.

本文采用了密钥分段形式的门限代理重加密方法,将代理的重加密操作扩展到了多个代理节点,从而在多个代理节点之间分散了信任,解密者如果要发动共谋攻击,需要与至少t个代理节点串通,这增加了共谋攻击的难度.

3.3 节点作恶问题

系统里可能存在的攻击者,会对系统进行破坏.攻击者可能会对系统的代理节点进行攻击,从而破坏加密的过程.因为本文采用的门限代理重加密方案拥有多个代理节点,允许部分代理节点失效,即使部分代理节点宕机也不会影响数据加密过程,这增强了系统的健壮性.攻击者可能会通过加入IPFS私有网络并监听网络通信来窃取系统内共享的数据的IPFS地址,从而从IPFS网络中获取其他节点共享的数据.

但数据的共享过程都是通过加密保护的,除非数据接收者泄露自己的私钥给攻击者,否则攻击者只能获取加密后的数据而无法解密数据.

4 实验与结果分析

4.1 实验环境

本次实验的硬件环境由部署在服务器上的10台虚拟机组成,每个节点的硬件配置细节如表1所示,实验的软件环境如表2所示.

专家表示,给宝宝适当地补充益生菌,可以呵护宝宝肠道健康,是预防秋冬腹泻的有效方法之一。而宝宝已经有了腹泻的症状时,也可以适当补充益生菌,可有效抑制有害致病菌、维持肠道微生态平衡、增强肠道免疫能力。

表1节点硬件配置细节Tab.1 Nodes hardware configuration details

表2系统软件环境Tab.2 System software environment

图3数据的加解密性能测试Fig.3 Data encryption and decryption performance test

本文构建了一个IPFS私有网络来实现数据的去中心化存储和传输.门限代理重加密模块通过Python3实现,作为对比测试用的公钥加密工具选用了开源的eciespy,两种加密方案都使用secp256k1椭圆曲线.

4.2 加解密性能测试

本文在10个节点上进行了加密和解密的性能测试,Node 5模拟数据发送方,Node 6、7、8、9模拟数据接收方,Node 1、2、3、4模拟代理节点.实验对本模型采用的门限代理重加密方案和传统的公钥加密方案进行了性能比较测试.在多方数据共享的场景下,数据发送者需要针对不同的数据接收者,分别对数据进行加密.但是在解密阶段,数据接收者的解密过程是相互独立的.因此本实验记录了数据发送者每次加密的时间以及在解密阶段花费时间最长的节点所花费的时间.门限代理重加密方案中的多个代理节点可以并行独立地重加密数据,因此记录了重加密过程中花费时间最长的节点所花费的时间,解密阶段也记录了花费时间最长的节点所花费的时间.

图3显示了在不同的数据量大小下,不同数量的数据接收者对加解密性能的影响.对比测试结果表明,相同的数据大小下,本文方案的加解密操作所耗时间与数据接收者数量关系不大,公钥加密方案的加解密操作所耗时间随着接收者数量的增多而以线性速度增长.实验显示本文采用的门限代理重加密方案的加解密性能优于传统的公钥加密方案.特别是当数据接收者数量越多时,两者的性能差距越明显.

4.3 数据传输性能测试

本文对系统中采用的基于IPFS的数据存储和传输方案与基于HTTP协议的传统数据传输方案的数据传输性能进行了对比测试.前者通过go-ipfs提供的命令行工具进行测试.本文在Node5上用Apachehttpd 2.4.41构建了一个HTTP服务器来提供下载服务,其他节点使用GNU Wget从HTTP服务器下载文件来测试后者的数据传输性能.测试分为两组:单点传输性能测试和多点传输性能测试.

4.3.1 单点数据传输性能测试

单点数据传输性能测试在6个节点上运行,其中Node 5作为上传节点,Node 1、2、3、4和6作为下载节点.首先测试了基于IPFS的方案的传输性能.Node 5将不同大小的文件上传到IPFS网络,然后其他节点依次从IPFS网络下载文件.然后测试了基于HTTP协议的数据传输性能.使用SCP命令将文件从其他节点上传到Node 5,模拟传统文件共享方案将文件上传到第三方云服务器的过程,其他节点使用GNU Wget依次从Node 5下载文件.记录了这两种方案的上传和下载时间,以衡量它们的传输性能.

图4显示了在不同数据大小下的上传性能测试结果.图5显示了不同数据大小下的每个节点的下载性能测试结果.测试结果表明,本文采用的基于IPFS的方案在上传性能上优于基于HTTP协议的方案;然而,就单点下载性能而言,基于IPFS的方案比基于HTTP协议的方案慢.

4.3.2 多点数据传输性能测试

本文在10个节点上运行多点数据传输性能测试,其中Node 5作为上传节点,Node 1、2、3、4、6、7、8、9、10作为下载节点.首先测试了本文采用的基于IPFS的方案的多点下载性能.Node 5将不同大小的文件上传到IPFS网络,其他节点通过Shell脚本并行从IPFS网络下载.然后测试了基于HTTP协议的数据下载性能.使用SCP命令将文件从其他节点上传到Node 5,并通过运行Shell脚本在其他节点上通过GNU Wget并行从Node 5服务器下载文件.

图4上传性能测试Fig.4 Upload performance test

图5砂轮轴向截形Fig.5 Axial section of grinding wheel

图6数据多点下载性能测试Fig.6 Data multi-point download performance test

图6显示了测试期间下载所消耗的时间.其中在大部分节点上,本文方案的数据下载性能优于HTTP方案,在少数节点上,HTTP方案的数据下载性能略优于本文方案.测试结果表明,在多个节点同时下载的情况下,本文采用的基于IPFS的数据数传方案的下载性能优于基于HTTP的方案.

5 结论

本文针对当前多方数据共享方案中存在的数据中心化问题和加密性能低下问题,提出了一种基于门限代理重加密技术和IPFS技术的去中心化的数据共享方案.本方案采用门限代理重加密技术解决了多方数据共享情景下数据加密低效的问题,采用IPFS技术解决了数据中心化的问题,实现了数据去中心化存储和传输.实验结果显示,本方案并在多方数据共享情景下提高了数据加密性能和多点下载的性能.

猜你喜欢

公钥密文解密
解密电视剧 人世间
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
炫词解密
炫词解密
炫词解密
一种新的密文策略的属性基加密方案研究
神奇的公钥密码
国密SM2密码算法的C语言实现