摘要:為解決目前醫療區塊鏈對于患者個人隱私及數據安全的不足,借助區塊鏈和密鑰交換技術提出一種新的以用戶為隱私中心的基于區塊鏈的醫療數據可信共享方案。結合密鑰交換技術和智能合約進行數據密鑰的驗證和可信交換,實現數據安全可信共享和交易雙方的權益保護。實驗及理論證明,與現有方案相比,該方案具有低消耗和高吞吐率,具有一定的優勢和適用性。
">時間:
目前,電子醫療檔案(electronic medical records,簡稱 EMR)行業正在迅速發展。采用 EMR 代替傳統的紙質文檔已被公認為是邁向醫療保健現代化的重要一步。隨著 EMR 數據的飛速增長,數據安全隱私成為不可忽略的問題。IBM《2022 年數據泄露成本報告》顯示,2022 年醫療行業平均數據泄露成本最高,達到 1000 萬美元,相較于 2021 年增長 41.6%。在數據量快速增長和數據泄露日益嚴峻的背景下,如何構建能實現數據安全和隱私安全的 EMR 管理方案成為維系醫療保健現代化健康發展的關鍵因素。
EMR 數據的敏感性和特殊性決定了其對于數據擁有者及數據使用者的不同意義,尤其是數據的真實性對于雙方都有重要的價值。傳統的以機構為中心的 EMR 信息管理系統容易造成患者訪問數據的障礙,降低患者參與數據處理、數據移植和信息交換的能力。數據存儲中心受到攻擊時易造成大規模的數據泄露和破壞,具體而言主要存在以下問題:1)單點故障。目前醫療機構數據存儲方式基本屬于集中式存儲,易造成單點故障,一旦中央服務器宕機或受到攻擊,整個系統都會受到影響。2)醫療數據篡改。EMR 的存儲服務由醫療機構和云服務商提供,患者無法確保自身醫療數據的完整性和真實性,一旦發生醫療糾紛,患者的合法權益很難得到保障。3)數據共享中的隱私泄露。由于不同醫療機構使用的數據庫和云服務商沒有統一標準,且各類服務提供商之間往往存在技術壁壘,因此很難在不披露患者隱私的情況下進行數據共享,且數據共享的質量和速度難以保證。
區塊鏈(Blockchain)技術因其鏈式的分布式賬本結構,具有去中心化、多方維護、不可篡改和可溯源的特性,與 EMR 所要求的數據安全屬性十分契合,它可以實現鏈上數據不被篡改,且區塊鏈用戶可以借助區塊鏈獲取安全且可驗證的數據路徑。為解決上述的隱私和互信問題,本文基于區塊鏈構建了一種可信的醫療數據共享方案,借助密鑰交換技術和智能合約,實現用戶對數據使用權的完全控制及相應的權益獲取,同時能在雙方不互信任的前提下實現可信的醫療數據交換。
1 相關工作
醫療數據結構多樣、數據量大、復雜程度高,將數據完全上鏈雖能最大程度保護數據不被篡改,但是空間開銷和通信開銷難以承受。目前主流方案均以元數據上鏈、原始數據上傳到云服務器的方式進行存儲。但是云服務器具有誠實且好奇性,因此在此類方案中的云服務器具有半可信性?;谠品掌鞯陌踩煽考僭O不再成立,且集中式云服務器可能導致電子醫療網絡出現故障的可能性。
Nguyen 等和 Alrebdi 等均提出了基于區塊鏈和星際文件系統(interPlanetary file system,簡稱 IPFS)的醫療健康數據共享模型,IPFS 負責實現數據安全,智能合約實現可信的訪問控制。就數據共享及數據授權問題,鐘楠等結合門限簽名技術和智能合約實現患者數據的隱私共享。Niu 等將 EMR 關鍵詞和數據分別存儲在區塊鏈和醫院云服務器上,解決了存儲空間問題和云服務器半誠實搜索問題,并通過數據公開審計機制,防止醫生以虛假身份上傳虛假的數據。AL Omar 等基于假名和橢圓曲線加密算法(elliptic curve cryptography,簡稱 ECC)構建了 EMR 數據存儲和分享模型。Zhang 等提出了 FHIRChain 模型,該模型將 FHIR 數據元素(具有唯一標識標簽)與基于令牌的設計相結合,基于區塊鏈以分布式和可驗證的方式進行數據交換,并基于智能合約對參與者進行身份驗證和管理數據授權。Hardin 等提出了 Amanuensis 體系,通過區塊鏈和可信執行環境來保證數據來源的可靠性,并通過組織聯盟,共同負責驗證數據的完整性并控制數據的訪問策略,通過區塊鏈記錄和執行訪問策略,確保相關內容不被篡改。Guo 等提出了多權限 ABS 簽名方案,患者根據屬性確認消息,并采用多權威機構避免密碼托管問題。Tan 等基于密文策略屬性基加密構建區塊鏈授權方案,鏈上存儲公鑰和策略列表,第三方發布私鑰、解密參數等,屬性滿足用戶才可以實現數據訪問。
2 關鍵技術
2.1 區塊鏈技術
區塊鏈技術是利用加密鏈式區塊結構來驗證和存儲數據,利用分布式節點共識算法來生成和更新數據,因其鏈式的數據結構具有去中心化、不可篡改、可溯源、流程透明和交易匿名等特性,在多行業領域內都擁有廣泛的發展前景。根據低層節點的權限機制,區塊鏈一般可以分為公有鏈、私有鏈和聯盟鏈。具體而言,公有鏈允許任何用戶自由創建賬戶、驗證交易并將區塊添加到賬本中,基于共識實現完全去中心化的信任機制;私有鏈的所有者有權限制任何用戶在鏈上的任何行為;聯盟鏈一般為多機構共同管理,通過身份認證、用戶分組和權限限制等方案使參與者在有限自由的情況下進行鏈上操作。
智能合約是部署在區塊鏈上的一種自動執行的程序,是計算機程序和系統參與者的結合,具有規范性、不可逆性和不可違約性。一旦滿足智能合約中的任何條件,觸發語句就會自動執行相應的功能。以太坊在其區塊鏈上實施了一種近乎圖靈完備的語言 Solidity,可以構筑功能復雜的智能合約,任何人可以在區塊鏈上部署去中心化應用程序(decentralized applications,簡稱 Dapps),用以實現多領域的靈活運用。
2.2 橢圓曲線 Diffie-Hellman 密鑰交換算法
橢圓曲線 Diffie-Hellman 密鑰交換算法(elliptic curve cryptography-diffie-hellman,簡稱 ECC-DH)是一種基于非對稱密鑰的密鑰交換算法,通信雙方可以在不暴露任何秘密信息的情況下協商出對稱密鑰。該方法利用的是橢圓曲線上的離散對數問題,即已知 G 和x∗G求x的難題。相較于經典的 DH 算法,ECC-DH 算法借助 ECC 實現了更短的密鑰長度和更高的安全性。
假設密鑰交換雙方為 Alice、Bob,其有共享的曲線參數(橢圓曲線 E、階 N、基點 G)。ECC-DH 密鑰交換流程如下:Alice 生成隨機整數 a,計算A=a∗G;Bob 生成隨機整數 b,計算B=b∗G。Alice 將 A 傳遞給 Bob,Bob 將 B 傳遞給 Alice。Alice 和 Bob 根據已有參數計算,若CEK=b∗A=b∗(a∗G)=a∗(b∗G)=a∗B=CEK,即雙方得到一致的會話密鑰CEK。若攻擊者截獲通信消息得到 A、B、G,現有算力下其幾乎不可能計算得到a和 b,繼而也無法得到會話密鑰CEK。
3 基于區塊鏈的可信醫療數據共享方案
3.1 數據存儲結構
本方案基于聯盟鏈構建醫療區塊鏈,任何用戶均需要通過驗證才可進行鏈上操作。患者在可信的醫療機構進行醫療活動后生成 EMR,選擇數據脫敏后通過對稱加密算法(AES)進行數據加密并存儲于 IPFS,用戶每次加密使用本地區塊鏈錢包隨機生成的密鑰。收到 IPFS 返回的數據地址后,患者構建 EMR 的元數據并將其上傳到區塊鏈上,構建的元數據的核心結構包含加密后的 EMR 在 IPFS 上的存儲位置(Addr_IPFS)、就診的醫療機構對 EMR 的簽名(Sign (EMR))、加密 EMR 使用的密鑰 k 的哈希值(Hash k)、標準疾病分類代碼(Disease_codes),其中對密鑰進行的哈希運算使用 SHA-256,標準疾病分類代碼使用國家標準。
3.2 數據共享方案
本方案中設計的實體包括患者、數據需求商、區塊鏈以及 IPFS,設計的網絡包括通訊網絡和區塊鏈網絡?;颊邠碛幸粋€基于區塊鏈熱錢包設計的本地客戶端,不僅包含了區塊鏈錢包具有的區塊鏈地址生成、存儲和交易的能力之外,還具有在通訊網絡進行通訊交流的能力。區塊鏈基于聯盟鏈構建,只有相關用戶通過驗證后其地址才能在鏈上進行相應操作。數據需求商泛指對數據有需求的相關機構,如醫療、科研、保險行業等合法機構。IPFS 為分布式文件存儲管理系統,能夠實現文件的長期保存以及回溯。
數據需求商依據所需疾病對應的標準疾病代碼在區塊鏈上進行數據搜尋,獲取相應患者區塊鏈地址和數據位置后,在通訊網絡向患者發出數據共享請求?;颊咄馀c數據需求商進行數據共享后,雙方利用 ECC-DH 算法及其共有參數構建臨時會話密鑰 CEK。在 CEK 構建成功后,患者和數據需求商可以進行加密通信,完成交易費用fee、交易時間 t 和相關數據請求等具體交易內容的溝通協商。通訊結束后,患者根據協商一致的內容構建智能合約參數TPP=(Ck,feep,tp),其中Ck=CEK1⊕k,同樣,數據需求商構建合約參數TPD=(Addr,CEKD,feeD,tD),其中 Addr 為患者的區塊鏈地址,其上保存著 EMR 對應的Hash。
雙方完成合約參數構建后,數據需求商調用區塊鏈上的驗證交易合約 Verify transaction,合約使用預先設計的算法,雙方提供的合約參數TPP、TPD以及鏈上數據實現共識驗證、密鑰驗證、費用轉移和密鑰密文傳遞的功能。
首先,智能合約在約定交易時間判斷雙方給出的交易時間和交易費用是否一致,如果一致,則證明雙方就這筆交易達成共識,否則,智能合約將中斷合約的執行。共識驗證通過后,智能合約首先獲取并驗證區塊鏈上的數據需求商地址的余額是否能夠覆蓋此次數據交易的費用fee,該條件滿足之后,合約在鏈上獲取 Addr 上存儲的元數據,并獲取其中存儲的哈希值Hash,用于協助驗證患者提供的解密密鑰的真實性。若滿足Hashk=Hash(CEKD⊕Ck)=Hash(CEKD⊕CEKP⊕kP)=Hashk,即說明用戶的私有證據的原像 k 和公開證明的原像kP相同,密鑰的真實性驗證完成。隨后合約進行轉賬操作,并將Ck返回給數據需求商。數據需求商獲得智能合約返回的Ck后,利用 CEK 對其進行解密獲得所需的 EMR 對稱加密密鑰 k。隨后數據需求商根據元數據上存儲的AddrIPFS獲取對應的加密 EMR 數據在 IPFS 上的地址,進行下載解密操作,獲取所需的 EMR 原始數據。
4 實驗與分析
實驗方案在個人計算機上進行,主要參數為 Intel (R) Core (TM) i5,CPU-2.90GHz,16GB RAM,Win 11,64 位操作系統。智能合約使用 Solidity 編寫,借助 Remix 在以太坊 Ropsten 測試網絡上部署運行并進行測試。
部署和調用智能合約需要消耗 Gas,也就是以太坊虛擬機的加密燃料。在以太坊環境運行任何 DApps 都會消耗發起方的 Gas,Gas 消耗與智能合約的數據處理量和算法難度有關。數據量越大,操作越復雜,Gas 成本越高,因此可以有效反映合約的資源消耗。本方案基于聯盟鏈設計,可以建立一個高效經濟的共識機制,從而顯著降低智能合約消耗的成本和費用。相較于方案 [8],本方案中使用的合約輸入數據大小固定且一般明顯小于 EMR 的數據大小,Gas 消耗量確定且相對較小,在 EMR 數據大小較大時優勢更加明顯。
為了實現 EMR 數據隱私安全,存儲電子病歷時進行加密操作是必要的。構建了一個 20MB 到 480MB 的字符串數據集,分別使用本文的加密方案和文獻 [8] 的方案對數據進行處理,結果表明這兩種方案在加密和解密過程中曲線的增長率幾乎是線性的,運算時間與數據量呈現正相關。在時間消耗上,本方案的加密時間和解密時間分別是文獻 [8] 方案的 28.5% 和 33.3%。另外,隨著數據量的增加,本方案的時間消耗增長更慢,在體積較大的數據中有更好的適應性??傮w而言,本方案加密和解密時間很短且可預測,數據加解密階段是可變和獨立的過程,可適應各種計算條件。
本方案基于聯盟鏈設計,智能合約的實驗在以太坊測試網絡環境下進行。以太坊的交易確認時間長,吞吐率與GasLamit、TxGes和BlockTime有關。設置區塊的間隔為 5s,單個區塊的GasLimit為 0x8ffffff,該設置下合約的 TPS 為 1200TPS,靜態估算一年可完成 3784.3 億次驗證,能夠滿足中國的醫療就診需求。聯盟鏈的礦工可以靈活調整GasLimil,動態改變 TPS,因此本方案也可具有較強的靈活性。
存儲在 IPFS 的 EMR 由標準對稱加密算法(AES)加密,密鑰由患者的區塊鏈錢包生成和保存。存儲在區塊鏈上關于加密密鑰的證據由標準哈希函數(SHA-3)生成。根據哈希算法安全性,攻擊者無法從密文和哈希值中獲取密鑰的任何信息。元數據存儲在區塊鏈上,區塊鏈的結構確保鏈上數據不可篡改。如果存儲在 IPFS 中的 EMR 數據發生變化,對應的哈希值及 IPFS 地址也會發生變化。加密算法、區塊鏈和 IPFS 的結構共同保證了數據在存儲結構上的隱私性、安全性和完整性。
本方案構建驗證交易合約 Verify transaction 來自動化執行密鑰驗證和交易。只有當交易內容共識且解密密鑰為真時,轉賬操作才會自動執行,并將密鑰的密文返回給數據需求商。受智能合約設計的原子性,若預設條件不完全滿足,智能合約將終止執行。合約運行過程中不存在參數暴露,智能合約的共識驗證階段的設計可協助驗證密鑰交換期間沒有發生中間人攻擊。智能合約的任何驗證結果均存儲上鏈,實現記錄并支持溯源。綜上所述,所設計的方案在雙方不互信任的前提下能實現可信的數據共享。
5 結論
針對目前醫療區塊鏈的隱私安全和數據共享的可信問題,提出一種基于區塊鏈的醫療數據可信共享方案,通過結合區塊鏈和星際文件系統,設計存儲結構以實現患者數據的不可更改和可溯源。通過結合密鑰交換技術和智能合約,解決了數據共享中的互不信任問題,實現數據共享中密鑰的安全性、真實性和交易內容的共識性及不可否認性,確保數據共享過程中參與雙方的利益和安全。實驗與分析表明,此方案具有低消耗、高吞吐量的特點,可以有效地應用于醫療行業。
楊曉暉;賈凱,河北大學網絡空間安全與計算機學院,202403