赵森,甘庆晴,王晓明,余芳
(暨南大学信息科学技术学院,广东 广州 510632)
随着大数据时代的到来,许多企业都选择运用多云服务对大数据进行存储与处理。由于云计算环境构建于一种开放的架构和接口之上,因此,可以将多个内部或外部的云服务整合在一起提供协同服务,这种分布式的云计算被称为“多云”(multicloud)[1]。在多云环境中,当云服务提供商拥有资源不足时,可以借用其他云的虚拟资源,如网络、服务器、存储、应用程序和服务。因此,多云服务可以为用户提供更好的服务,减少数据丢失和传输阻塞等风险,还能解决供应商锁定问题,从而使用户获得的服务性能得到改善。然而,多云服务在获得快速发展的同时,也带来许多安全问题,如多云环境下的用户认证、访问控制、数据隐私安全等。这些都给多云环境下的安全带来巨大挑战,使用传统的安全机制很难应付复杂多变的环境。因此,多云环境下的安全问题已经是当今的研究热点问题。
认证技术是信息安全的一个重要技术,而身份认证是保护多云安全的一个重要机制,有着举足轻重的作用。身份认证是识别和证明一个主体是否就是它所声称的那个主体的过程,用于鉴别用户的身份,限制非法用户访问系统资源。为了实现用户与云服务器之间的双向认证,已有许多安全认证方案被提出,如文献[1~11],但它们主要是针对单云服务构建的。在这些方案中,当用户需要云服务时,首先需要在这个云注册,从而获得访问云服务的密钥和权力。在多云环境下,直接应用适合单云的认证方案,那么当用户需要从多个云获得不同的服务时,用户就必须向多个云提交注册信息,以便获得访问密钥和权力。然而,用户记住和管理多个访问密钥是件很困难的事,也是不安全的。更重要的是,随着注册云的个数增多,用户需要保存的访问密钥就越多。例如,用户使用智能卡或移动设备进行认证,那么智能卡或移动设备存储的访问密钥就随着注册云的个数呈线性增长,这对存储能力有限的智能卡或移动设备是不现实的。虽然利用第三方验证用户身份,可以降低用户的存储和计算费用,但要求所有的认证过程都需要第三方的参与,这必然增加了整个系统的通信费用和计算费用。同时,攻击者可能采用拒绝服务攻击等消耗第三方的资源,使第三方压力倍增,容易造成服务崩溃。此时,当合法用户想要获取服务时,第三方不能及时响应用户的请求。因此,基于单云环境下身份认证方案不能直接、高效地应用多云环境下的身份认证。
针对以上这些问题,提出了一种多云环境下基于智能卡的认证方案。所提方案不需要第三方参与认证,智能卡只需存储2个访问密钥就可以实现与多个云之间的认证和访问。所提方案解决了多云环境下智能卡存储的访问密钥随注册云的个数增加而呈线性增长的问题,有效地减少了智能卡的存储费用。利用 XOR同态函数和散列函数生成认证信息,有效降低了智能卡和云服务器的计算费用。此外,所提方案也不需要在多云端存储任何用户的信息,从而降低了云服务器的存储和管理费用。安全性分析和性能分析表明,该方案能抵御多种攻击,是一种安全且高效的方案。
随着云计算的不断发展,基于云计算的认证方案也逐渐成为研究热点之一,学者们在网络用户认证安全的基础上,分析了云计算在信息安全领域中的特点,提出了一系列云环境下的安全认证方案[3~17]。其中,文献[3]提出了一个在云环境下的身份认证方案,该方案是基于IBE(基于身份的加密)和IBS(基于身份的签名)提出来的。文献[4]采用盲签名和双线性对的方法实现了在云环境下的一个联合身份认证方案。该方案与传统方案相比,实现了用户匿名性、防止追踪以及隐私保护。通过分析,该方案在计算效率和安全性上有很大优势,但在一些特定的云应用中,该方案也没有很好地保护用户隐私。其后,许多改进方案被提出,如文献[5~7]。Choksi[8]从云环境下的安全和隐私保护技术的角度出发,对比分析了其他方案的特点,进而指出未来发展趋势和后续研究方向。为了加强认证的安全性,文献[9]提出了一个多层次认证方案,该方案利用多层结构认证实现访问云服务控制,且能抵抗虚拟化的攻击和内部攻击。文献[10]提出了一种基于云存储的认证方案,该方案利用证书和身份的加密(IBC)对访问云存储的用户进行身份验证。随后,文献[11]提出了一个云环境下的多层次图形密钥认证方案,利用图形密钥实现用户身份的认证。
针对多云环境下的身份认证模式,学术界已提出了不同的解决办法和策略。文献[12]提出了一个在多云环境下具有服务透明的用户认证方案。在该方案中,定义一个云代理的多云模型,并提出了一个适用于该模型的认证协议。文献[13]提出了一种保证匿名性的零知识认证协议。该协议能抵抗各种攻击,可以作为一种安全协议在多云环境中使用。文献[14]提出了一种将中央机构的秘密值秘密共享给参与主体的思想,并构建了一种混合云统一认证机制。在该方案中,认证中心的工作改由参与主体合作完成,并给出了跨域认证方案和会话密钥协商方案。文献[15]提出了一种基于Kerberos的混合云服务中跨云际认证的机制。在这种机制中,云终端采取基于身份认证的方式直接和私有云进行认证,凭借企业私有云发放的票据访问企业存放在公有云中的数据。Bong等[16]提出了多云环境下的一种快速的用户认证方法。该方案是基于票证的用户认证,即用户首先向云认证中心注册,当申请云服务时,需要云认证中心进行身份认证,然后发放访问票据。在这种机制中,云终端采取基于身份认证的方式直接和私有云进行认证,凭借企业私有云发放的票据访问企业存放在公有云中的数据。然而,这些方案都需要第三方参与认证,整个系统的通信费用和计算费用较高,还存在单点瓶颈等问题。文献[17]提出了一种分布式移动云计算服务的隐私认证方案,实现移动用户访问多个移动云的身份认证。该方案不需要第三方参与,且用户端存储的密钥也是常量。但该方案是基于双线性对的密码系统和动态随机数构造的,计算费用较高。
散列函数的输入长度是变长的,但其输出长度是固定的,该输出值被称为散列值。符号采用H(·)表示。散列函数具备以下几点性质[18]。
1) 输出长度固定性。任意长度的输入,得到的输出结果都是固定长度的。
2) 单向性。如果输入信息为m,能计算出H(m),但如果已知H(m),则无法逆向计算出信息m,散列函数是单向不可逆的。
3) 抗碰撞性。对于任意一个输入信息m,找出另一个任意信息m'使之满足m≠m′,则不可能出现H(m)=H(m')的情况。
XOR同态函数指具有异或同态性质的伪随机函数,它能增强对数据泄露的保护,保证数据的隐私性。它的属性如下所示[19]。
命题1 对于一个XOR同态函数f,有
命题2 如k1和k2是置换密钥,则
由于比特置换具有异或同态的性质,可以采用安全置换算法来保证方案的安全性。例如,著名洗牌算法[20]能产生均匀分布的序列。
所提方案包括可信中心(T)、多云服务器(Sj)和多个用户(Ui)。可信中心只负责生成系统参数和用户及云服务器的注册,不参与用户和多云服务器的认证。所提方案包括5个阶段:注册阶段、登录阶段、认证阶段、密码更改阶段和密码撤销阶段。表1列出本文方案涉及的符号及其含义。
表1 本文方案涉及的符号及其含义
1) 用户注册
如果一个用户想要访问云端的数据,用户需要先向可信中心注册,注册的步骤如下所示。
Step1用户Ui选择他的身份IDi、密码PWi和一个随机数α∈(p是一个大素数),并通过安全信道提交H(α||PWi)和IDi信息给可信中心T。
Step2 收到用户注册请求后,T选择随机数计算用户的访问密钥为(fk(IDi) ,ki)和认证信息,并将压入智能卡。
图1 用户注册
Step3T通过安全信道发送智能卡给用户Ui,智能卡中包含参数
Step4 收到智能卡后,用户Ui输入随机数α进入智能卡,最终智能卡中包含的参数为
用户注册过程如图1所示。
2) 云服务器注册
云服务器Sj按以下步骤完成注册。
Step1 云服务器Sj发送身份IDsj给可信中心T。
Step2 收到Sj注册请求后,T选择随机数则服务密钥为 (fk(IDsj),并通过安全通道发送给Sj,完成Sj的注册。
云服务器注册过程如图2所示。
图2 云服务器注册过程
用户登录智能卡阶段的步骤如下所示。
Step1 用户Ui插入智能卡进入读卡器,然后输入他的身份IDi和密码PWi。
然后,用户发送一个登录请求信息(Vi1,Vi2,Ti)到云服务器Sj。其中,Ti是时间戳。
用户与云服务器相互认证彼此的合法身份,并协商通信所需的会话密钥,其步骤如下所示。
Step1 云服务器Sj在接收到信息(Vi1,Vi2,Ti)后,首先检查时间戳Ti。如果时间戳Ti有效,则云服务器计算然后云服务器Sj验证等式是否成立。如果等式不成立,则云服务器Sj拒绝认证请求。否则,云服务器Sj接收认证请求,并产生一个随机数wj,计算
然后发送消息(Si1,Si2,Ts) 给用户。同时,云服务器Sj可以计算出会话密钥
Step2 接收到信息(Si1,Si2,Ts) 后,用户Ui首先检查时间戳Ts。如果时间戳Ts有效,则用户Ui计算并验证式(10)。
如果等式成立,则用户认定云服务器是合法的。否则,用户Ui认为消息(Si1,Si2,Ts) 不是服务器发送的合法信息。用户可以计算出会话密钥
与此同时,用户Ui计算确认信息给云服务器。如式(11)所示。
Step3 收到(ρi,Ti′),云服务器验证
如果等式成立,则确认对方是具有身份标识IDi的合法用户。
登录和相互认证过程如图3所示。
用户Ui能在任何时间改变其密码,更改密码的步骤如下。
Step1 用户Ui插入他的智能卡进入智能卡读卡器,然后输入用户的身份IDi和密码PWi。
Step2 智能卡计算
Step3 输入新的密码PWi′后,智能卡计算
当用户注册成功后,就具有更改密码的权限,然而,如果当该用户不想访问某云服务器时,用户需要进行密码撤销,并且该操作不影响用户在其他云的访问权限。为了实现该功能,对于每个云服务器需要进行初始化操作,具体步骤如下所示。
初始化。假设用户Ui和云服务器Sj已成功注册,并完成了登录和相互认证过程,那么云服务器Sj将以合法用户的身份ID构造函数Fj(x) = (x-ID1) (x-ID2)⋅⋅⋅(x-IDi-1)。
当有新用户身份为IDi通过认证时,Sj更新函数Fj(x)为Fj′(x) =Fj(x)(x-IDi),即
当用户想要撤销某个云服务器的密码时,他能在任何时间内实现该操作,具体步骤如下所示。
Step1 用户Ui插入他的智能卡进入智能卡读卡器,然后输入用户的身份IDi和密码PWi。
Step2 智能卡计算fk(IDi)=σi⊕H(α||PWi),=H(fk(IDi)||IDi),并验证等式是否成立。如果等式成立,则用户Ui允许密码撤销。否则,撤销密码阶段终止。
图3 登录和相互认证过程
Step3云服务器Sj计算Fj(IDi) ,并验证是否成立。如果等式成立,则用户Ui允许密码撤销。否则,撤销密码阶段终止。云服务器Sj计算
并用Fj′ (x)代替Fj(x),云服务器Sj最终保存Fj′(x),从而完成了用户在该云服务器的密码撤销功能。
1) 双向认证
所提方案能实现云服务器与用户的双向认证。在提出的方案中,每个用户都拥有自己的访问密钥(fk(IDi) ,ki),同样每个云服务器也都拥有自己的服务密钥(fk(IDsj),。申请服务的用户只需用自己的访问密钥(fk(IDi) ,ki)从云服务器返回的信息(Si1,Si2)获得λi=fki(IDi⊕ri),并验证λi是否是自己发出的身份验证信息fki(IDi⊕ri),就可以确认对方是否是用户申请的合法云服务器Sj。因为只有合法云服务器才能使用自己的服务密钥(fk(IDsj),)解出秘密验证信息fki(IDi⊕ri),并返回确认信息(Si1,Si2)。攻击者或任何人都无法获得服务密钥(fk(IDsj),),从而也就无法获得秘密验证信息fki(IDi⊕ri),并生成合法的确认信息(Si1,Si2)。同理,云服务器Sj只需验证用户返回的信息ρi和自己生成的确认信息fkˆ(IDsj⊕wj)及会话密钥ζisj的散列
j
值是否相等就可以确认对方是否为合法的用户。
2) 不需存验证表
在所提方案中,云服务器不需要存储任何的用户信息的验证表,只需存储自己的服务密钥,降低了云服务器的存储费用和管理费用。此外,即使攻击者攻破云服务器,他仍然无法获得任何用户的信息。
3) 抵抗伪造攻击
攻击者或其他用户要伪造一个合法用户Ui申请云服务,他必须伪造一个合法的请求信息(Vi1,Vi2,Ti),否则无法通过云服务器的验证。然而,生成合法的请求信息(Vi1,Vi2,Ti)需要合法用户Ui的访问密钥(fk(IDi) ,ki),而攻击者或其他用户无法获得Ui的访问密钥(fk(IDi) ,ki)。因此,他们也就无法伪造出合法的请求信息(Vi1,Vi2,Ti)。同理,攻击者或其他服务器无法获得云服务器Sj的服务密钥(fk(IDsj),,因此,他们也无法伪造出合法的确认信息(Si1,Si2)。此外,从信息(Vi1,Vi2,Ti)或(Si1,Si2)也无法计算出访问密钥(fk(IDi) ,ki)和服务密钥(fk(IDsj),。因此,所提方案能抵抗伪造攻击。
4) 抵抗重放攻击
在所提方案中,加入时间戳(Ti,Ts,Ti’) 检查,从而能判断是否是重放信息。如果一个攻击者截获用户发给云服务器的请求信息(Vi1,Vi2,Ti) ,并修改时间戳,则云服务器通过验证就可以发现伪造的时间戳。同理,用户也可以通过验证发现伪造的时间戳。因此,该方案可以抵抗重放攻击。
5) 协商会话密钥
在所提方案中,用户和云服务器各自独立计算一个共同的会话密钥
6) 抵抗智能卡丢失攻击
假设用户的智能卡丢失了或被盗了,攻击者可以从智能卡存储的信息中提取出(σi,,α,H(·))。然后,如果攻击者试图利用这些信息更改用户的密码或登录系统,那么他必须同时知道用户的真实身份IDi和正确的密码PWi。如果试图密码猜测攻击,但用户登录智能卡的验证次数会被预先设定(一般设置为3次)。如输入密码超过3次,就自动锁死。因此,所提方案可以抵抗智能卡攻击,是安全的。
7) 前向保密
前向保密意味着即使云服务器的私有密钥被泄露,也不应该影响先前建立的会话密钥的保密性。在本文所提方案中,用户和云服务器独立地计
然后,使用该会话密钥来加密之后通信的数据分组,以确保通信是保密的。此外,会话密钥是由随机数和一个单向散列函数生成的。因此,会话密钥在每次通信中都是不同的。且由单向散列函数的性质可知,攻击者很难从被截取的消息中计算出会话密钥。算会话密钥
该会话密钥包含2个随机数(ri,wj),每次会话过程中的随机数都是不同的。因此,即使云服务器的私钥被泄露也不可能破解用户与云服务器先前的通信信息。
8) 抵抗内部攻击
在注册阶段,用户发送注册信息(IDi,H(α||PWi))给可信中心T。其中,用户的密码并未将明文发送给可信中心,而是通过单向散列函数H(.)进行了保护,使T不可能知道用户的密码PWi和随机数α,从而使用户不受内部攻击。因此,该方案可以抵抗内部攻击。
9) 抵抗stolen-verifier攻击和modification攻击
10) 密码更改的友好性
本文方案允许用户在任何时间更改其密码PWi。如果用户想要改变他的密码,首先他需要登录智能卡。当登录成功后,他可以输入新的密码,智能卡将为其重新计算并用(′)代替(最后智能卡包含公共参数′,α,H(.))。由于密码更改阶段是在智能卡上执行,不存在安全漏洞。
11) 安全的密码撤销
本文方案允许用户在任何时间撤销其在某云服务器中的密码PWi。如果用户想要撤销他的密码,首先他需要登录智能卡。当登录成功后,云服务器Sj需要先验证是否成立。如果成立,说明用户和云服务器完成了相互认证,具备密码撤销的权限,那么云服务器Sj执行相应的操作完成密码撤销。如果不成立,则说明该用户没有和云服务器相互认证,不具备密码撤销的权限,那么就无法执行撤销密码的操作。并且用户撤销了某一个云服务器的密码,不影响该用户在其他云服务器中的访问权限。
本节将从存储费用、是否需要第三方参与认证、通信费用、计算费用等方面分析所提认证方案的性能,并将本文方案和已有方案进行对比,如表2所示。其中计算费用主要比较了认证过程中用户和服务器的计算时间。
从存储费用来说,本文方案中用户只存储访问密钥(fk(IDi) ,ki),不随着注册云服务器增多而增多,且服务器也不需要存储用户的认证信息,只需存储服务密钥(fk(IDsj),以及用于实现密码撤销的函数Fj(x)。文献[13~15,17]只需用户存储常量的秘密信息,所以文献[13~15,17]和本文方案的存储费用均为O(1)。但文献[13~15]都需要第三方参与认证,而文献[17]和本文方案不需要第三方参与认证。
从通信费用来说,由于第三方参与认证,云服务器在收到用户的请求并经过相关处理后发送给第三方,第三方认证问题再将认证结果和会话秘钥嵌入消息发回给云服务器,云服务器处理结果后提取出共享的密钥发回用户。因此,文献[13~15]都需要产生4次通信。而文献[17]和本文方案认证过程只需 3次通信。因此,文献[17]和本文方案具有较低的通信费用,优于文献[13~15]。
表2 本文方案与已有方案对比
从计算费用来说,所提方案利用 XOR同态函数和散列函数实现了用户和多云之间的认证。没有使用双线性对等公钥密码技术,因此,计算费用非常低。而文献[17]通过使用双线性对进行认证,所以,本文方案比文献[17]具有更低的计算费用。
身份认证作为多云服务的第一道安全保障,显得尤为重要。本文通过智能卡和密码双因素保证用户身份信息,并利用XOR同态函数和散列函数生成认证信息,从而有效降低了智能卡和云服务器的存储费用和计算费用。通过安全分析和性能分析,证明了本文方案不仅是安全的,而且计算和存储费用较小,更符合智能卡或移动设备使用的应用场景。
参考文献:
[1]PATI M,RAO G R. Integrity verification in multi-cloud storage using cooperative provable data possession [J]. International Journal of Computer Science and Information Technologies(IJCSIT),2014,5(2):982-985.
[2]CHATURVEDI A,DAS A K,MISHRA D,et al. Design of a secure smart card-based multi-server authentication scheme[J]. Journal of Information Security and Applications,2016,30: 64-80.
[3]LI H,DAI Y,TIAN L,et al. Identity-based authentication for cloud computing[M]. Cloud Computing. Springer Berlin Heidelberg,2009:157-166.
[4]ZHANG Q,LI Y Z,SONG D J. et al. Alliance-authentication protocol in cloud computing environment[J]. China Communications,2012,7:42-54.
[5]CHEN T H,YEH H L. SHIH W K. An advanced ECC dynamic ID-based remote mutual authentication scheme for cloud computing[C]//5th FTRA International Conference on Multimedia and Ubiquitous Engineering (MUE). 2011: 155-159.
[6]YASSIN A,JIN H,IBRAHIM A,et al. A practical privacy-preserving password authentication scheme for cloud computing[C]//2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops and PhD Forum. 2012:21-25.
[7]JAIDHAR D. Enhanced mutual authentication scheme for cloud architecture[C]//2013 IEEE 3rd International Advance Computing Conference (IACC). 2013:70-77.
[8]CHOKSI S. Comparative study on authentication schemes for cloud computing[J]. International Journal of Engineering Development and Research(JIEDR),2014,2(2): 1-7.
[9]SINGH A,CHATTERJEE K. A secure multi-tier authentication scheme in cloud computing environment[C]//2015 International Conference on Circuit,Power and Computing Technologies (ICCPCT). 2015: 2-8.
[10]MEDHIOUB M,HAMDI M,KIM T. A new authentication scheme for cloud-based storage applications[C]//The 9th International Conference on Security of Information and Networks. 2016: 57-60.
[11]KAUR R,KAUR A. Enhancing authentication schemes for multi-level graphical password in cloud environment,communications on applied electronics (CAE)[C]// Foundation of Computer Science FCS.2016:12-18.
[12]LEE J,SON J,KIM H,et al. An authentication scheme for providing to user service transparency in multicloud environment[J]. Journal of the Korea Institute of Information Security and Cryptology,2013,23(6):1131-1141.
[13]KIM H,CHUNG H,KANG J. Zero-knowledge authentication for secure multi-cloud computing environments[C]//Advances in Computer Science and Ubiquitous Computing. Lecture Notes in Electrical Engineering,2015: 255-261.
[14]田俊峰,孙可辉. 基于 HIBC的云信任分散统一认证机制[J]. 计算机研究与发展,2015,52(7):1660-1671.TIAN J F,SUN K H. Trusted-distributed-based authentication mechanism using hierarchical identity-based cryptography[J]. Journal of Computer Research and Development,2015,52(7):1660-1671.
[15]周艺华,蒿金志,赵航. 混合云服务中的跨云际认证机制[J]. 计算机系统应用,2015,24(4):118-122.ZHOU Y H,HAO J Z,ZHAO H. Authentication mechanism of crossing clouds in hybrid cloud services[J]. Computer Systems and Applications,2015,24(4):118-122.
[16]BONG J,SUH Y,SHIN Y. Fast user authentication method considering mobility in multi-clouds[C]//2016 International Conference on Information Networking (ICOIN). 2016:445-448.
[17]TSAD J L,LO N W. A privacy-aware authentication scheme for distributed mobile cloud computing services[J]. IEEE Systems Journal,2015,9(3):1-11.
[18]CORON J S,DODIS Y,MALINAUD C,et al. Merkle-Damgård revisited: How to construct a hash function[C]//Advances in Cryptology-CRYPTO 2005. 2005: 430-448.
[19]REN S Q,TAN B H,SUNDARAM S,et al. Secure searching on cloud storage enhanced by homomorphic indexing[J]. Future Generation Computer Systems,2016,65: 102-110.
[20]ADE-IBIJOLA O. A simulated enhancement of Fisher-Yates algorithm for shuffling in virtual card games using domain-specific data structures[J]. International Journal of Computer Applications,2012,54(11):24-28.