陳俊杰,周豫蘋,,周小方
(1.閩南師范大學粒計算重點實驗室,福建漳州 363000;2.閩南師范大學計算機學院,福建漳州 363000)
無線體域傳感網(wǎng)[1](Wireless Body Area Sensor Network,WBASN或BAN)作為無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)的一個分支,是人體上的生理參數(shù)收集傳感器或移植到人體內(nèi)的生物傳感器共同形成的一個無線網(wǎng)絡(luò),這些傳感器節(jié)點能夠采集身體重要的生理信號(如溫度、血糖、血壓等)、人體活動或動作信號以及人體所在環(huán)境信息,處理這些信息并將它們傳輸?shù)缴眢w外附近的本地基站。
圖1 遠程醫(yī)療系統(tǒng)服務流程圖
目前,WBASN被廣泛應用到遠程醫(yī)療系統(tǒng),遠程醫(yī)療系統(tǒng)的信息采集傳感器終端可部署在病人家中或移動穿戴在病人身上,所采集的生理參數(shù)將通過遠程醫(yī)療系統(tǒng)及時傳輸給醫(yī)生。醫(yī)生可根據(jù)實時監(jiān)測生理指標獲知病人們的健康狀況,并及時給出診斷報告。遠程醫(yī)療系統(tǒng)的服務流程如圖1所示。
然而,隨著遠程醫(yī)療系統(tǒng)的逐步普及,醫(yī)療數(shù)據(jù)的安全和隱私性問題越來越嚴峻。例如,遠程醫(yī)療系統(tǒng)很容易受到中間人攻擊[2],致使醫(yī)療數(shù)據(jù)被截取、篡改。這將嚴重影響病人隱私,也可能會影響醫(yī)生準確診斷與治療。另一方面,病人不想讓醫(yī)生知道自身隱私(例如姓名與身份證號),只想匿名地享受遠程醫(yī)療系統(tǒng)的服務。
近年來,大量以傳統(tǒng)密碼學為基礎(chǔ)的無線體域網(wǎng)中數(shù)據(jù)傳輸?shù)碾[私保護方案被提出。Jang C[3]等對無線體域網(wǎng)的安全需求進行總結(jié)并詳細地分析無線體域網(wǎng)所面臨的安全威脅,以此為依據(jù)提出了無線體域網(wǎng)的安全框架;高鵬[4]指出無線體域網(wǎng)安全傳輸隱私保護協(xié)議設(shè)計是基于密碼算法和認證機制保證敏感信息的機密性、完整性、新鮮性、可靠性、可用性以及消息認證等安全特性;張建安[5]利用AES與ECC混合密碼構(gòu)建的混合密碼層,設(shè)計出一種具有較高的強度和較快的速度的網(wǎng)絡(luò)安全傳輸模型,可滿足無線體域網(wǎng)中對資源有嚴格限制的安全性要求。董曉蕾[6]指出應重視密文醫(yī)療數(shù)據(jù)的訪問控制問題,即僅被授權(quán)的醫(yī)生或醫(yī)療服務結(jié)構(gòu)才能正確恢復病人的個人健康信息;利用假名和其他隱私保護技術(shù)來構(gòu)造匿名認證方案也有許多相關(guān)成果;曹進[7]提出的方案可以在用戶出現(xiàn)緊急情況時,通過群管理員揭示用戶的真實身份,給予用戶及時的診療。
以上方案在安全性方面存在著一定的局限性。這些方案不支持傳感器節(jié)點的安全秘鑰更新。一旦秘鑰被破解,數(shù)據(jù)傳輸時的隱私將全部被暴露。
本文整合了以上方案的優(yōu)點,提出遠程醫(yī)療系統(tǒng)在安全性方面的具體要求包括:①匿名性[8],非授權(quán)用戶不能把醫(yī)療數(shù)據(jù)和病人的身份聯(lián)系起來;②保密性,中間人在遠程醫(yī)療監(jiān)護系統(tǒng)監(jiān)聽時,無法直接獲知醫(yī)療數(shù)據(jù)的真實內(nèi)容。傳感器節(jié)點可以對部分通信的秘鑰做變更;③完整性,保障醫(yī)療數(shù)據(jù)在信道傳輸?shù)倪^程中沒有被篡改;④真實性,在病人與醫(yī)護服務器之間,在醫(yī)生與醫(yī)護服務器之間,可以互相驗證醫(yī)療數(shù)據(jù)來源是否正確;⑤可跟蹤性,允許系統(tǒng)的高級用戶來揭露用戶的真實身份信息。方案在保證遠程醫(yī)療診斷系統(tǒng)整體安全可靠的同時,利用臨時身份對病人進行匿名保護,實現(xiàn)病人的匿名問診,保護了病人在遠程醫(yī)療系統(tǒng)中的隱私。
ElGamal算法[10]可用于數(shù)據(jù)加密,其安全性依賴于計算有限域上離散對數(shù)這一難題。對于有限域GF(q)(或Fq),q是一個大素數(shù)(為了保證加密安全,p-1要有大的素因子),g是模q的一個原根,選擇x(0 ElGamal的加密過程為:①選擇隨機數(shù)k(0 遠程醫(yī)療系統(tǒng)的參與方包括病人(Patient,pID)、醫(yī)護服務器(Medical Server,sID)、醫(yī)生(Doctor,dID)以及私鑰生成器(Private Key Generator,PKG),遠程醫(yī)療系統(tǒng)框架如圖2所示。 圖2 遠程醫(yī)療系統(tǒng)框架 表1 安全需求分析表 在系統(tǒng)中,醫(yī)護服務器無法獲悉病人的診斷結(jié)果,而醫(yī)生無法知道接收的醫(yī)療數(shù)據(jù)所屬病人的真實身份。本系統(tǒng)假設(shè)醫(yī)護服務器和醫(yī)生是兩個相互獨立的部分,他們都是誠實的,雖然有可能遭到外部攻擊,但是不會出現(xiàn)聯(lián)合攻擊的問題。 系統(tǒng)初始化的主要工作是密鑰預分配,步驟如下: 步驟二:PKG用事先共享[11]的方式將步驟一的密鑰對配送給與之對應的病人、醫(yī)護服務器以及醫(yī)生。 為實現(xiàn)病人的匿名問診,系統(tǒng)在采集數(shù)據(jù)之前先對病人身份做匿名化處理。遠程醫(yī)療系統(tǒng)由病人發(fā)起診斷請求。醫(yī)療數(shù)據(jù)先從病人提交給醫(yī)護服務器,再從醫(yī)護服務器提交給醫(yī)生。而診斷結(jié)果將先從醫(yī)生返回醫(yī)護服務器,再從醫(yī)護服務器返回病人。本文協(xié)議的具體執(zhí)行如圖3所示。 在系統(tǒng)中,病人、醫(yī)護服務器以及醫(yī)生都會充當數(shù)據(jù)的發(fā)送者和接收者。一般化的數(shù)據(jù)發(fā)送者與數(shù)據(jù)接收者間的通信流程如圖4所示。 圖3 遠程醫(yī)療系統(tǒng)的消息流 圖4 一般化的數(shù)據(jù)發(fā)送者與數(shù)據(jù)接收者間的通信流程圖 圖3消息流:①病人→醫(yī)護服務器:{DR,{pID}PKsID,δ1}. 遠程醫(yī)療診斷的操作由病人發(fā)起。病人對pID進行數(shù)字簽名,如公式(1)(2)所示。 h=H(pID). (1) (2) 圖3消息流:②醫(yī)護服務器→病人:{{tID}PKpID,δ2}. 醫(yī)護服務器在接收到{DR,{pID}PKsID,δ1}后,通過解密{pID}PKsID得到pID來確定提出DR的病人身份。接著計算h=H(pID)并驗證等式(3)是否成立。 (3) 如果等式成立,簽名驗證通過,則說明診斷請求確實來自病人本人,可繼續(xù)操作,否則忽視該診斷請求。 為了對病人身份做匿名化,醫(yī)護服務器為病人分配臨時身份tID,使用PKsID加密{tID,pID}得到{tID,pID}PKsID,并在本地保存{tID,pID}PKsID。利用公式(4)(5)對tID做數(shù)字簽名,得到簽名δ2。 h=H(tID). (4) (5) 圖3消息流:③病人→醫(yī)護服務器:{{tID,PKtID}PKsID,δ3}. 病人在接收到{{tID}PKpID,δ2}后,通過解密{tID}PKpID獲取tID,接著計算h=H(tID)并驗證等式(6)是否成立。 (6) 如果等式成立,簽名驗證通過,則說明tID確實來自醫(yī)護服務器,可繼續(xù)操作,否則舍棄信息tID。 (7) h=H(tID,PKtID). (8) (9) 醫(yī)護服務器在接收到{{tID,PKtID}PKsID,δ3}后,解密{tID,PKtID}PKsID,得到tID與PKtID。接著計算h=H(tID,PKtID)并驗證等式(10)是否成立。 (10) 如果等式成立,則說明信息{tID,PKtID}具備真實性和完整性,操作繼續(xù),否則舍棄信息{tID,PKtID}。醫(yī)護服務器用PKsID加密{tID,PKtID}得到{tID,PKtID}PKsID,并在本地保存{tID,PKtID}PKsID。 (11) (12) (13) (14) (15) 圖3消息流:⑥醫(yī)生→醫(yī)護服務器:{{tID,{result}PKtID}PKsID,δ6}. (16) h=H(tID,{result}PKtID). (17) (18) 圖3消息流:⑦醫(yī)護服務器→病人:{{tID,{result}PKtID}PKtID,δ7}. 醫(yī)護服務器在接收{(diào){tID,{result}PKtID}PKsID,δ6}后,解密{tID,{result}PKtID}PKsID,得到tID和{result}PKtID;接著計算h=H(tID,{result}PKtID)并驗證等式(19)是否成立。 (19) 如果等式成立,簽名驗證通過,操作繼續(xù),否則舍棄信息{tID,{result}PKtID}。通過PKsID加密{tID,{result}PKtID}獲得信息{tID,{result}PKtID}PKsID。通過公式(20)(21)對{tID,{result}PKtID}做數(shù)字簽名。 h=H(tID,{result}PKtID). (20) (21) 病人在接收到{{tID,{result}PKtID}PKtID,δ7}后,解密{tID,{result}PKtID}PKtID,得到tID、{result}PKtID。接著計算h=H(tID,{result}PKtID)并驗證等式(22)是否成立。 (22) 如果等式成立,簽名驗證通過,操作繼續(xù),否則舍棄信息{tID,{result}PKtID}。通過SKtID解密{result}PKtID,得到診療結(jié)果result。 遠程醫(yī)療系統(tǒng)的安全性主要體現(xiàn)在匿名性、保密性、完整性、真實性、可追蹤性。 5.1.1 匿名性 遠程醫(yī)療統(tǒng)能保證病人在通信信道以及醫(yī)生端不會暴露真實身份。 在協(xié)議中每個病人都與醫(yī)護服務器約定了一個病人臨時身份tID,病人以臨時身份向醫(yī)護服務器提交醫(yī)療數(shù)據(jù),醫(yī)護服務器同樣以病人臨時身份向醫(yī)生轉(zhuǎn)發(fā)醫(yī)療數(shù)據(jù),而臨時身份對應的真實身份對醫(yī)生保密,從而對通信信道的監(jiān)聽者以及醫(yī)生隱藏病人的真實身份信息pID,能保證病人的數(shù)據(jù)被匿名地傳輸。 5.1.2 保密性 只有授權(quán)用戶能解密并獲取信息,非授權(quán)用戶因沒有密鑰而無法解密信息。 在協(xié)議中運用ElGamal公鑰算法對傳輸?shù)尼t(yī)療數(shù)據(jù)以及診斷結(jié)果進行加密。ElGamal算法的安全性依賴于在有限域上計算離散對數(shù)的困難性,有較強的安全性,保證了信息在通信信道中的保密傳輸;在系統(tǒng)中,PKG負責生成部分的密鑰對,而在遠程醫(yī)療診斷過程中,病人為自己生成臨時身份的密鑰對(PKtID,SKtID),醫(yī)護服務器知道病人的臨時身份tID,而不知道tID對應的SKtID。在醫(yī)生向醫(yī)護服務器提交診斷結(jié)果時,使用tID對應的公鑰PKtID來加密診斷結(jié)果,可以保證醫(yī)護服務器無法獲知醫(yī)生做出的診斷結(jié)果,使得醫(yī)護服務器和醫(yī)生彼此權(quán)利分散。 5.1.3 完整性 醫(yī)療數(shù)據(jù)和診斷結(jié)果在傳輸?shù)倪^程中保證不被篡改。 在協(xié)議中運用了單向散列函數(shù)的抗碰撞性,散列函數(shù)根據(jù)醫(yī)療數(shù)據(jù)與診斷結(jié)果的內(nèi)容計算出散列值,進而用來檢查醫(yī)療數(shù)據(jù)和診斷結(jié)果的完整性。這種算法對辨別篡改非常有效。 5.1.4 真實性 確保醫(yī)療數(shù)據(jù)以及診斷結(jié)果在整個傳輸過程中來源的真實性。 協(xié)議中病人、醫(yī)護服務器、醫(yī)生在傳輸數(shù)據(jù)給其他參與方的時候,均使用自己的私鑰對信息進行數(shù)字簽名,同時他們在接收到信息時均使用雙線性對來驗證簽名是否真實,以確保信息來源正確和信息發(fā)送者的不可否認。 5.1.5 可跟蹤性 信息接收者可以獲知信息來自哪個真實參與方,并使信息發(fā)送者及接受者對信息操作具有不可否認性。在發(fā)生醫(yī)患糾紛時可以保障病人和醫(yī)生各自的權(quán)益。 本協(xié)議運用了數(shù)字簽名技術(shù),數(shù)字簽名可以認證數(shù)據(jù)來源的真實身份信息,使得系統(tǒng)參與方無法否認他們傳輸過的信息。 系統(tǒng)性能從計算開銷、通信開銷兩個方面分析。 5.2.1 計算開銷 忽略協(xié)議中的模乘和散列函數(shù)。用BP、E分別表示雙線性映射運算、指數(shù)運算。設(shè)系統(tǒng)有1個病人、1個醫(yī)護服務器與1個醫(yī)生同時在線,系統(tǒng)計算開銷如表2所示。 表2 系統(tǒng)計算開銷統(tǒng)計表 在一次遠程醫(yī)療過程中,病人的計算開銷為9E+4BP,醫(yī)生的計算開銷為4E+2BP。醫(yī)護服務器的計算開銷為9E+8BP。因為病人的計算開銷較小,所以可以符合無線體域網(wǎng)低能耗的要求。 5.2.2 通信開銷 表3 系統(tǒng)通信開銷統(tǒng)計表 本文提出了一種無線體域網(wǎng)中隱私保護的遠程醫(yī)療診斷系統(tǒng)。系統(tǒng)應用臨時身份匿名技術(shù),ElGamal算法和基于雙線性映射的數(shù)字簽名技術(shù)保障病人的身份匿名性、診斷結(jié)果的保密性和傳輸信息的完整性、真實性與可跟蹤性。系統(tǒng)的可跟蹤性這一安全特性可以在特殊情況下保障病人和醫(yī)生的權(quán)益。安全性和性能分析證明系統(tǒng)能有效保護用戶的隱私并具有較小計算開銷和通信開銷,符合無線體域網(wǎng)資源受限的場景。 未來的研究將考慮進一步減少系統(tǒng)的計算開銷與通信開銷。例如,運用混合密碼系統(tǒng)解決公鑰密碼速度慢的問題,運用橢圓曲線,以更小的密鑰量達到相同的安全性,運用無線體域網(wǎng)節(jié)點數(shù)據(jù)壓縮節(jié)能算法[12],減少數(shù)據(jù)采集量和傳輸量,有效地降低WBAN節(jié)點能耗。3 系統(tǒng)模型
4 方案設(shè)計
4.1 病人發(fā)起診斷請求
4.2 對病人身份做匿名化
4.3 病人將醫(yī)療數(shù)據(jù)傳輸給醫(yī)護服務器
4.4 醫(yī)護服務器將醫(yī)療數(shù)據(jù)傳輸給醫(yī)生
4.5 醫(yī)生將診斷結(jié)果傳輸給醫(yī)護服務器
4.6 醫(yī)護服務器將診斷結(jié)果傳輸給病人
4.7 病人查閱診斷結(jié)果
5 安全性和性能分析
5.1 安全性分析
5.2 性能分析
6 結(jié)語