基于智能卡的動(dòng)態(tài)身份認(rèn)證協(xié)議
0 引言
本文引用地址:http://butianyuan.cn/article/201609/303702.htm1981年Lamport等[1]首次提出基于口令的認(rèn)證方案,這種方案實(shí)用性雖強(qiáng),但這類方案存在致命的缺陷——離線口令猜測(cè)攻擊。1993年 Chang等[2]提出結(jié)合口令和智能卡來提高認(rèn)證協(xié)議的安全性和有效性,從此產(chǎn)生了一系列的認(rèn)證方案[3-7]。2012年唐宏斌等[8]提出一種利用橢圓曲線加密機(jī)制和時(shí)間戳的認(rèn)證協(xié)議,2013年皮蘭等[9]指出在不安全信道中引入時(shí)間戳是存在嚴(yán)重的時(shí)鐘同步問題,并提出一種的異步認(rèn)證協(xié)議。本文指出皮蘭等方案因不能保護(hù)用戶的匿名性而缺乏實(shí)用性,因引入停止協(xié)議執(zhí)行閾值很容易造成一個(gè)嚴(yán)重的安全問題——DoS攻擊,并提出一種采用動(dòng)態(tài)身份和三次握手技術(shù)的遠(yuǎn)程用戶認(rèn)證方案。新協(xié)議不僅能夠保護(hù)用戶的匿名性,而且有效的抵抗DoS攻擊,充分保證了協(xié)議性能的高效性。
1 皮蘭等方案回顧
文中的符號(hào)定義如下:U為用戶;S為服務(wù)器;SC為智能卡;PW為用戶的口令;k為服務(wù)器的高熵秘鑰;h(·)為單項(xiàng)哈希函數(shù);||為字符串連接操作;?堠為異或運(yùn)算;?圯為安全信道;→為普通信道。
1.1 皮蘭等方案
皮蘭等方案由五個(gè)階段組成,本文把登錄和認(rèn)證放在一起,省略口令修改階段。
1.1.1 系統(tǒng)設(shè)置階段
服務(wù)器選取有限域GF(q)上的橢圓曲線E,由E上點(diǎn)形成一個(gè)點(diǎn)加法群Ea,b(GFq),設(shè)P是階為n的生成元。服務(wù)器選取私鑰k和計(jì)算對(duì)應(yīng)的公鑰Q=kP。服務(wù)器保密k,公布其系統(tǒng)參數(shù){q,a,b,n,P,Q}。
1.1.2 注冊(cè)階段
(1)用戶選取身份ID、口令PW和新鮮數(shù)N,通過安全信道把消息{ID,y=h(PW||N)}發(fā)給服務(wù)器。
U?圯S:{ID,y}
(2)收到{ID,y},服務(wù)器計(jì)算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ā)送登錄請(qǐng)求{ID}。
SC→S:登錄請(qǐng)求{ID}
(2)服務(wù)器收到ID后,驗(yàn)證ID格式有效性,若無效,停止本次協(xié)議;否則任選隨機(jī)數(shù){r1}發(fā)給智能卡。
S→SC:{r1}
(3)收到r1后,智能卡計(jì)算y=h(PW||N)和s=v?堠y=h(ID||k),然后任選隨機(jī)數(shù)r2,再計(jì)算R1=r2P,R2=r2Q以及C1=h(ID,S,s,R2,r1)。最后智能卡發(fā)送登錄消息{R1,C1}給服務(wù)器。
SC→S:{R1,C1}
(4)服務(wù)器收到{R1,C1}后,計(jì)算s′=h(ID||k),R’2=kR1以及C’2=h(ID,S,s′,R’2,r1),比較C’2是否等于C1;若二者不等,停止本次協(xié)議;否則服務(wù)器認(rèn)證用戶成功,計(jì)算C2=h(S,ID,s′,R’2)發(fā)送給智能卡。
S→U:{C2}
(5)收到C2后,智能卡計(jì)算C’2=h(S,ID,s,r1,R2),并比較C’2是否等于C2,若二者不等,服務(wù)器停止本次協(xié)議;否則用戶認(rèn)證服務(wù)器成功。用戶在登錄和認(rèn)證階段中的停止執(zhí)行協(xié)議次數(shù)超過某個(gè)閾值h將被鎖定帳號(hào),必須親自到認(rèn)證中心解開。
1.2 皮蘭等方案存在的問題
(1)缺乏匿名性
在皮蘭等方案中,用戶登錄使用真實(shí)的身份ID在不安全信道中傳輸容易被攻擊者截獲而泄露用戶的個(gè)人信息,便于攻擊者對(duì)特定用戶做出一系列攻擊,如常見于協(xié)議中的拒絕服務(wù)(DoS)攻擊,冒充攻擊等。另外,面對(duì)網(wǎng)絡(luò)信息安全的嚴(yán)峻形勢(shì),用戶也意識(shí)到個(gè)人信息的重要性,特別是在一些特殊的應(yīng)用中,例如網(wǎng)上匿名投票,保密電子商務(wù)等,用戶的信息是不便泄露的。因此,皮蘭等方案缺乏很大的實(shí)用性。
(2)對(duì)DoS攻擊是脆弱的
為阻止在線口令猜測(cè),皮蘭等方案設(shè)計(jì)用戶在登錄和認(rèn)證中停止執(zhí)行協(xié)議次數(shù)超過某個(gè)閾值h,將鎖定該帳號(hào),用戶必須親自到認(rèn)證中心解開帳號(hào),這種方案極容易造成DoS攻擊。因?yàn)榈卿浐驼J(rèn)證階段是通過不安全信道通信,一方面容易受到各種不確定因素(如環(huán)境,其他設(shè)備等)的干擾;另一方面,皮蘭等方案缺乏匿名性,用戶每次登錄與服務(wù)器通信頻繁(四次),攻擊者易鎖定特定用戶后任意偽造、篡改、中斷通信消息{ID},{r1},{R1,C1}或{C2},都能造成停止執(zhí)行協(xié)議造成DoS攻擊。如果此情況常發(fā)生,可能造成整個(gè)系統(tǒng)崩潰,皮蘭等方案具有嚴(yán)重的不合理性。
2 新的認(rèn)證方案
新方案包括系統(tǒng)初始化、注冊(cè)、登錄認(rèn)證和口令修改等四個(gè)階段,具體如下。
2.1 系統(tǒng)初始化階段
該階段與皮蘭等方案的系統(tǒng)設(shè)置類似,但注意:(1)服務(wù)器選擇自己的密鑰k,以及用戶在登錄時(shí)選擇的隨機(jī)數(shù)r1,滿足k,r1∈[1,n-1],這是保證kP,r1P∈Ea,b[GFq]。(2)橢圓曲線上的離散對(duì)數(shù)問題(ECDLP):給定P,Q∈Ea,b[GFq],求一個(gè)k滿足Q=kP是相對(duì)困難的[10]。
2.2 注冊(cè)階段
(1)用戶選取自己的身份ID、口令PW和高熵隨機(jī)數(shù)N,通過安全信道發(fā)送消息{ID,y=h(PW||N)}給服務(wù)器。
U?圯S:{ID,y}
(2)收到{ID,y},服務(wù)器為用戶分配初次動(dòng)態(tài)登錄身份TID0,計(jì)算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)智能卡計(jì)算y=h(PW||N)和s=v?堠y,并選擇一個(gè)隨機(jī)數(shù)r1∈[1,n-1],計(jì)算R1=r1P,R2=r1Q,C1=h(TID0,ID,s,R2)后向服務(wù)器發(fā)送請(qǐng)求消息。
SC→S:登錄請(qǐng)求{TID0,R1,C1}
(2)收到消息后,服務(wù)器用TID0從校驗(yàn)表找對(duì)應(yīng)的ID,若找不到停止本次會(huì)話;否則,計(jì)算s′ =h(ID||k),R’2=kR1,C’2=h(TID0,ID,s′,R’2),并檢驗(yàn)C’2=?C1。若不相等,停止本次會(huì)話;否則服務(wù)器為用戶分配下一次動(dòng)態(tài)登錄身份TID1,并計(jì)算C2=h(TID1,s′,R’2)后發(fā)送消息{TID1,C2}給用戶。
S→SC:{TID1,C2}
(3)收到{TID1,C2}后,用戶計(jì)算C’2=h(TID1,s,R2)并檢驗(yàn)C’2=?C2。若不相等,停止本次會(huì)話;否則用戶認(rèn)證服務(wù)器成功,把動(dòng)態(tài)身份TID1保存到智能卡,直到下一次成功登錄并收到動(dòng)態(tài)身份TID2,再用TID2更新TID0。最后計(jì)算 C3=h(TID0,TID1,s,R2),智能卡發(fā)送{C3}給服務(wù)器。
評(píng)論