使用密文属性基加密在云计算中共享个人健康记录的安全性
摘要
将关键医疗数据存储在半可信云服务器等第三方中,可能会成为近年来频繁发生的云数据泄露事件的诱因,因此,安全方法已成为医疗领域最重要的问题。本文提出了一种个人健康记录(PHR)系统的设计与开发,以及数据存储在不信任或半信任方时的安全过程。通过我们的系统,患者可以自主控制对其个人健康记录的访问权限。为了实现PHR的安全性,我们在数据外包前采用高级加密标准(AES)与基于属性的加密(ABE)相结合的方法对数据进行加密,并利用椭圆曲线密码学(ECC)来保障用户私钥的安全交换。所提出的方案确保了患者隐私的高度保护,以及数据所有者对其医疗数据的完全控制。
关键词 :个人健康记录;属性基加密;基于属性的加密;云计算;安全共享;云计算安全。
1 引言
近年来,个人健康记录(PHR)已成为不可或缺的概念,该模型的使用在医疗领域中变得越来越有价值。PHR应用被个人用于在线访问和管理其医疗数据,他们能够将适当的部分提供给需要的人。患者对其医疗数据拥有完全的控制权,并可将自己的健康记录与不同用户共享,例如医疗服务提供者、家人或朋友,其中信任组织的医生必须拥有完全权限查看患者记录,以便提供完善且全面的检查和治疗。目前,对PHR的兴趣和投资通常旨在提升患者自主性、提高效率以及改善疾病管理。然而,安全性和隐私是患者对个人健康记录以及其他医疗系统的主要关注点。《1996年健康保险可携性和责任法案》(HIPAA)规定了个人健康记录隐私和安全的法律保护。但该法案并未解决所有相关问题,因为HIPAA仅适用于受保实体,包括健康计划、医疗服务提供者或医疗清算机构(Zheng,2011)。将云存储作为第三方(通常是不信任或半信任方)使用时,例如,由于敏感的个人健康信息(PHI)具有高价值,若云服务提供商组织内部员工行为不当,可能导致个人健康记录数据泄露。一个著名的事件是,退伍军人事务部的一个数据库被盗,其中包含2650万退伍军人的敏感PHI,包括他们的社会安全号码和健康问题,该事件由一名员工未经授权将数据带回家。其次,由于云计算是一个开放的平台,服务器容易受到外部恶意攻击。例如,谷歌在2010年初报告了其Gmail账户遭受的攻击(李等人,2010年)。尽管目前有许多研究以及大量正在进行的工作旨在提供PHR服务的互操作性,但在医疗系统中,安全和数据隐私已成为一个重要因素,特别是在医疗数据被外包的情况下,患者担心他们的健康数据是否会被不可信的个人或组织窃取或丢失。为解决与个人健康记录安全性和机密性相关的问题,我们的方法是在外包之前对数据进行加密。我们提出了一种新型的密文策略属性基加密(CP‐ABE)方案,该方案能够实现患者与医院之间的通信,并在云等开放通信环境中安全地存储和共享其健康记录。所提出的方案确保了患者医疗数据以加密形式存储。该方案基于属性策略,使来自不同领域的终端用户能够共享患者数据。例如,患者将参与加密阶段,并决定谁可以解密其数据,因此他与可信权威机构合作,提出用于加密其医疗记录的访问树。根据此访问树,具有匹配单调访问树属性的个人用户(如家人、朋友)以及专业领域用户(如医生或护士、可信组织)均可访问加密后的医疗数据。我们所提出的方案使用属性基加密作为主要加密原语,以保护存储在半可信云上的个人健康数据。通过CP‐ABE,访问策略基于用户或数据的属性表达,医疗数据使用AES密码系统进行加密,而AES私钥则通过CP‐ABE进行加密;在传输CP‐ABE私钥时,我们采用ECC密码系统对CP‐ABE私钥加密后再发送给用户。本方案支持可扩展性,可在应用中输入N个用户。CP‐ABE私钥可根据用户需求定期更新。我们选择云计算的原因是:如果业务扩展,我们需要安装新的基础设施,包括大容量磁盘、更高性能的处理器、新软件等,这将带来较大的经济成本;相反,如果业务萎缩,我们的基础设施将会闲置浪费。因此,采用云提供的按需付费机制(肖和肖,2013年)始终是更优的选择,这有助于显著提高PHR系统的有效性、效率和生产力。
1.1 我们的贡献
在本文中,我们提出了一种基于属性加密的方法来保护云中的医疗数据。我们所提出的方案使用属性基加密和高级加密标准(AES)来保护存储在半可信云上的个人健康数据。所提出的方案在以下方面具有优势,与其他方案相比,具有更高的安全性和可扩展性。首先,通过使用户能够增强外包数据的安全性,拒绝私钥不满足访问策略树的未授权用户访问。其次,用户可以完全控制其数据的加密过程,他提出访问树策略来保护其医疗记录,从而实现更细粒度的用户访问。第三,在所提出的方案中,系统采用用户私钥过期机制,系统会在用户私钥过期后要求数据所有者进行重新密钥化,或者用户也可以在私钥过期前主动申请重新密钥化。为了最大限度地保证数据可用性,我们的工作确保存储在云中的数据在医疗服务提供者处的原始数据发生任何修改后都能得到及时更新,为此我们将上传功能作为医疗服务提供者系统的一部分。本论文组织如下:我们在第2节介绍密码学基础与定义;在第3节详细讨论我们的方案;在第4节给出与现有系统的比较;最后,在第5节得出结论并展望未来工作。
2 预备知识与定义
2.1 密码学背景
在本节中,我们首先给出安全性的形式化定义,并以访问结构和双线性映射为例进行说明,然后介绍具有定义集合的ECC密码系统,接着讨论两种类型的属性基加密。
2.1.1 访问结构
定义 1(访问结构,Goyal 等,2006) :设{P1, P2 … Pn}为一组参与方,一个集合A ⊆ 2{P1,P2… Pn}是单调的,如果∀B, C:若B ∈ A且B ⊆ C ,则 C ∈ A。一个访问结构(相应地,单调访问结构)是一个集合(相应地,单调集合)。A 是 {P1, P2 … Pn} 的非空子集的集合,即 A ⊆ 2{P1,P2… Pn}\∅ ,其中属于 A的集合称为授权集合,不属于A的集合称为非授权集合。
2.1.2 双线性映射
在数学中,如Miller(2004)和双线性映射(http://en.wikipedia.org/wiki/Bilinear map/)所述,双线性算子是一种将两个向量空间的元素组合起来,生成第三个向量空间元素的函数,且在其每个参数上都是线性的,矩阵乘法就是双线性映射的一个例子。换句话说,双线性是构造两个密码学群之间关系的方法,从而引出新的方案。
定义2(双线性映射)
:设G1和 G2为素数阶p的循环群, g是G1的生成元。e是一个双线性映射,e: G1 × G1 → G2, 其中 |G1| = |G2| = p。双线性映射e具有三个性质:
-
双线性
: ∀u, v ∈ G1, ∀a, b ∈ Zp, e(ua, vb)= e(u, v)ab,
-
非退化性
: g ≠ 0 → e(g; g) ≠ 1,
-
可计算性
:e是高效可计算的。
2.2 椭圆曲线密码学(ECC)(Alshehri 等, 2012)
这是一种基于有限域上椭圆曲线代数结构的公钥密码学(PKC)。ECC的安全性基于椭圆曲线离散对数问题的难解性,并且使用更小的椭圆曲线群即可实现与RSA相当的安全性。例如,ECC中的163位密钥被认为与RSA中的1024位密钥具有相同的安全性。ECC实现在内存和处理能力上的消耗更少,使其可用于智能手机和智能卡等紧凑平台。
定义3(有限域上的椭圆曲线)
:设Fp是一个有限域,其中p > 3是一个素数,且a、b ∈ Fp满足
4a³ + 27b² ≠ 0(mod p) ∈ Fp
椭圆曲线 E[Fp] 是方程的解集 (x; y)
y² = x³ + ax + b(mod p) ∈ Fp[x], 以及无穷远点0。
ECC上的点加法被定义为形成所谓的椭圆曲线群,对于P ∈ E(F),nP 表示 P + P +…+ P,共 n 次。
定义4(椭圆曲线离散对数问题) : 若E 是域 F 上的一条椭圆曲线,则以 Q ∈ E(F) 为底的椭圆曲线离散对数问题是:对于给定的 P ∈ E(F),寻找一个 n ∈ Z ,使得 P ≡ nQ。
2.3 基于属性的加密
在属性基加密(ABE)中,用户私钥和密文都与一组属性相关联。只有当密文与用户私钥之间的属性重叠数量达到或超过阈值时,用户才能解密该密文。基于属性的加密系统有两种类型(Thant, 2012)。
2.3.1 密钥策略-基于属性的加密(KP-ABE)
该方案包含四个算法(Goyal 等,2006)。
-
设置
:一个随机化算法,除隐式安全参数外不接受其他输入。它输出公钥 PK 和主密钥 MK。
-
加密
:一种随机化算法,以消息 m、一组属性和公钥参数 PK 作为输入,输出密文 E。
-
密钥生成
:一个随机化算法,输入为访问结构 A、主密钥 MK 和公钥参数 PK,输出为解密密钥。在(KP‐ABE)中,密文与属性集合相关联,而用户的私钥与访问控制策略相关联。
-
解密
:该算法以在属性集合 γ 下加密的密文 E、用于访问控制结构 A 的解密密钥 D 以及公钥参数 PK 作为输入。如果满足 γ ∈ A,则输出消息 m。
2.3.2 密文策略-基于属性的加密(CP-ABE)
在 Bethencourt 等(2007)中,CP‐ABE 是一种公钥加密方案,允许用户在加密数据时通过构建细粒度访问策略并将该策略与数据关联,来指定谁可以访问数据。系统中的每个用户必须拥有与其描述属性列表相关联的私钥;仅当用户的密钥属性满足与加密数据相关联的访问策略时,才能解密数据文件。CP‐ABE 包含主密钥、公钥、属性集合、私钥集合,以及四个基本算法(设置、加密、密钥生成、解密),此外还有一个可选算法(委托)。
-
Setup
:仅需一个隐式安全参数即可生成主密钥(MK),该主密钥对所有用户保密,同时生成公钥(PK)并共享给所有用户。
-
Key Generation(MK,S)
:使用主密钥 MK 和描述密钥持有者的一组属性 S 来生成用户私钥(SK)。
-
Encrypt(PK,M,A)
:使用公钥 PK 对消息 M 进行加密生成密文(CT),并将该密文与用户定义的访问策略 A 相关联,使得只有其私钥属性满足 A 的用户才能解密该密文 CT。
-
Decrypt(PK, CT, SK)
:结合公钥 PK 和用户的私钥 SK 对密文 CT 进行解密,并当且仅当与私钥 SK 关联的属性集合 S 满足与密文 CT 关联的访问策略 A 时,恢复出原始消息 M。
-
Delegate(SK,S′)
:通过另一个私钥 SK 生成新的用户私钥 SK′,并将其与一组属性 S′ 关联,使得 S′ ⊆ S。
3 提议的架构
在本节中,我们提出了我们的方案,该方案部分基于贝坦库尔等人的构造(Bethencourt 等人,2007)。所提出的方案采用双重加密方法来解决属性基加密系统中的用户访问控制问题。因此,所提出的方案使用高级加密标准(AES)来加密数据,并使用密文策略属性基加密(CPABE)来加密AES密钥。
3.1 访问树
3.1.1 描述
设 T 为表示访问结构的一棵树。树中的每个非叶节点代表一个门限门。如果 numx是节点 x 的子节点数量,且 kx 是其门限值,则 0 ≤ kx ≤ numx。树的每个叶节点 x 由一个属性描述,且门限值 kx = 1 × λx表示与树中叶节点 x 相关联的属性。p(x) 表示树中节点 x 的父节点。每个节点的子节点编号从 1 到 num。函数 Index(x) 返回与 node x 相关联的编号。index 值以任意方式唯一地分配给给定密钥的访问结构中的节点。
3.1.2 满足访问树
设Tx为以节点T为根的子树。如果一组属性 γ满足访问树 Tx,我们将其记作Tx(γ) = 1。我们递归地计算Tx(γ)如下: 如果x是非叶节点,则对节点x的所有子节点x′计算Tx′(γ)。Tx(γ)返回1当且仅当至少有kx个子节点返回1。如果x是叶节点,则Tx(γ)返回1当且仅当λx ∈ γ。
3.2 抗共谋性
属性基加密(ABE)的一个主要特性是抗共谋性。这意味着两个用户无法通过合作来满足某个访问策略以解密他们 individually 无法解密的文件。例如,以下访问策略表明,只有与健康医学信息(HMI)或医药公司相关的保险员工才能读取患者的医疗记录:
(医药公司(MedicineCo) ∨ 健康医学信息(HMI)) ∧ (保险公司(InsuranceCo) ∧ 员工)
具有属性“保险公司(InsuranceCo)”和“员工(Employee)”的保险员工私钥无法与医生的私钥(即 HMI属性)或医药公司(MedicineCo)的私钥协作以满足访问策略。在此情况下,保险员工必须由医院授权才能获得HMI或MedicineCo属性。由于每个私钥都是使用唯一的随机种子生成的,
3.3 系统的主要部分
我们方法的主要目标是开发一种能够增强患者医疗数据功能性和互操作性的个人健康记录系统。在我们的系统中,我们认为患者对自己的数据拥有完全的控制权,同时医疗服务提供者参与其中。图1描述了我们系统的不同组成部分,接下来将解释每个部分的主要功能:
3.3.1 医疗服务提供者
正如我们在图1中提到的,医疗服务提供者的一个常见例子是医院(1),患者记录将在外包到互联网环境之前被存储。在此实体中,我们首先需要生成来自医院数据库的患者数据的XML文件,患者将提出用于加密其数据(XML文件)的访问树以及生成其私钥的属性列表。所有这些步骤将在患者离开之前完成。此后,医疗服务提供者(2)将通过添加专业属性来修改访问树对患者数据的访问,例如受信任的医院员工(医生和护士)、保险机构以及其他可信组织。患者数据不是静态的,这意味着它可以在任何时候被修改和更新,例如患者再次前往医院就诊。因此,我们决定赋予医疗服务提供者将数据上传(3)到云存储的能力,以确保云中存储的数据始终保持最新。
3.3.2 最终用户
在此实体(6)中,我们可以找到四种用户:患者、医院员工、患者家属(包括其朋友)以及保险公司:
-
Patient
:是拥有个人健康记录数据的系统部分。患者的医疗信息存在于XML文件格式记录中。患者对自己的数据拥有完全的权利。他应与医疗服务提供者合作,定义专业领域用户(例如医生、护士),以获得医疗建议。在所提出的系统中,患者可以随时更新其私钥和数据访问树。
-
Hospital staff
:该部分由医生和护士组成,每位员工都有其私钥,用于解密医疗数据。医院员工可以对其私钥进行重新密钥化,此操作可通过线下(2)方式进行(当员工在医院时),或通过在线(7)(8)方式向医疗服务提供者发送新的属性列表来完成。并非所有医院员工都是受信任的并可使用该系统,只有授权医生和护士才能参与并解密患者数据。
-
家人和朋友
:他们是患者选择的可以查看其数据的人员。更新密钥请求将由患者进行验证。
-
健康保险公司
:在我们的框架中,健康保险公司可以读取部分患者数据,例如患者的疾病、所用药物,我们将此实体纳入系统以促进与患者的协作。
3.3.3 云服务器
它是主要的存储服务器,负责维护数据隐私和正确性。在我们的系统中,我们使用亚马逊网络服务器云(4)来存储医疗加密数据,并用于交换用户的新属性列表和私钥。在云中,对存储数据库的访问受到控制,因此想要访问云数据的用户必须使用正确的凭据文件,这被视为一种访问控制,意味着云存储由第三方审计员保护。后者负责根据电子健康记录所有者的要求,确保云存储访问的安全性和正确性。所提出的系统保证我们不需要对存储云以支持我们的系统。即使仅提供文件上传/下载操作的简单存储服务也适用。在我们所提出的方案中,患者和医疗服务提供者信任云服务器进行医疗记录的远程访问和维护,这将减轻创建和维护我们存储基础设施的负担。云服务还提供了诸多优势,如可用性、可扩展性、低成本以及在受信任用户组内按需共享数据(肖和肖,2013年),这些用户包括家人、朋友、医师、保险公司和急救人员。
3.3.4 密钥管理器
该实体负责系统中私钥的控制与管理,响应数据所有者对医疗记录重新加密、更新以及CP‐ABE私钥的需求。密钥管理器(2)的主要角色包括:首先,在终端用户需要时生成新的用户私钥;其次,在原始医疗数据被修改的情况下,更新上传至云中的医疗数据;最后,它有权向加密访问树添加属性,例如医生、护士、医疗机构、保险机构,以允许患者获得医疗建议。密钥管理器可由用户请求触发,或按定期时间启动。在第一种情况下,它等待用户请求以生成新的私钥(7)(8);在第二种情况下,密钥管理器会提醒用户发送新的属性列表及其提议的访问树结构。
3.3.5 私钥的交换
为了实现更灵活和更具可移植性,我们尝试构建一个可在移动设备上支持的框架。为此,我们在医疗服务提供者与最终用户之间采用ECC密码系统来交换私钥,正如我们之前所述,我们将提供ECC相较于其他密码系统的最大优势:
- 大多数现代密码系统使用椭圆曲线密码学(ECC),其以更小的密钥尺寸和较低的计算能力,提供了与传统密码系统(如DH(Diffie‐Hellman)或RSA(Rivest、Shamir和Adleman))相当的安全强度。
并非每个人都了解ECC加密已被选为未来任何加密应用的方案,甚至用于保护网络通信安全的TLS/SSL也在转向ECC。
并非每条椭圆曲线都相同:关于ECC安全性的探讨(http://infosecurity.ch/ 20100926/not‐every‐elliptic‐curve‐is‐the‐sa me‐trough‐ on‐ecc‐security/)。
目前,对于抵抗已知最佳攻击的相同安全级别,基于椭圆曲线的系统的系统参数可以选择得比RSA或模p系统的参数小得多。
例如,目前在 163位 域上的椭圆曲线所提供的安全级别相当于 1024位 的 RSA 模数或 DH 素数;对此密钥长度,使用已知最佳攻击方法需要 3 × 10¹¹ MIP 年,而使用 160 位 密钥长度的椭圆曲线密码学则需要 9.6 × 10¹¹ MIP 年(Raju 和 Akbani,2003)。
随着所需安全级别的提高,这种差异变得更加显著。
例如,571位 的 ECC 当前在安全上相当于 15360位 的 RSA/DH/DSA( Lauter,2004)。在表1中,我们将总结 ECC 与其他密码系统的比较结果。
对于移动设备而言,最关键的因数是功耗和内存大小。由于ECC的密钥长度相对RSA更小,因此ECC中的加密消息也更小。结果,ECC所需的计算能力更小(Raju 和 Akbani,2003)。
| 表1 | 等效安全级别下的密钥长度(单位:比特) |
|---|---|
| 对称的 | ECC |
| 80 | 163 |
| 128 | 283 |
| 192 | 409 |
| 256 | 571 |
在所提出的系统中,我们可以在医疗服务提供者(2)或用户(6)应用中生成ECC密钥对。新用户将从医院获取其ECC密钥对,以解密使用其ECC公钥加密的CP‐ABE私钥。在此步骤之后,用户可以生成新的ECC密钥对,并通过用户应用(6)将其公钥发送或发布给医疗服务提供者。采用相同的机制,当用户决定更换其CPABE私钥时,他将生成包含提议访问树的新属性列表,然后使用医疗服务提供者的ECC公钥加密文件,再将加密后的文件上传至云(7)。医疗服务提供者将下载新的属性文件,使用服务器私钥(8)解密后,服务器生成新的私钥,使用用户的ECC公钥(2)对其进行加密,然后将新的私钥上传至云(3)。
3.3.6 系统参数
在本部分中,我们将介绍不同的算法参数:AES 是用于数据安全传输的高级加密标准。在我们的系统中,AES 用于以加密形式发送患者医疗数据。AES 支持三种不同的密钥长度:128、192 或 256 位,而在本例中我们使用了 256 位。
所采用的 CPABE 方案与贝坦库尔等人使用的方案相同,由四个算法组成:设置、密钥生成、加密和解密。该方案用于加密 AES 密钥。椭圆曲线素数 256v1 位 P‐256v1(secp256r1)是被广泛认可并考虑用于加密系统中的著名 ECC 曲线,这一点得到了多个权威机构(ANSI、NSA、SAG、NIST、ECC BrainPool)的认可,并且已被应用于各种安全协议标准(IPSec、OpenPGP、ZRTP、Kerberos、SSL/TLS),同时也是唯一符合 NSA 套件 B 安全要求的曲线(事实上也已成为北约军事环境的标准)。
维基百科上的云计算(http://En.Wikipedia.Org/Wiki/ Cloud Computing)。在所提出的方案中,我们在用户与服务器之间的交换阶段选择了 256 位椭圆曲线素数。在有限域 F p secp256r1 上可验证随机的椭圆曲线域参数由六元组 T =(p, a, b, G, n, h) 定义,其中有限域 F p 的定义如下:
4 与其他访问控制方案的比较
在本节中,我们将我们的方案与Deshmukh (2013)和Korde 等人 (2013)进行比较。相较于Deshmukh (2013),在我们的方法中,我们使用ECC密码系统进行私钥交换。该方案提供了更新用户私钥的可能性,并确保存储在云中的数据能够同步更新。在Deshmukh (2013)中,作者采用了KPABE,而我们的方法则采用与入职日期关联的CPABE。在所提出的系统中,医疗服务提供者是将患者健康记录上传至云的实体。我们假设患者可能多次到访医院,其医疗数据也可能周期性地发生变化,因此基于这一设想,我们允许医疗服务提供者在医院数据库服务器中的原始医疗数据发生变更时随时上传数据。在该方案中,患者参与其医疗数据的加密过程,并定义能够查看和解密其加密医疗数据的个人和组织。
加密、密钥生成和解密的复杂性被认为与涉及的属性数量呈线性关系。然而,要将属性基加密集成到大规模的个人健康记录系统中,诸如密钥管理可扩展性、动态策略更新和高效的按需撤销等重要问题亟待解决,至今仍 largely open(Korde 等,2013)。
5 结论
患者医疗数据是在开放通信环境中共享的敏感信息,因此健康记录系统需要具备抵御各种攻击的安全性。本文提出了一种新的个人健康记录系统方法,利用属性基加密来保护数据安全,并采用椭圆曲线密码学进行用户私钥交换。这两种密码系统是被称为一种强大的加密系统,且不易被破解。我们确认,通过使用合适的加密技术,患者可以保护其医疗记录,并能够使用XML文件格式在云服务器上共享信息。我们的框架使患者能够完全控制对其数据的访问,同时允许用户定期更新其私钥,从而为我们的应用程序提供更多的控制权。该系统主要依赖于患者与医疗服务提供者之间的协作以实现其主要目标。所提出的方案改进了医疗数据共享系统中的数据隐私和机密性。
未来,研究具有不同类型表达能力的属性基加密系统将非常有意义。寻找具有优雅表达形式的新系统,从而产生超越任意技术组合的效果,具有很高的实用性。
通过使用多个云和哈希函数集成数据审计机制,使得在每次使用数据之前,系统必须比较存储在不同云中的两个副本,并检查数据在存储过程中是否被更改。
16

被折叠的 条评论
为什么被折叠?



