摘 要:遠程用戶認證方案是遠程服務器通過不安全的網絡認證遠程用戶身份的一種機制。根據橢圓曲線上的雙線性對的優良性質,2006年,Das等人提出了基于雙線性對的遠程用戶認證方案。2009年, Goriparthi等人指出該方案易遭受偽造攻擊和重放攻擊并給出了一個改進方案。然而發現Goriparthi等人的改進方案易遭受內部人員攻擊、拒絕服務攻擊和服務器哄騙攻擊以及存在時鐘同步問題。為了克服這些缺點,提出了基于雙線性對和Nonce的智能卡遠程用戶認證方案。安全分析表明,該方案不但增強了認證系統的安全性,而且可安全地完成用戶和遠程系統間的交互認證。
關鍵詞:認證; 雙線性對; 智能卡; 攻擊; 安全; Nonce
中圖分類號:TP309
文獻標志碼:A
文章編號:1001-3695(2010)02-0733-04
doi:10.3969/j.issn.1001-3695.2010.02.091
Authentication scheme for remote users based on bilinear pairing and Nonce using smart cards
WANG De-song1, LI Jian-ping1,2
(1. School of Computer Science Engineering, University of Electronic Science Technology of China, Chengdu 610054, China; 2. International Centre for Wavelet Analysis Applications, Logistical Engineering University, Chongqing 400016, China)
Abstract:Remote user authentication scheme is a mechanism which allows a server to authenticate a remote user over insecure channel. In 2006, Das et al proposed a remote user authentication scheme using bilinear pairings according to the merits of bilinear pairing on an elliptical curve. In 2009, Goriparthi et al pointed out that Das et al’s scheme is easily vulnerable to the replay attack and the forgery attack, and proposed an improved scheme.However,found out weaknesses of Goriparthi et al’s scheme against the insider attack, the denial of service attack, the server spooling attack and the existing clock synchronization problem. To overcome these weaknesses,proposed a novel authentication scheme for remote users based on bilinear pairing and nonce using smart cards. The security analysis shows that the proposed scheme not only enhances the security of the authentication system but also accomplishes mutual authentication safely between the user and the remote system.
Key words:authentication; bilinear pairing; smart card; attack; security; Nonce
0 引言
隨著計算機網絡的普及和電子商務的蓬勃發展, 越來越多的資源和應用都是利用網絡遠程獲取。如何確保特定的資源只能被合法、授權的用戶訪問和使用,即如何正確地鑒別用戶的身份是保證通信網和系統數據安全的首要條件。在計算機網絡中,身份認證是一種證實用戶所聲稱的身份是否真實的技術,結合密碼學技術,許多專家和學者提出了有關身份認證的有效方案。1981年,Lamport[1]提出了一種基于密碼表的用戶認證方案,其可以抵抗重放攻擊。然而,當存儲在主機的口令一旦遭到攻擊者的修改,方案將無任何安全可言, 同時該方案的計算量非常大,實用性不強。為了改進遠程認證的效率和增強其安全性,避免對密碼表的所有可能的攻擊,許多基于智能卡的認證方案被提出[2~10]。智能卡可以作為一種更有效的用于認證身份的個人持有物。由于智能卡具有數據處理能力,它可以進行較復雜的操作,能實現系統與持卡人之間的相互認證,用智能卡作為用戶的身份標志時,采用合適的認證協議,可以使認證系統的安全性大大提高。
為了更好地抵抗重放攻擊,許多基于時間戳的方案被提出[11~14]。雖然時間戳可以為任何電子文件或網上交易提供準確的時間證明,可以檢驗出文件或交易的內容在自己加上時間戳后是否曾被人修改過,然而,基于時間戳的方案存在嚴重的時鐘同步問題。在文獻[15]中,Needham等人首次提出了Nonce概念。此后許多研究人員提出了基于Nonce的認證方案[16~19],解決了認證方案的時鐘同步問題,但有些方案仍然存在一些缺陷,如文獻[16]提出的認證方案易受到拒絕服務(DoS)攻擊;文獻[17]提出的認證方案易受到內部人員攻擊[20];文獻[18]提出的認證方案易遭受中間人攻擊[21]。
作為一種特殊映射的雙線性對[22],它是把橢圓曲線的兩個元素對映射生成合適的有限域上的一個元素[23],而且對于安全效率、密鑰大小和帶寬方面,橢圓曲線加密系統比整數因數分解系統和離散對數系統更加有效[24]。文獻[20]利用橢圓曲線密碼系統實現了用戶和服務器的雙向認證。在2006年,Das等人[25]提出了一個基于雙線性對的遠程用戶認證方案,但在文獻[19]中,田俊峰等人指出該方案易遭受偽造攻擊和拒絕服務攻擊,同時在認證過程中也存在時鐘同步問題。為克服這些缺點,他們利用雙線性對Nonce概念提出了雙私鑰雙隨機數認證方案,安全高效地實現了交互認證。在2009年,Goriparthi等人[26]指出了Das等人的方案不但存在偽造攻擊,還存在重放攻擊,而且還給出了一個改進方案。然而,發現Goriparthi等人的改進方案在認證過程中存在時鐘同步問題,易遭受拒絕服務攻擊和服務器偽裝攻擊,同時也存在內部人員攻擊。
為了克服Goriparthi等人方案的不足,本文在智能卡方案的基礎上,采用雙線性對和Nonce概念提出了基于雙線性對和Nonce的智能卡遠程用戶認證方案。該方案不但很好地解了決時鐘同步問題,而且還能有效地防止內部人員攻擊、拒絕服務攻擊和服務器偽裝攻擊,更加安全地實現了交互認證。在本文的方案中借鑒了文獻[18, 26]中的認證思想,并對其進行了改進,使本文的方案具有更高的安全性。
1 Goriparthi等人的認證方案及其安全漏洞
Goriparthi等人的認證方案包括五個階段,即設置階段、注冊階段、登錄階段、認證階段和密碼修改階段。
1)設置階段
假設G1和G2是兩個階為q的加法和乘法循環群,q是一個大素數;假設P是G1的生成元,e:G1×G1→G2為一個雙線性對,H:{0,1}→G1是單向加密hash函數,h:{0,1}→Zq是安全單向hash函數。遠程系統RS選擇秘密私鑰s并計算公鑰pubRS=sP,遠程系統RS公布系統參數{G1,G2,e,q,P,pubRS,H,h}和保密私鑰s。
2)注冊階段
R1:用戶Ui通過安全的通道向遠程系統RS提交個人的IDi和密碼PWi;
R2:遠程系統RS接收到注冊請求后計算Re gIDi=sH(IDi)+H(PWi);
R3:RS將IDi,Re gIDi,H(#8226;),h(#8226;)存儲到智能卡中并通過安全的通道將智能卡發送給用戶Ui。
3)登錄階段
L1:用戶Ui把智能卡插入相應的終端設備中并輸入個人IDi和PWi;
L2:在驗證IDi的有效性后,智能卡計算
Vi=V(Vx,Vy)=rpubRS
DIDi=(r+h(TU‖Vx‖Vy))(Re gIDi-H(PWi))
其中:TU是當前用戶系統的時間戳,r是智能卡產生的一個隨機數,‖表示字符串級聯;
L3:Ui向RS發送登錄請求信息{IDi,DIDi,Vi,TU}。
4) 認證階段
假設RS在TRS接收到認證請求信息{IDi,DIDi,Vi,TU},則RS執行如下的操作:
A1:RS檢查是否TRS-TU≤ΔT成立,這里ΔT表示因為傳輸延遲所期望的有效時間間隔,TRS為遠程系統RS端當前的時間戳,如果不成立,則拒絕服務,否則轉第A2步;
A2:驗證是否
e(DIDi,P)=?e(H(IDi),Vi+h(N1‖Vx‖Vy)pubRS)
如果成立則接收登錄請求,否則拒絕請求。
5)密碼修改階段
P1:用戶Ui把智能卡插入相應的終端設備中并輸入個人IDi和PWi;
P2:智能卡對用戶產生一個警告信息;
P3:驗證用戶輸入的IDi與智能卡中儲存的IDi是否匹配,如果匹配,則立刻要求用戶輸入新的PWi;
P4:智能卡計算
Re gIDi=Re gIDi-H(PWi)+H(PWi)
并用Re gIDi替換先前儲存在智能卡上的Re gIDi。
雖然Goriparthi等人[20]的遠程認證方案比較有效,但它很容易受到內部人員攻擊、拒絕服務攻擊、服務器偽裝攻擊,同時還存在時鐘同步問題。
1)內部人員攻擊 由于Goriparthi等人方案中,用戶Ui的密碼PWi對RS是透明的,當用戶使用相同的口令登錄其他服務器時,RS的內部人員就可假冒Ui接入其他服務器。
2)拒絕服務攻擊 由于該方案中是利用時間戳來保證一個認證請求信息的有效性,利用該特性,攻擊者可攔截登錄階段的認證請求信息{IDi,DIDi,Vi,TU},并延遲一段時間后再重新向RS傳送該信息,當延遲超過一定的時間,TU就不能通過RS的有效性檢查,從而使得RS不能為用戶提供連續有效的服務。若攻擊者截獲登錄請求信息{IDi,DIDi,Vi,TU}后,只需選取合適的TU或者修改時間TU至足夠大,構造出TRS-TU≤ΔT,就可以向遠程系統發送信息{IDi,DIDi,Vi,TU},仿冒用戶Ui登錄遠程系統,并能通過遠程系統認證階段的第A1步檢驗,致使遠程系統忙于認證階段的第A2步中的計算和檢驗,從而形成對RS的拒絕服務攻擊。另外,當網絡發生阻塞時,也會發生以上的拒絕服務。
3)服務器偽裝攻擊 由于Goriparthi等人的方案只執行單邊認證即只有客戶端身份驗證,而用戶卻不知道RS的真實性,攻擊者可以設置一個假的服務器來熟練操作用戶的數據。如果假定Goriparthi等人的方案被部署于電子銀行或者電子商務,客戶也希望驗證遠程實體。然而,在Goriparthi等人的方案中,認證只是單向認證,客戶沒有認證服務器的真實性,因此,客戶不能相信遠程系統是真實的服務實體。導致Goriparthi等人的方案很容易受到假的服務器偽裝攻擊。下面具體說明如何實現服務器偽裝攻擊。
假設Eric是一個在用戶和服務器之間的攻擊者。當用戶通過不安全的通信通道發送認證請求信息C={IDi,DIDi,Vi,TU}時,Eric也能得到它,此時Eric通過假扮服務器哄騙用戶Ui。Eric通過下面的操作來扮演假的服務器和發送偽造互認證信息:
S1:Eric通過不安全的通信通道得到登錄認證信息C={IDi,DID,Vi,TU}后,計算C1=h(Vi‖TE),TE是當前Eric的時間戳。
S2:Eric向用戶Ui發送互認證信息{C1,TE}。
S3:用戶Ui收到信息{C1,TE}后,驗證時間戳的有效性,如果無效,則拒絕互認證并終止操作;否則計算C1=h(Vi‖TE),并驗證是否C1=?C1,如果成立則相信Eric是真正的服務器。然而Eric卻是一個攻擊者,此時Eric就成功地實現了服務器偽裝攻擊。
4)時鐘同步問題 由于Goriparthi等人認證協議采用了時間戳,就要求網絡內需要有全局時鐘服務器和相應的時鐘同步協議。由上面的分析可看出,Goriparthi等人的方案中的漏洞有一部分是由于時間戳引起的,基于時間戳的認證協議不僅引入了較多的安全風險,而且要在全網實現時間同步,這在實施上是非常困難的。
2 本文提出的認證方案
本文設計的認證方案也包括五個階段,即設置階段、注冊階段、登錄階段、認證階段和密碼修改階段。
1)設置階段
假設G1和G2是兩個階為q的加法和乘法循環群,q是一個大素數;假設P是G1的生成元,e:G1×G1→G2為一個雙線性對,H:{0,1}→G1是單向加密hash函數,h:{0,1}→Zq是安全單向hash函數。遠程系統RS選擇秘密私鑰s并計算公鑰pubRS=sP,遠程系統公布系統參數{G1,G2,e,q,P,pubRS,H,h}和保密私鑰s。
2)注冊階段
R1:用戶Ui通過安全的通信通道向遠程系統RS提交個人的IDi和H(PWiR),這里PWi是用戶的密碼,R是一個64 bit的隨機數;
R2:遠程系統RS接收到注冊請求后,搜索用戶ID存儲表(表1),檢驗是否已存在該IDi,如果存在,則返回要求用戶Ui重新選擇IDi;否則計算
Re gIDi=sH(IDi)+H(PWiR)
其中:s為遠程系統RS密鑰,表示按位異或運算,并保存IDi到ID存儲表;
R3:RS將IDi,Re gIDi,H(#8226;),h(#8226;)存儲到智能卡中并通過安全的途徑將智能卡發送給用戶Ui;
R4:在用戶收到智能卡后,向智能卡輸入R,此時智能卡中存儲的參數是{IDi,Re gIDi,H(#8226;),h(#8226;),R}。
3)登錄階段
L1:用戶Ui把智能卡插入相應的終端設備中并輸入個人IDi和PWi;
L2:在智能卡驗證IDi和PWi的有效性后,智能卡產生兩個隨機數Nonce[15~19](Nonce means used only once,即只用一次)r和N1,并計算
Vi=V(Vx,Vy)=rpubRS
DIDi=(r+h(N1‖Vx‖Vy))(Re gIDi-H(PWiR));
L3:用戶Ui向遠程系統RS發送登錄請求信息C={IDi,DIDi,Vi,N1}。
4) 認證階段
為了討論方便,先給出如下新鮮標記定義。
定義1 新鮮標記[19]。對于從用戶發來信息中由用戶ID和隨機數N組成的{IDi,N1},如果是首次出現則認為是新鮮的,可被接收的,否則認為是不新鮮的,拒絕服務。
遠程系統RS接收到用戶認證請求信息{IDi,DIDi,Vi,TU}后,RS執行如下的操作:
A1:遠程系統將為IDi設置一個計數器和時間戳,用于計算該IDi的出現頻率。檢查會話狀態表(表2),看IDi是否已在會話狀態,如果是則拒絕登錄,如果否則檢查ID存儲表,看是否已存在該IDi,如果不存在,則拒絕為該用戶服務;同時,檢查用戶IDi的出現頻率值,如果該值大于某一經驗閾值,則認為非法用戶正嘗試非法登錄或對遠程系統進行攻擊,刪除IDi或隔離審查;否則,轉第A2步。
A2:驗證是否
e(DIDi,P)=?e(H(IDi),Vi+h(N1‖Vx‖Vy)pubRS)
如果不成立則拒絕請求,否則接收登錄請求;
A3:遠程系統RS產生一個隨機數NonceN2,計算C2=N2sH(IDi),并向用戶發送互認證信息{C2,N2};
A4:用戶收到來自RS的信息后,計算
C2=N2(Re gIDi-H(PW′iR))
其中PW′i是用戶的密碼;
A5:驗證是否C2=?C2,若成立,則用戶通過了對RS的認證,否則用戶終止任何操作。
5)密碼修改階段
本認證方案也支持用戶對密碼進行修改,以避免密碼猜測攻擊或設置更易記憶的密碼,而且這一操作不需要遠程系統協助,降低了遠程系統的負擔,減少了更改密碼協議所需的通信消耗,也使得密碼修改過程的安全性得以保證。密碼修改的具體過程如下:
P1:用戶Ui把智能卡插入相應的終端設備中并輸入個人IDi和PWi;
P2:智能卡對用戶產生一個警告信息;
P3:智能卡驗證用戶IDi和PWi的有效性,并在驗證通過后提示用戶輸入新的PWi;
P4:智能卡計算
Re gIDi=Re gIDi-H(PWiR)+H(PWiR)
并用Re gIDi替代先前儲存在智能卡上的Re gIDi,這樣就成功地修改了用戶的密碼口令。
3 安全性分析
以下的安全性分析是在單向無碰撞hash函數和計算離散對數問題的困難性[19 ]的前提下進行的。分析表明,本文提出的認證方案具有更好的安全性,因為它可以有效地克服內部人員攻擊、拒絕服務攻擊和服務器偽裝攻擊。
1)可以防止內部人員攻擊 本方案中,用戶首先選了一個64 bit的隨機數R后計算H(PWiR),然后發送H(PWiR)給RS,因此遠程系統只知道H(PWiR),而且R的熵是非常大的,因而能冒充用戶Ui的口令為PWi去登錄其他服務器的概率就很小。
2)可以防止重放攻擊 由于Nonce變量N1和N2是由智能卡和遠程系統獨立產生,且在每次會話時N1和N2的值都是截然不同的,攻擊者沒有機會來成功實現重放攻擊。假設攻擊者截獲登錄階段的第A3步中的登錄請求認證信息{IDi,DIDi,Vi,N1},并假冒用戶Ui向RS重新發送{IDi,DIDi,Vi,N1}給遠程系統,但此時的〈IDi,N1〉已在會話狀態表中,因而無法通過RS的認證,這樣遠程系統就有效地防止了重放攻擊。
3)可以防止拒絕服務攻擊 由于在認證過程中設置了會話狀態表,可通過檢驗IDi出現的頻率值和〈IDi,N1〉對的新鮮標記來有效防止拒絕服務攻擊。本方案認證請求信息的有效性與時間因子無關,因而不會產生與Goriparthi等人的認證方案類似的拒絕服務攻擊。
4)可以防止猜測攻擊 假設攻擊者截獲了認證信息{IDi,DIDi,Vi,N1}和{C2,N2},由于這些信息中不包括用戶密碼的任何信息,攻擊者不可能計算出用戶的密碼PWi;同樣,根據單向無碰撞hash函數的性質和計算離散對數問題的困難性,攻擊者也是極其困難地從截獲的認證信息{IDi,DIDi,Vi,N1}和{C2,N2}中得到遠程系統的密鑰s,這樣就有效地防止了猜測攻擊。
5)可以防止服務器偽裝攻擊 在本方案中,用戶首先在注冊階段認證服務器的真實性;其次由于攻擊者不知道遠程系統的密鑰s,無法計算C2=N2sH(IDi),從而無法正確產生互認證信息{C2,N2}來實現互認證,因此可以有效地防止服務器偽裝攻擊。
6)可以防止偽造攻擊 如果攻擊者不知道用戶的密碼口令PWi、遠程系統的密鑰s,要構造出有效的Re gIDi=sH(IDi)+H(PWiR),其難度相當于求解離散對數問題;如果攻擊者截獲IDi,DIDi,Vi,N1,C2,N2信息,從這些信息中攻擊者仍然不能計算出PWi和s,這也是屬于離散對數問題的難解性;如果攻擊者改變其中的信息發送到遠程系統,遠程系統將在認證階段的第A2步檢驗出來;如果不改變信息,直接發送到遠程系統,這屬于重放攻擊,根據前面的分析也能防止。攻擊者不能構造有效的DIDi、Vi、Re gIDi,從而本方案能有效地防止偽造攻擊。
4 安全性比較
本文提出的認證方案與Goriparthi等人和Das等人的認證方案的安全性比較如表3所示。從表3中可看出,本文提出的認證方案具有更高的安全性。
5 結束語
本文提出的基于雙線性對和Nonce的智能卡遠程用戶認證方案是在智能卡方案的基礎上,采用雙線性對與Nonce概念相結合的方法,正確有效地實現了用戶與遠程系統的交互認證。該方案不但滿足了Goriparthi等人的認證方案的優點,而且還能有效地防止內部人員攻擊、拒絕服務攻擊、猜測攻擊和服務器哄騙攻擊,同時還很好地解決了時鐘同步問題。
參考文獻:
[1]LAMPORT L. Password authentication with insecure communication[J].Communications of the ACM, 1981, 24(11): 770-772.
[2]SHIMIZU A, HORIOKA T, INAGAKI H. A password authentication method for contents communication on the Internet[J]. IEICE Transon Communications,1998,E81-B(8):1666-1673.
[3]FAN C L, CHAN Y C, ZHANG Zhi-kai. Robust remote authentication scheme with smart cards[J]. Computers Security, 2005, 24(8): 619-628.
[4]JUANG W S. Efficient password authenticated key agreement using smart card[J]. Computer Security, 2004, 23: 167-173.
[5]KU Wei-chi, CHEN Shuai-min. Weaknesses and improvements of an efficient password based remote user authentication scheme using smart cards[J]. IEEE Trans on Consumer Electronics, 2004, 50(1): 204-207.
[6]LEE C C, LI Li-hua, HWANG M S. A remote user authentication scheme using hash functions[J].ACM SIGOPS Operating Systems Review, 2002, 36(4): 23-29.
[7]PEYRAVIAN M, ZUNIC N. Methods for protecting password transmission[J]. Computers Security, 2000, 19(5): 466-469.
[8]WEN H A, LEE T F, HWANG T. Provably secure three-party password-based authenticated key exchange protocol using Weil pairing[J]. IEE Proceedings of Communications, 2005, 152(2): 138-143.
[9]邱慧敏, 楊義先, 胡正名. 一種新的基于智能卡的雙向身份認證方案設計[J]. 計算機應用研究, 2005, 22(12): 103-105.
[10]薛素靜, 孔夢榮. 基于單向哈希函數的遠程口令認證方案[J]. 計算機應用研究, 2008, 25(2): 512-515.
[11]CHIEN H Y, JAN J K, TSENG Y M. An efficient and practical solution to remote authentication: smart card [J]. Computers Secu-rity, 2002, 21(4): 372-375.
[12]JUANG W S. Efficient password authenticated key agreement using smart cards[J]. Computers Security, 2004, 23(2): 167-173.
[13]SUN H M. An efficient remote user authentication scheme using smart cards[J]. IEEE Trans on Consumer Electronics, 2000, 46(4): 958-961.
[14]WANG Bin, LI Zheng-quan. A forward-secure user authentication scheme with smart cards[J]. International Journal of Network Security, 2006, 3(2): 108-111.
[15]NEEDHAM R M, SCHROEDER M D. Using encryption for authentication in large networks of computer[J]. Communication of the ACM, 1978, 21(12): 993-998.
[16]LEE S W, KIM H S, YOO K Y. Efficient nonce-based remote user authentication scheme using smart cards[J]. Applied Mathematics and Computation, 2005, 167(1): 355-361.
[17]FAN C I, CHAN Y C, ZHANG Zhi-kai. Robust remote authentication scheme with smart cards[J]. Computers Security, 2005, 24(8): 619-628.
[18]LIU Jia-yong, ZHOU An-min, GAO Min-xu. A new mutual authentication scheme based on Nonce and smart cards[J]. Computer Communications, 2008, 31(10): 2205-2209.
[19]田俊峰, 焦洪強, 李寧,等. 雙私鑰雙隨機數認證方案[J]. 計算機研究與發展,2008, 45(5): 779-785.
[20]JUANG W S, CHEN S T, LIAW H T. Robust and efficient password-authenticated key agreement using smart cards[J]. IEEE Trans on Industrial Electronics, 2008, 55(6): 2551-2556.
[21]SUN Da-zhi, HUAI Jin-peng, SUN Ji-zhou, et al. Cryptanalysis of a mutual authentication scheme based on nonce and smartcards[J]. Computer Communications, 2009, 32(6): 1015-1017.
[22]BONEH D, FRANKLIN M. Identity-based encryption from the Weil pairing[J]. SIAM Journal on Computing,2003, 32(3): 585-615.
[23]BARRETO P S L M, KIM H Y, LYNN B, et al. Efficient algorithms for pairing-based cryptosystems[C]//Proc of the 22nd Annual International Cryptology Conference on Advances in Cryptology.2002: 354-369.
[24]LAUTER K. The advantages of elliptic curve cryptography for wireless security[J]. IEEE Wireless Communications, 2004,11(1): 62-66.
[25]DAS M, SAXENA A, GULATI V, et al. A Novel remote user authentication scheme using bilinear pairings[J]. Computers Security, 2006, 25(3): 184-189.
[26]GORIPARTHI T, DAS M L, SAXENA A. An improved bilinear pairing based remote user authentication scheme[J].Computer Stan-dards Interfaces, 2009, 31:181-185.