APP下载

基于DOA的电子病历安全共享系统设计与实现

2022-07-23刘相汝

现代计算机 2022年10期
关键词:密钥病历解密

刘相汝

(四川大学网络空间安全学院,成都 610207)

0 引言

信息技术改变了我们的生产生活方式,信息化深入推进使得数据激增的同时,也导致了“数据孤岛”问题,这对于数据的共享非常不利,尤其在我国的医疗数据领域,这种情况更严重。医院与医院之间的系统来自不同厂商,数据采集的方式和标准不统一,数据之间不互通,导致患者在就诊时需要重复挂号,重新检查,重新在各医院录入电子病历。与此同时另一个尖锐的问题也暴露在医院之间,即面对这些患者的医疗隐私数据所带来的数据安全问题,这是值得研究的。关于医疗数据的泄露问题也是层出不穷,美国Broward Health医疗保健系统于2022年初披露了一起该系统数据泄露事件,其影响人数高达百万。我国近几年也对数据安全与个人信息安全给予高度重视。2021年9月《数据安全法》正式施行,其中详细阐述了数据安全生命周期相关的内容。基于上述因素,本文设计了基于面向数据体系结构和密文策略属性基加密的电子病历安全共享系统,其目的在于解决病人的电子病历在各医院之间的使用问题,即包括病历的安全存储、安全共享等。

1 相关工作

1.1 Data Oriented Architecture(DOA)的发展

面向数据体系结构(DOA)是一种在大数据上发展的软件体系结构。在该体系中,主要的组件有数据注册中心,即通过对数据的描述完成注册;数据权限中心,即完成数据的访问控制授权;数据异常控制中心,即完成对异常的监测;若干数据应用单元,即将数据的接口开放到对应端口。面向数据安全体系结构(DOSA)的发展是在DOA基础之上添加了数字水印等相关内容。

1.2 Ciphertext-Policy Attribute-Based Encryption(CP-ABE)的发展

SHAMIR提出基于身份的加密机制(IBE)和签名方案,如果知道某人的相关身份信息,可以向他发送只有他能阅读的信息,并且可以验证只有他能产生的签名。SAHAI和WATERS提出基于模糊身份的加密机制(FIBE),该方案使得用于加密密文的私钥和公钥之间的身份具有容错性。GOYAL等提出基于密钥策略的属性加密方案(KP-ABE),该方案用属性描述密文,将私钥与访问结构联系在一起,因为描述密文的属性是固定的,所以这种方案中加密模式不够灵活。BETHENCOURT等提出基于密文策略的属性加密方案(CP-ABE),与KP-ABE不同的是,在该项方案中用属性来描述用户,将访问结构与密文联系在一起,访问结构决定了谁可以解密密文,因为访问结构会产生多种多样的方式,所以这种方案的加密模式更加灵活。

2 系统设计

2.1 系统需求分析

由于现在医院之间的系统并不互通,而患者往往会在多个医院之间进行医疗诊治,因此实际应用时会出现四点弊端:

(1)患者持有的纸质病历易丢失;

(2)电子病历不流通,数据孤岛现象;

(3)重复检查和诊疗;

(4)不利于医学研究的发展。

与此同时,医疗数据有很高的研究价值,且隐私等级很高,但是安全保护程度不够,导致患者个人信息泄露。因此,在构建该系统时要思考的要点是数据安全存储、安全共享以及保证数据细粒度的访问控制。

因此,本系统的总体需求如下:

(1)打破目前医疗电子病历系统中存在的数据孤岛,建立一个可以实现在不同医疗机构中进行数据共享的电子病历共享系统,使得患者医疗信息可以跨医疗机构共享,提升患者的就医体验并节省医疗资源,达到患者和医疗机构双赢的目的。

(2)在实现医疗数据在不同医疗机构之间互联互通的基础上,确保患者的医疗数据隐私安全。

(3)将医疗数据共享的权限掌握在患者自己的手中,细粒度的访问控制权限可以进一步保护数据安全。

2.2 功能性需求分析

本系统的用户角色主要包括患者、医生以及系统的管理人员。患者的主要功能就是提供病历到系统中,医生的主要功能是能够查看患者的病历,系统管理人员的主要功能是维护各实体及系统的正常运行。

患者的功能用例如图1所示。

图1 患者功能管理用例图

在本系统中,病人的功能用例组成:

(1)登录注册功能。患者进入注册页面,在注册页面上选择患者角色,并填写相关的信息进行注册。

(2)个人信息管理功能。在该模块患者可以查看或修改自己的个人信息。还有生成个人密钥SK的功能,点击即可按患者角色的相应字段生成个人的密钥。

(3)个人病历管理功能。在该模块患者可以查看自己上传的病历信息。并且在上传病历的时候对病历进行对称加密,然后对加密病历的对称密钥进行密文策略访问控制加密(CPABE),设置对应的访问控制结构,即允许谁可以访问自己的病历。

医生的功能用例如图2所示。

图2 医生功能管理用例图

在本系统中,医生的功能用例组成:

(1)登录注册功能。医生进入注册页面,在注册页面上选择医生角色,并填写自己的信息进行注册。

(2)个人信息管理功能。在该模块医生可以查看或修改自己的个人信息。还有生成个人密钥SK的功能,点击即可按医生角色的相应字段生成个人的密钥。

(3)查看病历功能。在该模块中,医生可以看到所有患者的病历,医生可以根据患者的身份证号码或者姓名进行病历搜索,然后查看对应患者的病历。点击查看功能时,系统会验证当前医生的密钥是否满足访问控制结构,如果满足,那么会获得解密的病历,下载病历的同时会生成包含医生个人信息和病历信息的数字指纹嵌入解密的病历中;如果不满足,则会弹出没有访问控制权限。

管理员的功能用例如图3所示。

图3 管理员功能管理用例图

在本系统中,管理员的功能用例组成:

(1)账号管理功能。这个模块主要包括对系统内部账户的注销,用户信息的修改功能。

(2)授权中心管理,生成CP-ABE的PK和MSK,生成SM4对称加密密钥。

(3)关于本系统基本实体的管理,包括对各实体内容进行增删改查的操作。

3 系统流程设计

3.1 总体架构设计

如图4所示,该系统基于B/S模式设计,加密、授权中心和解密是其主要功能。加密模块调用SM4算法为患者上传的病历进行对称加密,然后对SM4的密钥进行CP-ABE加密。解密模块为医生要查看的病历进行解密操作。首先进行CP-ABE解密,如果解密成功则能进行下一步SM4解密,如果CP-ABE解密失败则弹出没有权限,然后用获取的SM4密钥进行解密获取病历,用户下载的是添加了当前用户信息水印的病历。授权中心即生成PK,MSK,SK保证用户的操作。用户通过页面操作可以实现对应的功能。

图4 总体架构设计图

3.2 流程设计

3.2.1 用户注册

如图5所示,用户进入登录页面,点击注册按钮,系统会自动跳转到注册页面,用户选择自己要注册的角色完成注册。

图5 用户注册流程图

3.2.2 用户登录

如图6所示,用户登录系统,输入相关账号密码,判断该账号是否已注册,如果没有注册,那么进行注册后再次进入,输入账号密码;如果已注册,那么成功进入系统。

图6 用户登录流程图

3.2.3 生成个人私钥

如图7所示,用户成功登录系统之后进入系统首页,点击右上角的用户中心,进入用户信息详情页,点击信息展示下面的生成私钥按钮,系统会按角色生成每个用户独一无二的私钥。对于患者,会提取患者的用户id生成私钥;对于医生,会提取医生的id,医院,科室,职称,从业年限生成私钥。

图7 用户生成个人私钥流程图

3.2.4 患者上传并加密病历

如图8所示,患者进入病历中心,点击新增病历,上传成功之后,在病历列表中对病历点击加密,系统对该病历使用SM4对称加密,患者制定访问控制策略(选择医生的属性),即系统用CP-ABE加密SM4的密钥,生成以.cpabe结尾的加密文件(加密的对称加密密钥),即只有满足这些属性的医生才能获得SM4对称加密的密钥。

图8 患者上传并加密病历流程图

3.2.5 医生访问病历

如图9所示,医生在搜索栏输入要查看的病例,找到之后点击阅读,系统判断医生是否为急救医生,判断依据是查看是否是管床医生或者急救医生,如果是,医生可以获得万能钥匙解密;如果不是急救,判断该医生的密钥是否能打开,如果能打开,系统解密获得SM4对称密钥,用SM4密钥解密病历,嵌入用户信息水印;如果不能打开,那么显示没有权限。

图9 医生访问病历流程图

3.3 安全性分析

该系统首先在基于角色的访问控制之下为患者、医生和管理员三种角色分别授予对应角色的访问页面和操作功能的权限,然后在此基础上采用对称加密和密文策略属性基加密的混合加密方式,即患者可以进一步对上传的病历制定访问控制权限,只有满足权限的医生才可以访问,更好地保障了数据的访问安全。

4 系统实现与效果

图10给出了系统核心功能实现效果图,在病历信息管理页面根据角色的不同显示的是不同的操作。患者和管理员进入该信息管理页面是拥有所有的操作,但是患者登录时只显示该患者的所有病历信息。医生进入该管理页面时可以看到所有患者的病历,但是只拥有下载功能,即医生只能查看病历信息,并且在下载的病历时会嵌入当前医生的信息。

图10 系统核心功能实现效果图

5 结语

本文给出了关于电子病历安全共享系统的设计。根据面向数据软件体系结构,结合密文策略属性加密,本文进行了相关研究。以电子病历共享为背景,从功能需求出发,梳理患者、医生和管理员的功能用例图,从基于角色访问控制到密文策略属性基加密细化对数据的访问,从整体架构到各个用户角色对于主要功能的使用流程图详细阐述了该系统的功能。后续的工作方向是就目前的设计,研究关于数据泄露之后溯源以及访问权限撤销等。

猜你喜欢

密钥病历解密
解密电视剧 人世间
电子病历评级的分析与总结
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
“病例”和“病历”
炫词解密
炫词解密
Android密钥库简析
临床表现为心悸的预激综合征B型心电图1例