张曼君 张 岩
1 北京邮电大学 北京 100876
2 中国联合网络通信有限公司 北京 100033
随着网络技术的发展,云计算已经成为当今信息技术发展的主要趋势之一。云计算是一种新型的计算模型,是互联网上的应用服务以及数据中心提供服务的硬件设施和系统软件的总称[1]。云计算在为用户带来便利的同时,自身结构的复杂性也为安全功能的实施带来了新的挑战。随着云计算的不断普及,安全问题呈现逐步上升的趋势,已经成为制约云计算发展的重要因素[2]。
在云计算环境中,云端服务器存储了大量的用户敏感数据,用户必须通过网络访问这些数据。因此如何在不安全的网络环境下进行云用户安全认证管理和访问控制管理是云计算安全急需解决的问题[3]。
近些年来,围绕着为终端用户提供安全的云服务,学者们提出了多种云计算认证方案[4-8]。其中一些方案是基于身份证书的[9-10],用户在访问云服务器的时候要传递自己的身份证书,需要占用一定的带宽,影响了方案的实现效率,因此该类方案不适合于云计算的环境。还有一类方案是基于身份密码的认证协议[11-14],用户的公私钥是根据身份标识由专门身份认证机构生成的,解决了传递证书的问题,提高了协议的执行效率,其中文献[14]中提出的方案证明是基于身份的方案中最高效的。但是,该协议中的算法存在漏洞,导致协议无法正确执行。由于基于身份的密码算法自身就存在密钥容易泄露的问题,因此该类协议存在严重的安全缺陷。
为了获得更好的安全性,本文首先对于Yang的方案[14]进行修改,纠正了算法中存在的漏洞;随后,提出一个新的适用于云计算环境的基于无证书密码的用户认证方案。方案基于无证书的密码算法,尽可能的减少了运算开销,并且克服了基于身份密码算法所带来的密钥泄露问题,因此,提升了安全性。同时,该方案能保证用户匿名性,应用于云计算环境时能保证用户隐私性。
本节回顾yang等人的基于身份的认证方案,并且指出该方案中算法的错误和缺陷。
方案使用的缩略词见表1。
表1 Yang方案的缩略词
Yang的方案分为注册和相互认证两个阶段。
1)注册阶段
步骤1:Ui→IDPIDi,IDs。用户i将自己的和服务器的身份标识IDi,发送给身份提供者IDP。
步骤2:IDP→Ui:Pi;IDP→S:Si。IDP用私钥x计算并且将他们分别发送给用户和服务器。
2)相互认证阶段
步骤1:Ui→S:Ci,A,IDi,TS。用户选择随机数Ni,计算A,IDi,TS发送给服务器。
步骤2:服务器对于时戳TS进行检查,如果时戳无效,服务器拒绝用户此次认证。
步骤3:如果时戳TS有效,服务器计算Ni′=Ci如果A′=A,服务器对用户认证成功,允许用户登录;否则,认证失败,拒绝用户登录。
步骤4:S→Ui Bi,Bs,TS′′。服务器随机选择Ns,计算TS′′发送给用户。
步骤5:用户对于时戳TS′′的有效性进行时检查,如果无效,用户对服务器认证失败。如果有效,用户计算如果B′=B,用户确认服务器的合法性,完成对服务器的认证。
在注册阶段,IDP仅仅将Si=h(Pi)发送给了服务器,由于哈希函数的单向性,服务器并不知道但是,在协议中相互认证阶段的第三步,服务器需要计算对于服务器来说是不可行的。
本节将对Yang方案中错误进行修正,由于注册阶段是正确的,因此这里只给出更正后的相互认证阶段。
步骤1:Ui→S:Ci,A,IDi,TS。用户选择随机数Ni,计算将Ci,A,IDi,TS发送给服务器。
步骤2:服务器对于时戳TS进行检查,如果时戳无效,服务器拒绝用户此次认证。
步骤3:如果时戳TS有效,服务器计算Ni′=Ci如果服务器对用户认证成功,允许用户登录;否则认证失败,拒绝用户登录。
步骤5:用户对于时戳TS′′的有效性进行时检查,如果无效,用户对服务器认证失败。如果有效,用户计算用户确认服务器的合法性,完成对服务器的认证。
Yang等人在文献[14]中提出了基于身份的认证方案具有密钥第三方保管的特点,容易产生密钥泄露问题,因此用于云计算环境下不能提供完善的安全性。为了解决该问题,本文提出了一种新的基于无证书密码体制的云计算用户认证方案。
方案分两个阶段,注册过程和互认证过程。在注册阶段中,IDP为用户提供部分公钥和私钥,并且将其分别分发给服务器和用户。图1描述了该协议的详细流程。
图1 基于无证书的云计算认证协议
步骤1:初始化。G是循环加法群,E/Fp表示在方程y2=x3+ax+ba定义下的有限域Fp上椭圆曲线。p∈G是IDP选择的k比特的素数。IDP选择他的私钥x,并且得出公钥Ppub=xP。IDP选择两个哈希函数H1: {0,1}*×G→Zn*,H2: {0, 1}*×G→Zn*。IDP公布公共参数{Fp,E/Fp,G,P,Ppub,H1,H2}。
步骤2:建立私钥。Up→IDP:Pi,IDi。用户i随机选择xi∈Zn*,计算Pi=xiP,并且将xi作为部分密钥。
步骤3:提取部分密钥。IDP→Ui:(Si,TIDi);IDP→Server:(Ri,Pi,TIDi)。IDP 随机选择ri∈Zn*,为用户i生成临时身份TIDi=H2(IDi,ri),计算Ri=riP,si=ri+xH1(TIDi,Ri,Pi),分别作为用户i的部分公钥和私钥。最后通过加密通道分别将(Ri,Pi,TIDi)发送给服务器;(si,TIDi)发送给用户i。
步骤1:Ui→Server:Ci,TIDi,H2(Pi,TS)。用户计算Ci=xi+si+H2(Pi,TS),将Ci,TIDi,H2(Pi,TS)发送给服务器。
步骤2:服务器检查时戳TS的有效性,如果无效,服务器拒绝用户,且认证失败。
步骤3:如果T S有效,服务器计算A′=Pi+Ri+PiH1(TIDi,Ri,Pi)+H2(Pi,TS)×P,A=Ci+P检查是否A′=A。如果相等,服务器通过对用户的认证,允许用户登录;否则认证失败。
步骤 4:Server→Ui,IDS,Cs,TS′。服务器随机选择计算Ps=xsP,Cs=xs(Ri+PiH1(TIDi,Ri,Pi))+H2(TS′,Ps)。并且将IDs,Cs,TS′发送给用户
步骤5:用户检查时戳TS′的有效性,如果无效,用户拒绝对服务器的认证,否则,用户计算B=Cs×P,B′=Ps×siP+H2(TS′,Ps)P。 最后,用户检查B′=B是否成立。如果相等,用户通过对服务器的认证;否则拒绝该服务器。
协议实现了用户和服务器之间的互相认证。在认证阶段的第2步完成服务器对用户的认证;在第4步完成用户对服务器的认证。
攻击者试图对截获的认证请求进行重放攻击,由于在该协议中,每条认证请求都附有时戳TS,当攻击者将截获的认证请求重新发送给服务器请求认证时,时戳已经无效,因此服务器将拒绝该认证请求。同理TS′可以防止对于服务器发送认证消息的重放攻击。
注册协议中,IDP为用户生成临时的身份。在认证协议中,用户用临时身份代替真实身份与服务器进行交互,因此,用户的真实身份信息在云计算环境中没有暴露。除了IDP,攻击者或云环境的其他用户和服务器无法将用户的临时身份标识与其真实身份相关联。而且在每次注册时,IDP都会为用户选择不同的部分私钥,生成不同的临时身份标识,因此根据不同的认证会话内容,也无法获得用户的真实身份。
如果外部攻击者试图通过IDP的公钥Ppub获得IDP的私钥x,从而得到有关用户和服务器会话时,由于Ppub=xP是建立在椭圆曲线上离散对数问题,因此得到x相当于解决该数学难题,是不可行的。同理,如果内部攻击者试图根据用户的公钥Pi,获得私钥xi,也是不可行的。根据以上分析,本文提出的方案能够有效地抵抗外部攻击和内部攻击。
文章提出的认证协议基于椭圆曲线上无对运算的无证书密码算法。在协议性能上,对运算、哈希函数和有限域上的模指数运算复杂度分别是椭圆曲线上点乘运算的大约20倍和1倍和3倍[15],本文提出的协议只用到了椭圆曲线上的加法和点乘和哈希运算,其算法复杂度与Yang[14]协议中使用的哈希和异或运算同属于最低数量级。因此,文章提出的云计算环境的认证协议在提供多层次强安全性的基础上,尽可能的简化算法复杂性,减少通信开销。
文章提出了一个安全的云计算环境下的认证方案,方案基于无证书的密码算法,因此对于现有的基于身份密码算法的认证协议增强了安全性,同时拥有尽可能小的算法开销。除此之外,协议提供的安全性有如下特点:1)提供了用户和服务器之间的互认证性;2)利用时戳使协议免于重放攻击;3)为用户生成的临时标识符替代真实身份,实现了用户的匿名性;4)能够抵抗外部攻击和内部攻击;根据以上的分析,与现有协议相比,该协议更适合于云计算环境中用户与服务器之间的认证。
参考文献
[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] 冯登国.张敏.张妍.等.云计算安全研究[J].软件学报,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