黄娜娜,沈 亮,杨元原
公安部第三研究所,上海200031
随着计算机技术的飞速发展,云计算得到了广泛的应用,如各种互联网服务提供商的网络邮件、新浪、微博、微信、QQ 等。个人健康档案(Personal Health Record,PHR)作为一种新兴的健康信息交换模式在医疗云中成为研究的热点话题。在医疗云系统中,每个PHR 数据拥有者在云端服务器中都会创建属于他们自己的个人健康档案,在那里他们可以与许多用户共享他们的健康信息,包括医疗服务提供商、个人医生、家庭成员和朋友。在PHR 系统中,PHR 数据拥有者可以随时在网上创建、修改和控制他们的个人档案,从而提高医疗信息的存储和共享效率。为了保护PHR数据拥有者的数据隐私,PHR 系统里的医疗数据都是加密的,这就需要PHR数据拥有者先对健康档案进行加密,然后再上传至云服务器。由于PHR数据拥有者不知道哪些人会看到自己的病历,他们可以根据每个人的属性设置一些访问策略。例如,只有符合一定条件的群组才能看到他们的病历,组中的成员可能是动态的。因此,对医疗数据内容信息进行保护的实质是建立高效的动态组加密机制,实现对动态医生组的数据访问控制。
医疗云带来了很多好处,但是也有一个关键问题需要解决,由于高昂的维护成本和复杂的网络及设备管理,很多医疗服务都是外包给第三方服务商的,这样PHR 数据拥有者的个人健康档案就会存储在第三方服务器中,由于医疗数据涉及PHR 数据拥有者的个人隐私,一旦出现隐私泄漏问题,会对他们造成严重的损失,他们能否完全相信第三方服务器是随之出现的问题。目前,尽管相关法律法规比较完善,特别是隐私泄漏问题,近年来都得到相关部门的高度重视,但是,仍然存在一些非法用户利用一些非法手段窃取PHR所有者的隐私,这可能会对PHR 数据拥有者造成极大的损害。更糟糕的是,作为第三方,云服务器是半可信的,他们可能与非法用户串通,窃取PHR 用户的隐私,获取高额利润,给PHR用户造成一定的损失。
根据国内外研究,最初的访问控制方案主要是基于传统的PKE[1]技术来实现的。后来,许多研究利用基于属性加密ABE实现访问控制[2]。然而,属性加密的有效性和属性撤销一直是研究过程中难以解决的问题。为了实现属性撤销,Pirretti 等人[3]考虑在系统中分配属性的失效周期,但该方案不能实现高效及时的属性撤销。Hur等人[4]针对这个问题,引入了合适的代理服务器,实现了细粒度属性撤销CP-ABE 方案,但是,在属性更新阶段,它会导致系统瓶颈问题。为了解决属性更新带来的系统瓶颈问题,Green等人[5]首次提出了一种外包解密ABE方案。在他们的方案中,传统的私钥被分解为用户密钥和转换密钥。但是,该方案不适用于授权中心较多的系统。基于这种思想,Yang 等人[6-7]提出了多授权中心的CP-ABE 方案。但是方案中的外包解密没有验证正确性。总而言之,现有的CP-ABE云存储方案存在以下缺点:在云存储系统中,多权限场景更能满足实际需求。但相应的CP-ABE访问控制方案还不够成熟,现有的方案大多基于一个授权中心,容易带来单点故障、系统瓶颈等问题,无法满足实际应用的需要。现有方案仍然不支持高效灵活的用户和属性撤销。当撤销发生时,系统的计算成本较高,大量的密钥更新也给授权中心带来了很大的管理负担。
通过以上分析,提出了一种基于多个授权中心的改进CP-ABE方案,并应用在PHR系统中。在该方案中,大部分加密解密计算都可以外包给云服务提供商(CSP),用户只需完成少量计算,大大减轻了数据所有者和用户的计算负担。同时,根据所提出的计算外包方案,设计了相应的外包结果验证方案和相应的用户和属性撤销方案。当撤销发生时,无需复杂的更新操作,只需删除被撤销用户存储在云中的代理密钥即可。总体来说,该方案主要有以下几个优势:
(1)结合文献[8-9]的分域思想,本文将PHR系统中的PHR用户域分为公共域(PUD)和个人域(PSD)两个域。在PSD中,由于用户数量较少,且用户具有明确的身份,分别使用改进的聚合密钥加密方案(Key-Aggregate Encryption,IKAE)和改进的基于属性的签名方案(Attributebased Signature,IABS)实现用户的读写访问权限,大大提高了访问效率。而对于拥有大量身份不确定用户的PUD,采用外包的基于属性的加密(CP-ABE)方案,该方案可以保护患者的隐私,并减少计算负担。
(2)与其他方案不同,本文采用了一种改进的基于属性的签名(IABS)[10-12]方案来实现PSD的写访问控制。使用该方案进行写访问控制,个人医生或朋友可以在不透露身份的情况下修改PHR用户的电子病历(EMR)。
(3)在PUD,与以前的外包解密技术相比,使用了改进的外包CP-ABE方案。该方案不仅可以大大减少PHR用户的计算开销,还可以减少PHR 数据拥有者的计算开销。本文所采用的方案可以降低云服务提供商外包加密解密的复杂度,并支持高效的属性撤销。此外,采用多机构授权来避免单点故障和复杂的密钥分配问题。同时,该方案在公共领域中为用户和属性撤销设计了相应的算法。当用户撤销发生时,不需要执行复杂的更新操作,只需删除存储在云中被撤销的用户的代理密钥。对于属性撤销,大多数更新和重新加密计算都外包给了云服务提供商,用户只需执行少量计算。
如图1所示,采用分域的思想将用户区域划分成两个:私有域和公有域,两个区域分别设置不同的加密方案。该方案的系统框架包括:PHR 数据拥有者、PHR 用户、PSD 区域、PUD 区域、根授权机构CA、区域授权机构AA、云服务提供商。PHR 数据拥有者将个人健康档案存储在云服务器;云服务器负责分发合法的PHR 用户申请的PHR文件;CA负责管理各个AA,包括密钥分发等。
在私有域中,PHR用户很少,通常,PHR数据拥有者会为他的朋友和家人设置一些不同的访问权限。例如,PHR 数据拥有者可能不想让他的朋友看到他的一些敏感信息,PHR 数据拥有者可能会向家人隐瞒一些病情等。因此,在PSD 中,本文使用改进的聚合密钥加密算法(IKAE)来实现读访问权限。此外,还提出了PSD 的写访问权限。对于PHR 用户来说,公钥和文件类标签都是已知的,他可以在修改后加密文件,然后将它们上传到云中。由于PUD 中有大量未知的PHR 用户,因此本文采用可撤销的外包MA-ABE方案来实现安全高效的数据共享。该方案基于外包加密解密,结合了多授权机构和属性撤销机制,多授权机构的引入不仅简化了密钥管理的复杂性,而且避免了单点故障问题;外包的加密和解密技术大大减少了PHR数据拥有者和PHR用户的计算开销。同时,该方案在公共域中可以实现高效的属性撤销、动态更新和分布式授权等功能。
图1 系统框架图
对于私有域PSD,文献[13]采用了YWRL可撤销的KP-ABE 方案[14],优点是它适用于具有一定身份的少量用户的场景,缺点是加密和解密的复杂性会随着属性的增加而增加,因此,本文采用改进的聚合密钥加密算法[15],该算法使用固定大小的密钥,不会随着属性个数的增加而增加。原来的聚合密钥加密方案仅涉及直接通信的加密方和解密方,并且双方计算量很大。为了实现高效的访问控制,减少PHR 用户和PHR 数据拥有者的计算负担,引入负责密钥生成和管理的可信第三方。在改进的聚合密钥加密方案中,公钥和公共参数使由第三方生成的,可以减少用户的计算负担。此外,在添加第三方后,此场景成为间接通信,因此,PHR所有者只需设置PHR文件访问权限,对其进行加密,并上传到服务器。当PHR 用户访问PHR 文件时,第三方首先判断PHR 用户的访问权限,然后将与授权PHR 文件相对应的私钥聚合成一个常量大小的聚合密钥,发送给PHR用户。IKAE方案大大降低了PHR拥有者的计算负担,实现了高效的读访问权限。具体算法实现框架如图2所示:假设PHR用户具有访问文件1、3、6的权限。
在PSD 中,一些PHR 用户具有对PHR 文件的读权限和写权限。PHR数据拥有者可以决定谁拥有写权限,谁拥有读权限。如果PHR用户想要修改他看到的PHR文件,他可以加密修改后的文件。对于PHR用户,公钥和PHR 文件标签都是已知的,他可以实现加密算法直接加密文件,然后上传到云中。问题是云服务是否存储修改后的PHR 文件。为了确保安全的写访问策略,本文采用改进的基于属性的签名(IABS)来实现PHR用户的写权限。
在IABS 框架中,如图3 所示,PHR 用户首先修改PHR 文件,对修改后的文件进行加密,使用基于属性的签名方法进行签名,然后将其上传到云服务器。云服务器使用基于属性的签名对PHR用户进行身份验证。如果身份验证成功,说明PHR 数据拥有者已经授权给该用户修改文件的权限,云服务器会将修改后的文件加密存储。在基于属性的签名中,CA将生成所有PHR用户共享的主密钥和系统参数,并将参数和主密钥发送给PHR 所有者。中间介的作用是使用签名密钥的一部分检查PHR用户的属性和有效性。
图3 IABS算法实现框架
3.3.1 方案设计
对于PUD,之前提出的方案都是采用ABE 进行加密,并应用于公共领域。但是,ABE的计算量太大。为了减少用户的开销,Green 等人[5]提出ABE 外包解密方案。但该方案系统中只有一个授权机构,容易导致系统瓶颈,而且PHR 用户的加密计算量大。针对这两个问题,Fan等人[9]提出可外包的MA-ABE方案,该方案引入多授权机构可以解决单点故障问题,为了减轻PHR 用户的计算负担,提高系统的访问效率,解密过程中将复杂的计算都外包给了云服务提供商,PHR用户最终只需完成指数运算即可。但它不能解决PHR数据拥有者计算量大的问题。因此,基于这种外包思想,本文方案将进一步优化计算效率,将部分加密计算外包给云服务器,减少PHR 拥有者的计算负担。首先由云服务商对加密过程中的部分生成项进行运算,然后将生成的结果作为部分密文传给PHR 数据拥有者。因为加密过程中,被加密的明文始终在数据拥有者手中,不会被云服务商窃取,所以不会造成数据拥有者的数据隐私泄露问题。解密的时候,首先由云服务器生成转换密钥传送给PHR用户端的代理服务器,由代理服务器进行部分复杂的属性解密,然后代理服务器将部分解密密文传给PHR用户,PHR用户再在自己的服务器中进行简单的解密运算即可解密出明文。这样将加密过程和解密过程中的属性运算都外包的思想大大降低了PHR数据拥有者和PHR 用户的属性加解密复杂度,也不会造成明文的泄露,保护了数据隐私。综上所述,PUD的基本框架如图4所示。
图4 外包MA-ABE方案框架
3.3.2 可撤销外包MA-ABE算法的具体步骤
全局初始化(Global Setup(λ,U)→{GP,uid,aid}):该算法由CA 运算,输入一个系统安全参数λ 和属性域U,输出全局公共参数GP,用户身份IDuid 和授权中心标记aid。
授权中心初始化(Authority Setup(aid)→{PKaid,SKaid,{PKxk}aid∈IA}):该算法由各个授权中心运算,输入授权中心标记aid ,输出一对授权中心的公钥PKaid和私钥SKaid,并为该授权中心管理的每个属性都生成一个属性公钥{PKxk}aid∈IA。
外包加密(Encrypt_out(GP,{PKxk}aid∈IA)→CTout:该算法由云服务商运算,输入全局公共参数GP 和属性公钥{P Kxk}aid∈IA,输出部分加密的密文CTout。
数据拥有者加密(Encrypt_do(GP,PKaid,{PKxk}aid∈IA,CTout,M,(A,ρ))→CT):PHR数据拥有者执行该算法,输入全局公共参数GP,相关授权中心的公钥PKaid,属性公钥{PKxk}aid∈IA,部分加密的密文CTout,明文M 和访问结构A,输出加密后的完整密文CT 。
密钥生成(KeyGen(GP,uid,Suid,aid,SKaid,{PKxk}aid∈IA)→{PxKuid,aid,SKuid}):授权中心执行该算法,输入全局公共参数GP,用户身份IDuid ,一组用户的属性集Suid,aid,授权中心的私钥Said,uid以及属性公钥{PKxk}aid∈IA,输出代理密钥PxKuid,aid和用户私钥SKuid。
外包解密(Decypt_out(GP,CT,PxKuid,aid,{PKxk}aid∈IA)→CT′:该算法由云服务商执行,输入全局公共参数GP,密文CT ,用户的代理密钥PxKuid,aid以及属性公钥{PKxk}aid∈IA,输出部分解密的密文CT′。
用户解密(Decrypt_user(CT,CT′,SKuid)→M):PHR用户执行该算法,输入密文CT ,部分解密的密文CT′以及用户私钥SKuid,输出明文M 。
在PSD 中,采用改进的聚合密钥加密方案来实现PHR用户的读访问控制,因为PHR文件是加密的,而且PHR 数据拥有者对PHR 文件分别设置不同的访问权限,所以对于一般用户来说,他们无法获知PHR文件的内容。对于云服务提供商来说,加密的PHR 文件包含不同的随机数t,所以云服务提供商也无法窃取PHR文件的信息,从而达到了数据拥有者的隐私保护。
如表1 所示,与其他方案相比,本文方案在PUD 可以实现隐私保护。首先,从合谋攻击的角度分析,由于PUD区域采用外包的CP-ABE方案,需要考虑云服务器及其与非法用户之间的勾结。由于每个PHR 用户的TK 不同,所以TK 中包含的参数z 与相应的PHR用户绑定。因此不可能将不同的TK 组合起来解密PHR 文件,从而抵抗用户的合谋攻击。其次,在授权中心类型方面,本文方案采用多授权机构,每个授权机构管理部分属性,每个PHR 用户的私钥由一组不同的授权机构授权,如医院、机构、保险机构或研究机构。根据PHR用户的属性,这些机构可以分别生成所需要的私钥并发送给PHR用户。PHR用户所拥有的属性集是由各授权机构联合分发的,这样可以避免由单授权机构管理所导致的单点故障问题。第三,从访问策略方面来看,该方案采用矩阵访问结构,与以前的树结构相比更加安全。最后,该方案采用属性撤销,比之前的访问控制列表更细粒度、更安全。总而言之,本文方案可以保证PHR数据拥有者的隐私安全。
表1 安全性比较
在PSD 中,IKAE 方案中的聚合密钥和密文的大小是不变的都是2G+GT,不会随着属性的增多而变化,因此,采用这种方案来实现读访问权限,提高了访问效率。
为了分析该方案在PUD 中的复杂性,将该方案与现有的两种方案进行了比较,并给出3种方案的时间仿真图。假设有10个授权机构共同管理100个属性,平均每个授权机构管理10个属性,3种方案的用户解密时间随属性个数的变化曲线图如图5所示,用户加密时间随属性个数的变化曲线图如图6 所示。所涉及到的相关符号和对应含义如表2 所示,各方案的计算结果如表3所示。
表2 符号及对应含义
图5 PHR用户解密时间随属性个数的关系
图6 PHR数据拥有者加密时间随属性个数的关系
在PUD 中,采用了外包的CP-ABE 访问控制方案。将从以下几个方面分析该方案的效率:首先从解密时间上看,与其他方案相比,PHR 用户只需一次指数运算即可解密部分由云服务提供商解密的ElGamal 形式的密文。其次,从PHR数据拥有者执行的加密时间来看,在本文方案中,加密过程中最复杂的操作都外包给了CSP。PHR 数据拥有者只需要完成一个普通的公钥加密,指数运算,而这些计算均和属性无关,所以加密时间是一个恒定值,综合以上几个方面,该方案大大减少了PHR数据拥有者和PHR用户的计算开销。
本文提出了一种基于CP-ABE 外包的个人健康档案访问控制方案。在该方案中,PHR 用户分为个人域(PSD)和公共域(PUD)。在PSD 中,分别采用改进的密钥聚合加密(IKAE)和改进的基于属性的签名(IABS)来实现读访问权限和写访问权限。对于PUD 的PHR用户,使用外包的MA-ABE 技术,在很大程度上减轻PHR 数据拥有者和PHR 用户的计算负担,该方案还可以实现有效及时的用户和属性撤销。最后,通过仿真结果和性能分析验证了该方案能够实现隐私保护。
表3 计算开销