譚朋柳,王雪嬌,唐偉強,萬里旭冉
(南昌航空大學 軟件學院,江西 南昌 330000)
隨著全球網絡化的發展,醫療設備有了更完備的功能,但由此也產生了一些安全威脅,其中MCPS[1]中保存著大量的醫療數據,關系著患者的隱私和安全,由于MCPS的復雜、難控程度高,醫療數據的傳輸和存儲都得不到很好的保障,數據安全問題日益凸顯,保護數據安全亟待解決。因此,如何將區塊鏈技術應用于MCPS已成為一個值得研究的方向。
區塊鏈(Blockchain)定義請參見文獻[2]。區塊鏈的存儲結構與MCPS分布式存儲的數據安全研究方向相切合,并且區塊鏈的點對點(Peer-to-Peer, P2P)傳輸機制可以使MCPS醫療數據安全傳輸并提供數字簽名驗證。本文構建了二者深入融合的BCMCPS(blockchain medical cyber-physical systems)數據安全保護架構,相對傳統的集中式存儲的MCPS,BCMCPS規模更大、難控程度更高,也更復雜。在BCMCPS中利用區塊鏈技術進行醫療數據傳輸和存儲更為安全,能解決傳統MCPS中存在的一些數據安全問題:數據的不可篡改性;數據的可追溯性;數據的可驗證性。
信息物理融合系統(cyber-physical systems, CPS)由美國國家航空航天局提出。CPS定義請參見文獻[3]。德國漢諾威工業博覽會召開于2013年4月,會上提出的重要概念——工業4.0,把CPS作為未來工業發展中最關鍵的技術之一[4]。歐盟在對CPS的研究中投入了大量資源,歐盟于2007年-2013年這7年間僅在嵌入智能與系統的先進研究與技術上就投入了超過50億歐元[5]。日本在2008年前后開始關注CPS的研究發展,東京大學和東京科技大學等高等研究機構,對CPS技術在智慧醫療及人工智能等方面的應用研究處于世界前列[6]。
我國在CPS提出的初期就開展了大量有關CPS的研究。2012年,賽博(Cyber)協同創新中心首先提出了工業信息物理融合系統(industry cyber-physical systems, iCPS),iCPS定義請參見文獻[7]。此外,國家將CPS作為最關鍵的基礎技術之一,加強CPS的研究、推動CPS的應用,CPS的發展推動了我國整個智能制造業的發展[8]。
無線傳感器網絡(WSN)、醫用傳感器、云計算的發展,為CPS在醫療行業的應用奠定了基礎,為MCPS提供了強有力的支持,這些技術的發展使得遠程觀察患者的情況而不用考慮患者的地理位置成為可能[9]。相當多的關于醫療傳感器研究正在開展,這些傳感器能夠收集患者關于健康的重要數據信息,數據通過無線通信發送到網關中,有線傳感器也可以使用但是無線傳感器為醫護人員和患者提供了更多的靈活性和舒適性。基于文獻[10]對MCPS應用的描述,MCPS主要構成如圖1所示。

圖1 MCPS結構
2008年,中本聰提出了區塊鏈的概念,區塊鏈是一種全新的分布式基礎架構與計算方式[11]。區塊鏈的數據區塊由區塊頭和區塊體構成[12]。區塊頭由前置區塊的哈希值、本區塊的哈希值、版本號、Nonce值、Merkle根、時間戳等信息構成,主要作用是對區塊的唯一性進行標識;區塊體中則主要封裝的是數據信息[13]。區塊鏈存儲結構如圖2所示。

圖2 區塊鏈存儲結構
本文提出的BCMCPS架構主要是將區塊鏈技術應用于MCPS中的數據傳輸和數據存儲,從而使MCPS更加安全與智能。此外,BCMCPS還可以實現對醫療數據追溯與共享。本文基于分布式存儲的思想對MCPS框架進行了重新梳理,構建了一個安全、可靠的BCMCPS架構,其層級劃分如下:①物理層;②數據存儲層;③系統應用層。
BCMCPS架構最顯著的特點是分布式存儲,MCPS中物理層的物理構件多為低功率、低存儲的感知設備和傳輸設備,而作為醫療系統,對設備的準確測量和數據高效傳輸有著極高的要求,因此,物理層的高效傳輸非常關鍵。此外,數據存儲層要同時具備節點互傳、數據封裝成區塊以及共識驗證上鏈等一系列功能。而系統應用層利用區塊鏈技術中由自動化腳本代碼組成的智能合約來操作數據,實現醫療系統的多樣化功能。基于以上3個層面,BCMCPS分層架構如圖3所示。

圖3 BCMCPS的分層架構
物理層是BCMCPS的最基本層級,物理層基礎構件包括物理實體、傳感器、執行器以及與外界交互的其它物理設備。物理實體就是患者,傳感器包括心電圖傳感器、脈搏傳感器、血壓傳感器等,執行器如胸部按壓執行器、藥物注射執行器等,其它物理設備起輔助作用。物理層可以實現對物理實體及外部環境的狀態感知和控制,因此,BCMCPS的物理層構件具備感知能力和控制能力。
物理層以傳統MCPS的物理層作為整個BCMCPS的底層支撐,不與區塊鏈技術相融合,具備傳統MCPS物理構件的基本感知與醫療數據存儲、傳輸功能。其目的是不需要在傳感器或其它設備中添加存儲、決策等其它復雜的功能,只需具有簡單采集醫療數據和傳輸數據到上一層節點的基礎功能,使其達到實時采集醫療數據的效果。
MCPS可適用于所有的醫療應用,醫療診斷大體可分為兩類,一類是緊急救治,搶救、急救[14,15]患者一個重要原則就是爭取時間,因此,在搶救、急救過程中,醫護人員要根據從患者身上采集的實時數據進行判斷并及時給出具體的治療方案;另一類就是普通治療,包括普通住院治療、出院的康復治療、非住院診斷治療等等,這些醫療診治對醫療數據的實時性要求相對較低,醫護人員可通過網絡對患者進行治療指導。物理層傳感器采集的醫療數據可以傳輸給上層網絡節點,還可以直接在顯示器上進行顯示,幫助醫護人員通過實時數據采取最佳的治療方案,這樣的目的是省略數據層將數據封裝成區塊的過程,節省時間,提高急救的效率,為患者爭分奪秒,讓患者在有限的時間內得到最佳的治療。系統過程模型如圖4所示。

圖4 系統過程模型
BCMCPS架構模型的數據存儲層將區塊鏈的數據層、網絡層、共識層融合到MCPS中的網絡層,使網絡中的節點具有區塊鏈數據層、網絡層、共識層的效果,實現全網范圍內的互聯互通和資源共享。
BCMCPS的數據存儲層的節點互聯,其作用并不是將從物理層采集的醫療數據進行簡單的匯總,而是要實現醫療數據的標準化統一和深度整合,同時對新加入的物理設備進行審核驗證,統一節點之間的聯結規則,維護該層的數據區塊并記錄物理設備之間的連接方式和傳輸方式,完成區塊的備份、存儲以及相關信息的查詢。各網絡節點作為網絡中的對等節點進行互聯互通[16],構成一個完整的醫療數據獲取過程,具體數據傳輸過程如圖5所示。

圖5 醫療數據傳輸過程模型
在數據存儲層中,各網絡節點首先將從傳感器傳輸得到的原始醫療數據根據指定的標準化規則進行標準化處理,并通過節點互聯得到其它節點的醫療數據,首先得到完整醫療數據的節點會立刻向全網申請建立新的醫療數據區塊,全網其它節點通過驗證后確信該節點可以信任,并同意該節點建立新的醫療數據區塊,然后,該節點將完整的醫療數據封裝成一個新的數據區塊并向全網廣播這個新的數據區塊,其它各節點收到此數據區塊后根據得到的原始醫療數據驗證這個新區塊是否完整、正確,通過一致驗證后,各節點將該醫療數據區塊鏈接到自己的主區塊鏈上。具體醫療數據區塊鏈生成過程如圖6所示。

圖6 醫療數據區塊鏈形成過程
此過程中的共識驗證采用數字簽名的方式實現一致性的驗證,從而規避采用其它復雜共識算法對資源和數據的浪費,同時,采用數字簽名的方式達成節點之間的共識相比于其它復雜的共識算法可以節約共識時間,提高系統效率。由于節點之間互通,醫療數據存儲在各個節點中,可以實現數據共享和數據備份。節點建立新的數據區塊后向全網廣播的信息包數據格式見表1。

表1 信息包數據格式
區塊鏈技術中傳輸數據一般采用非對稱RSA加密技術,目前此種加密技術安全性良好,采用此種技術傳輸數據可以防止數據在傳輸過程中被竊取,因為即使數據區塊在傳輸過程中遭到監聽,由于RSA加密算法反向解析的困難程度大,侵入者也很難從密文中解析到原文,從而使醫療數據在傳輸中更加安全。
BCMCPS的系統應用層建立在數據存儲層封裝的醫療數據基礎上。系統應用層的一系列應用可以體現系統的完備性和多樣性,也是人與系統交互的最終形態。區塊鏈中應用層基本應用有權限管理和資源管理,而MCPS應用層除包含這兩種基本應用外,更多的是針對醫療領域的一些應用,例如:實時監控、遠程診療、網絡會診等等,在MCPS中利用區塊鏈技術不僅能夠實現以上功能,同時,還能夠達到數據備份和全網共享的目的。
BCMCPS的系統應用層基于數據存儲層形成的醫療數據區塊鏈,將區塊鏈技術的合約層與MCPS的應用層相融合。例如,電子病歷最能體現區塊鏈的優勢,病歷是患者的醫療記錄,包含患者的各種信息,以區塊鏈的形式保存電子病歷可以防止患者信息的泄露、他人的盜取或篡改,更能防止病歷的丟失。除此之外,電子病歷可以設置權限,能更好地為醫患人員提供不同服務。另外,利用區塊鏈技術中的智能合約,可以實現定時提醒患者吃藥、復診等功能,能夠達到更好的醫療診治,使系統更加智能化、多樣化,實現智能治療。
數據存儲層的每個網絡節點都有兩條數據鏈存儲結構,一條是設備管理數據的鏈式存儲結構,另一條是醫療數據的鏈式存儲結構。采用兩條鏈的優點是便于存儲、管理和查詢數據。
在BCMCPS中,設備管理數據的存儲分為兩種:一種是物理層的基本物理設備,例如,血壓計、心電圖檢測儀、溫度計等等;另一種是物理節點構件的加入。當新的物理層設備需要添加到系統中時,先與某一節點相連,然后向該節點發送自身信息證明自身存在的合法性,例如,設備類型、設備ID、設備名稱等等,通過驗證后將該設備加入到想要連接的節點管理的系統中,一旦經過驗證,該設備便可以采集醫療數據傳輸到與之相連的上層節點,其采集的醫療數據也將被認為是可信的;若要在系統中加入新的節點,新節點先利用系統使用的非對稱加密技術生成一套具有唯一標識的數字簽名,即公鑰和私鑰,然后向全網廣播利用私鑰加密的帶自身標識信息的數字證書以及公鑰,其它節點收到信息后會利用該節點發送的公鑰對其數字證書進行解密,驗證該節點的身份信息,通過驗證后確認該節點加入到系統中,經過驗證后,該節點便可以和全網任意節點互聯互通,其數據也將被認為是可信的。以上過程實現了醫療數據一致性的驗證。設備管理數據的區塊結構如圖7所示。

圖7 設備管理數據的區塊結構
物理層通過傳感器采集醫療數據,并將數據傳輸至數據存儲層,數據存儲層先對采集到的原始醫療數據進行判斷,將超過取值范圍的數據丟棄并反饋給傳感器重新采集數據,將合法的數據進行存儲,然后根據統一的規則將數據進行標準化處理,最后節點互通建立新的數據區塊,通過驗證后將新的數據區塊添加到主鏈上。醫療數據上鏈后無法進行修改和刪除,查看數據也要通過授權驗證,因此數據存儲層采用區塊鏈結構存儲醫療數據可以有效防止醫療數據被篡改和竊取。
此外,除了通過物理層采集的醫療數據外,還有一些診斷、治療記錄,這些記錄也會通過節點收集生成醫療數據區塊上鏈,也就是電子病歷,通過授權,客戶可以進行查看。
BCMCPS的數據存儲層要實現異構醫療數據的標準化處理,因此,在數據存儲層中,區塊的區塊體中主要包含的信息:①信息發送設備身份識別信息;②信息接收設備身份識別信息;③數字簽名;④信息類型以及數據標準化規則;⑤各種算法;⑥醫療數據。①-③項用于解決醫療數據一致性驗證、數據傳輸問題;第④項則主要用于醫療數據的標準化處理[17],方便醫療信息的存儲和共享;第⑤項中的算法主要包括兩種,一種是加密算法[18],用于傳輸過程中加密醫療數據,防止數據被非法截取;另一種是數據壓縮算法[19],用于最大程度地減小醫療數據的存儲容量。醫療數據的區塊結構如圖8所示。

圖8 醫療數據的區塊結構
利用區塊鏈技術可以解決傳統MCPS存在的諸多數據安全問題,本文提出的BCMCPS架構可以使MCPS中的醫療數據在具有真實性、可靠性的同時還具有可共享性、不可篡改性、可追溯性和可驗證性。BCMCPS與傳統MCPS安全性對比見表2。

表2 安全性對比
數據不可篡改性定義請參見文獻[20]。在BCMCPS中,醫療數據一旦形成區塊上鏈是不可重寫的,即醫療數據是不可篡改的。在傳統集中式存儲MCPS的關系數據庫中,增、刪、查、改一條醫療數據記錄是非常簡單且容易操作的,任何人只要獲取管理員權限,都可以對醫療數據進行任意操作。在BCMCPS中,每個醫療數據區塊在全網的所有分布式節點中都有備份,想要修改某個數據,就必須修改所有節點上的該數據。假設我們想要對某個醫療數據進行篡改,該數據所在的當前區塊的哈希值會受到該字段的影響而發生改變,那么后一鏈接的醫療數據區塊的哈希值也會隨之發生改變[26],以此類推,后續鏈接的所有區塊的哈希值都將會發生改變。因此,想要篡改數據幾乎是不可能實現的,BCMCPS使得醫療數據具有不可篡改性。
數據可追溯性定義請參見文獻[21]。本文提出的BCMCPS架構中每個網絡節點都有兩條區塊鏈,即設備管理數據區塊鏈和醫療數據區塊鏈。設備管理數據區塊中記錄著全網中所有物理設備的全部信息;醫療數據區塊中不僅記錄著醫療數據,還記錄了整個醫療數據的傳輸過程,包括采集數據的時間、物理設備ID和醫護人員對患者的診斷記錄等等,不僅可以對數據進行跟蹤,還可以對數據的來源進行追溯,發現醫療數據有問題時,系統可以快速、準確地分析查找出發生問題的時間、地方和原因。因此,BCMCPS使得醫療數據具有可追溯性。
數據可共享性定義請參見文獻[22]。在傳統MCPS中醫療數據是不可共享的,原因是每個獨立的醫療系統都有自己的中心數據庫,不與其它醫療系統共享,醫護人員只可以訪問自己系統的數據庫,無權訪問其它醫療系統的數據庫。當醫護人員想要從其它醫療系統了解患者更多信息時,要向該系統發送信息進行咨詢,管理員收到請求后再對所咨詢的信息進行查詢并給出回復。本文提出的BCMCPS架構中全網節點都有自己的醫療數據鏈,并且網絡節點的數據是共享的,因此,BCMCPS使得醫療數據具有可共享性。
數據可驗證性定義請參見文獻[23]。BCMCPS中使用了區塊鏈的數字簽名技術進行數據驗證。首先,某一節點想要建立新的醫療數據區塊,必須向其它節點發送請求,通過全網其它節點的驗證后才可以建立新的醫療數據區塊;其次,建立好新的數據區塊后還要通過全網節點的二次驗證后才可上鏈,通過數字簽名的方式多次驗證節點和醫療數據,因此,BCMCPS使得醫療數據具有可驗證性。
本文對傳統MCPS所面臨的數據安全進行研究,利用區塊鏈的分布式存儲、點對點通信等特性,提出了將區塊鏈技術與MCPS相融合保護數據安全的思想,構建了BCMCPS架構,對區塊鏈和MCPS的結構進行融合,重新劃分為物理層、數據存儲層和系統應用層,此外,在BCMCPS架構的數據存儲層采用兩條鏈對設備管理數據和醫療數據進行分別存儲,并給出了具體的存儲結構,確保了醫療數據的安全性。此外,本文還對BCMCPS與傳統MCPS安全性進行對比,具體分析了BCMCPS具有可共享性、不可篡改性、可追溯性和可驗證性。
目前采用區塊鏈技術存儲、傳輸數據較為安全,但隨著超級計算機計算能力的不斷增強,采用非對稱加密技術加密數據的安全存在潛在的威脅,未來的工作是對區塊鏈中的加密技術做進一步的研究,以提升區塊鏈存儲、傳輸的安全性。