文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)03-0097-04
0 引言
1981年Lamport等[1]首次提出基于口令的認(rèn)證方案,,這種方案實(shí)用性雖強(qiáng),,但這類方案存在致命的缺陷——離線口令猜測攻擊。1993年Chang等[2]提出結(jié)合口令和智能卡來提高認(rèn)證協(xié)議的安全性和有效性,,從此產(chǎn)生了一系列的認(rèn)證方案[3-7],。2012年唐宏斌等[8]提出一種利用橢圓曲線加密機(jī)制和時間戳的認(rèn)證協(xié)議,2013年皮蘭等[9]指出在不安全信道中引入時間戳是存在嚴(yán)重的時鐘同步問題,,并提出一種的異步認(rèn)證協(xié)議,。本文指出皮蘭等方案因不能保護(hù)用戶的匿名性而缺乏實(shí)用性,因引入停止協(xié)議執(zhí)行閾值很容易造成一個嚴(yán)重的安全問題——DoS攻擊,,并提出一種采用動態(tài)身份和三次握手技術(shù)的遠(yuǎn)程用戶認(rèn)證方案,。新協(xié)議不僅能夠保護(hù)用戶的匿名性,而且有效的抵抗DoS攻擊,,充分保證了協(xié)議性能的高效性,。
1 皮蘭等方案回顧
文中的符號定義如下:U為用戶;S為服務(wù)器,;SC為智能卡,;PW為用戶的口令;k為服務(wù)器的高熵秘鑰,;h(·)為單項(xiàng)哈希函數(shù),;||為字符串連接操作;?堠為異或運(yùn)算,;?圯為安全信道;→為普通信道,。
1.1 皮蘭等方案
皮蘭等方案由五個階段組成,,本文把登錄和認(rèn)證放在一起,省略口令修改階段,。
1.1.1 系統(tǒng)設(shè)置階段
服務(wù)器選取有限域GF(q)上的橢圓曲線E,,由E上點(diǎn)形成一個點(diǎn)加法群Ea,b(GFq),,設(shè)P是階為n的生成元,。服務(wù)器選取私鑰k和計算對應(yīng)的公鑰Q=kP。服務(wù)器保密k,,公布其系統(tǒng)參數(shù){q,,a,b,n,,P,,Q}。
1.1.2 注冊階段
(1)用戶選取身份ID,、口令PW和新鮮數(shù)N,,通過安全信道把消息{ID,y=h(PW||N)}發(fā)給服務(wù)器,。
U?圯S:{ID,,y}
(2)收到{ID,y},,服務(wù)器計算s=h(ID||k),,v=s?堠y,通過安全信道把存有v,,h(·)和系統(tǒng)參數(shù)的智能卡發(fā)給用戶,。
S?圯U:SC
(3)用戶收到智能卡后,把N輸入智能卡,,最后智能卡中含有v,,h(·)和系統(tǒng)參數(shù)。
1.1.3 登錄和認(rèn)證階段
(1)用戶插入智能卡并輸入ID和PW,。智能卡向服務(wù)器發(fā)送登錄請求{ID},。
SC→S:登錄請求{ID}
(2)服務(wù)器收到ID后,驗(yàn)證ID格式有效性,,若無效,,停止本次協(xié)議;否則任選隨機(jī)數(shù){r1}發(fā)給智能卡,。
S→SC:{r1}
(3)收到r1后,,智能卡計算y=h(PW||N)和s=v?堠y=h(ID||k),然后任選隨機(jī)數(shù)r2,,再計算R1=r2P,,R2=r2Q以及C1=h(ID,S,,s,,R2,r1),。最后智能卡發(fā)送登錄消息{R1,,C1}給服務(wù)器。
SC→S:{R1,,C1}
(4)服務(wù)器收到{R1,,C1}后,計算s′=h(ID||k),R’2=kR1以及C’2=h(ID,,S,,s′,R’2,,r1),,比較C’2是否等于C1;若二者不等,,停止本次協(xié)議,;否則服務(wù)器認(rèn)證用戶成功,計算C2=h(S,,ID,,s′,R’2)發(fā)送給智能卡,。
S→U:{C2}
(5)收到C2后,,智能卡計算C’2=h(S,ID,,s,,r1,R2),,并比較C’2是否等于C2,,若二者不等,服務(wù)器停止本次協(xié)議,;否則用戶認(rèn)證服務(wù)器成功,。用戶在登錄和認(rèn)證階段中的停止執(zhí)行協(xié)議次數(shù)超過某個閾值h將被鎖定帳號,必須親自到認(rèn)證中心解開,。
1.2 皮蘭等方案存在的問題
(1)缺乏匿名性
在皮蘭等方案中,,用戶登錄使用真實(shí)的身份ID在不安全信道中傳輸容易被攻擊者截獲而泄露用戶的個人信息,便于攻擊者對特定用戶做出一系列攻擊,,如常見于協(xié)議中的拒絕服務(wù)(DoS)攻擊,,冒充攻擊等。另外,,面對網(wǎng)絡(luò)信息安全的嚴(yán)峻形勢,用戶也意識到個人信息的重要性,,特別是在一些特殊的應(yīng)用中,,例如網(wǎng)上匿名投票,保密電子商務(wù)等,,用戶的信息是不便泄露的,。因此,皮蘭等方案缺乏很大的實(shí)用性。
(2)對DoS攻擊是脆弱的
為阻止在線口令猜測,,皮蘭等方案設(shè)計用戶在登錄和認(rèn)證中停止執(zhí)行協(xié)議次數(shù)超過某個閾值h,,將鎖定該帳號,用戶必須親自到認(rèn)證中心解開帳號,,這種方案極容易造成DoS攻擊,。因?yàn)榈卿浐驼J(rèn)證階段是通過不安全信道通信,一方面容易受到各種不確定因素(如環(huán)境,,其他設(shè)備等)的干擾,;另一方面,皮蘭等方案缺乏匿名性,,用戶每次登錄與服務(wù)器通信頻繁(四次),,攻擊者易鎖定特定用戶后任意偽造、篡改,、中斷通信消息{ID},,{r1},{R1,,C1}或{C2},,都能造成停止執(zhí)行協(xié)議造成DoS攻擊。如果此情況常發(fā)生,,可能造成整個系統(tǒng)崩潰,,皮蘭等方案具有嚴(yán)重的不合理性。
2 新的認(rèn)證方案
新方案包括系統(tǒng)初始化,、注冊,、登錄認(rèn)證和口令修改等四個階段,具體如下,。
2.1 系統(tǒng)初始化階段
該階段與皮蘭等方案的系統(tǒng)設(shè)置類似,,但注意:(1)服務(wù)器選擇自己的密鑰k,以及用戶在登錄時選擇的隨機(jī)數(shù)r1,,滿足k,,r1∈[1,n-1],,這是保證kP,,r1P∈Ea,b[GFq],。(2)橢圓曲線上的離散對數(shù)問題(ECDLP):給定P,,Q∈Ea,b[GFq],,求一個k滿足Q=kP是相對困難的[10],。
2.2 注冊階段
(1)用戶選取自己的身份ID,、口令PW和高熵隨機(jī)數(shù)N,通過安全信道發(fā)送消息{ID,,y=h(PW||N)}給服務(wù)器,。
U?圯S:{ID,y}
(2)收到{ID,,y},,服務(wù)器為用戶分配初次動態(tài)登錄身份TID0,計算s=h(ID||k),,v=s?堠y,,把{TID0,ID}保存到校驗(yàn)表中,,把{TID0,,v,h(·)}以及系統(tǒng)參數(shù)存入智能卡中,,最后服務(wù)器通過安全信道把智能卡分發(fā)給用戶,。
S?圯U:SC
(3)用戶收到智能卡后把N輸入智能卡,最后智能卡中含有TID0,,v,,h(·)和系統(tǒng)參數(shù){q,a,,b,,n,P,,Q},。
2.3 登錄認(rèn)證階段
用戶先將智能卡插入讀卡器,并輸入身份ID和口令PW,,然后執(zhí)行以下操作:
(1)智能卡計算y=h(PW||N)和s=v?堠y,,并選擇一個隨機(jī)數(shù)r1∈[1,n-1],,計算R1=r1P,,R2=r1Q,C1=h(TID0,,ID,,s,R2)后向服務(wù)器發(fā)送請求消息,。
SC→S:登錄請求{TID0,,R1,C1}
(2)收到消息后,,服務(wù)器用TID0從校驗(yàn)表找對應(yīng)的ID,,若找不到停止本次會話;否則,,計算s′=h(ID||k),,R’2=kR1,C’2=h(TID0,,ID,,s′,R’2),,并檢驗(yàn)C’2=?C1,。若不相等,停止本次會話,;否則服務(wù)器為用戶分配下一次動態(tài)登錄身份TID1,,并計算C2=h(TID1,s′,,R’2)后發(fā)送消息{TID1,,C2}給用戶。
S→SC:{TID1,,C2}
(3)收到{TID1,,C2}后,用戶計算C’2=h(TID1,,s,,R2)并檢驗(yàn)C’2=?C2。若不相等,,停止本次會話,;否則用戶認(rèn)證服務(wù)器成功,把動態(tài)身份TID1保存到智能卡,,直到下一次成功登錄并收到動態(tài)身份TID2,,再用TID2更新TID0。最后計算C3=h(TID0,,TID1,,s,R2),,智能卡發(fā)送{C3}給服務(wù)器,。
SC→S:{C3}
(4)收到{C3}后,服務(wù)器計算C’2=h(TID0,,TID1,,s′,R’2)并檢驗(yàn)C’2=?C3,。若相等,,服務(wù)器認(rèn)證用戶成功,,并更新TID0為TID1;否則,,拒絕用戶的本次登錄請求,。
2.4 口令修改階段
當(dāng)用戶想修改口令時,可以如下更新口令:用戶插入智能卡,,輸入舊的口令PW后提示兩次輸入新的口令PWnew,,確保新口令的正確。智能卡計算y=h(PW||N),,ynew=h(PWnew||N)和vnew=v?堠y?堠ynew=synew后用vnew替換原有的v,,這樣口令修改階段完成。
3 新認(rèn)證方案的安全性證明和性能分析
3.1 安全性證明
新協(xié)議給每個用戶分配動態(tài)登錄身份保護(hù)用戶的匿名性,,攻擊者想進(jìn)行攻擊必須鎖定目標(biāo)用戶,,否則由于每次登錄身份不同,攻擊者的攻擊都是無效的,。故假設(shè)攻擊者已鎖定目標(biāo)用戶,,并能成功截獲目標(biāo)用戶與服務(wù)器通信信息。
命題1 新協(xié)議能抵抗DoS攻擊
證明:一般地,,用戶用動態(tài)身份TIDi登錄,,并收到下一次動態(tài)身份TIDi+1。但在用戶登錄過程中遭到DoS攻擊,,用戶可以再次利用動態(tài)身份TIDi登錄,,因?yàn)樾聟f(xié)議采用三次握手技術(shù),為確保用戶的動態(tài)登錄身份和服務(wù)器儲存的同步,,每次只有當(dāng)用戶登錄成功時,,用戶和服務(wù)器才更新動態(tài)登錄身份。這樣只要DoS攻擊不是持續(xù)的,,用戶一定能登錄到服務(wù)器,,而不必每次都要到認(rèn)證中心解開賬號,這種設(shè)計不會產(chǎn)生其他的安全問題,,主要是重放攻擊和冒充攻擊,。
命題2 新協(xié)議能抵抗重放攻擊和冒充攻擊
證明:這里有兩種重放攻擊:攻擊者當(dāng)用戶正常登錄時進(jìn)行重放攻擊;攻擊者根據(jù)鎖定的用戶,,先進(jìn)行DoS攻擊迫使用戶重新登錄后進(jìn)行重放攻擊,。新協(xié)議采用動態(tài)登錄身份,,、攻擊者直接重放以前的登錄信息很容易被識破,,假設(shè)攻擊者試著構(gòu)造正確的通信消息進(jìn)行重放攻擊,冒充合法用戶欺騙服務(wù)器,,或者冒充服務(wù)器欺騙用戶,,也即身份冒充攻擊,。
(1)攻擊者在用戶正常登錄時進(jìn)行重放攻擊。首先假設(shè)攻擊者冒充用戶,,試著構(gòu)造{TIDi,,R1,C1}和{C3},。
①重放TIDi,,R1,,構(gòu)造C1,C3,。假設(shè)攻擊者根據(jù)鎖定的用戶,,在用戶登錄服務(wù)器時截獲登錄消息{TIDi,R1,,C1},,直接從中獲取TIDi和R1用于隨后重放攻擊,試著構(gòu)造C1,,C3,。但構(gòu)造C1=h(TIDi,ID,,s,,R2),C3=h(TIDi,,TIDi+1,,s,R2),,攻擊者必須計算R2=r1Q,。攻擊者可能從R1=r1P中計算隨機(jī)數(shù)r1,但這相當(dāng)于解決ECDLP難題,,是很難實(shí)現(xiàn)的,;攻擊者可能自己選一個隨機(jī)數(shù)r計算出R,進(jìn)而計算但要計算C1,,C3,,攻擊者還必須計算s。而s的計算與用戶的口令PW和服務(wù)器的秘鑰k有關(guān),,是很難獲得的,,所以此種攻擊是無法成功的。
?、谥胤臫IDi,,R1,,C1,構(gòu)造C3,。假設(shè)攻擊者在用戶登錄時截獲第三輪消息{C3},,試著構(gòu)造C3。但是由上面分析,,C3中含有s和R2是很難得到的,,而且在新協(xié)議中用戶只有通過與服務(wù)器的第三輪握手后才能被認(rèn)證成功,所以此種攻擊仍無法實(shí)現(xiàn),。
攻擊者冒充服務(wù)器,,重放消息{TIDi+1,C2},。
重放TIDi+1,,構(gòu)造C2。假設(shè)攻擊者在服務(wù)器向用戶發(fā)送消息時截獲并{TIDi+1,,C2},,重放TIDi+1,構(gòu)造C2,。攻擊者構(gòu)造正確的C2=h(TIDi+1,,s′),必須獲得s′,,但是這些值都與服務(wù)器的秘鑰k有關(guān),,攻擊者是很難得到的,所以此種攻擊也是不可能的,。
(2)先DoS攻擊后重放攻擊,。此種情況由于用戶重新輸入身份和口令,只是發(fā)送同樣的動態(tài)身份,,根據(jù)上面的分析,,與直接進(jìn)行重放攻擊類似,所以此攻擊仍是無法實(shí)現(xiàn),。此外,,通過上面分析,只有合法用戶才能計算正確的信息讓服務(wù)器認(rèn)證,,只有真正的服務(wù)器才能計算正確的消息通過用戶的認(rèn)證,,所以新協(xié)議提供雙向認(rèn)證性。
命題3 新協(xié)議能抵抗口令猜測攻擊
證明:下面分別從用戶端和服務(wù)器端來證明,。
(2)假設(shè)此處的攻擊者是特權(quán)內(nèi)部攻擊者,,即來自系統(tǒng)管理人員,并且從用戶開始注冊就鎖定目標(biāo)用戶,記錄用戶遞交信息ID,,y=h(PW||N)接下來進(jìn)行口令猜測攻擊,。但是由于y中含有高熵隨機(jī)數(shù)N,攻擊者仍無法實(shí)行口令猜測攻擊,。另外,,新協(xié)議在服務(wù)器端保存用戶的動態(tài)登身份TIDi和真實(shí)身份ID,而TIDi只是用戶身份的一個代表,,由系統(tǒng)隨機(jī)分配,;用戶的真實(shí)身份ID,主要是為了服務(wù)器辨別不同的用戶,,這兩個值在協(xié)議中都不是敏感的數(shù)據(jù),,所以新協(xié)議也能抵抗被盜校驗(yàn)子攻擊。
3.2 性能分析
各種方案計算代價和安全性比較分別如表1和表2所示,。從表1看,與Chen等方案比較,,新方案需要橢圓曲線上點(diǎn)乘運(yùn)算并不占優(yōu),;但從表2看,Chen等方案的安全性明顯低,,而且新方案建立在橢圓曲線密碼機(jī)制上,,與傳統(tǒng)的公鑰密碼體制(如RSA)比較具有很多優(yōu)勢,例如256位的ECC與1024位的RSA具有相同的安全性[10],,所以在同安全條件下,,新方案在總的性能上占優(yōu)。從表1看,,與唐-皮等方案(唐宏斌等方案和皮蘭等方案)比較,,新方案在登錄認(rèn)證階段多2個哈希運(yùn)算。但是唐宏斌等方案在用戶登錄前需要一個預(yù)計算階段,,皮蘭等方案在登錄認(rèn)證階段需要與服務(wù)器進(jìn)行四次握手通信,,而本方案不需要預(yù)計算階段,登錄認(rèn)證只需三次握手通信,;而且唐-皮等方案進(jìn)行口令修改時,,還要與服務(wù)器進(jìn)行四次通信,而新協(xié)議用戶自己就能完成,,計算代價明顯減小,。從表2看,新協(xié)議不僅不需要協(xié)調(diào)時鐘,,降低成本代價,,而且具有匿名性以及抵抗強(qiáng)安全性問題——DoS攻擊,充分確保了認(rèn)證協(xié)議的有效性。所以新協(xié)議總的性能仍占優(yōu),。
4 結(jié)論
本文提出一種基于智能卡和動態(tài)身份的遠(yuǎn)程用戶認(rèn)證協(xié)議,,采用動態(tài)登錄身份來保護(hù)用戶的匿名性,避免重放攻擊,,通過延長用戶存儲動態(tài)身份和三次握手技術(shù)抗擊DoS攻擊,,同時保證協(xié)議性能的高效性,擴(kuò)大了協(xié)議的使用范圍,,例如移動設(shè)備云環(huán)境下的用戶登錄認(rèn)證,。
參考文獻(xiàn)
[1] LAMPORT L.Password authentication with insecure commu-nication[J].Communication of the ACM,1981,24(11):770-772.
[2] CHANG C C,WU T C.Remote password authentication with smartcards[J].IEE Proceedings-E Computers and DigitalTechniques,,1993,,138(3):165-168.
[3] CHIEN H Y,JAN J K,,TSENG Y M.An efficient and practical solution to remote authentication:smart card[J].Computers and Security,,2002,21(4):372-375.
[4] KU W C,,CHEN S M.Weaknesses and improvements of anefficient password based remote user authentication scheme using smart cards[J].IEEE Transactions on Consumer Elec-tronics,,2004,50(1):204-207.
[5] HSU C L.Security of Chien et al.′s remote user authenti-cation scheme using smart cards[J].Computer Standards andInterfaces,,2004,,26(3):167-169.
[6] HSIANG H C,SHIH W K.Weakness and improvements of the Yoon-Ryu-Yoo remote user authentication scheme using smartcards[J].Computer Communications,,2009,,32(4):649-652.
[7] CHEN C L,LIN Y F,,WANG N C.An improvement on Hsiang and Shih′s remote user authentication scheme usingsmartcards[C].Proceedings of the 12th ACIS International Conference on Software Engineering,,Artificial Intelligence,Networking and Parallel/Distribute Computing.2011:53-57.
[8] 唐宏斌,,劉心松.增強(qiáng)的基于智能卡的遠(yuǎn)程用戶認(rèn)證協(xié)議[J].計算機(jī)工程與應(yīng)用,,2012,48(19):61-65.
[9] 皮蘭,,武傳坤.改進(jìn)的基于智能卡的遠(yuǎn)程異步認(rèn)證協(xié)議[J].計算機(jī)工程與應(yīng)用,,2014(8):61-65.
[10] MILLER V S.Use of elliptic curves in cryptography[J]. Advances in cryptology,proceedings of CRYPTO.1986,,85(218):417-426.