周 让, 张小松,2, 汪小芬, 杨国武, 杜小江
(1.电子科技大学 计算机科学与工程学院, 四川 成都 611731; 2.鹏城实验室, 网络空间安全研究中心, 广东 深圳 518055; 3.美国天普大学 计算机与信息科学系, 宾夕法尼亚州 费城 19122)
随着5G技术的快速推进,与5G相关的数据通信,数据共享等业务广泛应用于工业物联网中.然而,频繁发生的隐私数据泄露事件,引发恶劣的社会影响并对经济发展产生冲击性破坏.于是,如何保护用户隐私数据安全,成为制约工业物联网应用进一步发展的技术瓶颈问题.而用户隐私数据泄露多发生于数据存储共享与数据通信活动之中,所以用户隐私数据保护的核心问题就是对这些活动中的隐私数据查询、搜索、访问等行为进行权限控制以保证用户隐私数据的机密性[1]、完整性[2]和可控性[3].为进一步促进数据技术给物联网经济繁荣发展带来的良性推动作用,隐私数据保护就成为了研究者们关注的焦点[4].
为了解决上面提到的物联网中的安全问题,防止非法用户或服务器得到云上存储的物联网数据,需要对云上存储的物联网数据加密和对合法用户群体的查询、搜索和阅读等行为进行授权[5],这种对云存储数据的授权就是访问控制策略[6].将访问控制策略应用于数据云存储来解决物联网数据的机密性和可控性等问题是随着物联网数据应用的发展而提出来的新安全思路[7-8].
进一步,数据隐私保护中的数据访问控制管理,在数据共享中发挥极其重要的作用.但是,其仍面临着诸如数据权限分配管理、权限检查效率和数据泄露等问题.首先,限制数据共享扩展应用到云存储环境的主要障碍就是大规模用户数量模式下,数据访问权限的分配、管理问题;其次,现有的数据共享访问权限控制普遍存在着数据泄露、搜索和访问权限检查效率低下等问题.
为了解决上面提到的物联网数据共享中的安全与效率问题,研究者引入了公钥可搜索加密来解决上述提到的物联网数据管理问题.
本文主要关注了公钥关键字可搜索加密及其在物联网环境下的应用研究进展,阐释了公钥可搜索加密机制、模式和安全模型等概念,对物联网环境下公钥可搜索加密研究新的应用需求及其应对技术进行了归纳和阐述,最后,讨论了公钥可搜索加密在物联网应用中还需要解决的应用问题,以期能对利用公钥关键字可搜索加密技术解决物联网环境中应用问题研究起到推进作用.
关键字可搜索加密是在保护存储数据隐私基础上提供数据检索服务的重要技术,其被广泛应用于数据检索服务中,是数据外包存储管理的重要核心安全技术之一.接下来将简要介绍关键字可搜索加密的机制、模式和安全模型.
图1描述了基本的公钥可搜索加密机制,系统的参与者有密钥管理中心、数据发送者、云服务器和数据接收者(用户)等四个部分.
图1 公钥可搜索加密机制Fig.1 The mechanism of public key searchable encryption
设置算法(1)(msk,pk): 密钥管理中心运行这个算法,算法输入为系统安全参数,输出为系统主密钥msk和公钥参数pk.
密钥生成算法(msk,user):密钥管理中心运行这个算法为系统中每个用户生成搜索私钥,算法输入为系统主密钥msk和用户标识user,算法输出为该用户的搜索私钥sk.然后,密钥管理中心通过一个安全信道将用户搜索私钥sk分配给对应的用户user.
加密标签生成算法(w,pk):数据发送者运行这个算法为共享的文档生成关键字加密标签,算法输入为关键字w和公钥参数pk,算法输出为关键字加密标签index.然后数据发送者将关键字标签index和数据文件一起发送给云服务器进行存储.
搜索陷门生成算法(w′,sk):用户运行这个算法为用户每次查询生成关键字搜索陷门,算法输入为关键字w′和用户私钥sk,算法输出为关键字加密标签index.然后用户将关键字搜索陷门trapdoor和用户标识user发送给云服务器.
搜索匹配算法(index,trapdoor,pk,user):云服务器运行这个算法判定是否要返回数据文件,算法输入为关键字加密标签index,关键字加密标签index,公钥参数pk.若匹配成功,即w=w′,则输出为1,返回该关键字加密标签对应的数据文件给用户user;否则,输出为0,不将该关键字加密标签对应的数据文件给用户user.
按照应用模式中发送者和接收者数量划分,可以将公钥可搜索加密模式分为四个大类,分别是单发送者单接收者、单发送者多接收者、多发送者单接收者和多发送者多接收者.
单发送者单接收者: 如图2,数据的发送过程仅有一个发送者和一个接收者参与.要求接收者生成的询问陷门和发送者发送的加密标签匹配一致.其典型应用场景通常为用户隐私数据外包存储时用户自己进行数据检索和类似P2P形式的数据分享.
图2 单发送者单接收者Fig.2 The model of single-sender single-receiver
单发送者多接收者: 如图3,数据的发送过程有一个发送者和多个接收者参与.要求发送者生成的加密标签能被多个拟定的目标接收者生成的询问陷门匹配一致.其典型应用场景通常为用户将数据共享给指定用户子集,例如信息发布平台将具有隐私价值的信息发送给付费订阅用户,多采用门限加密的形式.
图3 单发送者多接收者Fig.3 The model of single-sender multi-receivers
多发送者单接收者: 如图4,数据的发送过程有多个发送者和一个接收者参与.要求接收者生成的询问陷门能和来自不同发送者的加密标签匹配一致.其典型应用场景通常为多个不同的个体给指定用户发送数据,如类似邮箱邮件分类和检索服务.
图4 多发送者单接收者Fig.4 The model of multi-senders single-receiver
多发送者多接收者:如图5,数据的发送过程有多个发送者和多个接收者参与.要求发送者生成的加密标签能被多个拟定的目标接收者生成的询问陷门匹配一致,同时,要求接收者生成的询问陷门能和来自不同发送者的加密标签匹配一致.其典型应用场景通常为数据共享管理系统,如患者和医生之间的医疗数据共享,多采用门限加密的形式.
图5 多发送者多接收者Fig.5 The model of multi-senders multi-receivers
在关键字搜索流程中,数据提供方上传搜索用的关键字标签到云服务器进行存储,用户为了能从服务器获取到数据,需要将关键字嵌入搜索询问请求中发送给云服务器,云服务器在收到询问请求之后,将询问请求和存储在云服务器上的关键字标签进行匹配,若匹配成功,则返回该关键字标签对应的数据文件给发起搜索请求的用户.在这个交互流程中,有两组网络通信行为发生,即数据提供方上传关键字标签和用户上传关键字搜索询问请求,而网络的公开特性将导致这两组网络通信中内容可能被窃听导致关键字信息泄露.因此,就需要对上传的关键字标签和关键字搜索询问请求中的关键字信息进行保护,以防止数据对应的关键字信息和询问请求中的关键字信息被泄露.具体到公钥关键字可搜索加密,就需要对关键字标签和对关键字搜索询问请求分别加密来保证关键字隐私安全.通过加密的安全性特点分析,得到关键字密文标签不可区分性和关键字询问陷门不可区分性.
关键字密文标签不可区分性:攻击者针对加密标签发起攻击,以获得加密标签中存储的关键字隐私信息为目标,模拟运行选择关键字攻击游戏.若提出的方案能抵抗选择关键字攻击游戏,则可以宣称其达到了密文标签不可区分性,能保证加密标签中的关键字隐私信息不会被攻击者获得.
关键字询问陷门不可区分性:攻击者针对询问陷门发起攻击,以获得询问陷门中嵌入的关键字隐私信息为目标,模拟运行关键字猜测攻击游戏.若提出的方案能抵抗关键字猜测攻击游戏,则可以宣称其达到了询问陷门不可区分性,能保证询问陷门中的关键字隐私信息不会被攻击者获得.
综上所述,现行的公钥关键字可搜索加密需要通过满足抵抗选择关键攻击和关键字猜测攻击来分别保证标签密文安全性和陷门安全性.
根据实际的应用,可以将关键字可搜索加密研究分为两类,分别是单关键字可搜索加密和多关键字可搜索加密.
单关键字可搜索加密:
Boneh等[9]于2004年首次提出了公钥关键字可搜索加密,并构造了一个随机预言机模型下安全的公钥关键字可搜索加密方案,实现了单关键字搜索功能.之后,Baek等[10]又构建了一个无安全信道的公钥关键字可搜索加密方案,在该方案中通过在陷门中嵌入服务器公钥的方式来保证陷门隐私.紧接着,Rhee等[11]通过加入指定搜索匹配测试服务器的方式来增强模型的安全性,使其能抵抗更强的关键字猜测攻击.文献[9-11]均依托于随机语言机模型构建具体的方案,而随机语言机模型是更偏理想化的安全模型,为了使所提出的公钥关键字可搜索加密的安全模型更适用于实际的应用,文献[12-13]提出了基于标准安全模型的关键字可搜索加密,并设计了具体的方案构造.为抵抗离线关键字猜测攻击,保证陷门的安全性,Rhee等[14]提出了陷门不可区分的安全性需求.随后,文献[14-16]都提出了能满足陷门不可区分特性的公钥可搜索加密方案.由于加入云服务器密钥的方法并不能完美的抵抗离线关键字猜测攻击,研究者就又用引入了双服务器的方式来解决这个问题[17-18].双服务器方式是在原先的系统模型中加入可信服务器,可信服务器只执行少量需要在可信环境下进行的辅助搜索计算,而大量的计算匹配操作依然被分配给半可信的云服务器来完成.
多关键字可搜索加密:
文献[19]使用向量隐藏加密的方法构造了第一个多关键字公钥可搜索加密方案,该方案通过生成加密标签向量和询问陷门向量,再通过向量计算方法来进行加密标签和询问陷门之间的匹配以完成多关键字搜索.但是,该方案仅保证了加密标签中的关键字隐私保护.为提高关键字隐私安全性,对陷门中的关键字隐私进行保护,研究者利用加序隐私保护函数的方法对陷门隐私进行保护[20].在文献[20]的基础上,文献[21-22]引入了索引树的方式对加密标签进行管理,使其能更快返回搜索结果.文献[23]基于属性加密的特点,借助线性秘密共享(LSSS)结构将多个关键字通过拆分加入到加密标签向量里,通过向量的运算来实现多关键字匹配.同时,利用属性加密的特点,文献[23]的方案只需要证明加密标签安全即可保证其安全性.
从以上的研究进展分析可以得知,在过去,研究者们大多关心如何建立安全的可搜索加密模型并进行效率对比分析.随着研究的推进,研究者关注的焦点发生了很大的变化.
在5G技术开始面向应用的现在,尤其是工业物联网4.0的大力发展,使得更多的物联网设备被接入物联网,而管理和使用这些物联网设备,需要对这些物联网设备产生的数据进行分析,所以这些物联网设备产生的数据需要被搜集起来并传输到服务器端进行存储,使得用户能合规的检索和使用这些物联网数据.由此,对数据检索提出了新的应用需求.同时,为满足这些新的数据检索应用需求,研究者们设计和实现了许多面向生产生活的数据检索实际应用.在这些实际应用中,采集到的物联网数据被视为一种新的资产形式,为防止这些物联网数据信息发生泄露,研究者就引入了公钥可搜索加密技术来保护这些数据检索实际应用中的数据隐私.而随着大量的物联网设备接入网络,数据的采集和存储均有别于传统的公钥可搜索加密应用场景,于是,传统的可搜索加密已经不能满足新的应用需求.因此,如何在不泄露用户隐私的情况下,设计和实现满足物联网环境下应用需求的公钥可搜索加密方案,就成了公钥可搜索加密研究中的新挑战.为明确这些新挑战,本文将其归纳为以下三类需求:细粒度的数据搜索需求、用户访问权限更新需求和数据可用性需求.
物联网环境下,随着接入设备的增多,采集的数据量大量增长.而这些采集的数据并不是单纯的存储,而是需要被利用来反馈实际应用,例如,医疗、制造和交通等领域.因此,就需要对相关的数据进行分析,而在分析之前,首先要获得数据,就需要对数据进行搜索,从海量的物联网数据中提取出处于特定范围的数据,特别是在现行的数据搜索中,服务提供商往往希望获得具备更多准确特征的数据,使得数据分析的结果更加可靠,并能够为物联网用户提供更加精准的服务.因此,为面向特征进行更精确的数据搜索,更加细粒度的数据搜索请求处理就成了物联网环境下的新应用需求.
更进一步,在物联网环境下的公钥可搜索加密中,数据搜索服务既是向用户提供数据搜索服务,也是对物联网数据进行管理.由此,将其分为以下两类细粒度数据搜索:
第一类为向用户提供数据搜索服务,即对每个用户的数据查询权限进行更加细粒度的管理,使得数据服务商能为大量拥有不同权限的用户提供相应的数据搜索服务.
第二类为对物联网数据进行管理,即对物联网数据来源进行细粒度管理,通过对数据来源的定位达到对物联网中各个实体进行管理的目的.
物联网环境下,接入物联网的设备数量大幅度增长,这些设备会不断上传大量物联网设备运行的相关数据.在实际应用中,这些数据的应用主要分为面向用户的应用和面向设备的应用.
在面向用户的应用方面又细分为两类:①提供给个人授权用户,用户通过特征查询,可以了解这些设备所采集的数据内容,根据数据内容制订相应的响应策略.例如在医疗应用中,病人通过将物联网设备采集的体征健康数据分享给授权的医护人员,医护人员根据获取到的病人体征健康数据进行病情分析并拟定治疗方案.②提供给企业授权用户进行数据分析,企业用户通过特征查询,可以获得这些设备所采集的数据内容,根据这些数据内容研究面向用户喜好或工业应用的新服务模式,以提升企业价值.例如,智能家居应用的数据控制在平台上,企业通过向平台协商获得数据查阅权,得到大量用户在使用智能家居的使用习惯,以便有针对性地开发智能家居设备功能,以达到更符合用户使用便捷、功能多样化等目的.
在面向设备的应用方面主要是提供物联网设备管理.在物联网环境中,大量不同种类的设备被接入网络,每一种设备都会采集数据,而拥有各种指定技能的专业人员会根据设备采集的数据进行设备运行状态监控、设备维护和设备更新等活动,以保证设备节点能正常运行.例如,在智能制造中,大量不同功能的物联网设备组合在一起协同进行工作,每一种设备运行的状态都需要进行监控以保证制造活动顺利实施,若出现制造过程的停滞或设备的维护,都需要专业的人员找到对应的制造环节,进行人工干预或设备维修等.
但是,在实际的物联网应用中,无论是个人或企业授权用户,还是指定技能的专业人员用户,都有可能进行变更.例如,在医疗的个人授权用户应用中,病人被治愈后,原先授予医护人员针对相关病人体征健康数据的查询权限就需要收回,而在病人因其他疾病又接受治疗时,又会授予新的医护人员针对相关病人体征健康数据的新查询权限,以保证用户隐私不被滥用.在企业授权用户应用中,企业通过购买或租赁的方式向数据拥有者获得了数据的查阅权,当企业中止购买或租赁数据查阅权时,企业所持有的数据查阅权限就会被收回,当企业再购买或租赁数据查阅权时,会被重新分配数据查阅权,以保证物联网数据不会被滥用.在指定技能的专业人员应用中,智能制造过程中,物联网设备的管理维护人员可能因岗位变动被更换,原先的专业人员对这些物联网设备数据的查询权限就需要收回,新的专业人员需要被授予这些物联网设备数据的查询权限,以保证智能制造中隐私不被泄露.
综上所述,在实际的系统中,被授权使用者对于物联网数据的访问权限是会发生动态更新的.因此,设计出支持物联网数据访问权限动态更新的公钥可搜索加密方案就成了物联网环境下的新应用需求.
物联网环境下,通过对检索返回数据分析可以直接用于改进物联网应用,例如工业智能制造,返回数据的分析结果将直接用于改进生产流程,以达到提高生产效率、保障产品质量的目的.因此,就需要返回的检索数据满足真实可用的特性,即保证数据未被篡改过.为达到这个目标,就需要对返回的数据进行验证,保证返回的数据是真实的物联网数据.同时,物联网环境下,接入物联网的设备大幅度增长,这些设备会不断上传大量的物联网运行相关数据,一方面,对这些数据进行验证需要大量的计算和通信开销,另一方面,海量的物联网数据被传输到云服务器进行存储,而云存储是由云服务商提供,其上存储的数据会一直占据存储空间,云服务商为降低存储开销等,可能会发生不被信任的行为,如欺骗云存储空间购买者其已经存储了数据,实际却未存储数据,或是悄悄非法删除掉用户不常用的数据,甚至是篡改云服务器上存储的数据.因此,在原有公钥可搜索加密方案的基础上需要添加数据验证功能以保证检索返回的数据是真实可用的.
针对上述三种物联网环境下的新应用需求,研究者进行了大量的研究,并设计出了大量符合这些功能特性和安全性保障的公钥可搜索加密方案.
为达到对数据的访问控制权限进行细粒度的管理,研究者们设计出了两种细粒度的访问控制权限可搜索加密方案,分别为利用用户特性的基于属性的可搜索加密和为利用数据文件特性的基于存储文件的授权可搜索加密.
3.1.1 基于属性的可搜索加密
每个用户都有反应其自身身份的属性集合,再由可信的属性签发机构将这些身份属性进行认证之后绑定签发为一组可标识的用户属性.在基于属性的可搜索加密中,访问权限授权机构根据每个用户所持有的用户属性为每个用户生成搜索密钥,用户用该搜索密钥计算生成搜索陷门,用于数据搜索匹配.而数据共享方在进行数据共享的时候是针对用户属性来为标签进行加密,只有具备相应属性的搜索陷门才能和用对应属性加密的标签匹配成功.
基于属性的加密(ABE)有两种形式:基于密文策略的属性加密(CP-ABE)和基于密钥策略的属性加密(KP-ABE)[24].在CP-ABE中,密文与访问策略进行关联,密钥中包含属性,只有密钥中的属性和密文中的访问控制策略相一致,才能通过解密操作获得明文数据.在KP-ABE中,密钥与访问策略进行关联,密文中包含属性,只有密文中的属性和密钥中的访问控制策略相一致,才能通过解密操作获得明文数据.
文献[25]提出了一种基于CP-ABE的多关键字可搜索加密方案,该方案能支持多用户直接进行数据共享.文献[26]又引入了混合云环境,通过将大多数计算任务外包委派给私有云服务器的方式,使文件所有者可以更高效地生成关键字索引,同时通过访问控制树来实现细粒度的访问控制策略.文献[27]通过在线离线技术构建了CP-ABE的关键字可搜索加密方案,使得大部分的复杂运算被放到了云服务器上,而有效降低终端的计算和通信开销.此外,文献[28]通过嵌入分级的思想,提出了支持分级搜索的基于属性的关键字可搜索加密方案.文献[29]提出了一个带有隐藏功能的ABKS系统能支持多用户拥有者数据共享.
通过将线性秘密共享(LSSS)技术应用到密文标签中,可以更加方便地使用矩阵来描述属性配对,使得设计新的基于属性的关键字搜索方案更加简单.文献[30-31]均使用了LSSS技术,并提出了相应的CP-ABE方案来实现关键字可搜索加密.在文献[30]中,属性对应的标签是未被隐藏的,而文献[31]中方案达到了隐藏属性的目的.文献[23,32]中也利用了LSSS技术来构建基于属性的关键字可搜索加密方案,且均对密文标签进行了优化.
3.1.2 基于存储文件的可搜索加密
从文件管理的角度入手,给每个文件进行编号,再为每一个文件的标签用不同的加密密钥来进行加密,根据访问权限授权集合将标签加密密钥聚合到一起作为用户搜索密钥授权或是通过公钥为文件标签加密密钥和用户搜索密钥建立可推导关系.用户用自己的搜索密钥生成查询陷门,由服务器将陷门进行分离之后再和加密标签进行匹配.基于存储文件的可搜索加密所具有的功能分析如表1.
表1 基于存储文件的可搜索加密功能分析Table 1 Functions analysis of file-centric searchable encryption schemes
为了对每个文件进行细粒度的共享搜索控制,文献[33]提出了多密钥可搜索加密,文件共享者对每个文件所对应的搜索标签均用不同的密钥进行加密,为了使这些用不同密钥加密生成的搜索标签能和用户所持有的数据访问权限对应关联起来,采用了公钥转换搜索陷门的方法来建立推导关系,用户首先用私钥生成自己的搜索陷门,然后将搜索陷门提交给云服务器,云服务器根据用户访问权限对应的搜索文件范围对搜索陷门进行转换,若转换之后的搜索陷门可以和对应文件的关键字加密标签匹配,则返回该文件.但是,文献[34]的研究指出,文献[33]所提出的方案是有缺陷的,即通常情况下,云服务器是半可信的,其可能会成为内部攻击者,而文献[33]的流程中,云服务器会通过离线关键字猜测攻击,来获得文件中搜索标签中存储的关键字隐私信息.同时,文献[34]也提出了新的关键字可搜索加密方案,在其中添加了搜索用户和文件之间的密文标签转换绑定过程,通过这种方法来对密文标签中存储的关键字隐私信息进行保护.同时,为解决相同的问题,文献[35]从另一种思路出发,对文献[33]的研究工作进行了改进,在文献[35]中,引入了一个可信的指定代理服务器,通过代理服务器,对密文标签和搜索询问都做了进一步的保护以保证关键字隐私不被泄漏.
除了公钥绑定转换的方式,研究者结合文献[43]的密钥聚合思路,提出了基于密钥聚合的多密钥关键字可搜索加密方案[36].在文献[36]中,文件共享者对每个文件所对应的搜索标签均用不同的密钥进行加密,为了使这些用不同密钥加密生成的搜索标签能和用户所持有的数据访问权限对应关联起来,采用了将用户访问权限关联的所有密钥都聚合到一起,作为用户搜索密钥授权给用户的方法.在文献[36]所提出的方案中,用户进行搜索的过程和文献[33]所提出的方案是类似的.在文献[36]的基础上,研究者针对云服务器可能会返回错误搜索结果的问题,结合Bloom过滤器技术,提出了搜索返回数据可验证的公钥可搜索加密方案[37-38].在接下来的研究中,文献[39-40]都指出文献[43]的研究工作存在缺陷,并设计了几种不同的攻击方法.在文献[39]中,研究者针对加密标签中的关键字隐私信息和搜索陷门中的关键字隐私信息分别设计了对应攻击方法.而在文献[40]中,研究者设计了一种更高效的攻击方法以获取用户搜索私钥.为应对这些攻击,文献[39-40]分别提出了自己的方案.在文献[39]中,研究者基于用户密钥安全的角度,对用户数量进行了限定,提出了基于授权范围集合复用的方法来实现了基于文件细粒度的公钥可搜索加密.而文献[40]基于文件安全的角度,提出了改进的多密钥聚合的公钥关键字可搜索加密方案,并将之应用到物联网数据采集应用中.在文献[40]基础上,为解决实际应用中用户权限动态更新的问题,研究者提出了基于时间周期的用户搜索密钥更新方案[41-42].
为对用户访问控制权限进行动态更新管理,需要对用户访问控制权限进行授予和撤销,权限授予比较容易完成,所以目前大部分研究针对的是访问控制权限撤销的研究.在这些研究中,研究者们设计出了两种支持访问权限更新的可搜索加密策略,第一种为对存储的数据标签密文进行更新操作,使得被撤销的用户不可以再搜索到相应数据对应的数据加密标签,常见的形式为基于属性撤销的可搜索加密;另一种为对分配给用户的密钥进行更新,同时使用户原先持有的旧密钥失效,使得用户仅能用新密钥生成的搜索陷门能匹配到相应数对应的数据加密标签,常见的形式为基于用户密钥更新的可搜索加密.
3.2.1 基于属性撤销的可搜索加密
每个用户都有反应其自身身份的属性,当用户访问权限更新的时候,是针对其中某些指定的文件所对应的数据加密标签进行更新,用新的属性组成替代掉原先生成加密标签的属性组成,在更新之后,持有原先属性组成的用户,依托于自身属性对应密钥生成的搜索陷门不再匹配新的属性组成生成的数据加密标签,从而达到通过某些属性的撤销来实现用户访问控制权限的撤销.基于属性撤销的可搜索加密方案技术特征分类如表2.
表2 基于用户密钥更新和用户撤销列表的可搜索加密方案技术分析Table 2 Technologies analysis of used key update and user revocation searchable encryption schemes with user revocation
文献[47]中提出了一个基于属性的关键字可搜索加密方案,为实现用户撤销功能,其引入了一个指定云服务器用于完成可信参与方的用户撤销工作,其主要采用对密文进行代理重加密的方法来修改搜索用的密文标签.同时,为在不进一步泄露数据隐私的基础上,利用Lazy策略来对密文标签重加密过程进行进一步优化以降低其计算开销.在文献[48]中,通过利用服务器对密文标签进行代理重加密和Lazy策略实现了权限更新.文献[49]也利用ABE的特性构建了代理重加密方案,并在其中使用了Lazy策略来优化更新时候的计算开销,同时,在该方案中,接收者并不需要一直在线的可信授权机构来辅助完成搜索陷门生成,只需要接收者自己用私钥进行计算即可.文献[28]结合分级的方法和CP-ABE的特点,构建了一个支持用户撤销功能的可搜索加密方案.在该方案中,重新生成用户的授权密钥时嵌入了一个新随机数,并通过将这个随机数发送给云服务器来控制搜索,由此达到用户撤销功能.
3.2.2 基于用户密钥更新的可搜索加密
每个用户都依靠密钥生成中心生成的搜索密钥来生成搜索陷门,当用户访问权限更新的时候,密钥生成中心为每个访问权限变化的用户生成新的密钥,同时使得用户原先持有的搜索密钥失效,从而达到通过用户搜索密钥的更新来实现用户访问控制权限的更新.目前比较常见的技术为基于时间周期的密钥失效方法.
文献[44]使用密钥拆分的方法来实现用户密钥更新,拆分出的第一个密钥是用户所持有的搜索私钥,第二个密钥是存储在代理服务器上的重加密密钥.数据共享方生成加密标签之后,会发送给代理服务器,由代理服务器用重加密密钥进行再次加密,只有经过代理服务器重加密的加密标签才能和用户提交的搜索询问请求匹配成功.当用户密钥发生更新时,代理服务器负责更新用户搜索私钥.在文献[44]基础上,文献[45]提出了一个无安全信道的公钥关键字可搜索加密,在文献[45]中,引入了时间周期的方法,在不同时间周期内选用不同的随机数来更新用户搜索私钥,以达到用户访问权限的撤销功能.在文献[41-42]中,也利用了用户搜索密钥随时间周期更新的方法来生成新的搜索密钥,通过可信密钥中心按时间周期再次计算搜索密钥并分配给对应用户,同时,为保证用户发起的搜索询问能正确响应,可信密钥中心还重新生成了服务器在匹配计算中使用的公钥.同时,文献[42]还利用物联网雾节点持续在线的方法来解决了离线用户的搜索密钥更新的问题.
在文献[46]中,系统首先会利用代理服务器对存储的关键字加密标签进行重加密,再将搜索陷门拆成了两个部分,一部分为搜索用户生成,另一部分由指定服务器生成,再通过时间服务器影响指定服务器,使其只在用户持有有效访问权限时间内生成辅助搜索陷门.若用户访问权限被撤销,则指定服务器不会生成其该提供那部分搜索陷门,从而达到用户撤销的目的.
在文献[50]中,借助时间服务器,研究者提出了一个支持用户访问权限撤销的公钥可搜索加密方案.在该方案中,用户发起搜索时,会将搜索请求先发给授权机构,由授权机构认证用户访问权限后结合时钟令牌再生成搜索用的陷门,用户在收到陷门之后向服务器发起搜索匹配以获得数据.通过时间服务器控制的授权机构,可以对用户的搜索进行控制,若用户已经被撤销访问权限,则不会通过授权机构的认证,就无法获得有效的搜索陷门.
此外,在文献[23,32]中还引入了用户撤销列表的方式来实现用户访问权限撤销功能.服务器记录一个由密钥生成中心生成的用户撤销列表,在服务器进行关键字搜索匹配之前,先搜索用户撤销列表,若该用户在用户撤销列表上,则中止关键字检索,返回检索失败,若该用户不在用户撤销列表上,则进行正常的关键字搜索匹配.
可验证的可搜索加密主要是在加密数据检索过程中,保证服务器检索返回的搜索结果是真实可用的,就需要对返回的搜索结果数据进行验证.返回结果可验证在安全外包计算中经常被考虑[51-52],在可搜索加密返回结果验证中主要采用的方法为明文认证和密文认证两种方式.
明文认证需要先将密文解密再进行验证[53-54],其计算开销相对较高,并不适合广泛用于搜索结果的验证.密文认证的常见形式为基于Bloom 过滤器的可验证可搜索加密和基于MAC方式验证的可搜索加密.可验证的可搜索加密技术特征分析如表3.
表3 可验证的可搜索加密技术分析Table 3 Technologies analysis of verified searchable encryption schemes
在文献[55,60]中,研究者引入了Bloom过滤器来对返回的搜索结果进行验证,其主要流程为将返回的搜索结果数据按块进行拆分,然后利用哈希函数簇来得到一系列验证结果,再用属性结构来将其整合以达到验证的目的[56-57].结合Bloom过滤器和文件聚集的方法,文献[37-38]提出了文件聚集的可验证公钥可搜索加密方案,通过将返回的文件标签和其对应的公钥以及用户的私钥输入到Bloom过滤器中进行计算,输出验证结果.但Bloom过滤器利用了Hash函数簇来实现验证,其在实际的验证过程中,有大量的hash函数计算,而在每次hash函数的计算中因中间结果截断等会产生微小的误差,在大量的hash函数计算之后,会累积产生较大的误差,从而使得计算结果呈现假阳性,使得本可通过验证的搜索结果变成验证不通过的情况.
在文献[23,32,58]中,利用单hash函数生成MAC码来对返回的搜索结果进行验证,其仅能满足粗粒度的验证,同时,其需要先获得解密密钥才能进行验证,将限制其能使用的范围.而在文献[59]中,研究者提出了一种绑定所有标签的方法来实现了用户搜索结果可验证的目的.
为了更好地面向5G时代下的物联网应用,在接下来的研究工作中,公钥关键字可搜索加密还需要满足以下几个新的应用需求,以使得其能解决更多的物联网实际应用问题.
在工业物联网实际应用中,大量的物联网设备被接入网络,海量的数据被采集,这些数据存储到云服务器上,会消耗掉大量的存储资源,要降低存储消耗,就需要对上传到服务器上的数据进行去重,而为保护这些工业物联网数据隐私,数据均被加密存储,于是就需要对这些数据在密文状态下进行分块再去重.在去重过程中需要将关键字信息用于数据重复性检测,而在可搜索加密中,会将关键字信息进行加工后用于数据检索.在这两种不同的应用中,数据重复性检测用的关键字信息和可搜索加密中的关键字信息均反应了数据文件对应的数据特征,具有相互关联的特性,就可以通过对关键字标签进行复用的方式以达到既能降低标签存储开销的目的,又能同时满足数据去重存储和数据安全搜索的功能目标.由此,设计出符合物联网环境下的支持数据去重的可搜索加密方案将是可搜索加密未来的研究任务之一.
在工业物联网实际应用中,大量的物联网设备被接入网络,每个设备、每个用户都需要被分配密钥,为提高响应速度,就需要多个密钥分配中心同时进行工作.为保证密钥安全可用,所有的密钥分配中心均应为可信设备,而每个可信硬件设备需要的成本远超普通硬件设备的成本.为降低成本,通常采用核心密钥分配中心可信,由其授权给其他辅助设备来共同完成设备和用户的密钥分配工作,但这些辅助设备并不是完全可信的,就存在密钥伪造的可能,为保证设备收到的密钥是可信的,用户就需要对收到的密钥进行真实性验证,以确保收到密钥不是伪造的.由此,设计出符合物联网环境下的密钥可验证的可搜索加密方案将是可搜索加密未来的研究任务之一.
在实际的工业物联网应用中,大多数的设备均为轻量级的物联网设备,例如,传感器、集线器或微型移动设备等.这些设备大多仅具有有限的硬件计算能力和信号传输能力,同时,这些设备中很大一部分是采用的电池工作方式.从这两方面进行考虑,在这些轻量级设备上进行数据采集并计算生成搜索用加密标签时,必须采用轻量级的加密标签生成算法,使其具备较低计算开销和通信开销的特点,从而达到降低能耗,延长电池使用时间的目的.由此,设计出符合物联网环境下的轻量级可搜索加密方案将是可搜索加密未来的研究任务之一.
公钥可搜索加密作为一种通用的密码技术,为物联网环境下,数据安全共享、搜索、访问等需求提供了良好的解决方案.本文主要从物联网数据管理角度出发,结合物联网实际应用需求,讨论了物联网环境下公钥可搜索加密技术的应用研究进展.本文根据近期的研究文献将物联网环境下的应用需求大致归纳为细粒度的数据搜索、用户访问权限更新和数据可用性等三个方面.针对细粒度的数据搜索需求列出了基于文件存储的公钥可搜索加密两种解决方案;针对用户访问权限更新需求列出了基于属性的公钥可搜索加密和基于属性撤销的可搜索加密和基于用户密钥更新的可搜索加密两种解决方案;针对数据可用性需求列出了可验证公钥可搜索加密的解决方案.最后,还对公钥可搜索加密在物联网环境下应用研究的新需求进行了讨论.通过本文的研究进展归纳和总结,以期能对利用公钥关键字可搜索加密技术解决物联网环境中应用问题研究起到推进作用.