任曉芳 陳衛(wèi)東 李桂珍
摘 要: 分析2011年Muniyandi等人提出的一種基于橢圓曲線密碼(ECC)體制的智能卡進行遠程認證方案,發(fā)現(xiàn)該方案缺乏密鑰協(xié)商機制,不能有效抵抗偽裝攻擊、認證表盜竊攻擊、離線猜測攻擊和智能卡丟失等攻擊。提出一種改進方案,融入相互認證和密鑰協(xié)商機制來克服以上缺陷,確保前向和后向保密性,且用戶能夠自由修改密碼,同時對用戶信息進行匿名保護。與現(xiàn)有智能卡認證方案相比,該方案具有較高的安全性能,且具有較小的計算開銷。
關鍵詞: 信息安全; 智能卡; 偽裝攻擊; 相互認證; 密鑰協(xié)商機制
中圖分類號: TN911?34; TP309 文獻標識碼: A 文章編號: 1004?373X(2016)06?0005?05
Smart card remote security certification scheme based on mutual authentication
and key negotiation mechanism
REN Xiaofang1, CHEN Weidong1, LI Guizhen2
(1. Department of Computer Engineering, Xinjiang Institute of Engineering, Urumqi 830052, China;
2. Branch of Information technology, Xinjiang Agricultural Vocational Technigcal College, Changji 831100, China)
Abstract: A remote security certification scheme of smart card based on ECC (elliptic curve cryptography) is analyzed, which was proposed by Muniyandi in 2011, but it is found that the scheme lacks the key agreement mechanism, and can not effectively resist the impersonation attack, authentication table theft attack, off?line guessing attack and loss of smart card. An improved scheme, integrating the mutual authentication with the key agreement mechanism, is proposed in this paper, with which the above defects can be overcomed, the confidentiality of the forward and backward is ensured, the users can freely modify their password, and anonymity protection for users information is executed. Compared with the existing schemes, the improved scheme has advantages of higher security and less computational overhead.
Keywords: information security; smart card; impersonation attack; mutual authentication; key agreement mechanism
0 引 言
遠程用戶認證方案是服務器在不安全的通信通道上認證遠程用戶身份的一種機制,在用戶遠程登錄服務器時被廣泛采用,能夠在開放網(wǎng)絡環(huán)境中確保用戶的合法性和服務器的正確性[1]。其中,智能卡逐漸成為可靠高效的認證工具之一,被應用于在線銀行、電子商務等領域。然而,基于智能卡的遠程認證也存在多種安全問題,例如,猜測攻擊、重放攻擊、假冒攻擊、智能卡丟失攻擊等[2]。
文獻[3?6]提出了多種安全認證方案。用戶借助智能卡,通過終端遠程接入網(wǎng)絡中的服務器,服務器通過事先協(xié)商好的密鑰信息和智能卡本身,完成與用戶的相互認證。認證通過后,用戶向服務器提交個人信息,并接受服務器的服務。文獻[7]提出一種基于橢圓曲線密碼(ECC)的智能卡的遠程用戶認證方案,能夠抵抗重放攻擊,且服務器不需要維護密碼表來驗證登錄用戶的合法性。然而,該方案是不安全的,因為合法用戶在不知道服務器密鑰的前提下可以生成有效的身份和密碼。為此,2011年,文獻[8]在文獻[7]的基礎上提出了一種使用智能卡的遠程認證方案。該方案提供了相互認證和抵抗拒絕服務攻擊和偽造攻擊等。但該方案也存在多個缺陷:不能抵御盜竊攻擊;缺乏秘鑰分配機制;用戶不能自由地修改密碼;容易遭到離線猜測攻擊和不能抵御智能卡丟失攻擊等。
針對文獻[8]方案的缺陷,本文提出一種改進方案,能夠提供相互認證,確保前向和后向保密性,且能夠抵御各種攻擊,如智能卡丟失攻擊、重放攻擊、離線猜測攻擊、偽裝攻擊和盜竊攻擊等,同時對用戶進行匿名保護。通過性能比較,本文方案具有較高的安全性能,且具有較小的計算消耗。
1 文獻[8]方案回顧
文獻[8]提出一種基于ECC算法的智能卡遠程認證方案,包含注冊階段,登錄階段和認證階段,服務器和用戶通過離散對數(shù)運算來進行相互認證,保證安全性。文中使用的符號如表1所示。
1.1 文獻[8]方案步驟
(1) 注冊階段
如果用戶[Ui]想要加入系統(tǒng),其需要先執(zhí)行注冊階段:
步驟R?1:[Ui?AS:{IDi,注冊請求}]。用戶通過安全通道遞交包含[IDi]的注冊請求給服務器。
步驟R?2:[AS?Ui:{PWi,智能卡}]。認證服務器[AS]接收[IDi]和注冊請求,并計算密碼[PWi]給[Ui],其中[PWi]計算式如下:
[PWi?(IDi⊕TR)xSmod p] (1)
式中:[TR]為注冊時間戳;[xS]為服務器的私鑰。[AS]把[{PWi,h(·),p}]寫入到智能卡,并把它和[PWi]通過一個安全通道發(fā)送給用戶。
(2) 登錄階段
步驟L?1 : 用戶[Ui]把智能卡插入讀卡器中,輸入其[IDi]和[PWi]。
步驟L?2 :[Ui→AS:{IDi,C1,C2,T}]。智能卡生成隨機數(shù)r,計算出[{C1,t1,M,C2}],然后在時間戳[T]時,發(fā)送[{IDi,C1,C2,T}]到服務器,其中[{C1,t1,M,C2}]計算表達式如下:
[C1=PWri mod p] (2)
[ti=h(T⊕PWi) mod(p-1) ] (3)
[M=PWtii mod p] (4)
[C2=M×(Ct11) mod p] (5)
(3) 認證階段
步驟A?1:服務器接收到[{IDi,C1,C2,T}],核實身份[IDi]和時間戳[T]。如果[IDi]存在于驗證表,且[T]是有效的時間段,則繼續(xù)步驟A?2;否則,終止登陸步驟。
步驟A?2:服務器認證用戶。如果[IDi]和[T]都是有效的,服務器計算[PWi?(IDi⊕TR)xS]和[ti=h(T⊕PWi)]mod[(p-1)]。然后,服務器核實下列等式是否成立。
[C2(Ct11)=(PWi)t1mod p] (6)
如果上述方程成立,則用戶認證通過。
步驟A?3:[AS→Ui:{C3,TS}]。在用戶得到認證后,認證服務器計算[t2]和[C3],然后把[{C3,TS}]發(fā)送給用戶。其中,[TS]為當前的時間戳,[t2]和[C3]計算表達式如下:
[ti=h(TS⊕PWi) mod p-1] (7)
[Ci=Ct21mod p] (8)
步驟A?4:用戶認證服務器。用戶接收到[{C3,TS}]之后,核實更新后的時間戳[TS]。如果[TS]是有效時間段,則用戶計算[ti′=h(TS⊕PWi)]mod(p?1)和[C3′=Ct′21]。然后用戶核實[C3′]是否等于[C3]。若[C3]=[C3′],則服務器通過認證。
1.2 文獻[8]方案的缺點
文獻[8]方案通過相互認證機制,能夠抵御拒絕訪問攻擊,偽造攻擊和并行會話攻擊。然而,該方案存在如下缺點:
(1) 用戶不能隨意地更換密碼。通常情況下,為了遠程密碼認證方案的安全,需要時常更新密碼。在文獻[8]方案中,由于密碼是服務器根據(jù)[PWi?(IDi⊕TR)xS]計算出來的,如果想升級密碼,則用戶需要重新注冊,不具有便利性。此外,由于密碼只能由服務器進行計算,如果密碼遭到公布,將會導致很多問題[9]。
(2) 容易遭受離線猜測攻擊。為了便于記憶,通常會選擇簡短的密碼。然而,若密碼過短,這種方案就會容易受到離線猜測攻擊,離線猜測攻擊步驟如下。
步驟G?1:攻擊者從步驟L?2 中截獲[{IDi,C1,C2,T}]。
步驟G?2:攻擊者猜測密碼。攻擊者嘗試猜測[PW′i],然后,使用截獲的[{IDi,C1,C2,T}]和[PW′i]計算[D=C2(Ch(T⊕PW′i)1)-1]和[D′=(PW′1)h(T⊕PW′i)]。再后,攻擊者核實是否等式[D=D′]成立;如果不是,重復猜測步驟。如果成立,則該密碼為正確密碼。若密碼長度過短,則會很容易被猜中。類似地,攻擊者也能截獲步驟A?3中的信息[{C3,TS}]來驗證猜測密碼是否正確。
(3) 不能抵抗偽裝攻擊。若離線猜測攻擊中,攻擊者獲得密碼[PWi]。則其可以利用[PWi]通過式(2)~式(5)計算出[{IDi,C1,C2,T}],這樣就能偽裝成合法的用戶去登陸系統(tǒng)。同樣,攻擊者也能從步驟A?3認證中利用[{IDi,C1,C2,T}]計算出正確的[{C3,TS}]。因此,該方案容易遭受假冒攻擊。
(4) 缺乏密鑰協(xié)商機制。密鑰協(xié)商機制使用戶和服務器協(xié)商一個共同密鑰,用來保證以后的通信安全[10],但文獻[8]方案缺乏密鑰協(xié)商機制,不能保證系統(tǒng)通信安全性。
(5) 不能抵御認證表盜竊攻擊。文獻[8]方案中,服務器在認證表中存儲[{xS,IDi,TR}]。服務器沒有合理地保護認證表,防止密鑰信息泄露。攻擊者可以竊取認證表,從而獲取密鑰[{xS,IDi,TR}],假冒合法用戶去登陸系統(tǒng)。因此,也容易遭受盜竊攻擊。
(6) 不能抵御智能卡丟失攻擊。智能卡丟失攻擊會導致攻擊者發(fā)動許多攻擊,如果攻擊者獲取了合法使用者的智能卡,就可以發(fā)送離線猜測攻擊[11]。在文獻[8]方案的登錄階段,[IDi]和[PWi]中存儲了用戶密鑰。然而,在[IDi]和[PWi]中沒有進行智能卡的認證。因此,如果攻擊者獲取了智能卡,就能任意地嘗試猜測密碼。因此,該方案就不能抵御住智能卡丟失攻擊。
2 提出的改進方案
本文提出一種改進的方案來增強安全性,方案由以下5個階段組成:注冊階段、登錄階段、認證階段、密鑰協(xié)商階段和密碼更改階段。
在注冊階段,用戶通過向安全通道向服務器發(fā)送相關的注冊請求信息。服務器對用戶進行識別,并產(chǎn)生相關信息存儲到智能卡上,然后將智能卡遞送給用戶。在登錄階段,用戶把智能卡放入讀卡器卡槽,并輸入密碼來登錄系統(tǒng)。
在認證階段,服務器核實登錄請求的有效性。如果用戶得到認證,服務器將允許用戶在線訪問系統(tǒng)。在密鑰協(xié)商階段,用戶和服務器共同協(xié)商決定一個會話密鑰,用來確保以后通信的安全。在密碼修改階段,遠程用戶自由地升級他們的密碼。
本文方案總體過程如圖1所示。
(1) 注冊階段
如果用戶想加入到系統(tǒng)中,他應該把自己注冊到認證服務器中來。注冊階段的步驟如下:
步驟IR?1:[Ui?AS:{IDi,PWi}]。用戶[Ui]首先選擇他的身份[IDi]和[PWi],然后以安全通道將[{IDi,PWi}]遞交給認證服務器[AS]。
步驟IR?2:[AS?Ui:智能卡]。服務器[AS]一旦接收到[{IDi,PWi}],則計算[S]和[R],表達式如下:
[S=h(IDi⊕h(xS))] (9)
[R=S⊕PWi] (10)
[AS]把[{S,R,h(·)}]存儲到智能卡并發(fā)送給用戶,此處服務器不需要存儲用戶的密碼。
(2) 登錄階段
步驟IL?1:用戶[Ui]把智能卡插入讀卡器,并且輸入[IDi]和[PWi]。
步驟IL?2:智能卡核實[PWi]。智能卡計算[S′=R⊕PWi],并檢查[S′]是否和[S]相等,若[S′≠S],則步驟終止。
步驟IL?3:[Ui→AS:{IDi,C1,C2,TU}]。如果[S′]=[S],則智能卡生成一個隨機數(shù)[r],并計算[{C1,A,M,C2}],表達式如下:
[C1=Sr mod p] (11)
[A=h(TU⊕S) mod p-1] (12)
[M=SA mod p] (13)
[C2=M(CA1) mod p] (14)
式中:[TU]為當前的時間戳。接下來,用戶發(fā)送[{IDi,C1,C2,TU}]給服務器。
(3) 認證階段
服務器[AS]一旦接收到登陸請求和[{IDi,C1,C2,TU}],則進行信息認證。
步驟IA?1:服務器核實[IDi]和[TU]。如果,[IDi]不存在驗證表或[TU]沒有更新,則認證步驟終止。
步驟IA?2:服務器認證用戶。如果[IDi]和[TU]都是有效的,服務器計算[S′=h(IDi⊕h(xS))]和[A′=h(TU⊕S′)]mod(p-1)。然后,服務器驗證[C2(CA′1)-1]和[SA′]是否相等。如果[C2(CA′1)-1=SA′],服務器將認證用戶。
步驟IA?3:[AS→Ui:{C3,TS}]。用戶得到認證后,服務器計算B和[C3],表達式如下:
[B=h(TS⊕S) mod p-1] (15)
[C3=CB1mod p] (16)
式中[TS]是當前的時間戳。接下來,認證服務器將會把[{C3,Ts}]發(fā)送給用戶。
步驟IA?4:用戶認證服務器。在接收到[{C3,Ts}]后,用戶核實更新的時間戳[Ts]。如果時間戳更新,則智能卡計算[B′]和[C3′],表達式如下:
[B′=h(TS⊕S)mod p-1] (17)
[C3′=CB′1 mod p] (18)
最后,智能卡比較[C3]和[C3′],如果[C3′=C3],則相互認證成功。
(4) 密鑰協(xié)商階段
如果相互認證成功,服務器和用戶將得到一個共同協(xié)商的會話密鑰[SK],其表達式如下:
[SK=h(h(S)⊕TS)] (19)
(5) 密碼更改階段
該階段使用戶能夠隨意地選擇和升級密碼。升級步驟只在智能卡上進行,非常方便用戶更改密碼。
步驟IU?1:用戶把智能卡插入讀卡器,并鍵入他的身份[IDi]和密碼[PWi]。
步驟IU?2:智能卡核實[PWi]。智能卡計算[S′=R⊕PWi],并核實[S′]是否和[S]相等。如果[S′≠S],密碼更新請求就會遭到拒絕。
步驟IU?3:智能卡用[Rnew]取代[R]。如果[S′=S],用戶選擇和鍵入新的密碼[PWi_new,]智能卡計算[Rnew,]表達式如下:
[Rnew=R⊕PWi⊕PWi_new] (20)
接下來,智能卡用[Rnew]取代[R]。這樣用戶就能夠使用新的密碼登陸系統(tǒng)。
3 安全性分析
本文改進方案具有提供相互認證和前向和后向保密性的優(yōu)點,同時用戶能夠自由地修改密碼。本文方案能夠抵御多種攻擊,如智能卡丟失攻擊,重放攻擊,猜測攻擊,偽裝攻擊和盜竊攻擊。
(1) 提供前向和后向保密。盡管會話密鑰是非常重要的保密信息,它在用戶和服務器之間進行共享,但是會話密鑰可能在一些情形下會被公開。因此,開發(fā)一個僅由當前密鑰組成,而不包含未來或以前密鑰的系統(tǒng)是非常必要的[12]。在本文方案中,共同的會話密鑰是通過[SK=h(h(S)⊕TS)]計算獲得。由于哈希函數(shù)具有單向性,即使SK被竊取,這些散列密鑰[h(S)]也不會被泄露。
(2) 提供相互認證。在客戶?服務器系統(tǒng)里,通過相互認證,可以互相確定對方身份。在步驟IA?2中,一旦接收到[{IDi,C1,C2,TU}],服務器通過核實[C2(CA′1)-1=SA′]是否成立來驗證客戶。同樣地,步驟IA?4中,客戶通過核實[C′3=C3]是否成立來驗證服務器,從而實現(xiàn)相互認證,提高系統(tǒng)安全性。
(3) 用戶匿名。本文方案的注冊階段,服務器[AS]只將通過[{IDi,PWi}]計算獲得的[S]和[R]寫入智能卡,然后發(fā)送給用戶。智能卡里沒有[IDi]信息,使得攻擊者盜用智能卡也無法獲得用戶[IDi],實現(xiàn)了對用戶的匿名保護。
(4) 能抵御智能卡丟失攻擊。智能卡丟失攻擊中,若攻擊者得到了合法的用戶智能卡,則可能猜測密碼并假冒合法用戶去登陸系統(tǒng)。智能卡丟失攻擊的主要原因是智能卡對于同樣的輸入,總是產(chǎn)生固定的信息[13?14]。
本文方案的登錄階段,用戶發(fā)送[{IDi,C1,C2,TU}]給認證服務器,其中[C1=PWri]和[C2=M(CA1)]mod p。由于隨機數(shù)r不斷變化,所以每次登陸時,傳輸信息[C1]和[C2]都會更新。如果攻擊者獲得了智能卡并嘗試猜測密碼,這種嘗試將會失敗,因為不斷變化的信息使攻擊者不能核實他的猜測[15]。
(5) 能抵御重放攻擊。在登錄階段,用戶發(fā)送[{IDi,C1,C2,TU}]給服務器來認證。信息里包含了時間戳[TU],如果攻擊者再次傳輸截取信息,重放攻擊將會被檢測到。相似地,如果攻擊者重放信息[{C3,TS}]給步驟IA?3中的用戶,也能夠檢測到攻擊。
(6) 能抵御離線猜測攻擊。假定一個攻擊者想要利用截獲的信息[{IDi,C1,C2,TU}]離線猜測密碼,則需要計算[C1=PWri],[A=h(TU⊕S)],[M=SA]和[C2=M(CA1)],由于[C2(CA′1)-1=SA′]是一個離散對數(shù)問題,所以要找到密碼[PWi]是不可能的。
(7) 它能抵御偽裝攻擊。如果一個攻擊者想假冒一個合法用戶去登錄系統(tǒng),由于密鑰參數(shù)S和R都是未知的,所以其不能計算出正確的[C1]和[C2]去登陸系統(tǒng)。相似地,攻擊者不能獲得B,因為S是未知的,[B=h(TS⊕S)],因此攻擊者不能在步驟IA?3中使用[C3=CB1]計算出正確的[C3]用于認證。所以,能夠抵御偽裝攻擊。
(8) 能抵御認證表盜竊攻擊。本文方案在認證服務器數(shù)據(jù)庫中存儲的信息僅包含[xS]密鑰和用戶身份[IDi],其中[xS]受到密碼機制的保護,且[IDi]是公開的,因此能夠避免盜竊攻擊。
4 性能比較
4.1 安全性能比較
將本文方案與現(xiàn)有幾種認證方案在安全目標和抵御攻擊方面進行了比較,結果如表2所示,其中,Y表示達到或滿足,N表示未達到或不滿足。
表2 安全目標和抵御攻擊方面性能比較
從表2可以看出,本文方案增強了安全性能和對攻擊的抵抗能力,能夠更好地保障智能卡用戶免受惡意服務器的潛在危害。
4.2 計算性能比較
將本文方案和現(xiàn)有幾種認證方案進行計算性能比較,各計算項及含義表示如下:[Th]為執(zhí)行單向哈希函數(shù)消耗時間;[Tm]為執(zhí)行二次剩余運算消耗時間;T[⊕]為執(zhí)行異或運算消耗時間。
各種方案的計算性能比較結果如表3所示。
從表3可以看出,相比于其他方案,本文方案在保證較高安全性能的前提下,其計算復雜度也略小,因此更適合智能卡的應用場景。另一方面,本文智能卡僅需要儲存S,R和一個哈希函數(shù)[h(?)],所以智能卡不需要大的存儲空間,節(jié)省了存儲資源。
5 結 語
本文針對文獻[8]的遠程認證方案缺乏密鑰協(xié)商機制、用戶不能自由修改密碼、不能抵御盜竊攻擊、離線猜測攻擊和智能卡丟失等攻擊,提出一種改進型方案。本文方案提供了相互認證和密鑰協(xié)商,確保了前向和后向保密,用戶能夠自由地選擇和升級他們的密碼,能夠抵御智能卡丟失攻擊、重放攻擊,離線猜測攻擊、盜竊攻擊和偽裝攻擊等攻擊類型。在保證高安全性能的同時,也具有較小的計算開銷,非常適合于智能卡等應用。
參考文獻
[1] 張青.基于智能卡的多服務器環(huán)境下的遠端認證協(xié)議[J].計算機應用研究,2014,31(7):2109?2115.
[2] 李曉偉,張玉清,張格非,等.基于智能卡的強安全認證與密鑰協(xié)商協(xié)議[J].電子學報,2014,42(8):1587?1593.
[3] PIPPAL R S, JAIDHAR C D, TAPASWI S. Comments on symmetric key encryption based smart card authentication scheme [C]// Proceedings of the 2nd International Conference on Computer Technology and Development. Cario: IEEE, 2010: 482?484.
[4] 付青琴,昂正全,徐平江.一種改進的智能卡認證方法的實現(xiàn)[J].計算機工程與科學,2014,36(1):94?98.
[5] SORAM R, CHATTERJEE R, ROY D P, et al. A remote smart card authentication protocol using elliptic curves [J]. International journal of computer science & information technologies, 2012, 29(3): 3856?3866.
[6] PIPPAL R S, GUPTA P, SINGH R. A novel smart card authentication scheme using image encryption [J]. International journal of computer applications, 2013, 72(9): 8?14.
[7] TAO Y U, DING?FENG Y E. Design and implementation of elliptic curve cryptograph in prime field on smart card [J]. Computer simulation, 2009, 26(3): 132?135.
[8] MUNIYANDI A P, RAMASAMY R. Password based remote authentication scheme using ECC for smart card [C]// Proceedings of the 2011 International Conference on Communication, Computing & Security. Odisha, India: International Conference on Communication, 2011: 1?8.
[9] 汪定,馬春光,翁臣,等.一種適于受限資源環(huán)境的遠程用戶認證方案的分析與改進[J].電子與信息學報,2012,34(10):2520?2526.
[10] 李強,馮登國,張立武,等.標準模型下增強的基于屬性的認證密鑰協(xié)商協(xié)議[J].計算機學報,2013,36(10):2156?2167.
[11] 屈娟,鄒黎敏,譚曉玲.基于動態(tài)ID的遠程認證方案的分析和改進[J].計算機工程與應用,2014,50(22):126?129.
[12] WEI J H, LIU W F, HU X X. Cryptanalysis and improvement of a robust smart card authentication scheme for multi?server architecture [J]. Wireless personal communications, 2014, 77(3): 2255?2269.
[13] PIPPAL R S, GUPTA P, SINGH R. Dynamic encryption key based smart card authentication scheme [J]. International journal of computer applications, 2013, 72(9): 15?18.
[14] LI X, NIU J W, KUMARI S, et al. An enhancement of a smart card authentication scheme for multi?server architecture [J]. Wireless personal communications, 2015, 80(1): 175?192.
[15] LI X, NIU J, KHAN M K, et al. An enhanced smart card based remote user password authentication scheme [J]. Journal of network & computer applications, 2013, 36(5): 1365?1371.