曹守啟,何 鑫,劉婉榮
(上海海洋大學(xué)工程學(xué)院,上海 201306)
物聯(lián)網(wǎng)是互聯(lián)網(wǎng)的延伸和擴(kuò)展,自從物聯(lián)網(wǎng)的概念首次提出至今,它已經(jīng)成為新一代信息與通信技術(shù)發(fā)展的典型代表。網(wǎng)絡(luò)的快速發(fā)展給人們的工作生活帶來(lái)極大便利的同時(shí),也催生出了各種各樣的網(wǎng)絡(luò)安全隱患,2013年美國(guó)前中情局職員Edward Snowden爆出棱鏡門事件,觸發(fā)了全世界人民對(duì)網(wǎng)絡(luò)安全的思考,網(wǎng)絡(luò)安全也成為人們?cè)谑褂没ヂ?lián)網(wǎng)時(shí)最先考慮的問(wèn)題之一。斯坦福大學(xué)的Diffie與Hellman于1976年提出公鑰密碼體制,使用不同的加密密鑰和解密密鑰,滿足了數(shù)字簽名的需求,推動(dòng)著網(wǎng)絡(luò)安全技術(shù)的發(fā)展[1]。目前,遠(yuǎn)程用戶身份認(rèn)證按因素的數(shù)量可分為單因素、雙因素和三因素身份認(rèn)證方案。最初,用戶進(jìn)行身份認(rèn)證僅僅依靠密碼,即單因素認(rèn)證,隨著網(wǎng)絡(luò)的不斷發(fā)展,醫(yī)療、銀行等機(jī)構(gòu)出現(xiàn)大量用戶隱私泄漏的問(wèn)題,研究人員發(fā)現(xiàn)僅僅依靠密碼無(wú)法保障用戶的隱私安全,雙因素身份認(rèn)證協(xié)議開(kāi)始成為安全協(xié)議設(shè)計(jì)領(lǐng)域的一個(gè)熱點(diǎn)問(wèn)題[2 - 5],開(kāi)始慢慢取代單因素認(rèn)證協(xié)議。
1990年,Hwang 等人[6]提出了第一個(gè)基于智能卡的雙因素認(rèn)證協(xié)議,它是基于Shamir[7]的方案來(lái)解決密碼存儲(chǔ)問(wèn)題的,安其全性與Shamir的協(xié)議不相上下。2013年,Xu 等人[8]提出了一種基于橢圓曲線密碼體制的雙因素認(rèn)證協(xié)議,該協(xié)議的優(yōu)點(diǎn)在于用戶的ID只在安全通道上傳輸,從而保證了在線、離線密碼猜測(cè)攻擊以及智能卡被盜攻擊與內(nèi)部攻擊。2014年,Islam 等人[9]對(duì)Xu等人的協(xié)議進(jìn)行了分析,他們指出,在登錄階段,該方案不能提供強(qiáng)相互認(rèn)證,在密碼更改階段,不能對(duì)舊密碼進(jìn)行驗(yàn)證,不能抵御重放攻擊等。之后,Islam等人提出了改進(jìn)協(xié)議,改進(jìn)協(xié)議中用戶ID是動(dòng)態(tài)的,保證了用戶的匿名性;同時(shí),該協(xié)議使用了隨機(jī)數(shù)與遠(yuǎn)程信息系統(tǒng)的密鑰連同用戶ID與密碼一起來(lái)抵御離線密碼猜測(cè)攻擊。Chaudhry等人[10]與Zhang 等人[11]分別指出了Islam等人協(xié)議的缺陷,指出該協(xié)議無(wú)法抵御用戶及服務(wù)器內(nèi)部攻擊,攻擊者可以通過(guò)動(dòng)力分析從智能卡中獲取密鑰信息。2014年,為了克服Jiang等人[12]提出的雙因素協(xié)議的缺陷,Das等人[13]提出了一種三因素身份認(rèn)證協(xié)議。研究人員利用每個(gè)用戶特有的生理特征來(lái)進(jìn)行三因素身份認(rèn)證協(xié)議的設(shè)計(jì),例如,用戶的指紋、虹膜等。但是,用戶的生理信息,例如指紋,會(huì)存在由于用戶手指放置不當(dāng)引起錯(cuò)誤識(shí)別等問(wèn)題。
本文對(duì)Nikooghadam 等人[14]的協(xié)議進(jìn)行了分析,發(fā)現(xiàn)該協(xié)議容易遭受重放攻擊、特權(quán)內(nèi)部攻擊等多種安全威脅?;贜ikooghadam等人協(xié)議的良好框架,本文提出了一種改進(jìn)的遠(yuǎn)程用戶身份認(rèn)證協(xié)議,該協(xié)議主要使用時(shí)間戳機(jī)制和計(jì)算性Diffie-Hellman難題來(lái)提高協(xié)議的安全性[15,16]。時(shí)間戳機(jī)制的使用可以保證消息傳遞的及時(shí)性,而計(jì)算性Diffie-Hellman是一種歷經(jīng)長(zhǎng)時(shí)間仍未解答/完全解答的數(shù)學(xué)問(wèn)題,解決該難題的概率是可忽略不計(jì)的,故常被用于構(gòu)造密碼算法,以提高安全性。本文使用BAN邏輯驗(yàn)證了本文改進(jìn)協(xié)議的安全性,它是一種基于信念的模態(tài)邏輯,在推理過(guò)程中,參與協(xié)議的主體的信念隨消息交換的發(fā)展而不斷變化和發(fā)展,即在假設(shè)的基礎(chǔ)上根據(jù)公理和推理規(guī)則來(lái)推導(dǎo)出參與協(xié)議的主體的信念。另外,性能比較和計(jì)算效率分析也表明,本文協(xié)議在增加微小計(jì)算量的情況下提高了安全性。
Nikooghadam等人的協(xié)議包括3個(gè)階段:注冊(cè)階段、登錄認(rèn)證階段和密碼更改階段。本文中使用的符號(hào)定義見(jiàn)表1。
Table 1 Symbol definitions表1 符號(hào)定義
用戶Ui輸入IDi和PWi,選擇一個(gè)隨機(jī)數(shù)r,智能卡計(jì)算MPWi=h(IDi‖r‖PWi),通過(guò)一個(gè)信道向Server發(fā)送信息{IDi,MPWi}進(jìn)行注冊(cè);一旦Server接收到該信息,開(kāi)始計(jì)算Ai=h(IDi‖x),Bi=Ai⊕MPWi,選擇一個(gè)隨機(jī)數(shù)N,計(jì)算MIDi=Ex(IDi‖N);然后發(fā)送包含信息{Bi,MIDi,Ex(·)/Dx(·),h(·)}的智能卡到Ui;最后,Ui將選擇的r存儲(chǔ)在智能卡。
在登錄認(rèn)證階段,用戶Ui輸入IDi和PWi,智能卡計(jì)算Ai=Bi⊕h(IDi‖r‖PWi)=h(IDi‖x),選擇一個(gè)隨機(jī)數(shù)RNi,計(jì)算M1=EAi(IDi‖RNi‖Ti‖MIDi),其中Ti為用戶Ui的時(shí)間,然后將信息{MIDi,M1,Ti}發(fā)送給Server,Server驗(yàn)證用戶發(fā)送信息的真實(shí)性。具體登錄認(rèn)證步驟如下所示:
步驟1Server驗(yàn)證智能卡記錄的用戶Ui的時(shí)間Ti與系統(tǒng)接收到登錄請(qǐng)求信息{MIDi,M1,Ti}的時(shí)間Ts是否滿足條件|Ts-Ti|≤ΔT,其中ΔT是合法的信息傳輸延遲時(shí)間,如果不滿足,Server拒絕登錄請(qǐng)求并終止會(huì)話;否則,Server繼續(xù)執(zhí)行下面的操作。
當(dāng)用戶決定更改密碼時(shí),首先,用戶需要將智能卡插入讀卡器,輸入其用戶名和密碼,接著智能卡執(zhí)行以下步驟:
步驟1Server驗(yàn)證智能卡記錄的用戶Ui的時(shí)間Ti與系統(tǒng)接收到登錄請(qǐng)求信息{MIDi,M1,Ti}的時(shí)間Ts是否滿足條件|Ts-Ti|≤ΔT,其中ΔT是合法的信息傳輸延遲時(shí)間,如果不滿足,Server拒絕登錄請(qǐng)求并終止會(huì)話;否則,Server繼續(xù)執(zhí)行下面的操作。
在認(rèn)證階段,用戶沒(méi)有使用時(shí)間戳改變M2,服務(wù)器也沒(méi)有對(duì)M3進(jìn)行驗(yàn)證,這將會(huì)造成信息(M2,M3)的驗(yàn)證周期是無(wú)止境的,如果攻擊者竊取了信息M2,他/她能夠使該信息中斷發(fā)送或者延遲發(fā)送。因此,如果用戶請(qǐng)求信息,攻擊者可以利用這種請(qǐng)求延遲獲得未經(jīng)授權(quán)的服務(wù),因?yàn)榉?wù)器無(wú)法識(shí)別請(qǐng)求是由合法用戶發(fā)送的還是非法用戶發(fā)送的,攻擊者可以請(qǐng)求服務(wù)器計(jì)算會(huì)話密鑰,故該協(xié)議無(wú)法抵御重放攻擊。
Nikooghadam等人的協(xié)議無(wú)法抵御特權(quán)內(nèi)部攻擊和離線密碼猜測(cè)攻擊,具體步驟如下所示:
步驟1內(nèi)部攻擊者能夠從注冊(cè)階段信息{IDi,MPWi}中獲取用戶的標(biāo)識(shí)IDi,MPWi=h(IDi‖r‖PWi),該攻擊者可以獲取存儲(chǔ)在智能卡中的信息{Bi,MIDi,r,Ekey(·)/Dkey(·),h(·)}。
步驟2攻擊者猜測(cè)用戶的密碼PW′i。
步驟3攻擊者計(jì)算A′i=h(IDi‖r‖PW′i)。
步驟4Ai=Bi⊕MPWi,如果A′i=Ai成立,則攻擊者猜測(cè)出了用戶的密碼;反之,如果等式不成立,攻擊者將重復(fù)步驟2~步驟4,直到猜測(cè)出正確的用戶密碼為止。
攻擊者利用授權(quán)用戶的信息記錄來(lái)偽造服務(wù)器,成功模擬為合法的服務(wù)器并偽造有效的響應(yīng)消息。首先,攻擊者從智能卡中獲取信息{Bi,MIDi,r,Ekey(·)/Dkey(·),h(·)},通過(guò)偽裝成服務(wù)器內(nèi)部人員,攻擊者可以獲得信息IDi,MPWi和r;接著,攻擊者計(jì)算Ai=Bi⊕MPWi,DAi(M1)=(IDi‖RNi‖Ti‖MIDi),并攔截用戶登錄消息{MIDi,M1,Ti},時(shí)間戳不能改變M2,服務(wù)器也沒(méi)有對(duì)M3進(jìn)行驗(yàn)證,所以攻擊者可以選擇一個(gè)隨機(jī)數(shù)RN′s并計(jì)算M′2=EAi(MIDi‖RN′s‖IDi‖RNi);最終,攻擊者將信息{M′2}發(fā)送給用戶。故該協(xié)議不能抵御服務(wù)器欺騙攻擊。
本節(jié)將提出一種基于Nikooghadam等人協(xié)議的改進(jìn)協(xié)議,該協(xié)議克服了Nikooghadam等人協(xié)議的缺點(diǎn),包含3個(gè)階段:注冊(cè)階段、登錄認(rèn)證階段和密碼更改階段。
在注冊(cè)階段,用戶Ui輸入IDi和PWi,選擇2個(gè)隨機(jī)數(shù)r和m1,智能卡計(jì)算MPWi=h(IDi‖r‖PWi),PIDi=h(IDi‖m1),通過(guò)一個(gè)信道向S發(fā)送信息{PIDi,MPWi}進(jìn)行注冊(cè);一旦S接收到該信息,開(kāi)始計(jì)算Ai=h(MPWimodnk),選擇1個(gè)隨機(jī)數(shù)m2,計(jì)算MIDi=Ex(PIDi‖MPWi‖m2),然后發(fā)送包含信息{MIDi,Ex(·)/Dx(·),h(·)}的智能卡到Ui;最后,Ui將選擇的r和m1存儲(chǔ)在智能卡。
Figure 1 Login and authentication phases of improved protocol圖1 改進(jìn)協(xié)議的登錄認(rèn)證階段
步驟1S驗(yàn)證智能卡記錄的用戶Ui的時(shí)間Ti與系統(tǒng)接收到登錄請(qǐng)求信息{MIDi,M1,Ti,R1}的時(shí)間Ts是否滿足條件|Ts-Ti|≤ΔT,其中ΔT是合法的信息傳輸延遲時(shí)間,如果不滿足,S拒絕登錄請(qǐng)求并終止會(huì)話;否則,S繼續(xù)執(zhí)行下面的操作。
步驟3一旦Ui接收到信息先檢查Ta是否滿足條件|Ta-T2|≤ΔT,如果不滿足,S拒絕登錄請(qǐng)求并終止會(huì)話;否則,S繼續(xù)執(zhí)行下面的操作。
步驟5S檢查Tb是否滿足條件|Tb-T4|≤ΔT,|Tb-T3|≤ΔT,如果不滿足,S拒絕登錄請(qǐng)求并終止會(huì)話;否則,S繼續(xù)執(zhí)行下面的操作。
當(dāng)用戶決定更改密碼時(shí),首先,用戶需要將智能卡插入讀卡器,輸入其用戶名和密碼,接著智能卡執(zhí)行以下步驟:
步驟2S驗(yàn)證智能卡記錄的用戶Ui的時(shí)間Ti與系統(tǒng)接收到登錄請(qǐng)求信息{MIDi,M1,Ti,R1}的時(shí)間Ts是否滿足條件|Ts-Ti|≤ΔT,其中ΔT是合法的信息傳輸延遲時(shí)間,如果不滿足,S拒絕登錄請(qǐng)求并終止會(huì)話;否則,S繼續(xù)執(zhí)行下面的操作。
步驟4一旦Ui接收到信息先檢查Ta是否滿足條件|Ta-T2|≤ΔT,如果不滿足,S拒絕登錄請(qǐng)求并終止會(huì)話;否則,S繼續(xù)執(zhí)行下面的操作。
本節(jié)使用BAN邏輯,即一種分析認(rèn)證協(xié)議的形式化方法,來(lái)證明本文提出協(xié)議的正確性,證明步驟如下所示:
步驟1根據(jù)BAN邏輯的表達(dá)方式,本文希望達(dá)到以下預(yù)期目標(biāo):
步驟2將本文所提出的協(xié)議轉(zhuǎn)換為理想化的形式,如下:
步驟3建立初始假設(shè)集合:
假設(shè)3:Ui|≡#(RNi);
假設(shè)4:S|≡#(RNs);
步驟4基于BAN邏輯規(guī)則和假設(shè),本文對(duì)所提協(xié)議的理想化形式進(jìn)行如下分析:
根據(jù)消息1,可得:S?({PIDi,m2,MPWi}x,{IDi,RNi,Ti,{PID,m2}x}Ai);
(目標(biāo)1)
(目標(biāo)2)
性能比較和計(jì)算效率分析如表2和表3所示。表3中,Th(·)是執(zhí)行單向哈希函數(shù)的時(shí)間,約為0.002 3 ms,TE/D是執(zhí)行加密/解密運(yùn)算的時(shí)間,約為0.004 6 ms,另外,T‖是執(zhí)行級(jí)聯(lián)運(yùn)算的時(shí)間,T⊕是執(zhí)行異或運(yùn)算的時(shí)間,兩者過(guò)小可忽略不計(jì)[20,21]。
根據(jù)表2和表3的數(shù)據(jù)顯示,本文方案在增加微小計(jì)算量的情況下提高了協(xié)議的安全性。
Table 2 Performance comparison表2 性能比較
Table 3 Calculation efficiency analysis表3 計(jì)算效率分析
cal information systems [J].Journal of Medical Systems,2015 39(6):1-11.
本文對(duì)Nikooghadam等人的協(xié)議進(jìn)行了分析,發(fā)現(xiàn)該協(xié)議容易遭受重放攻擊、特權(quán)內(nèi)部攻擊等多種安全威脅,但Nikooghadam等人的協(xié)議具有良好的框架,所以本文基于Nikooghadam等人的協(xié)議提出了一種改進(jìn)的遠(yuǎn)程用戶身份認(rèn)證協(xié)議。
該協(xié)議主要采用時(shí)間戳機(jī)制、計(jì)算性Diffie-Hellman難題來(lái)提高協(xié)議的安全性。使用BAN邏輯驗(yàn)證了本文改進(jìn)協(xié)議的安全性,性能比較與計(jì)算效率分析也表明,本文改進(jìn)協(xié)議在增加微小計(jì)算量的情況下提高了安全性。