劉相汝
(四川大學網(wǎng)絡空間安全學院,成都 610207)
信息技術改變了我們的生產(chǎn)生活方式,信息化深入推進使得數(shù)據(jù)激增的同時,也導致了“數(shù)據(jù)孤島”問題,這對于數(shù)據(jù)的共享非常不利,尤其在我國的醫(yī)療數(shù)據(jù)領域,這種情況更嚴重。醫(yī)院與醫(yī)院之間的系統(tǒng)來自不同廠商,數(shù)據(jù)采集的方式和標準不統(tǒng)一,數(shù)據(jù)之間不互通,導致患者在就診時需要重復掛號,重新檢查,重新在各醫(yī)院錄入電子病歷。與此同時另一個尖銳的問題也暴露在醫(yī)院之間,即面對這些患者的醫(yī)療隱私數(shù)據(jù)所帶來的數(shù)據(jù)安全問題,這是值得研究的。關于醫(yī)療數(shù)據(jù)的泄露問題也是層出不窮,美國Broward Health醫(yī)療保健系統(tǒng)于2022年初披露了一起該系統(tǒng)數(shù)據(jù)泄露事件,其影響人數(shù)高達百萬。我國近幾年也對數(shù)據(jù)安全與個人信息安全給予高度重視。2021年9月《數(shù)據(jù)安全法》正式施行,其中詳細闡述了數(shù)據(jù)安全生命周期相關的內(nèi)容。基于上述因素,本文設計了基于面向數(shù)據(jù)體系結構和密文策略屬性基加密的電子病歷安全共享系統(tǒng),其目的在于解決病人的電子病歷在各醫(yī)院之間的使用問題,即包括病歷的安全存儲、安全共享等。
面向數(shù)據(jù)體系結構(DOA)是一種在大數(shù)據(jù)上發(fā)展的軟件體系結構。在該體系中,主要的組件有數(shù)據(jù)注冊中心,即通過對數(shù)據(jù)的描述完成注冊;數(shù)據(jù)權限中心,即完成數(shù)據(jù)的訪問控制授權;數(shù)據(jù)異??刂浦行?,即完成對異常的監(jiān)測;若干數(shù)據(jù)應用單元,即將數(shù)據(jù)的接口開放到對應端口。面向數(shù)據(jù)安全體系結構(DOSA)的發(fā)展是在DOA基礎之上添加了數(shù)字水印等相關內(nèi)容。
SHAMIR提出基于身份的加密機制(IBE)和簽名方案,如果知道某人的相關身份信息,可以向他發(fā)送只有他能閱讀的信息,并且可以驗證只有他能產(chǎn)生的簽名。SAHAI和WATERS提出基于模糊身份的加密機制(FIBE),該方案使得用于加密密文的私鑰和公鑰之間的身份具有容錯性。GOYAL等提出基于密鑰策略的屬性加密方案(KP-ABE),該方案用屬性描述密文,將私鑰與訪問結構聯(lián)系在一起,因為描述密文的屬性是固定的,所以這種方案中加密模式不夠靈活。BETHENCOURT等提出基于密文策略的屬性加密方案(CP-ABE),與KP-ABE不同的是,在該項方案中用屬性來描述用戶,將訪問結構與密文聯(lián)系在一起,訪問結構決定了誰可以解密密文,因為訪問結構會產(chǎn)生多種多樣的方式,所以這種方案的加密模式更加靈活。
由于現(xiàn)在醫(yī)院之間的系統(tǒng)并不互通,而患者往往會在多個醫(yī)院之間進行醫(yī)療診治,因此實際應用時會出現(xiàn)四點弊端:
(1)患者持有的紙質病歷易丟失;
(2)電子病歷不流通,數(shù)據(jù)孤島現(xiàn)象;
(3)重復檢查和診療;
(4)不利于醫(yī)學研究的發(fā)展。
與此同時,醫(yī)療數(shù)據(jù)有很高的研究價值,且隱私等級很高,但是安全保護程度不夠,導致患者個人信息泄露。因此,在構建該系統(tǒng)時要思考的要點是數(shù)據(jù)安全存儲、安全共享以及保證數(shù)據(jù)細粒度的訪問控制。
因此,本系統(tǒng)的總體需求如下:
(1)打破目前醫(yī)療電子病歷系統(tǒng)中存在的數(shù)據(jù)孤島,建立一個可以實現(xiàn)在不同醫(yī)療機構中進行數(shù)據(jù)共享的電子病歷共享系統(tǒng),使得患者醫(yī)療信息可以跨醫(yī)療機構共享,提升患者的就醫(yī)體驗并節(jié)省醫(yī)療資源,達到患者和醫(yī)療機構雙贏的目的。
(2)在實現(xiàn)醫(yī)療數(shù)據(jù)在不同醫(yī)療機構之間互聯(lián)互通的基礎上,確保患者的醫(yī)療數(shù)據(jù)隱私安全。
(3)將醫(yī)療數(shù)據(jù)共享的權限掌握在患者自己的手中,細粒度的訪問控制權限可以進一步保護數(shù)據(jù)安全。
本系統(tǒng)的用戶角色主要包括患者、醫(yī)生以及系統(tǒng)的管理人員?;颊叩闹饕δ芫褪翘峁┎v到系統(tǒng)中,醫(yī)生的主要功能是能夠查看患者的病歷,系統(tǒng)管理人員的主要功能是維護各實體及系統(tǒng)的正常運行。
患者的功能用例如圖1所示。
圖1 患者功能管理用例圖
在本系統(tǒng)中,病人的功能用例組成:
(1)登錄注冊功能?;颊哌M入注冊頁面,在注冊頁面上選擇患者角色,并填寫相關的信息進行注冊。
(2)個人信息管理功能。在該模塊患者可以查看或修改自己的個人信息。還有生成個人密鑰SK的功能,點擊即可按患者角色的相應字段生成個人的密鑰。
(3)個人病歷管理功能。在該模塊患者可以查看自己上傳的病歷信息。并且在上傳病歷的時候對病歷進行對稱加密,然后對加密病歷的對稱密鑰進行密文策略訪問控制加密(CPABE),設置對應的訪問控制結構,即允許誰可以訪問自己的病歷。
醫(yī)生的功能用例如圖2所示。
圖2 醫(yī)生功能管理用例圖
在本系統(tǒng)中,醫(yī)生的功能用例組成:
(1)登錄注冊功能。醫(yī)生進入注冊頁面,在注冊頁面上選擇醫(yī)生角色,并填寫自己的信息進行注冊。
(2)個人信息管理功能。在該模塊醫(yī)生可以查看或修改自己的個人信息。還有生成個人密鑰SK的功能,點擊即可按醫(yī)生角色的相應字段生成個人的密鑰。
(3)查看病歷功能。在該模塊中,醫(yī)生可以看到所有患者的病歷,醫(yī)生可以根據(jù)患者的身份證號碼或者姓名進行病歷搜索,然后查看對應患者的病歷。點擊查看功能時,系統(tǒng)會驗證當前醫(yī)生的密鑰是否滿足訪問控制結構,如果滿足,那么會獲得解密的病歷,下載病歷的同時會生成包含醫(yī)生個人信息和病歷信息的數(shù)字指紋嵌入解密的病歷中;如果不滿足,則會彈出沒有訪問控制權限。
管理員的功能用例如圖3所示。
圖3 管理員功能管理用例圖
在本系統(tǒng)中,管理員的功能用例組成:
(1)賬號管理功能。這個模塊主要包括對系統(tǒng)內(nèi)部賬戶的注銷,用戶信息的修改功能。
(2)授權中心管理,生成CP-ABE的PK和MSK,生成SM4對稱加密密鑰。
(3)關于本系統(tǒng)基本實體的管理,包括對各實體內(nèi)容進行增刪改查的操作。
如圖4所示,該系統(tǒng)基于B/S模式設計,加密、授權中心和解密是其主要功能。加密模塊調(diào)用SM4算法為患者上傳的病歷進行對稱加密,然后對SM4的密鑰進行CP-ABE加密。解密模塊為醫(yī)生要查看的病歷進行解密操作。首先進行CP-ABE解密,如果解密成功則能進行下一步SM4解密,如果CP-ABE解密失敗則彈出沒有權限,然后用獲取的SM4密鑰進行解密獲取病歷,用戶下載的是添加了當前用戶信息水印的病歷。授權中心即生成PK,MSK,SK保證用戶的操作。用戶通過頁面操作可以實現(xiàn)對應的功能。
圖4 總體架構設計圖
3.2.1 用戶注冊
如圖5所示,用戶進入登錄頁面,點擊注冊按鈕,系統(tǒng)會自動跳轉到注冊頁面,用戶選擇自己要注冊的角色完成注冊。
圖5 用戶注冊流程圖
3.2.2 用戶登錄
如圖6所示,用戶登錄系統(tǒng),輸入相關賬號密碼,判斷該賬號是否已注冊,如果沒有注冊,那么進行注冊后再次進入,輸入賬號密碼;如果已注冊,那么成功進入系統(tǒng)。
圖6 用戶登錄流程圖
3.2.3 生成個人私鑰
如圖7所示,用戶成功登錄系統(tǒng)之后進入系統(tǒng)首頁,點擊右上角的用戶中心,進入用戶信息詳情頁,點擊信息展示下面的生成私鑰按鈕,系統(tǒng)會按角色生成每個用戶獨一無二的私鑰。對于患者,會提取患者的用戶id生成私鑰;對于醫(yī)生,會提取醫(yī)生的id,醫(yī)院,科室,職稱,從業(yè)年限生成私鑰。
圖7 用戶生成個人私鑰流程圖
3.2.4 患者上傳并加密病歷
如圖8所示,患者進入病歷中心,點擊新增病歷,上傳成功之后,在病歷列表中對病歷點擊加密,系統(tǒng)對該病歷使用SM4對稱加密,患者制定訪問控制策略(選擇醫(yī)生的屬性),即系統(tǒng)用CP-ABE加密SM4的密鑰,生成以.cpabe結尾的加密文件(加密的對稱加密密鑰),即只有滿足這些屬性的醫(yī)生才能獲得SM4對稱加密的密鑰。
圖8 患者上傳并加密病歷流程圖
3.2.5 醫(yī)生訪問病歷
如圖9所示,醫(yī)生在搜索欄輸入要查看的病例,找到之后點擊閱讀,系統(tǒng)判斷醫(yī)生是否為急救醫(yī)生,判斷依據(jù)是查看是否是管床醫(yī)生或者急救醫(yī)生,如果是,醫(yī)生可以獲得萬能鑰匙解密;如果不是急救,判斷該醫(yī)生的密鑰是否能打開,如果能打開,系統(tǒng)解密獲得SM4對稱密鑰,用SM4密鑰解密病歷,嵌入用戶信息水??;如果不能打開,那么顯示沒有權限。
圖9 醫(yī)生訪問病歷流程圖
該系統(tǒng)首先在基于角色的訪問控制之下為患者、醫(yī)生和管理員三種角色分別授予對應角色的訪問頁面和操作功能的權限,然后在此基礎上采用對稱加密和密文策略屬性基加密的混合加密方式,即患者可以進一步對上傳的病歷制定訪問控制權限,只有滿足權限的醫(yī)生才可以訪問,更好地保障了數(shù)據(jù)的訪問安全。
圖10給出了系統(tǒng)核心功能實現(xiàn)效果圖,在病歷信息管理頁面根據(jù)角色的不同顯示的是不同的操作?;颊吆凸芾韱T進入該信息管理頁面是擁有所有的操作,但是患者登錄時只顯示該患者的所有病歷信息。醫(yī)生進入該管理頁面時可以看到所有患者的病歷,但是只擁有下載功能,即醫(yī)生只能查看病歷信息,并且在下載的病歷時會嵌入當前醫(yī)生的信息。
圖10 系統(tǒng)核心功能實現(xiàn)效果圖
本文給出了關于電子病歷安全共享系統(tǒng)的設計。根據(jù)面向數(shù)據(jù)軟件體系結構,結合密文策略屬性加密,本文進行了相關研究。以電子病歷共享為背景,從功能需求出發(fā),梳理患者、醫(yī)生和管理員的功能用例圖,從基于角色訪問控制到密文策略屬性基加密細化對數(shù)據(jù)的訪問,從整體架構到各個用戶角色對于主要功能的使用流程圖詳細闡述了該系統(tǒng)的功能。后續(xù)的工作方向是就目前的設計,研究關于數(shù)據(jù)泄露之后溯源以及訪問權限撤銷等。