譚朋柳,王雪嬌,唐偉強,萬里旭冉
(南昌航空大學 軟件學院,江西 南昌 330000)
隨著全球網(wǎng)絡化的發(fā)展,醫(yī)療設備有了更完備的功能,但由此也產(chǎn)生了一些安全威脅,其中MCPS[1]中保存著大量的醫(yī)療數(shù)據(jù),關系著患者的隱私和安全,由于MCPS的復雜、難控程度高,醫(yī)療數(shù)據(jù)的傳輸和存儲都得不到很好的保障,數(shù)據(jù)安全問題日益凸顯,保護數(shù)據(jù)安全亟待解決。因此,如何將區(qū)塊鏈技術應用于MCPS已成為一個值得研究的方向。
區(qū)塊鏈(Blockchain)定義請參見文獻[2]。區(qū)塊鏈的存儲結構與MCPS分布式存儲的數(shù)據(jù)安全研究方向相切合,并且區(qū)塊鏈的點對點(Peer-to-Peer, P2P)傳輸機制可以使MCPS醫(yī)療數(shù)據(jù)安全傳輸并提供數(shù)字簽名驗證。本文構建了二者深入融合的BCMCPS(blockchain medical cyber-physical systems)數(shù)據(jù)安全保護架構,相對傳統(tǒng)的集中式存儲的MCPS,BCMCPS規(guī)模更大、難控程度更高,也更復雜。在BCMCPS中利用區(qū)塊鏈技術進行醫(yī)療數(shù)據(jù)傳輸和存儲更為安全,能解決傳統(tǒng)MCPS中存在的一些數(shù)據(jù)安全問題:數(shù)據(jù)的不可篡改性;數(shù)據(jù)的可追溯性;數(shù)據(jù)的可驗證性。
信息物理融合系統(tǒng)(cyber-physical systems, CPS)由美國國家航空航天局提出。CPS定義請參見文獻[3]。德國漢諾威工業(yè)博覽會召開于2013年4月,會上提出的重要概念——工業(yè)4.0,把CPS作為未來工業(yè)發(fā)展中最關鍵的技術之一[4]。歐盟在對CPS的研究中投入了大量資源,歐盟于2007年-2013年這7年間僅在嵌入智能與系統(tǒng)的先進研究與技術上就投入了超過50億歐元[5]。日本在2008年前后開始關注CPS的研究發(fā)展,東京大學和東京科技大學等高等研究機構,對CPS技術在智慧醫(yī)療及人工智能等方面的應用研究處于世界前列[6]。
我國在CPS提出的初期就開展了大量有關CPS的研究。2012年,賽博(Cyber)協(xié)同創(chuàng)新中心首先提出了工業(yè)信息物理融合系統(tǒng)(industry cyber-physical systems, iCPS),iCPS定義請參見文獻[7]。此外,國家將CPS作為最關鍵的基礎技術之一,加強CPS的研究、推動CPS的應用,CPS的發(fā)展推動了我國整個智能制造業(yè)的發(fā)展[8]。
無線傳感器網(wǎng)絡(WSN)、醫(yī)用傳感器、云計算的發(fā)展,為CPS在醫(yī)療行業(yè)的應用奠定了基礎,為MCPS提供了強有力的支持,這些技術的發(fā)展使得遠程觀察患者的情況而不用考慮患者的地理位置成為可能[9]。相當多的關于醫(yī)療傳感器研究正在開展,這些傳感器能夠收集患者關于健康的重要數(shù)據(jù)信息,數(shù)據(jù)通過無線通信發(fā)送到網(wǎng)關中,有線傳感器也可以使用但是無線傳感器為醫(yī)護人員和患者提供了更多的靈活性和舒適性。基于文獻[10]對MCPS應用的描述,MCPS主要構成如圖1所示。
圖1 MCPS結構
2008年,中本聰提出了區(qū)塊鏈的概念,區(qū)塊鏈是一種全新的分布式基礎架構與計算方式[11]。區(qū)塊鏈的數(shù)據(jù)區(qū)塊由區(qū)塊頭和區(qū)塊體構成[12]。區(qū)塊頭由前置區(qū)塊的哈希值、本區(qū)塊的哈希值、版本號、Nonce值、Merkle根、時間戳等信息構成,主要作用是對區(qū)塊的唯一性進行標識;區(qū)塊體中則主要封裝的是數(shù)據(jù)信息[13]。區(qū)塊鏈存儲結構如圖2所示。
圖2 區(qū)塊鏈存儲結構
本文提出的BCMCPS架構主要是將區(qū)塊鏈技術應用于MCPS中的數(shù)據(jù)傳輸和數(shù)據(jù)存儲,從而使MCPS更加安全與智能。此外,BCMCPS還可以實現(xiàn)對醫(yī)療數(shù)據(jù)追溯與共享。本文基于分布式存儲的思想對MCPS框架進行了重新梳理,構建了一個安全、可靠的BCMCPS架構,其層級劃分如下:①物理層;②數(shù)據(jù)存儲層;③系統(tǒng)應用層。
BCMCPS架構最顯著的特點是分布式存儲,MCPS中物理層的物理構件多為低功率、低存儲的感知設備和傳輸設備,而作為醫(yī)療系統(tǒng),對設備的準確測量和數(shù)據(jù)高效傳輸有著極高的要求,因此,物理層的高效傳輸非常關鍵。此外,數(shù)據(jù)存儲層要同時具備節(jié)點互傳、數(shù)據(jù)封裝成區(qū)塊以及共識驗證上鏈等一系列功能。而系統(tǒng)應用層利用區(qū)塊鏈技術中由自動化腳本代碼組成的智能合約來操作數(shù)據(jù),實現(xiàn)醫(yī)療系統(tǒng)的多樣化功能?;谝陨?個層面,BCMCPS分層架構如圖3所示。
圖3 BCMCPS的分層架構
物理層是BCMCPS的最基本層級,物理層基礎構件包括物理實體、傳感器、執(zhí)行器以及與外界交互的其它物理設備。物理實體就是患者,傳感器包括心電圖傳感器、脈搏傳感器、血壓傳感器等,執(zhí)行器如胸部按壓執(zhí)行器、藥物注射執(zhí)行器等,其它物理設備起輔助作用。物理層可以實現(xiàn)對物理實體及外部環(huán)境的狀態(tài)感知和控制,因此,BCMCPS的物理層構件具備感知能力和控制能力。
物理層以傳統(tǒng)MCPS的物理層作為整個BCMCPS的底層支撐,不與區(qū)塊鏈技術相融合,具備傳統(tǒng)MCPS物理構件的基本感知與醫(yī)療數(shù)據(jù)存儲、傳輸功能。其目的是不需要在傳感器或其它設備中添加存儲、決策等其它復雜的功能,只需具有簡單采集醫(yī)療數(shù)據(jù)和傳輸數(shù)據(jù)到上一層節(jié)點的基礎功能,使其達到實時采集醫(yī)療數(shù)據(jù)的效果。
MCPS可適用于所有的醫(yī)療應用,醫(yī)療診斷大體可分為兩類,一類是緊急救治,搶救、急救[14,15]患者一個重要原則就是爭取時間,因此,在搶救、急救過程中,醫(yī)護人員要根據(jù)從患者身上采集的實時數(shù)據(jù)進行判斷并及時給出具體的治療方案;另一類就是普通治療,包括普通住院治療、出院的康復治療、非住院診斷治療等等,這些醫(yī)療診治對醫(yī)療數(shù)據(jù)的實時性要求相對較低,醫(yī)護人員可通過網(wǎng)絡對患者進行治療指導。物理層傳感器采集的醫(yī)療數(shù)據(jù)可以傳輸給上層網(wǎng)絡節(jié)點,還可以直接在顯示器上進行顯示,幫助醫(yī)護人員通過實時數(shù)據(jù)采取最佳的治療方案,這樣的目的是省略數(shù)據(jù)層將數(shù)據(jù)封裝成區(qū)塊的過程,節(jié)省時間,提高急救的效率,為患者爭分奪秒,讓患者在有限的時間內(nèi)得到最佳的治療。系統(tǒng)過程模型如圖4所示。
圖4 系統(tǒng)過程模型
BCMCPS架構模型的數(shù)據(jù)存儲層將區(qū)塊鏈的數(shù)據(jù)層、網(wǎng)絡層、共識層融合到MCPS中的網(wǎng)絡層,使網(wǎng)絡中的節(jié)點具有區(qū)塊鏈數(shù)據(jù)層、網(wǎng)絡層、共識層的效果,實現(xiàn)全網(wǎng)范圍內(nèi)的互聯(lián)互通和資源共享。
BCMCPS的數(shù)據(jù)存儲層的節(jié)點互聯(lián),其作用并不是將從物理層采集的醫(yī)療數(shù)據(jù)進行簡單的匯總,而是要實現(xiàn)醫(yī)療數(shù)據(jù)的標準化統(tǒng)一和深度整合,同時對新加入的物理設備進行審核驗證,統(tǒng)一節(jié)點之間的聯(lián)結規(guī)則,維護該層的數(shù)據(jù)區(qū)塊并記錄物理設備之間的連接方式和傳輸方式,完成區(qū)塊的備份、存儲以及相關信息的查詢。各網(wǎng)絡節(jié)點作為網(wǎng)絡中的對等節(jié)點進行互聯(lián)互通[16],構成一個完整的醫(yī)療數(shù)據(jù)獲取過程,具體數(shù)據(jù)傳輸過程如圖5所示。
圖5 醫(yī)療數(shù)據(jù)傳輸過程模型
在數(shù)據(jù)存儲層中,各網(wǎng)絡節(jié)點首先將從傳感器傳輸?shù)玫降脑坚t(yī)療數(shù)據(jù)根據(jù)指定的標準化規(guī)則進行標準化處理,并通過節(jié)點互聯(lián)得到其它節(jié)點的醫(yī)療數(shù)據(jù),首先得到完整醫(yī)療數(shù)據(jù)的節(jié)點會立刻向全網(wǎng)申請建立新的醫(yī)療數(shù)據(jù)區(qū)塊,全網(wǎng)其它節(jié)點通過驗證后確信該節(jié)點可以信任,并同意該節(jié)點建立新的醫(yī)療數(shù)據(jù)區(qū)塊,然后,該節(jié)點將完整的醫(yī)療數(shù)據(jù)封裝成一個新的數(shù)據(jù)區(qū)塊并向全網(wǎng)廣播這個新的數(shù)據(jù)區(qū)塊,其它各節(jié)點收到此數(shù)據(jù)區(qū)塊后根據(jù)得到的原始醫(yī)療數(shù)據(jù)驗證這個新區(qū)塊是否完整、正確,通過一致驗證后,各節(jié)點將該醫(yī)療數(shù)據(jù)區(qū)塊鏈接到自己的主區(qū)塊鏈上。具體醫(yī)療數(shù)據(jù)區(qū)塊鏈生成過程如圖6所示。
圖6 醫(yī)療數(shù)據(jù)區(qū)塊鏈形成過程
此過程中的共識驗證采用數(shù)字簽名的方式實現(xiàn)一致性的驗證,從而規(guī)避采用其它復雜共識算法對資源和數(shù)據(jù)的浪費,同時,采用數(shù)字簽名的方式達成節(jié)點之間的共識相比于其它復雜的共識算法可以節(jié)約共識時間,提高系統(tǒng)效率。由于節(jié)點之間互通,醫(yī)療數(shù)據(jù)存儲在各個節(jié)點中,可以實現(xiàn)數(shù)據(jù)共享和數(shù)據(jù)備份。節(jié)點建立新的數(shù)據(jù)區(qū)塊后向全網(wǎng)廣播的信息包數(shù)據(jù)格式見表1。
表1 信息包數(shù)據(jù)格式
區(qū)塊鏈技術中傳輸數(shù)據(jù)一般采用非對稱RSA加密技術,目前此種加密技術安全性良好,采用此種技術傳輸數(shù)據(jù)可以防止數(shù)據(jù)在傳輸過程中被竊取,因為即使數(shù)據(jù)區(qū)塊在傳輸過程中遭到監(jiān)聽,由于RSA加密算法反向解析的困難程度大,侵入者也很難從密文中解析到原文,從而使醫(yī)療數(shù)據(jù)在傳輸中更加安全。
BCMCPS的系統(tǒng)應用層建立在數(shù)據(jù)存儲層封裝的醫(yī)療數(shù)據(jù)基礎上。系統(tǒng)應用層的一系列應用可以體現(xiàn)系統(tǒng)的完備性和多樣性,也是人與系統(tǒng)交互的最終形態(tài)。區(qū)塊鏈中應用層基本應用有權限管理和資源管理,而MCPS應用層除包含這兩種基本應用外,更多的是針對醫(yī)療領域的一些應用,例如:實時監(jiān)控、遠程診療、網(wǎng)絡會診等等,在MCPS中利用區(qū)塊鏈技術不僅能夠?qū)崿F(xiàn)以上功能,同時,還能夠達到數(shù)據(jù)備份和全網(wǎng)共享的目的。
BCMCPS的系統(tǒng)應用層基于數(shù)據(jù)存儲層形成的醫(yī)療數(shù)據(jù)區(qū)塊鏈,將區(qū)塊鏈技術的合約層與MCPS的應用層相融合。例如,電子病歷最能體現(xiàn)區(qū)塊鏈的優(yōu)勢,病歷是患者的醫(yī)療記錄,包含患者的各種信息,以區(qū)塊鏈的形式保存電子病歷可以防止患者信息的泄露、他人的盜取或篡改,更能防止病歷的丟失。除此之外,電子病歷可以設置權限,能更好地為醫(yī)患人員提供不同服務。另外,利用區(qū)塊鏈技術中的智能合約,可以實現(xiàn)定時提醒患者吃藥、復診等功能,能夠達到更好的醫(yī)療診治,使系統(tǒng)更加智能化、多樣化,實現(xiàn)智能治療。
數(shù)據(jù)存儲層的每個網(wǎng)絡節(jié)點都有兩條數(shù)據(jù)鏈存儲結構,一條是設備管理數(shù)據(jù)的鏈式存儲結構,另一條是醫(yī)療數(shù)據(jù)的鏈式存儲結構。采用兩條鏈的優(yōu)點是便于存儲、管理和查詢數(shù)據(jù)。
在BCMCPS中,設備管理數(shù)據(jù)的存儲分為兩種:一種是物理層的基本物理設備,例如,血壓計、心電圖檢測儀、溫度計等等;另一種是物理節(jié)點構件的加入。當新的物理層設備需要添加到系統(tǒng)中時,先與某一節(jié)點相連,然后向該節(jié)點發(fā)送自身信息證明自身存在的合法性,例如,設備類型、設備ID、設備名稱等等,通過驗證后將該設備加入到想要連接的節(jié)點管理的系統(tǒng)中,一旦經(jīng)過驗證,該設備便可以采集醫(yī)療數(shù)據(jù)傳輸?shù)脚c之相連的上層節(jié)點,其采集的醫(yī)療數(shù)據(jù)也將被認為是可信的;若要在系統(tǒng)中加入新的節(jié)點,新節(jié)點先利用系統(tǒng)使用的非對稱加密技術生成一套具有唯一標識的數(shù)字簽名,即公鑰和私鑰,然后向全網(wǎng)廣播利用私鑰加密的帶自身標識信息的數(shù)字證書以及公鑰,其它節(jié)點收到信息后會利用該節(jié)點發(fā)送的公鑰對其數(shù)字證書進行解密,驗證該節(jié)點的身份信息,通過驗證后確認該節(jié)點加入到系統(tǒng)中,經(jīng)過驗證后,該節(jié)點便可以和全網(wǎng)任意節(jié)點互聯(lián)互通,其數(shù)據(jù)也將被認為是可信的。以上過程實現(xiàn)了醫(yī)療數(shù)據(jù)一致性的驗證。設備管理數(shù)據(jù)的區(qū)塊結構如圖7所示。
圖7 設備管理數(shù)據(jù)的區(qū)塊結構
物理層通過傳感器采集醫(yī)療數(shù)據(jù),并將數(shù)據(jù)傳輸至數(shù)據(jù)存儲層,數(shù)據(jù)存儲層先對采集到的原始醫(yī)療數(shù)據(jù)進行判斷,將超過取值范圍的數(shù)據(jù)丟棄并反饋給傳感器重新采集數(shù)據(jù),將合法的數(shù)據(jù)進行存儲,然后根據(jù)統(tǒng)一的規(guī)則將數(shù)據(jù)進行標準化處理,最后節(jié)點互通建立新的數(shù)據(jù)區(qū)塊,通過驗證后將新的數(shù)據(jù)區(qū)塊添加到主鏈上。醫(yī)療數(shù)據(jù)上鏈后無法進行修改和刪除,查看數(shù)據(jù)也要通過授權驗證,因此數(shù)據(jù)存儲層采用區(qū)塊鏈結構存儲醫(yī)療數(shù)據(jù)可以有效防止醫(yī)療數(shù)據(jù)被篡改和竊取。
此外,除了通過物理層采集的醫(yī)療數(shù)據(jù)外,還有一些診斷、治療記錄,這些記錄也會通過節(jié)點收集生成醫(yī)療數(shù)據(jù)區(qū)塊上鏈,也就是電子病歷,通過授權,客戶可以進行查看。
BCMCPS的數(shù)據(jù)存儲層要實現(xiàn)異構醫(yī)療數(shù)據(jù)的標準化處理,因此,在數(shù)據(jù)存儲層中,區(qū)塊的區(qū)塊體中主要包含的信息:①信息發(fā)送設備身份識別信息;②信息接收設備身份識別信息;③數(shù)字簽名;④信息類型以及數(shù)據(jù)標準化規(guī)則;⑤各種算法;⑥醫(yī)療數(shù)據(jù)。①-③項用于解決醫(yī)療數(shù)據(jù)一致性驗證、數(shù)據(jù)傳輸問題;第④項則主要用于醫(yī)療數(shù)據(jù)的標準化處理[17],方便醫(yī)療信息的存儲和共享;第⑤項中的算法主要包括兩種,一種是加密算法[18],用于傳輸過程中加密醫(yī)療數(shù)據(jù),防止數(shù)據(jù)被非法截?。涣硪环N是數(shù)據(jù)壓縮算法[19],用于最大程度地減小醫(yī)療數(shù)據(jù)的存儲容量。醫(yī)療數(shù)據(jù)的區(qū)塊結構如圖8所示。
圖8 醫(yī)療數(shù)據(jù)的區(qū)塊結構
利用區(qū)塊鏈技術可以解決傳統(tǒng)MCPS存在的諸多數(shù)據(jù)安全問題,本文提出的BCMCPS架構可以使MCPS中的醫(yī)療數(shù)據(jù)在具有真實性、可靠性的同時還具有可共享性、不可篡改性、可追溯性和可驗證性。BCMCPS與傳統(tǒng)MCPS安全性對比見表2。
表2 安全性對比
數(shù)據(jù)不可篡改性定義請參見文獻[20]。在BCMCPS中,醫(yī)療數(shù)據(jù)一旦形成區(qū)塊上鏈是不可重寫的,即醫(yī)療數(shù)據(jù)是不可篡改的。在傳統(tǒng)集中式存儲MCPS的關系數(shù)據(jù)庫中,增、刪、查、改一條醫(yī)療數(shù)據(jù)記錄是非常簡單且容易操作的,任何人只要獲取管理員權限,都可以對醫(yī)療數(shù)據(jù)進行任意操作。在BCMCPS中,每個醫(yī)療數(shù)據(jù)區(qū)塊在全網(wǎng)的所有分布式節(jié)點中都有備份,想要修改某個數(shù)據(jù),就必須修改所有節(jié)點上的該數(shù)據(jù)。假設我們想要對某個醫(yī)療數(shù)據(jù)進行篡改,該數(shù)據(jù)所在的當前區(qū)塊的哈希值會受到該字段的影響而發(fā)生改變,那么后一鏈接的醫(yī)療數(shù)據(jù)區(qū)塊的哈希值也會隨之發(fā)生改變[26],以此類推,后續(xù)鏈接的所有區(qū)塊的哈希值都將會發(fā)生改變。因此,想要篡改數(shù)據(jù)幾乎是不可能實現(xiàn)的,BCMCPS使得醫(yī)療數(shù)據(jù)具有不可篡改性。
數(shù)據(jù)可追溯性定義請參見文獻[21]。本文提出的BCMCPS架構中每個網(wǎng)絡節(jié)點都有兩條區(qū)塊鏈,即設備管理數(shù)據(jù)區(qū)塊鏈和醫(yī)療數(shù)據(jù)區(qū)塊鏈。設備管理數(shù)據(jù)區(qū)塊中記錄著全網(wǎng)中所有物理設備的全部信息;醫(yī)療數(shù)據(jù)區(qū)塊中不僅記錄著醫(yī)療數(shù)據(jù),還記錄了整個醫(yī)療數(shù)據(jù)的傳輸過程,包括采集數(shù)據(jù)的時間、物理設備ID和醫(yī)護人員對患者的診斷記錄等等,不僅可以對數(shù)據(jù)進行跟蹤,還可以對數(shù)據(jù)的來源進行追溯,發(fā)現(xiàn)醫(yī)療數(shù)據(jù)有問題時,系統(tǒng)可以快速、準確地分析查找出發(fā)生問題的時間、地方和原因。因此,BCMCPS使得醫(yī)療數(shù)據(jù)具有可追溯性。
數(shù)據(jù)可共享性定義請參見文獻[22]。在傳統(tǒng)MCPS中醫(yī)療數(shù)據(jù)是不可共享的,原因是每個獨立的醫(yī)療系統(tǒng)都有自己的中心數(shù)據(jù)庫,不與其它醫(yī)療系統(tǒng)共享,醫(yī)護人員只可以訪問自己系統(tǒng)的數(shù)據(jù)庫,無權訪問其它醫(yī)療系統(tǒng)的數(shù)據(jù)庫。當醫(yī)護人員想要從其它醫(yī)療系統(tǒng)了解患者更多信息時,要向該系統(tǒng)發(fā)送信息進行咨詢,管理員收到請求后再對所咨詢的信息進行查詢并給出回復。本文提出的BCMCPS架構中全網(wǎng)節(jié)點都有自己的醫(yī)療數(shù)據(jù)鏈,并且網(wǎng)絡節(jié)點的數(shù)據(jù)是共享的,因此,BCMCPS使得醫(yī)療數(shù)據(jù)具有可共享性。
數(shù)據(jù)可驗證性定義請參見文獻[23]。BCMCPS中使用了區(qū)塊鏈的數(shù)字簽名技術進行數(shù)據(jù)驗證。首先,某一節(jié)點想要建立新的醫(yī)療數(shù)據(jù)區(qū)塊,必須向其它節(jié)點發(fā)送請求,通過全網(wǎng)其它節(jié)點的驗證后才可以建立新的醫(yī)療數(shù)據(jù)區(qū)塊;其次,建立好新的數(shù)據(jù)區(qū)塊后還要通過全網(wǎng)節(jié)點的二次驗證后才可上鏈,通過數(shù)字簽名的方式多次驗證節(jié)點和醫(yī)療數(shù)據(jù),因此,BCMCPS使得醫(yī)療數(shù)據(jù)具有可驗證性。
本文對傳統(tǒng)MCPS所面臨的數(shù)據(jù)安全進行研究,利用區(qū)塊鏈的分布式存儲、點對點通信等特性,提出了將區(qū)塊鏈技術與MCPS相融合保護數(shù)據(jù)安全的思想,構建了BCMCPS架構,對區(qū)塊鏈和MCPS的結構進行融合,重新劃分為物理層、數(shù)據(jù)存儲層和系統(tǒng)應用層,此外,在BCMCPS架構的數(shù)據(jù)存儲層采用兩條鏈對設備管理數(shù)據(jù)和醫(yī)療數(shù)據(jù)進行分別存儲,并給出了具體的存儲結構,確保了醫(yī)療數(shù)據(jù)的安全性。此外,本文還對BCMCPS與傳統(tǒng)MCPS安全性進行對比,具體分析了BCMCPS具有可共享性、不可篡改性、可追溯性和可驗證性。
目前采用區(qū)塊鏈技術存儲、傳輸數(shù)據(jù)較為安全,但隨著超級計算機計算能力的不斷增強,采用非對稱加密技術加密數(shù)據(jù)的安全存在潛在的威脅,未來的工作是對區(qū)塊鏈中的加密技術做進一步的研究,以提升區(qū)塊鏈存儲、傳輸?shù)陌踩浴?/p>