張曼君 張 巖
1 北京郵電大學(xué) 北京 100876
2 中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司 北京 100033
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,云計(jì)算已經(jīng)成為當(dāng)今信息技術(shù)發(fā)展的主要趨勢(shì)之一。云計(jì)算是一種新型的計(jì)算模型,是互聯(lián)網(wǎng)上的應(yīng)用服務(wù)以及數(shù)據(jù)中心提供服務(wù)的硬件設(shè)施和系統(tǒng)軟件的總稱[1]。云計(jì)算在為用戶帶來(lái)便利的同時(shí),自身結(jié)構(gòu)的復(fù)雜性也為安全功能的實(shí)施帶來(lái)了新的挑戰(zhàn)。隨著云計(jì)算的不斷普及,安全問(wèn)題呈現(xiàn)逐步上升的趨勢(shì),已經(jīng)成為制約云計(jì)算發(fā)展的重要因素[2]。
在云計(jì)算環(huán)境中,云端服務(wù)器存儲(chǔ)了大量的用戶敏感數(shù)據(jù),用戶必須通過(guò)網(wǎng)絡(luò)訪問(wèn)這些數(shù)據(jù)。因此如何在不安全的網(wǎng)絡(luò)環(huán)境下進(jìn)行云用戶安全認(rèn)證管理和訪問(wèn)控制管理是云計(jì)算安全急需解決的問(wèn)題[3]。
近些年來(lái),圍繞著為終端用戶提供安全的云服務(wù),學(xué)者們提出了多種云計(jì)算認(rèn)證方案[4-8]。其中一些方案是基于身份證書(shū)的[9-10],用戶在訪問(wèn)云服務(wù)器的時(shí)候要傳遞自己的身份證書(shū),需要占用一定的帶寬,影響了方案的實(shí)現(xiàn)效率,因此該類(lèi)方案不適合于云計(jì)算的環(huán)境。還有一類(lèi)方案是基于身份密碼的認(rèn)證協(xié)議[11-14],用戶的公私鑰是根據(jù)身份標(biāo)識(shí)由專(zhuān)門(mén)身份認(rèn)證機(jī)構(gòu)生成的,解決了傳遞證書(shū)的問(wèn)題,提高了協(xié)議的執(zhí)行效率,其中文獻(xiàn)[14]中提出的方案證明是基于身份的方案中最高效的。但是,該協(xié)議中的算法存在漏洞,導(dǎo)致協(xié)議無(wú)法正確執(zhí)行。由于基于身份的密碼算法自身就存在密鑰容易泄露的問(wèn)題,因此該類(lèi)協(xié)議存在嚴(yán)重的安全缺陷。
為了獲得更好的安全性,本文首先對(duì)于Yang的方案[14]進(jìn)行修改,糾正了算法中存在的漏洞;隨后,提出一個(gè)新的適用于云計(jì)算環(huán)境的基于無(wú)證書(shū)密碼的用戶認(rèn)證方案。方案基于無(wú)證書(shū)的密碼算法,盡可能的減少了運(yùn)算開(kāi)銷(xiāo),并且克服了基于身份密碼算法所帶來(lái)的密鑰泄露問(wèn)題,因此,提升了安全性。同時(shí),該方案能保證用戶匿名性,應(yīng)用于云計(jì)算環(huán)境時(shí)能保證用戶隱私性。
本節(jié)回顧yang等人的基于身份的認(rèn)證方案,并且指出該方案中算法的錯(cuò)誤和缺陷。
方案使用的縮略詞見(jiàn)表1。
表1 Yang方案的縮略詞
Yang的方案分為注冊(cè)和相互認(rèn)證兩個(gè)階段。
1)注冊(cè)階段
步驟1:Ui→IDPIDi,IDs。用戶i將自己的和服務(wù)器的身份標(biāo)識(shí)IDi,發(fā)送給身份提供者IDP。
步驟2:IDP→Ui:Pi;IDP→S:Si。IDP用私鑰x計(jì)算并且將他們分別發(fā)送給用戶和服務(wù)器。
2)相互認(rèn)證階段
步驟1:Ui→S:Ci,A,IDi,TS。用戶選擇隨機(jī)數(shù)Ni,計(jì)算A,IDi,TS發(fā)送給服務(wù)器。
步驟2:服務(wù)器對(duì)于時(shí)戳TS進(jìn)行檢查,如果時(shí)戳無(wú)效,服務(wù)器拒絕用戶此次認(rèn)證。
步驟3:如果時(shí)戳TS有效,服務(wù)器計(jì)算Ni′=Ci如果A′=A,服務(wù)器對(duì)用戶認(rèn)證成功,允許用戶登錄;否則,認(rèn)證失敗,拒絕用戶登錄。
步驟4:S→Ui Bi,Bs,TS′′。服務(wù)器隨機(jī)選擇Ns,計(jì)算TS′′發(fā)送給用戶。
步驟5:用戶對(duì)于時(shí)戳TS′′的有效性進(jìn)行時(shí)檢查,如果無(wú)效,用戶對(duì)服務(wù)器認(rèn)證失敗。如果有效,用戶計(jì)算如果B′=B,用戶確認(rèn)服務(wù)器的合法性,完成對(duì)服務(wù)器的認(rèn)證。
在注冊(cè)階段,IDP僅僅將Si=h(Pi)發(fā)送給了服務(wù)器,由于哈希函數(shù)的單向性,服務(wù)器并不知道但是,在協(xié)議中相互認(rèn)證階段的第三步,服務(wù)器需要計(jì)算對(duì)于服務(wù)器來(lái)說(shuō)是不可行的。
本節(jié)將對(duì)Yang方案中錯(cuò)誤進(jìn)行修正,由于注冊(cè)階段是正確的,因此這里只給出更正后的相互認(rèn)證階段。
步驟1:Ui→S:Ci,A,IDi,TS。用戶選擇隨機(jī)數(shù)Ni,計(jì)算將Ci,A,IDi,TS發(fā)送給服務(wù)器。
步驟2:服務(wù)器對(duì)于時(shí)戳TS進(jìn)行檢查,如果時(shí)戳無(wú)效,服務(wù)器拒絕用戶此次認(rèn)證。
步驟3:如果時(shí)戳TS有效,服務(wù)器計(jì)算Ni′=Ci如果服務(wù)器對(duì)用戶認(rèn)證成功,允許用戶登錄;否則認(rèn)證失敗,拒絕用戶登錄。
步驟5:用戶對(duì)于時(shí)戳TS′′的有效性進(jìn)行時(shí)檢查,如果無(wú)效,用戶對(duì)服務(wù)器認(rèn)證失敗。如果有效,用戶計(jì)算用戶確認(rèn)服務(wù)器的合法性,完成對(duì)服務(wù)器的認(rèn)證。
Yang等人在文獻(xiàn)[14]中提出了基于身份的認(rèn)證方案具有密鑰第三方保管的特點(diǎn),容易產(chǎn)生密鑰泄露問(wèn)題,因此用于云計(jì)算環(huán)境下不能提供完善的安全性。為了解決該問(wèn)題,本文提出了一種新的基于無(wú)證書(shū)密碼體制的云計(jì)算用戶認(rèn)證方案。
方案分兩個(gè)階段,注冊(cè)過(guò)程和互認(rèn)證過(guò)程。在注冊(cè)階段中,IDP為用戶提供部分公鑰和私鑰,并且將其分別分發(fā)給服務(wù)器和用戶。圖1描述了該協(xié)議的詳細(xì)流程。
圖1 基于無(wú)證書(shū)的云計(jì)算認(rèn)證協(xié)議
步驟1:初始化。G是循環(huán)加法群,E/Fp表示在方程y2=x3+ax+ba定義下的有限域Fp上橢圓曲線。p∈G是IDP選擇的k比特的素?cái)?shù)。IDP選擇他的私鑰x,并且得出公鑰Ppub=xP。IDP選擇兩個(gè)哈希函數(shù)H1: {0,1}*×G→Zn*,H2: {0, 1}*×G→Zn*。IDP公布公共參數(shù){Fp,E/Fp,G,P,Ppub,H1,H2}。
步驟2:建立私鑰。Up→IDP:Pi,IDi。用戶i隨機(jī)選擇xi∈Zn*,計(jì)算Pi=xiP,并且將xi作為部分密鑰。
步驟3:提取部分密鑰。IDP→Ui:(Si,TIDi);IDP→Server:(Ri,Pi,TIDi)。IDP 隨機(jī)選擇ri∈Zn*,為用戶i生成臨時(shí)身份TIDi=H2(IDi,ri),計(jì)算Ri=riP,si=ri+xH1(TIDi,Ri,Pi),分別作為用戶i的部分公鑰和私鑰。最后通過(guò)加密通道分別將(Ri,Pi,TIDi)發(fā)送給服務(wù)器;(si,TIDi)發(fā)送給用戶i。
步驟1:Ui→Server:Ci,TIDi,H2(Pi,TS)。用戶計(jì)算Ci=xi+si+H2(Pi,TS),將Ci,TIDi,H2(Pi,TS)發(fā)送給服務(wù)器。
步驟2:服務(wù)器檢查時(shí)戳TS的有效性,如果無(wú)效,服務(wù)器拒絕用戶,且認(rèn)證失敗。
步驟3:如果T S有效,服務(wù)器計(jì)算A′=Pi+Ri+PiH1(TIDi,Ri,Pi)+H2(Pi,TS)×P,A=Ci+P檢查是否A′=A。如果相等,服務(wù)器通過(guò)對(duì)用戶的認(rèn)證,允許用戶登錄;否則認(rèn)證失敗。
步驟 4:Server→Ui,IDS,Cs,TS′。服務(wù)器隨機(jī)選擇計(jì)算Ps=xsP,Cs=xs(Ri+PiH1(TIDi,Ri,Pi))+H2(TS′,Ps)。并且將IDs,Cs,TS′發(fā)送給用戶
步驟5:用戶檢查時(shí)戳TS′的有效性,如果無(wú)效,用戶拒絕對(duì)服務(wù)器的認(rèn)證,否則,用戶計(jì)算B=Cs×P,B′=Ps×siP+H2(TS′,Ps)P。 最后,用戶檢查B′=B是否成立。如果相等,用戶通過(guò)對(duì)服務(wù)器的認(rèn)證;否則拒絕該服務(wù)器。
協(xié)議實(shí)現(xiàn)了用戶和服務(wù)器之間的互相認(rèn)證。在認(rèn)證階段的第2步完成服務(wù)器對(duì)用戶的認(rèn)證;在第4步完成用戶對(duì)服務(wù)器的認(rèn)證。
攻擊者試圖對(duì)截獲的認(rèn)證請(qǐng)求進(jìn)行重放攻擊,由于在該協(xié)議中,每條認(rèn)證請(qǐng)求都附有時(shí)戳TS,當(dāng)攻擊者將截獲的認(rèn)證請(qǐng)求重新發(fā)送給服務(wù)器請(qǐng)求認(rèn)證時(shí),時(shí)戳已經(jīng)無(wú)效,因此服務(wù)器將拒絕該認(rèn)證請(qǐng)求。同理TS′可以防止對(duì)于服務(wù)器發(fā)送認(rèn)證消息的重放攻擊。
注冊(cè)協(xié)議中,IDP為用戶生成臨時(shí)的身份。在認(rèn)證協(xié)議中,用戶用臨時(shí)身份代替真實(shí)身份與服務(wù)器進(jìn)行交互,因此,用戶的真實(shí)身份信息在云計(jì)算環(huán)境中沒(méi)有暴露。除了IDP,攻擊者或云環(huán)境的其他用戶和服務(wù)器無(wú)法將用戶的臨時(shí)身份標(biāo)識(shí)與其真實(shí)身份相關(guān)聯(lián)。而且在每次注冊(cè)時(shí),IDP都會(huì)為用戶選擇不同的部分私鑰,生成不同的臨時(shí)身份標(biāo)識(shí),因此根據(jù)不同的認(rèn)證會(huì)話內(nèi)容,也無(wú)法獲得用戶的真實(shí)身份。
如果外部攻擊者試圖通過(guò)IDP的公鑰Ppub獲得IDP的私鑰x,從而得到有關(guān)用戶和服務(wù)器會(huì)話時(shí),由于Ppub=xP是建立在橢圓曲線上離散對(duì)數(shù)問(wèn)題,因此得到x相當(dāng)于解決該數(shù)學(xué)難題,是不可行的。同理,如果內(nèi)部攻擊者試圖根據(jù)用戶的公鑰Pi,獲得私鑰xi,也是不可行的。根據(jù)以上分析,本文提出的方案能夠有效地抵抗外部攻擊和內(nèi)部攻擊。
文章提出的認(rèn)證協(xié)議基于橢圓曲線上無(wú)對(duì)運(yùn)算的無(wú)證書(shū)密碼算法。在協(xié)議性能上,對(duì)運(yùn)算、哈希函數(shù)和有限域上的模指數(shù)運(yùn)算復(fù)雜度分別是橢圓曲線上點(diǎn)乘運(yùn)算的大約20倍和1倍和3倍[15],本文提出的協(xié)議只用到了橢圓曲線上的加法和點(diǎn)乘和哈希運(yùn)算,其算法復(fù)雜度與Yang[14]協(xié)議中使用的哈希和異或運(yùn)算同屬于最低數(shù)量級(jí)。因此,文章提出的云計(jì)算環(huán)境的認(rèn)證協(xié)議在提供多層次強(qiáng)安全性的基礎(chǔ)上,盡可能的簡(jiǎn)化算法復(fù)雜性,減少通信開(kāi)銷(xiāo)。
文章提出了一個(gè)安全的云計(jì)算環(huán)境下的認(rèn)證方案,方案基于無(wú)證書(shū)的密碼算法,因此對(duì)于現(xiàn)有的基于身份密碼算法的認(rèn)證協(xié)議增強(qiáng)了安全性,同時(shí)擁有盡可能小的算法開(kāi)銷(xiāo)。除此之外,協(xié)議提供的安全性有如下特點(diǎn):1)提供了用戶和服務(wù)器之間的互認(rèn)證性;2)利用時(shí)戳使協(xié)議免于重放攻擊;3)為用戶生成的臨時(shí)標(biāo)識(shí)符替代真實(shí)身份,實(shí)現(xiàn)了用戶的匿名性;4)能夠抵抗外部攻擊和內(nèi)部攻擊;根據(jù)以上的分析,與現(xiàn)有協(xié)議相比,該協(xié)議更適合于云計(jì)算環(huán)境中用戶與服務(wù)器之間的認(rèn)證。
參考文獻(xiàn)
[1] Michael A, Armando F, Rean G, et al. A view of cloud computing[J]. Communications of the ACM,2010,53(4):50-58
[2] 馮登國(guó).張敏.張妍.等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71-83
[3] Takabi H, Joshi J B D, Ahn G J. Security and privacy challenges in cloud computing environments[J].IEEE Security and Privacy, 2010, 8(6):24
[4] Yassin AA, Jin H, Ibrahim A, et al. Cloud authentication based on anonymous one-time password[M]. New York:Springer Dordrecht Heidelberg, 2013,214:423
[5] Tsaur WJ, Li JH, Lee WB. An ef fi cient and secure multiserver authentication scheme with key agreement[J].Journal of System and Software. 2012. 85(4):876-882
[6] Choudhury AJ, Kumar P, Sain M, et al. A strong user authentication framework for cloud computing[C]//IEEE Asia-Paci fi c Services Computing Conference, 2011
[7] Jaidhar CD. Enhanced mutual authentication scheme for cloud architecture[C]//3rd IEEE International Advance Computing Conference (IACC).2012:70-75
[8] Xu J S, Huang R C, Huang W M, er al. Secure document service for cloud computing[J].Lecture Notes in Computer Science, 2009,5931:541-546
[9] Nelson Mimura Gonzalez, Marco Ant?nio Torrez Rojas,Marcos Vinícius Maciel da Silva.A framework for authentication and authorization credentials in cloud computing[C]//12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, 2013
[10] K. Selvamani, Pradeep Kumar Arya. Credential Based Authentication Approach for Dynamic Group in Cloud Environment Original Research Article[J].Procedia Computer Science, 2015,48:166-172
[11] Li H, Dai Y, Tian L, et al. Identity-based authentication for cloud computing[J]. Lecture Notes in Computer Science, 2009,5931:157-166
[12] Hwang MS, Chong SK, Chen TY. DoS-resistant ID-based password authentication scheme using smart cards[J].Journal of System and Software 2010, 83(1):163
[13] Wang Y, Liu J, Xiao F, et al. A more efficient and secure dynamic ID-based remote user authentication scheme[J].Communications, 2009,32(4):583-585
[14] Jen-Ho Yang, Pei-Yu Lin. An ID-Based User Authentication Scheme for Cloud Computing[C].2014 Tenth International Conference on Intelligent Information Hiding and Multimedia Signal Processing
[15] Cheng Z, Pairing-based cryptosystems and key exchange protocols[D].Thesis of Middlesex University,2007