□ 陳靜 CHEN Jing 付玉敏 FU Yu-min
Cloud computing has the characteristics of ultra-large scale, virtualization, on-demand services, and strong data processing capability,which means that it has built-in advantages for storing electronic health records (EHR) of patients. However, cloud computing requires a large number of users, which brings drawbacks such as privacy leakage, security risks, and data silos. Based on the privacy protection scheme of blockchain smart contract, the medical institution creates a scattered, decentralized content management system for EHR with homomorphic encryption algorithm. The system automatically hides the identity information of the patients when accessing their EHR, which promotes the EHR information sharing among the medical institutions while protecting patient privacy.
電子健康記錄(電子健康檔案,HER)是電子化的個人健康記錄[1],記錄著患者個人疾病檢測與治療的整個過程,包含病患的電子病歷(Electronic medical record,EMR)[2]。在醫療過程中,通過云計算存儲患者EHR已經越來越普遍,醫療機構可以根據互聯網終端的實際需要對相關共享數據信息進行計算和分析。云計算處理數據信息的能力十分強大,存儲HER具有先天的優勢。然而,云計算也帶來HER隱私泄漏與信息安全方面的隱患。
1.隱私泄露與安全隱患。存儲在云端的患者疾病與健康信息一方面解決了信息共享,推動著醫療技術進步,但同時患者個人信息也遭受著泄露的風險,患者個人一般無法對訪問自己醫療數據的他方設置權限,隱私隨時可能被侵犯。另外,醫療機構及其工作人員需花費相當多的時間和精力向有關部門提交訪問申請,在醫療數據使用前要先通過權限審查,一方面工作效率低下,另一方面也存在醫療數據被泄露、篡改以及數據傳輸中的安全隱患等風險。
近年來互聯網技術的高速發展與醫療數據的爆炸式增長,迫使醫療機構的數據信息從內網逐漸走向云端,然而醫療行業的數據安全并未得到足夠重視,導致其成為信息泄露的高發領域,醫療信息泄露的事故接連發生[3]。2017年《法制日報》報道了一起特大醫療信息泄露案件,某部委醫療服務系統被“黑客”入侵,7億多條患者電子健康記錄遭到洗劫,8000多萬條公民個人信息遭倒賣。除此之外,醫療機構對患者的EHR具有絕對的控制權,EHR中包含的如身份證號、手機號、電子郵箱、活動軌跡和居住地址,醫療就診記錄等用戶不愿透露的敏感信息,在存入云端之前都缺乏相應的處理[4]。然而,EHR的應用對象繁多,有醫療機構人員、疾控部門、政府衛生行政部門、藥企等,當將個人的電子健康記錄統統置于云端,個人隱私的泄露更易發生,數據安全的保障也更加困難,相應的,云服務提供商規劃安全策略也會更加復雜,安全隱患也大為增加[5]。
2.數據孤島。通常情況下,EHR是將患者病歷或醫生辦公室筆記中的記錄或材料加以電子化的結果。患者的EHR具有綜合性,包括各階段檢查報告、手術記錄、診斷中的各項檢查依據、出院報告以及和所有醫務人員接觸后的相關記錄,記載信息全面準確,所以經常會被調用。即便云計算環境下的EHR存儲已是專業化的示范系統,但無法互聯互通仍然是個大問題,醫療機構或醫生之間的意見在數據上傳云端之前就缺乏溝通或協商[6]。以美國為例,其就醫分流機制讓這項工作變得十分艱難,65歲以上的老年人每年平均在4個醫療機構的7個醫生處就醫,即便這些醫療機構中的部分或大多數使用EHR,也只會在特定情況下加以匯總,即便嘗試匯總,檔案的綜合過程也會相當困難。數以百計的醫療機構或醫務人員獨自運作著程序互不兼容的EHR,使得碎片化程度成倍上升。換句話說,患者的EHR往往存儲于各醫療機構,無法實現診療信息在醫療體系中的無障礙流通,實現醫療數據共享[7]。多年的監管遏制了醫療信息管理領域的技術創新,同時,一系列不兼容的后端系統和零散的數據限制了患者參與治療的能力。“數據孤島”“不實用”是目前這種互不兼容系統的現狀。
目前,國外已經有較多學者在研究并設計基于區塊鏈技術的EHR系統,這些系統不僅在理論上具有指導意義,更具有一定的實踐操作性,相當一部分EHR系統已經應用于醫療實踐中。雖然我國對基于區塊鏈的患者敏感數據保護的研究還處于剛剛起步狀態,但我國具有龐大的醫患群體。創新的關鍵在于,如何從細節方面切入,通過提供安全且個性化的醫療數據服務,科學地推動患者參與醫療保健[8]。依托于區塊鏈的醫療智能合約可有效防范數據安全隱患,區塊鏈的網絡環境特點在于去中心化、不可篡改,患者的EHR可被上傳并加密存儲在區塊鏈上,患者用戶不但可以通過智能合約對個人EHR設置訪問權限,實現對個人EHR完整的控制權,實現醫療信息之間的共享,進而實現信息綜合分析,提供決策支持[9],同時無需擔心數據泄露與篡改[10]。所以,采用區塊鏈技術為醫療機構之間的患者EHR創建分散的內容管理系統,在保護患者隱私的同時促進信息資源共享[11],是一種可行的方式,該系統可以為患者用戶提供一個新穎的、分散的數據管理系統,使用區塊鏈來保存和管理患者的EHR,它可以最大限度地滿足患者、醫療機構和醫療機構從業人員的需求。
用戶進行云服務的主要手段是數據傳輸,這個過程也就成為了最容易發生數據泄露的環節,因此可以采取如對稱加密或非對稱加密的方式,以確保數據傳輸過程的安全性和隱私性。除此之外,還可以賦予患者用戶訪問控制權,系統通過分析數據傳輸過程中潛在的風險,對無權訪問者設置針對性訪問權限,同時注重加密方式的多樣性,只有當用戶有訪問權限并滿足各項條件時才能訪問。一般情況下,相關組件信息等重要的數據,必須相互關聯,且集中存儲在同一個信息區塊中,以防范數據篡改。這樣一來,不但可以實現數據資源共享,還極大地保障了數據的安全與隱私。
以健康保險理賠為例,傳統的理賠方式是,保險公司通過查看患者的EHR,將其與數據庫中的投保信息作比較,最終作出理賠與否的決定。在這個過程中,患者的EHR隱私極易被保險公司侵犯,但似乎又難以找到一個既不侵犯隱私又不影響理賠的兩全方案。而區塊鏈聯合同態加密技術的方案可以解決這一難題。總體思路是:在醫療領域建立一條公共鏈,患者在該公共鏈上注冊成為用戶,并將自己的EHR信息上傳至區塊鏈,使EHR保存在一個去中心化的系統上,供醫療機構及其人員做研究,同時患者也可以隨時訪問查看自己的EHR信息。值得一提的是,患者EHR與以太坊地址是以一組散列分布的數組和對應數組的哈希值存在于合約中。該合約在患者第一次入院治療時就會創建,作用類似于傳統保險理賠中的申請書,只不過是由醫院保存。患者通過醫院提出保險理賠申請,醫院將該申請告知保險公司,保險公司將訪問理賠合約中的數組,但由于EHR中的數據信息已通過同態加密處理,與患者有關的身份信息和EHR信息也已經同時隱藏,保險公司通過密鑰對數據進行解密后獲取計算結果,將其反饋給合約,若符合理賠條件,則自動向患者的以太坊地址進行轉賬。該方案正是將智能合約和同態加密技術相結合,在隱藏理賠對象(患者)身份信息和電子健康記錄的情況下,實現保險公司的自動理賠[12]。
如何保護患者用戶的EHR隱私,如何加強患者用戶對EHR的控制權以及如何保證保險公司的安全理賠,對基于區塊鏈系統的EHR建設具有重要的意義。本部分仍以傳統理賠存在的隱私泄露為例,通過改進傳統理賠方式中保險公司可肆無忌憚地查看患者明文EHR的弊端,強化對患者EHR信息的保護,最終提出一個基于智能合約與同態加密的自動理賠方案。在本方案中,醫療機構會為每一個患者用戶創建一個理賠合約,該合約的功能相當于傳統保險理賠中的理賠申請單,一旦公布智能合約,就不能再進行更改,這樣合約中的信息才不會被篡改。倘若調用智能合約,只需要知道該合約所在的以太坊地址即可。
在理賠進行之前,假設醫療機構和保險公司已經約定好使用某一特定的同態加密算法,并且公鑰和私鑰已分別由雙方保存。那么,同態加密下的自動理賠合約運行過程如下:
第一步,患者去醫療機構就診,醫生將該患者的EHR上傳并保存至醫療機構的數據庫;第二步,醫療機構向保險公司發出獲取患者保險信息的請求;第三步,保險公司在收到該請求后,將患者參與投保的疾病病種分別加密,比如1號病種加密形式為E(M1),2號病種加密形式為E(M2),…,E(Mn)然后將加密的病種發送給醫院;若是保險公司沒有該患者的投保信息,依然要發送通知提示醫療機構;第四步,醫療機構開始創建自動理賠合約,并分別計算出由對稱加密密鑰加密的EHR和患者EHR中所記錄疾病M的哈希值;計算E(M1)×E(M)-1,E(M2)×E(M)-1,…,E(Mn)×E(M)-1,并將計算結果散列分布在一列數組A[a]中,然后將患者用戶的以太坊地址、計算出的EHR哈希值、EHR病種的哈希值以及數組A[a]存儲至自動理賠合約中,至此,基于區塊鏈與同態加密的自動理賠合約創建完成。與傳統理賠不同的是,患者不是直接面向保險公司提出理賠申請,而是先向醫療機構提出請求,醫療機構收到患者的請求之后,再向保險公司發送理賠合約的以太坊地址,保險公司通過訪問該地址查看理賠合約,并獲取數組A[a]中的計算結果,使用私鑰進行解密,根據解密的結果判斷兩個明文是否有區別,進而得出理賠與否的結論。由于計算結果是以密文形式亂序存儲在數組A[a]中的,保險公司無法辨別解密后的明文與哪個密文相互對應,而且訪問以太坊地址查看理賠合約時,也不能識別患者的身份信息,即通過設置智能理賠合約,并在相關數據上實施同態加密的方案,實現隱藏患者用戶身份信息的功能,所以,也就無從知曉患者用戶的任何投保信息,極大地保障了患者的EHR隱私。此外,在理賠過程中,保險公司還可以將醫療機構計算的EHR哈希值與合約中的哈希值作比較,以驗證患者EHR信息的完整性。
將醫療記錄及其哈希值存儲在醫療機構的數據庫中,利用區塊鏈的連續性集成一個訪問控制層,提高系統的可擴展性、可操作性和對患者的EHR隱私保護。為了抵御內部人員或者黑客的惡意攻擊,將無效數據和區塊鏈上的有效數據混合,或者將患者的EHR存儲在權限區塊鏈中,同時對EHR及其哈希值進行同態加密,以提高數據的安全性。總的來說,醫療機構及其人員、患者用戶和保險公司組成一個權限區塊鏈,并利用相關技術將醫療機構、患者用戶和保險公司之間復雜的協議內容代碼化,轉化成基于區塊鏈的智能合約,也提升了合約的透明度。為了使患者用戶享有EHR的所有權和控制權,基于區塊鏈的隱私保護框架,在每個節點的接入和注冊階段就劃分出明確的權限,區塊鏈上的各個節點的權限被智能合約嚴格控制,患者對個人EHR的控制權相應地擴大。
在理賠過程中,保險公司只能獲取并訪問患者用戶的以太坊地址,而無法知曉與患者有關的身份信息,使患者的身份信息免遭泄露;同時也可以結合電子簽名或者環簽名技術,以保護交易發起人的信息[13]。這樣一來,所有上傳至區塊鏈的信息都進行了加密處理,未授權節點訪問敏感信息的可能性大大降低。任何節點在接入和注冊時,相關的合約都會自動驗證該節點是否合法,從而保證了區塊鏈中所有節點的合法性。在傳統的中心化系統中,惡意毀壞或泄露數據的情況時有發生,讓數據的集中管理者防不勝防,而在區塊鏈數據存儲系統中,假設存在某一惡意節點試圖訪問和獲取患者的EHR,則在訪問之前須經權限合約的合法性驗證,若該節點通過合法性驗證,才能獲取密鑰以訪問患者的明文EHR。在各個節點的交互過程中,除醫療機構和被授權者之外的各參與方都不能獲取到患者的明文EHR;在轉移EHR時,只允許傳輸密文狀態下的EHR,進一步提高了EHR數據信息的安全性;在理賠過程中,醫療機構僅僅可以收到患者密文狀態下的投保信息,且醫療機構無法在安全的加密狀態下對其解密;同樣的,保險公司也只能獲取患者密文狀態下的EHR和疾病病種,無法得知患者的身份信息,從而保證了患者用戶敏感數據的隱私性。
高速發展的區塊鏈技術,為數據資源的存儲、傳播和共享提供了新的工具和視角,但是作為一項新的互聯網技術,在實際應用中依然面臨著許多問題。從區塊鏈智能合約的發展現狀以及數據獲取、存儲與共享等應用的情況來看,存在以下較為突出的問題。
1.合約的轉化存在翻譯誤差。傳統合同是以語言文字表達其內容,但智能合約卻是依托于互聯網技術,以二進制代碼的形式自動執行合同內容,二者之間存在巨大的語言鴻溝。前者為了應對實際生活中通常難以預料到的特殊案例,經常使用一些抽象性、模糊性的語言文字,以最大限度涵蓋現實生活中的案例,實現合同文本的通用性;而后者為了避免或降低系統運行的安全風險,必須使用規范且精確的語言。簡單說,傳統合同更注重內容的廣泛性,而智能合約更注重內容的精確性。所以,傳統合同轉化為智能合約時,翻譯誤差是不可避免的,相應的智能合約的法律效力也會受到一定的影響。這種影響具體表現在:第一,智能合約無法涵蓋所有情形。智能合約能夠處理的情形都是預定義代碼所表示的案例,如果在醫療過程中或者保險理賠中發生情勢變遷等特殊情形,智能合約則無法應對。第二,設置合約之前的意思表示有瑕疵。在設置智能合約之前,醫療機構及其人員、保險公司或者患者用戶之間的欺詐、脅迫等行為,或者輸入編碼有誤,將導致合約不能反映當事人的真實意思。在我國《合同法》中,上述情形是合同的可撤銷情形,但智能合約是以區塊鏈技術為依托,秉承了區塊鏈去中心化、不可撤銷的特性,所以智能合約無法撤銷。第三,智能合約的違約救濟存在困難。基于區塊鏈的智能合約是匿名交易,當事人之間無從知曉對方的行為能力、履約能力等,一旦出現違約,追責就變得相當困難。針對這些問題,目前除了將語言轉化得更為規范、將條文設計得更為精確之外,可以結合人工智能技術,模仿現實中的律師和法官,以應對未知場景。
2.合約性能低下。首先,由于患者EHR數量十分龐大,有的可能要分類處理,受限于區塊鏈的計算能力,目前仍無法快速完成EHR的上傳、下載和更新,這對EHR的獲取、共享和利用都會產生不利影響[14]。其次,一個醫療區塊鏈系統通常涉及到多個智能合約,且醫療機構會為每一個患者創建一個自動理賠合約,合約的種類和數量會極其龐雜,需要存儲的患者EHR也越來越多,每個節點都需要大量的時間和超強的計算能力去執行合約,導致運行效率低下。最后,雖然以太坊地址不能反映個人信息,使得黑客等惡意攻擊者很難根據以太坊地址獲取個人身份信息,這在一定程度上保護了患者EHR隱私,但通過分析醫療機構或保險公司被特定節點訪問的頻率,可能會推斷出該節點的信息。即便同態加密算法是目前保護數據安全最可靠的技術,但隨著密碼學和信息技術的快速發展,加密算法將來可能會被破解,使患者EHR面臨安全隱患。
總體來說,基于區塊鏈的EHR隱私保護方案實現了更多的功能,如緩解數據孤島、保障數據安全和實現自動理賠等,尤其是在保護患者EHR隱私方面,隱藏了患者最為敏感的身份信息,但是在方案的性能上,尤其是效率方面稍顯不足。在后續的研究中,在保障安全性的前提下可以適當減少合約的數量,注重效率的提升。