基于属性加密的雾协同云数据共享方案
2021-01-20张书奎
龙 浩,张书奎,张 力
(1.苏州大学 计算机科学与技术学院,江苏 苏州 215006;2.徐州工业职业技术学院 信息与电气工程学院,江苏 徐州 221002;3.苏州大学 江苏省现代企业信息化应用支撑软件工程技术研发中心,江苏 苏州 215104)
0 引 言
随着云计算快速发展,一些云服务供应商能提供更经济和更强大的计算和存储能力,个人和企业更愿意通过云平台来存储和管理数据,并且将数据分享给特定的用户群体。基于云平台的数据安全共享技术也因此被提出,比如:新型医疗云[1,2]、交通信息云、天气预报云等。这些云为用户带来了极大的便利,然而在开放的云环境中存在着数据机密性、隐私保护、权限控制等具有挑战性的安全问题。首先,用户希望共享数据的同时能够防止暴露自己的敏感信息。因为服务器可能会非法检查用户的数据并访问敏感信息,或者其他用户可能能够从外包计算中推断出敏感信息。因此,云数据共享不仅要进行控制访问,还要进行上传数据的脱敏。其次,个人信息存在风险,为了能够安全的上传共享数据,需要对上传者的身份进行验证。随着人们现在越来越关注自己的身份隐私,身份隐私也需要在云进入我们的生活之前得到保护。最后,云计算系统应该对访问者进行访问控制,防止系统的某些部分受到攻击者的攻击。为了保证数据机密性,数据文件往往被数据拥有者在本地加密后才外包给服务器,但这又引起效率、灵活性和计算成本等问题。因此,如何设计既能提供隐私保护[3],又能灵活访问控制的数据共享机制已成为近年来的研究热点。
1 相关工作
随着云计算的普及,移动设备可以随时随地存储/检索个人数据。因此,移动云中的数据安全、身份隐私暴露问题变得越来越严重,阻碍了移动云的进一步发展。为了提高云安全性,已经进行了大量隐私保护方面的研究。目前提出了各种方法来保护数据内容隐私。最初由Shamir引入的基于身份的加密(IBE)。几年后,提出了基于模糊身份的加密,也称为基于属性的加密(ABE)。在这种加密方案中,身份被视为一组描述性属性,并且如果解密者的身份与密文中指定的身份有某些重叠,则可以进行解密。不久之后,提出了基于树的ABE方案,基于密钥策略属性的加密(KP-ABE)和基于密文策略属性的加密(CP-ABE),解密者需要符合更多的条件而不是简单的“重叠”。在KP-ABE[4]中,密文与一组属性相关联,私钥与树之类的单调访问结构相关联,该结构描述了该用户的身份。当且仅当密钥中的属性满足其私钥中的访问树时,用户才能解密密文。但是,密钥中描述了加密策略,因此加密器无法完全控制加密策略。他必须相信密钥生成器会发出具有正确结构的密钥来纠正用户。此外,当发生重新加密时,同一系统中的所有用户必须重新发布其私钥以便获得对重新加密的文件的访问,并且该过程在实现中引起相当大的问题。随后,这些问题和开销都在CP-ABE中得到了解决[5]。在CP-ABE中,使用访问结构创建密文,该访问结构指定加密策略,并根据用户的属性生成私钥。当且仅当私钥中的属性满足密文中指定的访问树时,用户才能解密密文。通过这种方法,加密器拥有关于加密策略的最终权限。黄容[6]提出基于属性加密的云数据共享方案,该方法利用属性一对多加密和细粒度访问控制的特性,提出了一种用户密文检索方法。然而该方法用户计算成本过高,方案效率有待进一步提升。现有的数据共享方案很难实现有效的专业分类提供和有效的数据分析,并且加密过程为资源受限的智能移动设备带来严重的资源消耗。Cui等[7]在移动云计算中提出了一种基于在线/离线属性的移动云关键字搜索方案(OOABKS),利用线上/线下的ABE技术和外包的ABE技术,降低了移动用户的计算成本。朱辉等[8]提出了一种基于属性加密的云数据共享方案,能够实现权限分离和细粒度访问控制。然而以上两种方法中,云平台仍然能够解密到用户的身份信息,且用户计算和存储成本仍然较高,且未实现共享数据的专业信息分类检索。Xie等[9]试图在密文中隐藏加密策略,且它们的解决方案并不妨碍密钥生成阶段的属性公开。这种类型的方法将导致完全匿名的ABE。最近,Namasudra等[10]提出了一种保护隐私的分散式KP-ABE(PPDKP-ABE)方案。在该方案中,多个权限可以独立工作而无需任何协作。用户可以从多个权限获得秘密密钥而不向他们发布关于他的任何信息,但是需要中央权限。Sun等[11]提出了一种隐私保护的分散式CP-ABE(PPDCP-ABE)方案,其中可以实现隐藏用户身份信息的同时收集用户数据的属性。然而以上3种方法,访问用户可以从多个权限获取密钥,这些权限知道用户的属性,并且方法中需要一个中央权限。值得注意的是,用户的身份信息可以从他/她的一些敏感属性中提取出来。因此,这些方法不能完全保护用户的隐私,因为多个权威机构可以合作通过收集和分析用户的属性来识别用户。
综上所述,现有基于属性加密的数据共享方案都存在一个共同应用缺陷,即云数据共享在如何实现隐私保护的同时减轻用户的计算和存储成本,如何实现更加细粒度的个性化和专业化访问控制。因此,本文提出一种能保证数据和身份隐私且访问控制灵活的雾协同云数据共享方案。首先,用户根据他们的兴趣和经验用个人访问策略加密他们的共享数据,并且将密文发送到雾节点。为了有效利用数据,雾节点基于决策树方法,根据不同专业领域将收集的数据分类。对于各个专业领域对应的信息,雾节点根据专业背景制定专业化的访问策略对数据进行重加密。最后新的密文被传输到云端,数据使用者可以解密密文以提供有效的服务。
2 雾协同云数据共享方案的构建
这节我们首先描述方案的系统模型,然后详细介绍雾协同云数据共享方案的具体步骤。
2.1 系统结构
方案中包含5个部分:①授权机构,负责初始化系统,提供系统注册服务,为其它实体生成系统公钥、系统主密钥和私钥;②用户,分享他们的数据(例如地理信息、健康信息、金融信息),这些数据可以由智能设备采集或者由他们自己手动输入。用户加密他们的共享数据并将密文发送到雾节点;③雾节点,可以是网关服务器或者接近用户的路由器服务器。雾节点掌握一些专业背景知识,具备较强的计算能力。它预处理并重新加密共享密文,然后将新密文发送到云服务器;④云服务器,是具有强大存储功能的远程第三方服务器,它存储和管理从雾服务器发送的共享数据密文;⑤云服务提供商,可以是指提供云服务的运营商等。云服务提供商使用其属性来访问共享密文,以获取共享数据并提供相关数据服务。云数据共享模型如图1所示。
图1 雾协同的云数据共享模型
本文给定关于系统模型中各个实体的安全假设,并且在这些安全假设的前提下使得我们的系统是安全的。在系统中,授权机构是被所有实体信任的。授权机构和用户,雾节点以及云服务器之间的传输通道是安全的。用户是可信的,他们分享自己的数据给授权的实体,并且防止未经授权的实体获得共享数据以窃取他们的隐私。雾节点和云服务器是诚实但好奇的。雾节点提供数据预处理服务,云服务器执行数据存储,但它们都对共享明文感到好奇。安全威胁主要分成两类[12,13],包括未经授权的非法数据访问和共谋攻击:①非法的数据访问。未经授权的云服务提供商可能获得共享数据,来获得数据服务利益等。②共谋攻击。雾节点、云服务器和未经授权的云服务提供商无法单独获得明文,但他们可能通过合谋来获得共享数据。在我们设计的方案中首先共享数据应在未授权的实体中保持机密性;其次能够灵活指定访问控制策略,通过分类来达到用户的细粒度访问;再次能够抵抗共谋攻击,抵制来自未授权实体的共谋以获得共享明文。雾节点、云服务器和云服务提供商不能通过共谋攻击来获得共享数据。
2.2 雾协同的云数据共享方案
首先,用户录入要共享的数据,并加密共享数据,然后发送密文到雾节点。雾节点预处理数据,并使用决策树分类的方法根据专业领域分析将数据分类,以及针对不同专业为数据创建索引。并且,雾节点根据不同的专业信息栏目,使用新的访问策略来重新加密共享数据,然后将密文发送到云服务器。最后,具有足够属性的云服务提供者访问密文并对其进行解密。该方案包括以下步骤:系统初始化、数据加密、预处理、重加密和解密。具体数据处理步骤如图2所示。为了方便表述,定义一些符号代表数据共享方案中的语义,具体符号见表1。
图2 共享方案数据处理流程
表1 符号定义
2.2.1 系统初始化
系统初始化阶段包括公钥和密钥的生成,首先授权机构通过算法ACgen(U,λ) 生成系统公钥PK和系统主密钥MSK。授权机构输入全局属性U,选择两个阶为p的循环加法群G和GT, 和一个双线性映射e∶G×G→GT。 生成元为g,n个随机的群元素h1,h2…,hn∈G, 对应U中的n个属性。此外,授权机构随机选择元素α,β∈Zq。 授权机构输出公钥PK和系统主密钥MSK
PK=(g,gα,e(g,g)α,h1,…,hn)
(1)
MSK=gβ
(2)
授权机构运行算法CSgen来为云服务提供商生成私钥。云服务提供商将自己的属性集S提交给授权机构。授权机构输入系统主密钥MSK,选择随机数t∈Zq, 系统公钥PK,云服务器ci以及雾节点fi
CSgen(PK,MSK,A,ci,fi)→(SK,PKf,SKf)
(3)
2.2.2 数据加密
用户首先构建一个待发展的访问树T′。 在树中,根节点r掌管了整个树,它的子节点为a和b,分别为个性化访问树Ta的根节点和专业化访问树Tb的根节点,用户构建访问控制树T′。 从根节点r开始,用户设置qr(·)=s并选一个点来定义多项式qr。完成访问树T′的遍历后,每一个节点 (i,j) 都有自己的q(i,j)值,可作为这个节点的加密因子。加密因子s就被分发并藏在每一个叶子节点中。这个过程对应了Shamir秘密共享中的密钥分发。
令s1=qa(·) 和s2=qb(·), 即s1为Ta的加密因子,s2为Tb的加密因子。用户计算为所有的访问树Ta节点中的元素加密为Ca(i,j)
Ca(i,j)=gαq(i,j)(·)
(4)
为了在雾节点上安全构建Tb,用户选择随机数ε∈Zq, 用系统公钥和雾节点的公钥来加密s2
Cs2=(gε,s2PKf)
(5)
2.2.3 数据预处理
雾节点接收从用户传来的密文数据,输出预处理后的分类结果,以及相关的数据信息条目的索引。根据文献[14]所示,考虑已经有一个训练好的分类模型,这个模型计算出了相关专业数据条目之间的关系。雾节点通过决策树分类公式[15],计算每一条数据所属专业的概率Pi, 如式(6)所示,并为每一条信息条目建立索引
(6)
其中,Di代表一条共享信息,H={ID1,ID2,…,IDm} 代表专业集合。
2.2.4 数据重加密
雾节点运行算法,基于专业化访问策略来重加密共享数据。同时,为了得到有效的数据分析,雾节点加密每一条数据对应的相关专业条目。得到的所属专业概率之后,雾节点为这些数据信息定义专业化访问策略。雾节点构建Tb补充访问控制树T。在Tb中,根节点有n个子节点,每一个节点代表了在预处理阶段分析的专业所属概率,并且管理着对应的专业属性。Tb的叶子节点为专业属性。节点的门限为1,表示当云服务提供商的属性只要能满足一种专业属性时,它就满足了代表的访问策略,然后补充构建的访问控制树T。
b节点的加密因子为s2,被藏在Tb中。雾节点解密Cs2来获取加密因子s2。解密过程如下所示
(7)
从根节点开始,雾节点从上至下遍历整个Tb之后,每一个节点 (i,j) 都有了自己特定的q(i,j)(·) 值,为此点的加密因子。根节点b具有n个叶子节点,而且每一个节点都对应了其中一个所属专业的概率。让b的第i个子节点所属专业的概率用PDi表示,为了更有效地将专业条目分享给不同的云服务提供商同时保护用户隐私,雾节点加密专业条目索引。雾节点计算为每一个所属专业的概率对应的专业条目密文
CPDi=PDie(g,g)α·q(i,j)(·)
(8)
雾节点加密访问树Tb节点中的元素为Cb(i,j)
Cb(i,j)=gα·q(i,j)(·)
(9)
2.2.5 数据解密
在这个阶段,云服务提供商解密密文。只要当云服务提供商的属性能满足个性化的和专业的访问策略时,云服务提供商才能解密共享密文。同时,如果云服务提供商的属性能满足专业概率对应的访问策略时,云服务提供商就能解密,获取其对应的数据信息项目。一个具备属性集A的云服务提供商需要系统公钥和它的私钥来解密CT。解密操作定义为Dec=(CT,A,SK,PK), 每一个节点 (i,j) 的解密结果定义为D(i,j)。 为了解密隐藏在访问树T中的密文,云服务提供商从下至上运行。解密过程中如果此节点 (i,j) 代表的属性不在属性集中,Dec=(CT,A,SK,PK)=NULL, 否则
Dec=(CT,A,SK,PK)=e(g,g)α·t·q(i,j)(·)
(10)
其中,t∈Zq。 上述操作之后,如果一个云服务提供商的属性能满足Ta的策略,这个云服务提供商就能计算出Deca
Deca=e(g,g)α·t·s1
(11)
如果一个云服务提供商的属性能满足专业化的访问策略Tb,云服务提供商能计算出Decb
Decb=e(g,g)α·t·s2
(12)
在访问控制树T中,根节点r的解密需要a节点的解密和b节点的解密。当一个云服务提供商的属性能满足个性化的访问策略Ta和专业化的访问策略Tb时,云服务提供商能计算出DecT。内容密钥ck就能被解密
DecT=e(g,g)α·t·s
(13)
最后,共享密文CT可以被对称密钥ck解密,获得共享数据。特别的,因为加密因子s由用户随机产生,用户可以用s和公钥e(g,g)a来获取他的加密数据。
从上述的解密操作中,可以看到,如果云服务提供商的属性能满足个性化和专业化的访问策略,那么他就能获得共享数据。特别地,如果一个服务提供商具有的属性能满足数据信息对应的访问策略,他就能获得对应的数据信息条目,从而更加方便地获取他专业内的数据,更好地服务用户。
2.3 安全性分析
本节主要验证前面所提的安全假设,具体而言,FAC-ABE可以实现数据保密性,以用户为中心的访问控制和防止共谋攻击。
在实现数据保密性方面,首先用户使用内容密钥对共享数据进行加密。同时,用户利用个性化访问策略加密内容密钥以进行安全数据共享。雾节点,云服务器和未经授权的云服务提供商在没有足够属性获得解密密钥情况下,无法解密共享密文。这样FAC-ABE可以保证数据在用户、雾节点、云服务器和云服务提供商的传输过程中,保持数据的机密性。此外,由于加密数据通过安全通道从用户通过雾服务器传输到云存储,因此FAC-ABE可以抵抗来自其它未授权实体的数据篡改。
在实现以用户为中心的访问控制方面,用户可以根据他的个人经验和要求,确定自己的数据被什么样的云服务提供者访问。Ta是用户根据自己的经验和兴趣,构建的个人访问策略,来对共享数据的内容密钥进行加密。只有具有满足属性的云服务提供商才有可能满足访问获得内容密钥。这样,用户就能决定他的共享数据由什么样的云服务提供商访问,从而满足他个性化的特定要求。另外在雾节点进行数据重新加密之后,用户可以检索和解密共享数据。在制定的方案中,由于对内容密钥加密的加密因子由用户随机选择,用户可以直接使用加密因子和系统公共密钥来解密共享的密文。因此,虽然雾节点对数据进行重新加密,用户也可以灵活地检索他的共享数据。
在实现防止共谋攻击方面包括:①雾节点和云服务器之间的合谋。密文数据在雾节点和云服务器分别是保持私密的。雾节点能解密Tb的加密因子,但是它不能解密Ta的加密因子。云服务器除了知道共享密文之外,不能获取其它的内容。因此,就算雾节点和云服务器共谋,它们也不能获取共享的数据。②雾节点和云服务提供商之间的共谋。首先,云服务提供商没有足够的属性能满足个性化访问树T,也就是说,它无法解密Ta。访问控制树是Ta和Tb的结合,当且仅当云服务提供商能解密出Ta和Tb,它能解密访问控制树T并获得内容密钥。雾节点能解密Tb的加密因子。在这种情况下,雾节点和云服务提供商的合谋显然无法解密出T,也就是无法获得加密的共享数据。其次,云服务提供商的属性能满足个性化访问树Ta,即它解密出Ta。雾节点用自己的私钥解密出Tb的加密因子。然而,只有授权机构知道随机指数因子和为云服务提供商随机选择的t,雾节点和云服务提供商都无法获得。云服务提供商无法和Tb的加密因子相结合计算出T,从而获得内容密钥ck。另一方面,雾节点不能和Ta的加密因子相结合解密出T。因此,雾节点和云服务提供商共谋和无法获取共享数据。
3 仿真与性能分析
为了实现和检查方案的有效性,我们将所提的方案FAC-ABE与改进的ABE的属性加密方案LDSS-ABE[16]和TFVO-CP-ABE[17]进行性能比较,采用JAVA版本的密码库JPBC,从计算开销和存储开销两个方面验证所提出方案的有效性。LDSS-ABE方法是一种用于移动云计算的轻量级数据共享方案,TFVO-CP-ABE方法是一种可追责和完全可验证外包解密的CP-ABE方案。由于用户的智能终端设备多种多样,我们评估了该方案在两种设备的性能表现:手机和传感器。手机的配置为CPU海思麒麟980,6 GB内存,传感器的配置为ARM Cortex-M3,256 KB闪存,32 KB SRAM。雾节点的配置为Intel Core i5 CPU,8 GB RAM。时间以毫秒为单位(平均超过1000次迭代)。在大多数场合[18]下,参与到加密中的属性数量基本不超过30个,因此评估该方案在30个属性之下的表现。
我们首先对比FAC-ABE和其它两种方案在手机和传感器上的时间成本,分别如图3和图4所示。由于LDSS-ABE和TFVO-CP-ABE方案没有雾节点的参与,因此这两种方案在雾节点上的加密时间为0,而FAC-ABE的加密时间随着专业访问策略中属性数量和专业类别数量的增加而增加。如图3和图4所示,手机和传感器的加密时间随着属性数量的增加而增加。3种方案中加密共享数据所花费的加密时间FAC-ABE最少。同时,FAC-ABE的加密时间大约为其它两种方案在相同属性数量下的加密时间的1/3倍。从图中可以看出,传感器加密比手机加密耗时更长。当访问策略中定义了20个属性时,LDSS-ABE传感器上的数据加密接近45 s,而时,FAC-ABE仅消耗16 s,这大大降低了计算时间。
图3 手机的加密时间
图4 不同属性下传感器的加密时间
在图5中,设置雾节点上共享数据分为5类时,比较FAC-ABE方案属性百分比P=1/2,1/3和1/4时,在雾节点上的加密时间。在图5中,设置整个访问策略中有20个属性,比较FAC-ABE方案属性百分比P=1/2,1/3和1/4时,在雾节点上的加密时间。如图5所示,当雾节点定制的访问策略中定义了5个类别时,当属性数比例越大,需要的加密时间越多。雾节点上的加密时间随着属性数量的增加而增加,当减少到1/2时加密时间最多,因为有P倍的加密负担从用户端转移到了雾节点上。如图6所示,雾节点上的加密时间随着专业条目的增加而增加。当雾节点对更多的专业类别进行分类时,雾节点需要更多的计算资源,这是可以接受的,因为云服务提供商可以更高效利用数据。
图5 不同属性下雾节点的加密时间
图6 不同专业条目下雾节点的加密时间
评估用户和雾节点的存储成本。在图7中,展示了 3种方案的存储成本和属性数量的关系。对于雾节点上的存储成本,LDSS-ABE和TFVO-CP-ABE方案中由于雾节点没有参与,所以没有密文存储。在图7中,设置共享数据分为5类时,并说明3种方法中存储成本和属性数量之间的关系。在图7中设属性数为20时,说明专业类别与存储成本之间的关系。如图7所示,用户的存储成本随着属性数量的增加而增加。FAC-ABE 的存储开销略大于LDSS-ABE中相同数量属性时的存储成本。对比的两种方案由于没有雾节点的重加密,因此存储成本都要小。总体来看,雾节点上的整体存储成本随着属性数量的增加而增加。如图8所示,当FAC-ABE 中专业类别较多时,雾节点需要更多的存储成本,而其它两种方案中,当专业类别增加时,整体存储成本是稳定的。从图7和图8可知,雾节点上的存储成本超过对比方案的成本,这是合理的可接受的,因为雾节点将数据分类,并建立了索引,可以实现更有效的数据利用,也可获得更好的专业数据服务。
图7 用户的存储成本
图8 不同专业栏目下雾节点的存储成本
4 结束语
本文提出了一种基于属性加密的雾协同云数据共享方案,在低资源消耗的情况下,实现了有效的数据共享和隐私保护。首先,由于雾节点定制了个性化和专业化的访问策略,方案为云端用户提供有效的数据共享。其次,方案通过将共享数据分类并将相关数据编入索引,增强了云服务提供商的数据分析效率。再次,即使在雾节点和其它部分的共谋下,方案也能保障共享数据的隐私保护。最后,方案将部分加密计算,密文存储和能量消耗转移到了雾节点,减轻了云端用户设备的开销。