文獻標(biāo)識碼: A
文章編號: 0258-7998(2015)03-0097-04
0 引言
1981年Lamport等[1]首次提出基于口令的認證方案,這種方案實用性雖強,,但這類方案存在致命的缺陷——離線口令猜測攻擊,。1993年Chang等[2]提出結(jié)合口令和智能卡來提高認證協(xié)議的安全性和有效性,從此產(chǎn)生了一系列的認證方案[3-7],。2012年唐宏斌等[8]提出一種利用橢圓曲線加密機制和時間戳的認證協(xié)議,,2013年皮蘭等[9]指出在不安全信道中引入時間戳是存在嚴(yán)重的時鐘同步問題,并提出一種的異步認證協(xié)議,。本文指出皮蘭等方案因不能保護用戶的匿名性而缺乏實用性,,因引入停止協(xié)議執(zhí)行閾值很容易造成一個嚴(yán)重的安全問題——DoS攻擊,并提出一種采用動態(tài)身份和三次握手技術(shù)的遠程用戶認證方案,。新協(xié)議不僅能夠保護用戶的匿名性,,而且有效的抵抗DoS攻擊,充分保證了協(xié)議性能的高效性,。
1 皮蘭等方案回顧
文中的符號定義如下:U為用戶,;S為服務(wù)器;SC為智能卡,;PW為用戶的口令,;k為服務(wù)器的高熵秘鑰;h(·)為單項哈希函數(shù),;||為字符串連接操作,;?堠為異或運算;?圯為安全信道,;→為普通信道,。
1.1 皮蘭等方案
皮蘭等方案由五個階段組成,本文把登錄和認證放在一起,,省略口令修改階段,。
1.1.1 系統(tǒng)設(shè)置階段
服務(wù)器選取有限域GF(q)上的橢圓曲線E,由E上點形成一個點加法群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 登錄和認證階段
(1)用戶插入智能卡并輸入ID和PW,。智能卡向服務(wù)器發(fā)送登錄請求{ID}。
SC→S:登錄請求{ID}
(2)服務(wù)器收到ID后,,驗證ID格式有效性,,若無效,停止本次協(xié)議,;否則任選隨機數(shù){r1}發(fā)給智能卡,。
S→SC:{r1}
(3)收到r1后,智能卡計算y=h(PW||N)和s=v?堠y=h(ID||k),,然后任選隨機數(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ù)器認證用戶成功,,計算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é)議;否則用戶認證服務(wù)器成功,。用戶在登錄和認證階段中的停止執(zhí)行協(xié)議次數(shù)超過某個閾值h將被鎖定帳號,,必須親自到認證中心解開。
1.2 皮蘭等方案存在的問題
(1)缺乏匿名性
在皮蘭等方案中,,用戶登錄使用真實的身份ID在不安全信道中傳輸容易被攻擊者截獲而泄露用戶的個人信息,,便于攻擊者對特定用戶做出一系列攻擊,如常見于協(xié)議中的拒絕服務(wù)(DoS)攻擊,,冒充攻擊等,。另外,,面對網(wǎng)絡(luò)信息安全的嚴(yán)峻形勢,用戶也意識到個人信息的重要性,,特別是在一些特殊的應(yīng)用中,,例如網(wǎng)上匿名投票,保密電子商務(wù)等,,用戶的信息是不便泄露的,。因此,皮蘭等方案缺乏很大的實用性,。
(2)對DoS攻擊是脆弱的
為阻止在線口令猜測,,皮蘭等方案設(shè)計用戶在登錄和認證中停止執(zhí)行協(xié)議次數(shù)超過某個閾值h,將鎖定該帳號,,用戶必須親自到認證中心解開帳號,,這種方案極容易造成DoS攻擊。因為登錄和認證階段是通過不安全信道通信,,一方面容易受到各種不確定因素(如環(huán)境,,其他設(shè)備等)的干擾;另一方面,,皮蘭等方案缺乏匿名性,,用戶每次登錄與服務(wù)器通信頻繁(四次),攻擊者易鎖定特定用戶后任意偽造,、篡改,、中斷通信消息{ID},{r1},,{R1,,C1}或{C2},都能造成停止執(zhí)行協(xié)議造成DoS攻擊,。如果此情況常發(fā)生,,可能造成整個系統(tǒng)崩潰,皮蘭等方案具有嚴(yán)重的不合理性,。
2 新的認證方案
新方案包括系統(tǒng)初始化,、注冊、登錄認證和口令修改等四個階段,,具體如下,。
2.1 系統(tǒng)初始化階段
該階段與皮蘭等方案的系統(tǒng)設(shè)置類似,但注意:(1)服務(wù)器選擇自己的密鑰k,,以及用戶在登錄時選擇的隨機數(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和高熵隨機數(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}保存到校驗表中,把{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 登錄認證階段
用戶先將智能卡插入讀卡器,,并輸入身份ID和口令PW,然后執(zhí)行以下操作:
(1)智能卡計算y=h(PW||N)和s=v?堠y,,并選擇一個隨機數(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īng)的ID,若找不到停止本次會話,;否則,,計算s′=h(ID||k),R’2=kR1,,C’2=h(TID0,,ID,s′,,R’2),,并檢驗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)并檢驗C’2=?C2,。若不相等,,停止本次會話;否則用戶認證服務(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)并檢驗C’2=?C3,。若相等,,服務(wù)器認證用戶成功,并更新TID0為TID1,;否則,,拒絕用戶的本次登錄請求。
2.4 口令修改階段
當(dāng)用戶想修改口令時,,可以如下更新口令:用戶插入智能卡,,輸入舊的口令PW后提示兩次輸入新的口令PWnew,確保新口令的正確,。智能卡計算y=h(PW||N),,ynew=h(PWnew||N)和vnew=v?堠y?堠ynew=synew后用vnew替換原有的v,這樣口令修改階段完成,。
3 新認證方案的安全性證明和性能分析
3.1 安全性證明
新協(xié)議給每個用戶分配動態(tài)登錄身份保護用戶的匿名性,攻擊者想進行攻擊必須鎖定目標(biāo)用戶,,否則由于每次登錄身份不同,,攻擊者的攻擊都是無效的。故假設(shè)攻擊者已鎖定目標(biāo)用戶,,并能成功截獲目標(biāo)用戶與服務(wù)器通信信息,。
命題1 新協(xié)議能抵抗DoS攻擊
證明:一般地,用戶用動態(tài)身份TIDi登錄,,并收到下一次動態(tài)身份TIDi+1,。但在用戶登錄過程中遭到DoS攻擊,用戶可以再次利用動態(tài)身份TIDi登錄,,因為新協(xié)議采用三次握手技術(shù),,為確保用戶的動態(tài)登錄身份和服務(wù)器儲存的同步,每次只有當(dāng)用戶登錄成功時,,用戶和服務(wù)器才更新動態(tài)登錄身份,。這樣只要DoS攻擊不是持續(xù)的,用戶一定能登錄到服務(wù)器,,而不必每次都要到認證中心解開賬號,,這種設(shè)計不會產(chǎn)生其他的安全問題,主要是重放攻擊和冒充攻擊,。
命題2 新協(xié)議能抵抗重放攻擊和冒充攻擊
證明:這里有兩種重放攻擊:攻擊者當(dāng)用戶正常登錄時進行重放攻擊,;攻擊者根據(jù)鎖定的用戶,,先進行DoS攻擊迫使用戶重新登錄后進行重放攻擊。新協(xié)議采用動態(tài)登錄身份,,,、攻擊者直接重放以前的登錄信息很容易被識破,假設(shè)攻擊者試著構(gòu)造正確的通信消息進行重放攻擊,,冒充合法用戶欺騙服務(wù)器,,或者冒充服務(wù)器欺騙用戶,也即身份冒充攻擊,。
(1)攻擊者在用戶正常登錄時進行重放攻擊,。首先假設(shè)攻擊者冒充用戶,試著構(gòu)造{TIDi,,R1,,C1}和{C3}。
?、僦胤臫IDi,,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中計算隨機數(shù)r1,,但這相當(dāng)于解決ECDLP難題,,是很難實現(xiàn)的;攻擊者可能自己選一個隨機數(shù)r計算出R,進而計算但要計算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ù)器的第三輪握手后才能被認證成功,,所以此種攻擊仍無法實現(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ù)上面的分析,,與直接進行重放攻擊類似,,所以此攻擊仍是無法實現(xiàn)。此外,,通過上面分析,,只有合法用戶才能計算正確的信息讓服務(wù)器認證,,只有真正的服務(wù)器才能計算正確的消息通過用戶的認證,所以新協(xié)議提供雙向認證性,。
命題3 新協(xié)議能抵抗口令猜測攻擊
證明:下面分別從用戶端和服務(wù)器端來證明,。
(2)假設(shè)此處的攻擊者是特權(quán)內(nèi)部攻擊者,即來自系統(tǒng)管理人員,,并且從用戶開始注冊就鎖定目標(biāo)用戶,,記錄用戶遞交信息ID,y=h(PW||N)接下來進行口令猜測攻擊,。但是由于y中含有高熵隨機數(shù)N,,攻擊者仍無法實行口令猜測攻擊。另外,,新協(xié)議在服務(wù)器端保存用戶的動態(tài)登身份TIDi和真實身份ID,,而TIDi只是用戶身份的一個代表,由系統(tǒng)隨機分配,;用戶的真實身份ID,,主要是為了服務(wù)器辨別不同的用戶,這兩個值在協(xié)議中都不是敏感的數(shù)據(jù),,所以新協(xié)議也能抵抗被盜校驗子攻擊,。
3.2 性能分析
各種方案計算代價和安全性比較分別如表1和表2所示。從表1看,,與Chen等方案比較,,新方案需要橢圓曲線上點乘運算并不占優(yōu);但從表2看,,Chen等方案的安全性明顯低,,而且新方案建立在橢圓曲線密碼機制上,與傳統(tǒng)的公鑰密碼體制(如RSA)比較具有很多優(yōu)勢,,例如256位的ECC與1024位的RSA具有相同的安全性[10],,所以在同安全條件下,新方案在總的性能上占優(yōu),。從表1看,,與唐-皮等方案(唐宏斌等方案和皮蘭等方案)比較,新方案在登錄認證階段多2個哈希運算,。但是唐宏斌等方案在用戶登錄前需要一個預(yù)計算階段,,皮蘭等方案在登錄認證階段需要與服務(wù)器進行四次握手通信,而本方案不需要預(yù)計算階段,,登錄認證只需三次握手通信,;而且唐-皮等方案進行口令修改時,還要與服務(wù)器進行四次通信,而新協(xié)議用戶自己就能完成,,計算代價明顯減小,。從表2看,新協(xié)議不僅不需要協(xié)調(diào)時鐘,,降低成本代價,,而且具有匿名性以及抵抗強安全性問題——DoS攻擊,充分確保了認證協(xié)議的有效性,。所以新協(xié)議總的性能仍占優(yōu),。
4 結(jié)論
本文提出一種基于智能卡和動態(tài)身份的遠程用戶認證協(xié)議,采用動態(tài)登錄身份來保護用戶的匿名性,,避免重放攻擊,,通過延長用戶存儲動態(tài)身份和三次握手技術(shù)抗擊DoS攻擊,同時保證協(xié)議性能的高效性,,擴大了協(xié)議的使用范圍,,例如移動設(shè)備云環(huá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] 唐宏斌,劉心松.增強的基于智能卡的遠程用戶認證協(xié)議[J].計算機工程與應(yīng)用,,2012,,48(19):61-65.
[9] 皮蘭,武傳坤.改進的基于智能卡的遠程異步認證協(xié)議[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.