王 超,劉黎明
(南陽(yáng)理工學(xué)院 軟件學(xué)院,河南 南陽(yáng) 473004)
遠(yuǎn)程用戶身份驗(yàn)證[1]可分為兩種環(huán)境,即單服務(wù)器環(huán)境[2,3]和多服務(wù)器環(huán)境[4,5]。單服務(wù)器環(huán)境中,用戶必須注冊(cè)到每個(gè)應(yīng)用服務(wù)器。因此,單服務(wù)器環(huán)境的主要問(wèn)題是用戶必須記住許多私有信息(如身份標(biāo)識(shí)和密碼),以訪問(wèn)多個(gè)應(yīng)用服務(wù)器。多服務(wù)器的身份驗(yàn)證方案可解決上述問(wèn)題,其允許用戶通過(guò)單次注冊(cè)就可以訪問(wèn)多個(gè)應(yīng)用服務(wù)器。
身份驗(yàn)證方案使用的密碼函數(shù)眾多,如單向散列函數(shù)、雙線性對(duì)、ECC密碼[6]、RSA密碼[7],以及一些其它運(yùn)算,如模糊驗(yàn)證、生物-散列函數(shù)、異或運(yùn)算等。目前很多身份驗(yàn)證方案基于上述函數(shù)和運(yùn)算,如Pippal等[8]使用模指數(shù)運(yùn)算的雙因子身份驗(yàn)證方案,在計(jì)算成本上具備高效性,但該方案不能抵御密碼猜測(cè)攻擊和冒充攻擊。Liao等[9]提出了一個(gè)用于移動(dòng)應(yīng)用的多服務(wù)器遠(yuǎn)程用戶身份驗(yàn)證方案,使用雙線性配對(duì)運(yùn)算。Hsieh等[10]對(duì)文獻(xiàn)[9]的方案進(jìn)行了分析,發(fā)現(xiàn)其不能抵御跟蹤攻擊,為此,提出了一個(gè)改進(jìn)方案,但其通信成本和智能卡儲(chǔ)存成本更高。崔維等[11]提出一種輕量級(jí)的動(dòng)態(tài)化密鑰協(xié)商的身份認(rèn)證協(xié)議。該協(xié)議在用戶進(jìn)行登錄驗(yàn)證時(shí)使用時(shí)間戳值,可防范重放攻擊以及拒絕服務(wù)攻擊。屈娟等[12]指出文獻(xiàn)[13]易受智能卡丟失攻擊、服務(wù)器模仿攻擊,且不能保護(hù)用戶的匿名性。為此,提出了一種基于生物特征和擴(kuò)展混沌映射的多服務(wù)器認(rèn)證方案。
當(dāng)前,很多研究者利用ECC和雙線性配對(duì)方法進(jìn)行多服務(wù)器身份驗(yàn)證。值得一提,雙線性配對(duì)的執(zhí)行時(shí)間要大于點(diǎn)乘運(yùn)算,其復(fù)雜度要高于點(diǎn)乘運(yùn)算。因此,本文提出了一個(gè)用于多服務(wù)器環(huán)境的三因子遠(yuǎn)程用戶身份驗(yàn)證協(xié)議,使用了ECC點(diǎn)乘運(yùn)算和散列函數(shù)。與其它相關(guān)方案相比,所提協(xié)議更加安全和高效。
本文的遠(yuǎn)程用戶認(rèn)證方案使用了3個(gè)因子:密碼、智能卡和生物統(tǒng)計(jì)信息。該方案包含以下5個(gè)階段:初始、注冊(cè)、登錄、身份驗(yàn)證和密碼更改階段。三方實(shí)體分別為:用戶Ui,服務(wù)器Sj,以及注冊(cè)中心RC。表1給出了本文使用的符號(hào)。
表1 本文使用的符號(hào)
該階段執(zhí)行以下步驟:
(1)RC在素域Fp上選擇一個(gè)橢圓曲線Ep(a,b),并在曲線上選擇一個(gè)點(diǎn)e1;
(2)RC選擇一個(gè)整數(shù)d,并計(jì)算e2=d×e1;
(3)RC選擇一對(duì)(x,y)并宣布{x,y,d}為其私有密鑰,且{E,e1,e2}為公開(kāi)已知參數(shù)。
通過(guò)注冊(cè)中心注冊(cè)到一個(gè)服務(wù)器Sj上,需要執(zhí)行以下步驟:
(1)服務(wù)器Sj自由選擇其標(biāo)識(shí)SIDj,并通過(guò)一個(gè)可靠信道將其發(fā)送到注冊(cè)中心RC;
(3)在收到來(lái)自RC的{KSR1}后,Sj將其保留為保密參數(shù)。
注冊(cè)一個(gè)新用戶到系統(tǒng)需要執(zhí)行以下步驟。
(1)用戶Ui將其生物信息bi和密鑰輸入其標(biāo)識(shí)IDi和密碼PWi中;
(6)RC將參數(shù){P1,P2,Li,Vi,h(·),H(·)}存儲(chǔ)在智能卡中,并通過(guò)一個(gè)可靠信道將其發(fā)送給Ui;
當(dāng)Ui希望登錄到遠(yuǎn)程服務(wù)器Sj時(shí),需要執(zhí)行以下步驟:
(1)用戶Ui將智能卡插入終端,并輸入其生物統(tǒng)計(jì)信息bi和密鑰IDi、PWi;
(4)智能卡生成一個(gè)隨機(jī)的臨時(shí)值Ni,并計(jì)算
式中:T1為當(dāng)前時(shí)間戳。
(5)最后,Ui通過(guò)一個(gè)不可靠信道,將登錄請(qǐng)求消息{M1,M2,M3,M4,T1}發(fā)送至RC。
本階段執(zhí)行以下步驟:
(1)RC在時(shí)間T2接收到用戶Ui的登錄請(qǐng)求消息{M1,M2,M3,M4,T1},首先RC檢查T2-T1≤ΔT是否成立,式中ΔT為預(yù)期時(shí)間間隔。若不成立,則RC終止會(huì)話;
(5)在時(shí)間T4接收到來(lái)自RC消息后,Sj計(jì)算T4-T3≤ΔT是否成立。若不成立,則終止會(huì)話;
(8)在收到來(lái)自Sj的消息后,Ui檢查T6-T5≤ΔT是否成立。若不成立,則終止會(huì)話。
當(dāng)用戶Ui希望對(duì)其密碼進(jìn)行更新時(shí),需要執(zhí)行以下步驟。
(1)用戶Ui將智能卡插入終端,并輸入其生物統(tǒng)計(jì)信息bi和密鑰IDi、PWi;
為了驗(yàn)證所提協(xié)議的正確性,本文參考了BAN邏輯證明的基本規(guī)則和符號(hào)說(shuō)明[14]?;谶@些規(guī)則,做如下操作。
步驟1 為證明提出的協(xié)議的準(zhǔn)確性,其需要實(shí)現(xiàn)以下6個(gè)目標(biāo)。
步驟2 提出的方案轉(zhuǎn)化為理想形式如下:
消息1:M1,M2,M3,T1,M4:
消息2:M5,M6,M7,M8,T3,M9:
消息3:T5,Ci,M10:
步驟3 為進(jìn)一步分析,考慮9個(gè)假設(shè)如下:
假設(shè)1:Ui|≡#{Ni,Nr,Ns};
假設(shè)2:Si|≡#{Ni,Nr,Ns};
假設(shè)3:RC|≡#{Ni,Nr,Ns};
假設(shè)7:RC|≡Ui?Ni;
假設(shè)8:Sj|≡RC?Nr;
假設(shè)9:Ui|≡Sj?Ns。
步驟4 本文證明提出的協(xié)議的準(zhǔn)確性如下:
通過(guò)“消息1”,可知:S1:RC?{M1,M2,M3,T1,M4:
通過(guò)“假設(shè)4”,消息含義規(guī)則和S1,可知:S2:RC|≡Ui|~{Ni};
通過(guò)S2,臨時(shí)值驗(yàn)證規(guī)則和“假設(shè)3”,可知:S3:RC|≡Ui|≡{Ni};
通過(guò)權(quán)限規(guī)則,S3和“假設(shè)7”,可知:S4:RC|≡{Ni},其中Ni為會(huì)話密鑰中的重要參數(shù);
目標(biāo)2:根據(jù)“消息2”,可知:S7:Sj?{M5,M6,M7,M8,T3,M9:
根據(jù)消息含義規(guī)則,S7和“假設(shè)5”,可以得到:S8:Sj|≡RC|~{Nr};
根據(jù)S8,驗(yàn)證規(guī)則和“假設(shè)2”,可以得到:S9:Sj|≡RC|≡Nr;
根據(jù)權(quán)限規(guī)則,“假設(shè)8”和S9,可以得到:S10:Sj|≡Nr;
上述討論證明,提出的方案能夠?qū)崿F(xiàn)安全的雙向身份驗(yàn)證和會(huì)話密鑰協(xié)商。
攻擊者試圖使用分離參數(shù)P1、P2、Li、Vi和RN,從智能卡的內(nèi)存和通信消息{M2,M3,M4,M6,M7,M8,M9,M10,M11}中對(duì)IDi和PWi進(jìn)行猜解。然而攻擊者無(wú)法得到用戶的IDi和PWi,原因如下:
(2)參數(shù)Li取決于Di,PWi,x,y,R和Fi,其中Fi為用戶的生物統(tǒng)計(jì)信息,{x,y}為加密密鑰,R為隨機(jī)數(shù)。如果攻擊者試圖從Li中得到IDi和PWi,其必須同時(shí)知曉所有這些參數(shù),因?yàn)橛脩羯镄畔⒎浅ky以猜解,因此攻擊者無(wú)法猜解Fi。因此A無(wú)法從Li中得到IDi和PWi。
(3)參數(shù)Vi和RN受散列函數(shù)的保護(hù),因此攻擊者無(wú)法從Vi和RN中檢索到IDi和PWi。此外,如果A試圖猜解IDi和PWi,其必須同時(shí)猜解出{IDi,PWi,R}。猜解概率等于1/212n+160,無(wú)法在多項(xiàng)式時(shí)間內(nèi)完成。
假設(shè)攻擊者A竊聽(tīng)到消息,并試圖利用從智能卡和截獲的通信消息中檢索到的參數(shù),創(chuàng)建另一個(gè)假冒的登錄或回復(fù)消息。則A依然無(wú)法假冒Ui或Sj,主要原因如下:
上述討論證明,提出的方案能夠抵御用戶和服務(wù)器假冒攻擊。
假定攻擊者得到了用戶的智能卡,并從中檢索到所有加密信息{P1,P2,Li,Vi,h(·),H(·),RN,e1,e2}。所提方案能夠抵御智能卡丟失攻擊,原因如下:
(1)攻擊者試圖利用智能卡中提取出的數(shù)值{P1,P2,Li,Vi,h(·),H(·),RN,e1,e2},推導(dǎo)或猜解出IDi和PWi。但上文已經(jīng)證明,A無(wú)法使用智能卡數(shù)值檢索或猜解{IDi,PWi}。
(2)攻擊者A希望利用得到的智能卡參數(shù)表現(xiàn)為Ui或Sj。但上文節(jié)已經(jīng)證明了A無(wú)法使用智能卡信息假冒為Ui或Sj。
上述討論證明了所提協(xié)議能夠抵御智能卡丟失攻擊。
在重放攻擊中,攻擊者首先截獲通信消息,并在一定時(shí)間后重新發(fā)送消息,以假冒為合法實(shí)體。本文方案中,如果攻擊者截獲了登陸請(qǐng)求消息{M1,M2,M3,M4,T1},并在一定時(shí)間后重新將該消息發(fā)送到注冊(cè)中心以假冒為合法用戶。那么,在接收到攻擊者發(fā)送的消息后,注冊(cè)中心首先檢查時(shí)間戳T1的新鮮度,即T2-T2≤ΔT,式中T2為當(dāng)前時(shí)間戳,ΔT為最大傳輸延遲。由此,注冊(cè)中心會(huì)因?yàn)闊o(wú)效的傳輸延遲,而拒絕攻擊者的登錄請(qǐng)求。此外,提出的方案還能夠抵御并行會(huì)話攻擊,因?yàn)樵诓煌瑫?huì)話中的登陸請(qǐng)求消息采用了不同的新鮮時(shí)間戳。從其它會(huì)話截獲的消息一定會(huì)被發(fā)現(xiàn)是無(wú)效的。
本節(jié)將從安全性、計(jì)算成本和估計(jì)時(shí)間方面,對(duì)所提協(xié)議與其它協(xié)議[9,10,11,12]進(jìn)行比較。
表2給出了所提協(xié)議與其它相關(guān)協(xié)議的安全特征比較,其中,A1:抵御密碼猜測(cè)攻擊;A2:提供用戶匿名性;A3:抵御用戶假冒攻擊;A4:抵御服務(wù)器假冒攻擊;A5:抵御重放攻擊;A6:提供前向保密性;A7:抵御會(huì)話密鑰臨時(shí)信息攻擊;A8:抵御特權(quán)內(nèi)部者攻擊;A9:登錄和密碼更改階段的準(zhǔn)確性;A10:身份認(rèn)證階段的準(zhǔn)確性;A11:提供會(huì)話密鑰驗(yàn)證。由表2可知,文獻(xiàn)[9,10]易于受到密碼猜測(cè)攻擊,且沒(méi)有提供用戶匿名性。文獻(xiàn)[10]不能抵御服務(wù)器假冒攻擊。文獻(xiàn)[11,12]不能抵御內(nèi)部攻擊,除了文獻(xiàn)[12]和本文協(xié)議,其它協(xié)議都不能提供會(huì)話密鑰驗(yàn)證。因此,本文協(xié)議可以提供多種安全保障,抵御多種攻擊,具有良好的安全性特征。
表3給出了所提協(xié)議與其它協(xié)議在計(jì)算成本和估計(jì)時(shí)間方面的比較。在成本計(jì)算中,首先定義一些符號(hào)如下:
TH:散列函數(shù)
TBP:雙線性配對(duì)運(yùn)算
TBH:生物-散列函數(shù)
TS:對(duì)稱密鑰加密/解密運(yùn)算
TE:模指數(shù)運(yùn)算
表2 安全特性比較
TPM:橢圓曲線點(diǎn)乘運(yùn)算
TMM:模乘
本文協(xié)議中,在執(zhí)行注冊(cè)階段時(shí),用戶需要2TH+1TBH,服務(wù)器需要1TH,注冊(cè)中心需要6TH+2TPM的運(yùn)算。在登錄階段,用戶、服務(wù)器和注冊(cè)中心分別需要進(jìn)行10TH+3TPM+1TBH、6TH+2TPM和7TH+4TPM的運(yùn)算。在執(zhí)行密碼更改階段時(shí),用戶需要完成11TH+2TPM+1TBH的運(yùn)算??傆?jì)43TH+13TPM+3TBH。為了計(jì)算執(zhí)行時(shí)間,本文假定散列函數(shù)耗時(shí)0.0005 s,模乘耗時(shí)0.001 25 s,對(duì)稱密鑰加密/解密運(yùn)算耗時(shí)0.0087 s,模指數(shù)運(yùn)算耗時(shí)0.522 s,生物-散列函數(shù)耗時(shí)0.021 02 s,點(diǎn)乘運(yùn)算耗時(shí)0.0503 s,雙線性配對(duì)運(yùn)算耗時(shí)0.0621 s,本文協(xié)議的估計(jì)執(zhí)行時(shí)間為0.738 s。
各協(xié)議的計(jì)算成本和估計(jì)執(zhí)行時(shí)間比較見(jiàn)表3。從中可以看出,所提協(xié)議的計(jì)算成本優(yōu)于現(xiàn)有協(xié)議。雖然文獻(xiàn)[10]的總體計(jì)算成本更低。但該協(xié)議不能抵御服務(wù)器假冒攻擊,且不具備前向保密性,登錄和密碼更改階段效率較低。
表3 計(jì)算成本和估計(jì)執(zhí)行時(shí)間比較
本文提出了一個(gè)用于多服務(wù)器環(huán)境的三因子遠(yuǎn)程用戶身份驗(yàn)證和會(huì)話密鑰協(xié)商方案,所用的因子分別是密碼、智能卡和生物統(tǒng)計(jì)信息,在登陸階段的時(shí)間戳信息保證了數(shù)據(jù)的新鮮性。密鑰和時(shí)間戳保證了雙向驗(yàn)證的順利完成。BAN邏輯驗(yàn)證了所提方案準(zhǔn)確可靠,能提供安全的雙向身份驗(yàn)證和會(huì)話密鑰協(xié)商。安全性分析證明所提方案能夠抵御各種類型的攻擊。性能評(píng)價(jià)給出了所提方案在安全性、計(jì)算成本和估計(jì)執(zhí)行時(shí)間方面的優(yōu)越性。在多服務(wù)器環(huán)境中的實(shí)用價(jià)值較高。