劉榮管,王兆棟,鄧蘭華,陳長源,陳佩江
(1. 臨沂億通軟件有限公司產(chǎn)品開發(fā)部,臨沂 276000;2. 臨沂市大數(shù)據(jù)協(xié)會,臨沂 276000;3. 臨沂大學(xué)機(jī)械與車輛工程學(xué)院,臨沂 276000)
近年來,隨著計(jì)算機(jī)和信息技術(shù)的快速發(fā)展,電子病歷已基本取代紙質(zhì)文本,給患者就醫(yī)、醫(yī)院管理都帶來了極大便利。病歷的電子化既解決了紙質(zhì)文本的存放和丟失問題,也為科學(xué)研究提供了寶貴資源。然而,隨著智慧醫(yī)療和醫(yī)療大數(shù)據(jù)應(yīng)用的快速發(fā)展,仍存在一些障礙。一是醫(yī)療數(shù)據(jù)的安全存儲,電子病歷一般由醫(yī)療機(jī)構(gòu)集中存儲在單位數(shù)據(jù)庫,容易受到單點(diǎn)攻擊,導(dǎo)致患者數(shù)據(jù)丟失和隱私泄露[1];二是醫(yī)療數(shù)據(jù)共享,各醫(yī)療機(jī)構(gòu)的信息系統(tǒng)不兼容,溝通不暢,擔(dān)心信息泄露,不愿分享信息,形成數(shù)據(jù)孤島;三是數(shù)據(jù)所有權(quán),患者是電子病歷的所有者,希望有權(quán)管理個(gè)人數(shù)據(jù),并可以根據(jù)請求者身份和內(nèi)容決定是否授予相應(yīng)權(quán)限。
醫(yī)療數(shù)據(jù)的共享和訪問新技術(shù)主要有兩種方法:云計(jì)算和區(qū)塊鏈。云計(jì)算是指把醫(yī)療數(shù)據(jù)上傳到云端實(shí)現(xiàn)存儲和共享,有效減少本地存儲成本,方便用戶訪問數(shù)據(jù),但這種方法的隱患是如果云端服務(wù)器出現(xiàn)故障或受到惡意攻擊,會引起數(shù)據(jù)丟失或泄露[2]。區(qū)塊鏈?zhǔn)且环N由許多節(jié)點(diǎn)通過一致性協(xié)議進(jìn)行維護(hù)的分布式賬本,具備去中心化、可追溯、不可篡改、集體維護(hù)等特點(diǎn),醫(yī)療數(shù)據(jù)可以在互不信任的環(huán)境下保證安全和使用的可追溯性,電子病歷等數(shù)據(jù)可以在眾多醫(yī)療機(jī)構(gòu)之間安全傳輸和共享,實(shí)現(xiàn)醫(yī)療體系的互聯(lián)互通,提高醫(yī)療服務(wù)質(zhì)量和準(zhǔn)確的遠(yuǎn)程會診[3],為醫(yī)療數(shù)據(jù)共享所面臨的問題提供了新的解決方法。
電子病歷等醫(yī)療數(shù)據(jù)的共享與應(yīng)用具有極其重要的意義,本文基于區(qū)塊鏈技術(shù),提出一個(gè)電子病歷的訪問控制方案,實(shí)現(xiàn)醫(yī)療數(shù)據(jù)的共享和隱私保護(hù),促進(jìn)醫(yī)療大數(shù)據(jù)的應(yīng)用。
區(qū)塊鏈?zhǔn)且环N鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),以時(shí)間為順序把數(shù)據(jù)區(qū)塊相連接,其核心是分布在P2P 網(wǎng)絡(luò)中的賬本,用于存儲交易公共記錄,對所有用戶共享以及驗(yàn)證交易。
作為一種數(shù)據(jù)結(jié)構(gòu),區(qū)塊由區(qū)塊內(nèi)結(jié)構(gòu)與區(qū)塊間鏈?zhǔn)浇Y(jié)構(gòu)組成。一個(gè)區(qū)塊結(jié)構(gòu)含有頭信息和體信息。頭信息是元數(shù)據(jù),包括時(shí)間戳、前區(qū)塊哈希值、隨機(jī)數(shù)、Merkle 根值等,用于驗(yàn)證區(qū)塊,并把其前驅(qū)和后繼區(qū)塊聯(lián)系起來;體信息用于交易序列[4]。哈希值作為區(qū)塊的唯一標(biāo)識,把區(qū)塊鏈接起來,前區(qū)塊哈希值決定了所鏈接的唯一區(qū)塊,最終構(gòu)成一種鏈狀數(shù)據(jù)結(jié)構(gòu)。
作為分布式系統(tǒng),為讓所有主機(jī)都能達(dá)到一致性,區(qū)塊鏈利用了共識機(jī)制,常用算法包括:權(quán)益證明(PoS)、工作量證明(PoW)、委托權(quán)益證明(DPoS)和實(shí)用拜占庭容錯(cuò)算法(PBFT)等。
在委托權(quán)益證明區(qū)塊鏈中,節(jié)點(diǎn)能根據(jù)其權(quán)益來選擇證人[5],獲得最高票數(shù)的前N個(gè)節(jié)點(diǎn)具有記賬權(quán)利,至少有50%的投票利益相關(guān)者才有足夠的權(quán)力下放。DPoS 的每個(gè)客戶端都有權(quán)利選擇可信任節(jié)點(diǎn)[6],被選中節(jié)點(diǎn)可輪流記賬,有效地減少了驗(yàn)證節(jié)點(diǎn)的個(gè)數(shù),既能保證網(wǎng)絡(luò)安全,又提高共識驗(yàn)證效率,降低運(yùn)行成本,更高效、節(jié)能和去中心化[7]。
智能合約被定義為是可以自動(dòng)執(zhí)行的電子版合同,其實(shí)智能合約就是代碼程序,它被部署在區(qū)塊鏈區(qū)塊中,當(dāng)一個(gè)預(yù)先編制好的條件被觸發(fā)時(shí),智能合約自動(dòng)執(zhí)行該工作,目的是用于驗(yàn)證和執(zhí)行合約。智能合約協(xié)商簽訂后,如果有用戶發(fā)起交易,會向區(qū)塊鏈網(wǎng)絡(luò)提交智能合約,經(jīng)網(wǎng)絡(luò)傳輸和礦工驗(yàn)證存儲在特定區(qū)塊,向用戶返回地址和接口等信息,可調(diào)用合約[8]。合約代碼檢查信息、判斷是否滿足觸發(fā)條件,并執(zhí)行響應(yīng)、更新狀態(tài)。
智能合約適用于各種不同的區(qū)塊鏈網(wǎng)絡(luò),并可應(yīng)用在電子商務(wù)、供應(yīng)鏈優(yōu)化等具體場景中,智能合約執(zhí)行的自動(dòng)化和智能性提高了交易的安全性和效率。
在基于區(qū)塊鏈的電子病歷系統(tǒng)中,產(chǎn)生新區(qū)塊的醫(yī)院賬號、患者號碼和加密的病歷內(nèi)容寫入?yún)^(qū)域數(shù)據(jù)庫。如果某患者在多個(gè)機(jī)構(gòu)就診,區(qū)域數(shù)據(jù)庫將存儲若干條記錄。電子病歷類型多樣,文本內(nèi)容豐富,涉及的數(shù)據(jù)既有健康數(shù)據(jù),也有非健康數(shù)據(jù),前者與個(gè)人身體狀況相關(guān)。有些數(shù)據(jù)涉及患者隱私,比如個(gè)人屬性數(shù)據(jù)、健康狀況數(shù)據(jù)、醫(yī)療應(yīng)用數(shù)據(jù)、醫(yī)療資金和支付數(shù)據(jù)等,這些數(shù)據(jù)的隱私情況不同,利用價(jià)值也有區(qū)別。
為有效控制電子病歷訪問,按數(shù)據(jù)敏感程度把患者隱私信息分為三個(gè)等級:一級敏感度最高,對應(yīng)權(quán)值最大,二級、三級的相應(yīng)權(quán)值依次減小。一級隱私信息主要是病人的身份信息,比如:姓名、性別、身份證號、家庭住址等;二級隱私信息主要為患者醫(yī)療記錄;三級隱私信息主要為患者診斷輔助數(shù)據(jù)。將患者的各級隱私逐條分塊處理,加密存儲。
為了實(shí)現(xiàn)電子病歷的共享和訪問控制安全,基于區(qū)塊鏈設(shè)計(jì)一個(gè)電子病歷共享模型,其中主要有四個(gè)實(shí)體。
(1)權(quán)威中心,即密鑰生成中心。由區(qū)塊鏈中的醫(yī)院、醫(yī)學(xué)研究院等機(jī)構(gòu)聯(lián)合組成,負(fù)責(zé)系統(tǒng)主密鑰的生成,并和各機(jī)構(gòu)協(xié)商生成對應(yīng)私鑰[9]。
(2)數(shù)據(jù)擁有者,即數(shù)據(jù)的所有者。患者擁有自己的電子病歷數(shù)據(jù),一般授權(quán)醫(yī)生生成病歷,加密存儲在區(qū)塊鏈中。在數(shù)據(jù)共享過程中,負(fù)責(zé)生成代理重加密密鑰,并發(fā)送給代理者[10]。
(3)數(shù)據(jù)用戶,即各醫(yī)療機(jī)構(gòu)。醫(yī)療機(jī)構(gòu)如有需求,經(jīng)授權(quán)后發(fā)送請求,獲取重新加密電子病歷文本,并可利用私鑰來解密閱讀。
(4)代理者,即執(zhí)行重加密的節(jié)點(diǎn)。根據(jù)委托權(quán)益證明共識算法所推舉出來的礦工節(jié)點(diǎn)作為代理節(jié)點(diǎn),對數(shù)據(jù)擁有者發(fā)送的密文重新加密。
醫(yī)療信息化系統(tǒng)擁有大量用戶,各有其特點(diǎn),可利用用戶特點(diǎn)制定訪問控制模型,更好地滿足醫(yī)療電子病歷系統(tǒng)的要求。此模型主要有如下幾個(gè)基本要素:用戶、角色、權(quán)限和會話;為用戶分配角色,角色具備相應(yīng)權(quán)限,在系統(tǒng)應(yīng)用中,角色把用戶與權(quán)限之間聯(lián)系起來,用戶通過其所處角色具有了相應(yīng)權(quán)限。
為做好電子病歷的隱私信息保護(hù),基于用戶角色實(shí)現(xiàn)電子病歷的訪問控制,主要過程如下:①根據(jù)要求的安全參數(shù),進(jìn)行系統(tǒng)初始化;②根據(jù)系統(tǒng)初始化結(jié)果,生成主密鑰,得到主公鑰和主私鑰;③根據(jù)主密鑰,生成用戶私鑰;④對電子病歷文本進(jìn)行加密;⑤對電子病歷文本進(jìn)行解密。
將制定的訪問控制流程用智能合約來實(shí)現(xiàn),降低了管理員的工作量,提高了隱私數(shù)據(jù)安全性[11]。本智能合約定義了一系列角色與相關(guān)訪問權(quán)限,不同角色有不同權(quán)限,不同權(quán)限用戶可操作不同的數(shù)據(jù)檢索指令。當(dāng)數(shù)據(jù)訪問者的角色滿足權(quán)限要求,經(jīng)身份認(rèn)證后,方能滿足醫(yī)療信息訪問請求。
基于角色的電子病歷訪問控制流程如圖1所示,主要有六個(gè)步驟:身份驗(yàn)證、處理訪問信息、訪問權(quán)限驗(yàn)證、信息量計(jì)算、訪問控制策略和訪問記錄修改等。

圖1 基于角色的EMR訪問控制流程
電子病歷訪問控制模型對不同用戶進(jìn)行了角色和權(quán)限的劃分,利用區(qū)塊鏈技術(shù),電子病歷數(shù)據(jù)分塊存儲,具有文件存儲安全、防止數(shù)據(jù)篡改和盜竊,制定動(dòng)態(tài)訪問策略,可以實(shí)現(xiàn)對醫(yī)療數(shù)據(jù)的完全控制,有效保護(hù)患者隱私。
為測試電子病歷訪問控制模型的性能,利用訪問行為的準(zhǔn)確率來驗(yàn)證安全性,主要指標(biāo)有正常訪問行為準(zhǔn)確識別率、非法訪問行為準(zhǔn)確識別率和總訪問行為準(zhǔn)確識別率。
測試數(shù)據(jù)為公司所用電子病歷數(shù)據(jù)庫,在實(shí)驗(yàn)中,選取120 次電子病歷訪問行為進(jìn)行測試。在每次測試中,設(shè)置為不同角色,既包括本科室的合法訪問,也有跨部門的非法訪問,其中,符合訪問控制策略的行為,即正常訪問數(shù)量為40;不符合控制策略,即非法訪問數(shù)量為80。電子病歷訪問控制的測試結(jié)果如圖2所示。

圖2 電子病歷訪問行為識別結(jié)果
根據(jù)圖2 測試結(jié)果,經(jīng)分析可知:正常訪問、非法訪問和總訪問的行為識別準(zhǔn)確率分別為97.5%、96.25%、96.7%。同時(shí)可發(fā)現(xiàn),盡管電子病歷訪問行為正確識別率不是100%,但由于對每次訪問都有記錄,可以有效約束訪問行為,防止醫(yī)療數(shù)據(jù)隱私泄露。
鑒于醫(yī)療大數(shù)據(jù)應(yīng)用的意義,電子病歷等醫(yī)療數(shù)據(jù)需要在各醫(yī)療機(jī)構(gòu)中傳輸和共享,醫(yī)療數(shù)據(jù)的安全性和患者隱私保護(hù)是重要的研究熱點(diǎn)。考慮到區(qū)塊鏈的去中心化和防篡改等特點(diǎn),基于用戶角色,提出了一種電子病歷訪問控制方案,提高醫(yī)療信息的隱私保護(hù)。
區(qū)塊鏈的信息安全以私鑰安全為前提,患者私鑰一旦丟失,就需要重新考慮隱私安全性;本方案是以DPoS 算法為基礎(chǔ)實(shí)現(xiàn)的,其效率和應(yīng)用效果有待進(jìn)一步提高。此外,由于性能測試采用的公司測試數(shù)據(jù)庫,電子病歷規(guī)模比較小,測試結(jié)果難免會受到一定影響,在后面研究中,需要改進(jìn)算法和模型,增加測試數(shù)據(jù)集,提高訪問控制效果。