一种基于PaaS的安全云计算方法和系统
技术领域
本发明涉及云计算,特别涉及一种云计算平台中的身份认证方法和系统。
背景技术
云计算具有超大规模、虚拟化、可靠安全等特点。对于网络运营商而言,可以使得运营成本和操作维护成本大大下降。在云计算环境下,一切资源都是可以运营的,都可以作为服务提供,包括应用程序、软件、平台、处理能力、存储、网络、计算资源以及其他基础设施等。PaaS(平台即服务)应用场景中,需要由客户端将应用程序上传到PaaS平台的应用程序节点中运行。应用程序节点即为真实的PaaS平台服务器主机或者IaaS层提供的虚拟主机。PaaS平台的应用程序节点通常是多租户形式的,会接收到来自于各种各样的客户端上传的应用程序,这些上传的应用程序不仅有可能对PaaS平台上运行这些应用程序的应用程序节点造成安全问题,企业只要通过互联网就可以使用这些服务,而令用户担心的是业务应用的安全性问题,在金融支付类的业务平台中尤其重要。因此,在设计PaaS应用系统时,身份鉴别作为门户在信息安全方面占有主导地位。已有的PaaS应用系统的身份认证采用基于CA体系的身份认证,但它必须以完整的CA体系为基础,成本较高,技术相当复杂,且对于认证机构的安全性及可靠性要求很高,不利于在云计算平台中推广使用。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于PaaS的安全云计算方法,用于在PaaS平台服务器中验证用户身份,包括:
初始化客户端和PaaS平台服务器端的密钥,并将客户端身份信息注册到服务器中;
服务器生成随机数,并利用该随机数对用户口令进行加密得到加密口令;
在用户登录PaaS平台服务器之前,利用所述加密口令验证用户当前口令以对用户进行身份鉴别。
优选地,所述初始化步骤进一步包括:
生成客户端的公钥和私钥,分别为kUR和kUS;
生成PaaS平台服务器的公钥和私钥,分别为kSR和kSS;
其中,kUS和kSS是由素数测试法选出的两个模4同余3的素数;
并且所述注册步骤进一步包括:
交换客户端用户的公钥kUR和服务器的公钥kSR,并各自保存自己的私钥;
客户端计算kSR×kUS,PaaS平台服务器端计算kUR×kSS,并且满足其中kSR×kUS=kUR×kSS=K,作为用户与服务器共同拥有的会话密钥。
优选地,所述加密步骤进一步包括:
服务器为用户创建一个用户信息条目,生成一个随机数R并发送给客户端;
用户注册时,提供登录口令,并利用共同密钥K来加密所述口令得到加密口令K(pw),
使用所述随机数R与所述加密口令K(pw)进行一次散列运算得到a=H(K(pw)||R),
将散列结果a传递给服务器端,将其与用户ID、随机数R一同存入服务器数据库中。
优选地,所述身份鉴别步骤进一步包括:
1)用户登录到PaaS平台服务器,传送自己的身份标识ID,提供口令pw',PaaS平台服务器接收到的用户传送来的ID,验证ID的有效性,如果ID无效,则拒绝用户登录,如果ID有效,进入步骤2);
2)根据用户ID查找相应的随机数R和当前鉴别口令a=H(K(pw)||R),然后取出随机数R,利用共同的密钥K加密计算得出b=K(a||R),并将b作为挑战传送给客户端;
3)客户端对b进行解密即DK(b),得出a和R,并用公共的密钥K对口令pw'加密,得到K(pw'),然后连同随机数R做一次散列计算c=H(K(pw')||R),将结果与a进行比较,如果两者相等,进入步骤4),若不相等,则判定用户非法,终止与服务器的会话;
4)在验证通过后,客户端产生一个随机数R',然后和密码口令K(pw')再做一次散列计算得d=H(K(pw')||R'),作为新的鉴别口令,将d和R做一次散列计算得到常量e=H(d||R),然后将散列结果连同生成的随机数R'及当前鉴别口令d利用公共的密钥K进行加密得f=K(e||d||R'),将f传给PaaS平台服务器端;
5)PaaS平台服务器端将f解密DK(f),得出d=H(K(pw')||R')、e和R',然后将存储在PaaS平台服务器端上的鉴别口令连同解密得到的随机数R'做一次散列计算得到H(a||R'),其中,a为H(K(pw)||R),将散列结果与客户端传来的常量e进行比较,若相等,则验证通过,用户身份得到验证,若验证失败,则结束本次与用户的会话;
6)将本次鉴别口令d替换原来的鉴别口令a,将备份的随机数R替换为当前的随机数R'。
根据本发明的另一方面,提供了一种基于PaaS的安全云计算系统,用于在PaaS平台服务器中验证用户身份,包括:
初始化和注册模块,用于初始化客户端和PaaS平台服务器端的密钥,并将客户端身份信息注册到服务器中;
口令加密模块,用于生成随机数,并利用该随机数对用户口令进行加密得到加密口令;
验证模块,用于在用户登录PaaS平台服务器之前,利用所述加密口令验证用户当前口令以对用户进行身份鉴别。
本发明相比现有技术,具有以下优点:
在PaaS云计算平台中利用OTP进行身份认证,具有较高的运算速率,克服了抵抗小数攻击的弱点,客户端和PaaS平台服务器端都要通过相互之间的验证,避免攻击者注入虚假信息、修改输入过程中的鉴别数据、修改口令等问题,有效保证了安全性。
附图说明
图1是根据本发明实施例的基于PaaS的安全云计算方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
传统的SKEY身份鉴别技术是云计算中常见的OTP身份鉴别技术,它能够有效地抵抗重放攻击,由于每次散列函数运算不同,每次传输的口令并不相同,攻击者无法再次使用截取到的口令,具有有一定的安全性。然而,由于每次认证时迭代次数要减1,因此每过段时间用户就必须重新注册;并且不能有效地防止小数攻击。
本发明的一方面提供了一种基于PaaS的安全云计算方法,利用改进的身份认证协议对PaaS平台的用户进行身份鉴别。
图1是根据本发明实施例的基于PaaS的安全云计算方法流程图。如图1所示,实施本发明的具体步骤如下:对明文信息加密后在网上传播,同时在PaaS平台服务器上保存加密的OTP,只有PaaS平台服务器的私钥才能解密,判断是否进行后续鉴别。
(1)初始化客户端和服务器端的密钥,并将客户端身份信息注册到服务器中。
生成客户端U的公钥和私钥,分别为kUR和kUS,基于PaaS的PaaS平台服务器端A的公钥和私钥分别为kSR和kSS。优选地,kUS和kSS是由素数测试法选出的两个模4同余3的素数。
用户注册时,除提供用户ID之外,还交换用户的公钥kUR和服务器的公钥kSR,并各自保存自己的私钥。在这里密钥交换不需要第三方参与,从而免去了CA认证体系。
客户端计算kSR×kUS,PaaS平台服务器端计算kUR×kSS,并且满足其中kSR×kUS=kUR×kSS=K,作为用户与服务器共同拥有的会话密钥。
(2)PaaS平台服务器生成随机数,并利用该随机数对用户口令进行加密得到加密口令。
PaaS平台服务器为用户创建一个用户信息条目,生成一个随机数R并发送给客户端。用户注册时需用共同密钥加密的口令K(pw)和随机数R进行一次散列运算a=H(K(pw)||R),将散列结果传递给PaaS平台服务器端,将其与用户ID一同存入数据库中,PaaS平台服务器中存放了用户ID、鉴别口令H(K(pw)||R)和随机数R。
(3)在用户登录PaaS平台服务器之前,利用加密口令验证用户当前口令,从而进行身份鉴别。
用户登录到PaaS平台服务器,传送自己的身份标识ID。PaaS平台服务器用接收到的用户传送来的ID鉴别用户身份:
1)验证ID的有效性,如果ID无效,则拒绝用户登录。
2)若正确,根据用户ID查找相应的随机数R和当前鉴别口令H(K(pw)||R),然后取出随机数R,利用共同的密钥K加密计算得出b=K(a||R),b作为挑战传给客户端。
3)客户端对b进行解密即DK(b),得出a和R,并用公共的密钥K加密口令pw',得K(pw'),然后连同传来的随机数R做一次散列计算c=H(K(pw')||R),将结果与a进行比较,如果两者相等,说明通过验证,进行后续验证步骤4),若不相等,则终止与服务器的会话。
4)验证通过后,客户端产生一个随机数R',然后和密码口令K(pw')再做一次散列计算得d=H(K(pw')||R'),这将是新的鉴别口令,将d和R做一次散列计算得e=H(d||R)(e为常量),然后将散列结果连同生成的随机数R'及当前鉴别口令d利用公共的密钥K进行加密得f=K(e||d||R'),将f传给PaaS平台服务器端。
5)PaaS平台服务器端将f解密DK(f),得出d=H(K(pw')||R')、e(常量)和R'。然后将存储在PaaS平台服务器端上的鉴别口令连同分离出来的随机数R'做一次散列计算得到H(a||R'),其中,a为H(K(pw)||R),将散列结果与客户端传来的e(e=H(d||R))进行比较,若相等,则验证通过,用户身份得到验证,若验证失败,则结束本次与用户的会话。
6)将本次鉴别口令d替换原来的鉴别口令a,即a←d,将备份的随机数R替换为当前的随机数R',即R←R'。
可见,本发明上述实施例中不需要用户设置迭代值,具有较高的运算速率,克服了抵抗小数攻击的弱点,客户端和PaaS平台服务器端的相互验证能够避免攻击者注入虚假信息。用户口令只在客户端输入一次,通过加密后将散列结果在网络上传输,因为散列函数具有单向性,所以有效保证了安全性。并且,用户每次产生的随机数不同,认证通过后存储在PaaS平台服务器上的信息也不同,有效防止了重放攻击。
根据本发明的另一方面,提供了一种基于PaaS的安全云计算系统,用于在PaaS平台服务器中验证用户身份,包括:
初始化和注册模块,用于初始化客户端和PaaS平台服务器端的密钥,并将客户端身份信息注册到服务器中;
口令加密模块,用于生成随机数,并利用该随机数对用户口令进行加密得到加密口令;
验证模块,用于在用户登录PaaS平台服务器之前,利用所述加密口令验证用户当前口令以对用户进行身份鉴别。
综上所述,本发明提出了一种云计算平台中利用OTP进行身份认证的方法,具有较高的运算速率,克服了抵抗小数攻击的弱点,客户端和PaaS平台服务器端都要通过相互之间的验证,避免攻击者注入虚假信息、修改输入过程中的鉴别数据、修改口令等问题,所以有效保证了安全性。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。