王志強(qiáng) 黃玉潔 龐舒方 歐海文
1(北京電子科技學(xué)院網(wǎng)絡(luò)空間安全系 北京 102627)
2(國家信息中心博士后科研工作站 北京 100045)
(wangzq@besti.edu.cn)
遠(yuǎn)程醫(yī)療信息系統(tǒng)(telecare medical information systems,TMIS)依托現(xiàn)代通信技術(shù)旨在提供專業(yè)的醫(yī)療服務(wù),充分優(yōu)化配置現(xiàn)有醫(yī)療資源,促進(jìn)各級醫(yī)療資源共享和合理分配,實現(xiàn)資源利用的最大化[1].與傳統(tǒng)的臨床服務(wù)相比,遠(yuǎn)程醫(yī)療是一種經(jīng)濟(jì)、高效的替代方案[2-3].然而,TMIS經(jīng)常通過不安全的互聯(lián)網(wǎng)提供遠(yuǎn)程訪問服務(wù),實際上也面臨著互聯(lián)網(wǎng)中各種類型的安全風(fēng)險.醫(yī)療服務(wù)器維護(hù)注冊用戶的各項數(shù)據(jù),其中包括姓名、性別、年齡、家庭住址、電話號碼、電子病歷等,這些信息與患者的隱私直接相關(guān)[4].因此,安全和隱私是當(dāng)前TMIS場景研究中需要應(yīng)對的關(guān)鍵挑戰(zhàn).
認(rèn)證密鑰交換協(xié)議對于保護(hù)用戶隱私及TMIS的數(shù)據(jù)完整性、機(jī)密性和可用性至關(guān)重要.具體來講,用戶隱私是指協(xié)議執(zhí)行過程中用戶及其對應(yīng)智能卡身份的匿名性和不可追溯性.匿名性是隱藏用戶的身份,不可跟蹤性是指敵手無法獲得同一用戶的多個會話信息.身份認(rèn)證提供對醫(yī)療服務(wù)器的訪問控制,并防止非法用戶使用該服務(wù)器的資源.通信雙方生成的共享會話密鑰建立安全的通道,并防止非法服務(wù)器獲得用戶與醫(yī)療服務(wù)器間傳輸?shù)男畔?
Lamport[5]于1981年首次提出基于口令和單向哈希函數(shù)的遠(yuǎn)程用戶認(rèn)證協(xié)議.該協(xié)議使用由服務(wù)器維護(hù)的口令表,容易受到離線口令猜測攻擊和口令表篡改攻擊,還會導(dǎo)致維護(hù)口令表的開銷增加.為解決這些問題,Chang等人[6]提出了利用智能卡構(gòu)建的口令認(rèn)證協(xié)議.此后一些具有更高安全性和效率的認(rèn)證密鑰交換協(xié)議被提出[7-9].但是這些協(xié)議的性能不夠好,不適用于TMIS.2012年,Wu等人[10]采用一個額外預(yù)計算階段來避免指數(shù)計算,并聲稱該協(xié)議是安全的,非常適用于計算能力有限的移動設(shè)備如TMIS的移動智能設(shè)備.He等人[11]研究發(fā)現(xiàn)Wu等人[10]的協(xié)議無法抵抗內(nèi)部攻擊和冒充攻擊,并且缺乏對丟失或被盜的智能卡的撤銷階段.Wei等人[12]指出,Wu等人[10]和He等人[11]的協(xié)議在用戶智能卡丟失時容易受到離線口令猜測攻擊,不能實現(xiàn)所謂的雙因素安全.Zhu等人[13]聲稱他們的協(xié)議克服了Wei等人[12]的協(xié)議中存在的缺陷.Khan等人[14]證明Zhu等人[13]的協(xié)議容易受到拒絕服務(wù)攻擊.然而,Giri等人[15]發(fā)現(xiàn)Khan等人[14]的協(xié)議仍無法抵抗離線口令猜測攻擊,并提出了用于TMIS的新協(xié)議.
上述大多數(shù)協(xié)議的共同點(diǎn)是會話中用戶身份是靜態(tài)的,會導(dǎo)致用戶隱私信息的泄露以及身份的冒充,缺乏用戶匿名性和不可追溯性.為了增強(qiáng)安全性,Radhakrishnan等人[16]改進(jìn)了Lee等人[17]的協(xié)議,為TMIS提出了新的認(rèn)證和隱私保護(hù)協(xié)議.此外,Li等人[18]為遠(yuǎn)程醫(yī)療信息系統(tǒng)提出了基于云的身份驗證和隱私保護(hù)協(xié)議,聲稱該協(xié)議可以抵抗已知的各種攻擊.隨后,Kumar等人[19]分析Li等人[18]的協(xié)議發(fā)現(xiàn)它容易受到用戶冒充攻擊并提出了改進(jìn)協(xié)議.
綜上,本文提出了一個安全高效的基于橢圓曲線密碼體制的認(rèn)證密鑰交換協(xié)議,具有用戶匿名性和不可追溯性.協(xié)議考慮了TMIS的實際場景,選取輕量級的運(yùn)算降低計算和通信成本,通過用戶的動態(tài)身份實現(xiàn)用戶身份認(rèn)證及隱私保護(hù).
有限域GF(p)(p是一個大的素數(shù))上的橢圓曲線Ep(a,b)為滿足方程y2≡x3+ax+b(modp)的所有整數(shù)點(diǎn)及無窮遠(yuǎn)點(diǎn)的集合,其中a,b∈GF(p),4a3+27b2≠0(modp).
利用公鑰密碼體制設(shè)計的認(rèn)證密鑰交換協(xié)議具備安全性強(qiáng)、密鑰短等優(yōu)點(diǎn).本文所提出的協(xié)議正是基于橢圓曲線密碼體制.
哈希函數(shù)(Hash)又稱為雜湊函數(shù)、散列函數(shù).它是一個確定性算法,對于輸入的任意長度二進(jìn)制串,能夠映射生成較短的、固定長度的二進(jìn)制串,即h:{0,1}*→{0,1}.單向哈希函數(shù)通常用于消息認(rèn)證、數(shù)字簽名、完整性校驗、入侵檢測、構(gòu)建隨機(jī)函數(shù)等.安全的單向哈希函數(shù)具備以下性質(zhì):
1) 有效性.給定一個輸入值m,很容易計算出哈希值H(m).
2) 單向性.給定哈希值H(m)=m′,無法通過計算H-1(m′)得到m.
3) 抗弱碰撞性.給定m以及其哈希值H(m),找到一個m*(m≠m*),使得H(m*)=H(m)在計算上是不可行的.
4) 抗強(qiáng)碰撞性.找到2個任意數(shù)m和m*(m≠m*),使得H(m)=H(m*)計算上是不可行的.
Corrupt(U,a):此查詢模擬了雙因素即用戶口令和智能卡的泄露.敵手A允許獲取用戶的口令或存儲在智能卡的相關(guān)信息.若a=1,敵手能得到用戶的口令信息.若a=2,敵手能得到存儲在智能卡的相關(guān)信息.該查詢可對抵抗智能卡丟失攻擊的安全性進(jìn)行建模.
語義安全:語義安全即敵手A無法得到會話密鑰以及用戶身份的任何相關(guān)信息.當(dāng)敵手A通過TestID或TestAKE查詢得到比特b′,如果b=b′,那么敵手獲勝.用Succ表示敵手正確猜出返回值b的事件,A取得勝利的優(yōu)勢為Adv=2Pr[Succ]-1.
患者暴露在公共網(wǎng)絡(luò)中的醫(yī)療信息很容易受到安全威脅與攻擊,為了給TMIS中敏感的醫(yī)療數(shù)據(jù)提供保護(hù),本文提出了用于TMIS的安全、高效的雙因素匿名認(rèn)證密鑰交換協(xié)議TMIS-AKE,保證參與協(xié)議的實體即患者和醫(yī)療服務(wù)器之間完成身份認(rèn)證及密鑰交換,最終達(dá)到共享密鑰的目標(biāo).TMIS系統(tǒng)包括用戶、遠(yuǎn)程醫(yī)療服務(wù)器、醫(yī)生以及智能卡4部分,如圖1所示:
圖1 TMIS系統(tǒng)架構(gòu)
TMIS-AKE協(xié)議包括4個階段,分別是注冊階段、認(rèn)證和密鑰交換階段、口令更新階段、智能卡撤銷和重新注冊階段.文中使用的符號及其含義如表1所示:
表1 符號及其描述
患者Ui如果想要和遠(yuǎn)程醫(yī)療服務(wù)器S進(jìn)行通信,首先要注冊以獲得合法的身份信息.注冊階段的過程如圖2所示:
圖2 注冊階段
步驟1.患者Ui隨機(jī)選取自己的身份IDi,然后通過安全通道將其發(fā)送給遠(yuǎn)程醫(yī)療服務(wù)器S.
步驟2.服務(wù)器S收到消息后,選取自己的身份IDS、智能卡的身份IDSC以及隨機(jī)數(shù)x,接著計算ID=IDi‖IDS‖IDSC,EID=Ev(ID‖x),L1=H1(IDi‖v),將消息{EID,L1}存儲在智能卡SC中.最后,把存儲有患者隱私數(shù)據(jù)的智能卡SC交給患者Ui.S還將{ID,IDSC,Ns}存儲在后臺數(shù)據(jù)庫中,其中Ns是智能卡連續(xù)認(rèn)證失敗的次數(shù),用于防范在線字典攻擊,初始值設(shè)置為0.n是檢測在線字典攻擊的閾值.
步驟3.患者Ui收到智能卡SC以后,隨機(jī)選取選擇口令PWi,計算L=L1?H1(PWi),并將L1替換為L.然后將Ni的初始值0寫入智能卡,Ni是Ui連續(xù)登錄失敗的次數(shù).最終,智能卡SC中存儲的數(shù)據(jù)為{EID,L,Ni,n}.
為了實現(xiàn)患者Ui和遠(yuǎn)程醫(yī)療服務(wù)器S的相互認(rèn)證以及會話密鑰交換,在患者Ui獲得合法身份后執(zhí)行以下步驟,如圖3所示.
圖3 認(rèn)證和密鑰交換階段
步驟1.患者Ui把智能卡SC插入讀卡器中,輸入相應(yīng)的身份IDi、口令PWi,檢查Ni 步驟2.服務(wù)器S收到消息后,首先檢查T2-T1≤ΔT是否成立,T2為S收到消息時的時間戳,ΔT為最大傳輸時延.若成立,則服務(wù)器S用自己的秘密值v解密動態(tài)身份EID以恢復(fù)患者Ui、服務(wù)器S、智能卡SC的原始身份IDi、IDS、IDSC,驗證得到的身份與數(shù)據(jù)庫中存儲的身份是否一致.若一致,成功驗證Ui的身份.服務(wù)器S進(jìn)一步驗證Ns 步驟3.患者Ui收到來自服務(wù)器S的消息后,首先檢查時間戳T4的新鮮性,通過后計算d=sb,RID=L3?H2(d).利用d和RID得到H2(RID‖d‖T3)的值,驗證與L4是否相等.若等式成立,計算L5=H2(L2‖d)以及會話密鑰sk=H2(d‖b‖c).接著用新的動態(tài)身份RID替換EID,并將Ni重置為0.否則,終止協(xié)議,Ni=Ni+1.最后,將消息M3={L5}發(fā)送給服務(wù)器S. 步驟4.服務(wù)器S收到消息M3后對其進(jìn)行驗證,即檢查等式L5=H2(L2‖d)是否成立.驗證通過,則計算得到相同的會話密鑰sk=H2(d‖b‖c),并將Ns重置為0.否則,終止協(xié)議,Ns=Ns+1. 當(dāng)已完成注冊的患者Ui需要更新口令時,首先完成在線的認(rèn)證過程,然后再按照圖4所示步驟完成口令的更新: 圖4 口令更改階段 步驟1.輸入新密碼PW*,計算: 步驟2.用L*替換智能卡SC中的L. 定理1.設(shè)P是本文提出的協(xié)議;D是一個均勻分布的密碼字典;|D|是字典的大小;Ep是有限域Fp上的一個橢圓曲線群.對于任何在概率多項式時間內(nèi)運(yùn)行的敵手A,如果A至多進(jìn)行qsend次Send查詢、qexe次Execute查詢、qh次哈希查詢,則A破解P的會話密鑰安全性的概率為 證明.假設(shè)有游戲G0~G5.Succi是A能夠區(qū)分游戲Gi中執(zhí)行Test查詢返回的數(shù)是隨機(jī)數(shù)還是會話密鑰最終贏得游戲的事件(i=0,1,…,5).Pr[Succi]是A贏得游戲的概率.Δi是任意2個連續(xù)游戲間的成功概率的差值,即Δi=|Pr[Succi+1]-Pr[Succi]|. AdvP,D(A)=2Pr[Succ0]-1= 2Pr[Succ0]-1+2Pr[Succ4]-2Pr[Succ4]= 2Pr[Succ4]-1+2(Pr[Succ0]- 上式表明當(dāng)Δi能夠忽略不計時,A贏得游戲G0的概率與贏得游戲G5的概率幾乎相同.如果能夠證明Pr[Succ5]可以忽略不計,那么Pr[Succ0]和AdvP,D(A)也是可以忽略不計的. 游戲G0:該游戲是真實的.由語義安全的定義:AdvP,D(A)=2Pr[Succ0]-1. 結(jié)合以上不等式可以推出: 定理1得證. 證畢. 3.2.1 抗離線字典攻擊 TMIS-AKE協(xié)議使用H1(L1‖IDi‖)對臨時公鑰加密,由臨時公鑰組成會話密鑰[20].假設(shè)敵手能夠獲得患者與服務(wù)器傳輸?shù)乃邢?并通過側(cè)信道攻擊獲得智能卡中存儲的信息.敵手驗證猜測密碼的正確性需要通過計算RID和L4,最終判斷H2(RID‖d‖T3)與L4是否相等.由于橢圓曲線上Diffie-Hellman問題的難解性,敵手無法計算出d的值,無法完成驗證.因此,TMIS-AKE協(xié)議能夠抵抗離線字典攻擊. 3.2.2 抗重放攻擊 TMIS-AKE協(xié)議使用時間戳技術(shù)并規(guī)定驗證時間戳的閾值ΔT.如果敵手重放消息{L2,EID,T1},那么它將由于時間戳T1的無效而無法通過身份驗證.除此之外,患者與服務(wù)器間傳輸?shù)男畔⒕S機(jī)數(shù),即使敵手在時間戳T1的有效期內(nèi)發(fā)起重放攻擊,消息接收方均可在身份驗證中排除重放的會話,有效地抵御此類攻擊. 3.2.3 抗冒充攻擊 3.2.4 抗內(nèi)部特權(quán)攻擊 由于患者僅在注冊階段通過安全通道將自己的身份發(fā)送給服務(wù)器,服務(wù)器不知道有關(guān)患者的口令PWi的任何信息.因此,TMIS-AKE協(xié)議能夠抵抗特權(quán)內(nèi)部攻擊. 3.2.5 匿名性和不可追溯性 首先,敵手無法通過患者丟失的智能卡獲取患者的身份.一方面,智能卡中并未存儲患者的身份IDi;另一方面,假設(shè)敵手通過側(cè)信道攻擊獲取智能卡中存儲的信息,由于IDi受到秘密值v的保護(hù)隱藏在EID和L1中,敵手也無法通過離線口令猜測攻擊等得到IDi.因此,TMIS-AKE協(xié)議能夠提供用戶匿名性. 其次,敵手無法通過患者的通信過程獲得用戶身份.由于IDi和IDSC受到L1和RID的保護(hù),敵手在不知道PWi,H1(L1‖IDi‖T1)和Diffie-Helelman值d的情況下,無法從傳輸?shù)南⒅械玫疥P(guān)于患者及其智能卡的身份IDi和IDSC的信息.并且每個會話中傳輸?shù)乃邢⒍际切迈r和不同的,敵手無法區(qū)分是否為同一用戶在進(jìn)行會話.因此,TMIS-AKE協(xié)議能夠提供用戶不可追溯性. 3.2.6 已知密鑰安全性 協(xié)議的會話密鑰依賴于產(chǎn)生的隨機(jī)數(shù).這些隨機(jī)數(shù)不在消息流中傳輸,不能從協(xié)議記錄中恢復(fù),并且在所有會話中都是獨(dú)立的.因此,敵手無法通過已泄露的密鑰計算出未知的會話密鑰. 本節(jié)從計算成本和通信成本2方面將本文提出的協(xié)議與其他相關(guān)的TMIS認(rèn)證密鑰交換協(xié)議進(jìn)行對比.一般來說,認(rèn)證和密鑰交換階段的執(zhí)行比注冊階段、口令更新階段等的執(zhí)行要頻繁得多,因此只考慮前者的計算成本. TH,TE,TS,TM分別表示哈希函數(shù)、模冪運(yùn)算、對稱加解密、橢圓曲線點(diǎn)乘所需的計算時間.異或運(yùn)算和字符串連接運(yùn)算的計算時間很小,可以忽略不計.文獻(xiàn)[21]給出了測試上述操作所需的時間.測試結(jié)果如表2所示: 表2 不同操作所需的近似時間 表3列出了本文協(xié)議以及相關(guān)協(xié)議在認(rèn)證和密鑰交換階段的計算成本.首先,本文協(xié)議的計算量明顯低于文獻(xiàn)[22-23]中的協(xié)議,略高于文獻(xiàn)[24-25]中協(xié)議的計算量.文獻(xiàn)[24-25]中的協(xié)議容易受到特權(quán)內(nèi)部攻擊、智能卡丟失攻擊以及冒充攻擊,文獻(xiàn)[25]中的協(xié)議容易受到口令猜測攻擊以及冒充攻擊,均存在嚴(yán)重的安全缺陷,無法滿足實際需求.因此,本文協(xié)議在保證安全性的同時還具備較高的效率,適合在實際應(yīng)用中部署. 表3 計算成本比較 表4 通信成本比較 本文針對TMIS中患者的隱私保護(hù)以及安全問題,利用橢圓曲線密碼體制,提出了一種基于智能卡的口令認(rèn)證密鑰交換協(xié)議.該協(xié)議通過加密用戶及其對應(yīng)智能卡的身份,以及隨機(jī)化傳輸消息和限制連續(xù)失敗登錄認(rèn)證次數(shù)等方式,實現(xiàn)遠(yuǎn)程用戶和服務(wù)器之間的互相認(rèn)證,并生成后續(xù)通信的會話密鑰,達(dá)到遠(yuǎn)程醫(yī)療診斷中隱私保護(hù)的目的.此外,該協(xié)議在保證安全性的同時,保持了較高的效率,更加適用于遠(yuǎn)程醫(yī)療信息系統(tǒng). 未來的研究方向主要是在保證安全性的前提下,進(jìn)一步提高協(xié)議的效率.此外,考慮將本文協(xié)議擴(kuò)展到更加復(fù)雜的多服務(wù)器的應(yīng)用場景,以適應(yīng)不斷變化的醫(yī)療需求.2.3 口令更改階段
2.4 智能卡撤銷和重新注冊階段
3 安全性分析
3.1 安全性證明
3.2 其他安全性分析
4 性能分析
4.1 計算成本
4.2 通信成本
5 結(jié) 語