改进的基于smartcard的云用户双向认证方案

2014-12-23 01:31姚国祥强衡畅
计算机工程与设计 2014年2期
关键词:敌手发送给口令

詹 丽,姚国祥+,强衡畅

(暨南大学 信息科学技术学院,广东 广州510632)

0 引 言

目前云计算因为具有投入低、易维护、部署灵活快速、服务可靠等特点受到社会各界的关注,云计算的定义请参见文献[1]。当前的云计算服务可以分为3个层次,分别是基础设施即服务 (IaaS)、平台及服务 (PaaS)、软件即服务 (SaaS)[2]。随着云服务专业化发展的趋势,云服务面临着越来越多的安全性问题,其中就包括非法用户访问云服务,窃取信息与资料;以及合法用户访问到非法云服务,使用户信息泄露。因此用户访问云服务,需要对云服务器进行安全性认证;而当云服务器收到用户的请求时,检验用户一致性以后,需要对用户身份进行认证。因此双向认证对于用户访问云计算的环境是必须的。

本文提出了一种基于smartcard的双向认证方案用于云用户安全的访问云服务。

1 相关工作

L.Lamport首次提出用单向的哈希函数处理密码口令的远程认证的方案,此方案中远程服务器存储经过哈希处理的口令[3]。此后,Hwang和Li等人提出了一种基于公共密码加密系统的smartcard远程用户认证方案[4]。但在此方案中任何合法用户都可以伪造合法ID 和相应的口令,导致方案不安全。在此之后,许多人提出了在此方案上改进的基于smartcard的远程用户身份认证方案[5-8]。

最近,许多人提出的云计算下远程认证的方案,Richard等人就提出一种关于移动用户的云环境下的可信认证方案[9]。Choudhury等人提出了一种在云环境下的强用户认证方案[10]。此方案是基于口令、smartcard、OOB这3种方式的强用户认证,但在此方案中不能抵制中间人攻击。Nayak等人提出了一种改进的云环境下双向认证方案[11],并在方案中生成了会话密钥。但是在此方案中的认证阶段口令是经明文传输的,这样就使得敌手很容易窃取明文并伪造成合法的用户。

在本文中,提出了一种对文献 [10,11]的改进方案。在改进方案中,使用了OOB 和smartcard 两种安全要素,并生成了会话密钥,最终保证了认证的安全性。

2 云用户认证的安全结构

云认证服务用于为云用户提供认证和注册云应用,它包含3个基于HTTP接口的服务:认证服务、注册服务和修改密码服务。云用户若要访问云网络服务器 (cloud web server,CWS)上的资源,必须通过认证服务器 (authentication server,AS)的双向认证,用户通过认证后才能访问云网络服务器。图1是关于云认证服务的安全结构图。

图1 云认证的安全结构

(1)用户在云终端输入ID 和Mobile_ID 并发送注册请求给云认证服务器。若检验此ID 已存在,则发送消息给用户让用户重新输入。若此ID 不存在,认证服务器发送消息给移动网络服务器 (mobile network server),移动网络服务器通过HTTP/SMS发送动态口令到用户移动设备上,用户在终端输入密码口令,终端则将处理后的密码口令发送给认证服务器。认证服务器将一部分计算后的用户信息存入smartcard,并将smartcard发送给用户。此时用户已成为注册用户。

(2)注册用户申请访问云网络服务器上资源,认证服务器处理合法用户发送来的请求。

(3)认证服务器收到申请后对用户进行认证,同时用户也需要对服务器进行认证,实现双向认证。

(4)双向认证完成后,云用户便可以访问云网络服务器上的资源。

本文提出了两种方式来保证双向认证,一种是带外数据传输OOB,用此安全通道来传输相关的口令和一次一密密钥。另一种是使用smartcard[4-8],用smartcard存储用户和服务器的相关信息,来保证双向认证的安全性。

3 提出的方案

在表1中列出的是本文提出的方案将要用到的符号对应含义。

表1 符号对应表

3.1 初始化阶段

首先,用户需在AS服务器上进行注册,只有注册的合法用户才能向AS发出访问请求。图2描述了主要的初始化流程。

图2 初始化流程

(1)假设用户为U,U 发送用户ID 和Mobile_ID 给认证服务器AS,AS认证ID 是否存在。如果存在则放弃,否则将Token通过OOB安全信道的形式发送给U。

(2)U 收到Token后,输入密码口令PWD,并生成随机数m,PWD 将以加密的形式EToken(H(PWDm))发送给AS。

(3)AS收到EToken(H(PWDm))后,可以解密计算出H(PWDm),并生成用户一对一的秘密密钥KID。同时计算出A、B和C。将{B,C,p,g,H()}存入smartcard

(4)当 用户U 收到smartcard 后,将 随 机 数m 存 入smartcard= {B,C,p,g,H(),m}。

3.2 登录和双向认证阶段

如果用户需要访问云网络服务器上的资源,用户就需要先通过AS的双向认证。认证成功后,用户才可以访问云网络服务器。图3是双向认证的认证步骤。

图3 双向认证步骤

(1)用户U 需要登录时,插入smartcard并输入ID 和PWD。云终端计算出c'=H(PWDm)ID,检验c'=c是否相等,如果不相等则放弃,如果相等则继续。

(2)如果上一步完成,说明用户U 合法。当AS收到登录请求,AS向用户U 发送一次一密的密钥Kone,双向认证完成后Kone将无效。U 生成随机数r1和时间戳T,可以计算出如下

用户U 将y、ID 和时间戳T 一起作为消息M3发送给AS。

(3)AS收到消息后,计算T'-T 是否在时间戳有效期内,如果不在有效期内则放弃;如果在有效期,AS接收到y后,生成随机数r2,计算如下公式

认证服务器AS将z、x'和当前时间戳T1作为M4发送给用户。

(4)U 收到M4后,首先计算出T1'-T1是否在时间戳有效期内,如果不在有效期则放弃。如果在有效期内,则计算y'

用户U 检验计算出的y'与用户拥有的gr1 相等,若不相等则放弃,若相等则计算z'

最后用户U 将z'和当前时间戳T2作为M5发送给AS。

(5)AS收到M5后,首先计算出T2'-T2是否在时间戳有效期内,如果不在有效期则放弃。如果在有效期内,则检验以下等式是否相等

若式 (11)不等则放弃,若相等则完成双向认证。最后,用户和AS计算出Ksession=gKID+Kone 作为会话密钥。

3.3 改密码阶段

这个阶段是用户修改密码的阶段。需要用户输入ID 和旧密码PWD,验证过后,再输入新密码PWD',这样修改密码的阶段就完成了。具体流程如图4所示。

图4 修改密码过程

(1)用户U 插入smartcard,输入ID 和PWD,云终端计算出c'=H(PWDm)ID,检验c'=c是否相等,如果不相等则放弃,相等则向AS发送修改密码请求。

(2)当认证服务器AS收到修改密码请求后,发送新的动态口令Token'到用户手持设备上。

(3)U 收到动态口令后Token',生成新PWD'和随机数m',计算H(PWD'm'),然后加密作为M2发送给AS。

(4)AS解密M2,生成新的密钥KID',计算出A,B,C。然后分别将 {B,C,p,g,H ()}放入smartcard中。

(5)当用户U 收到smartcard后,将随机数m 也存入smartcard中。

4 实验与分析

4.1 安全性验证

在上述方案中,如果消息M1、M2、M3、M4、M5不被敌手窃取,则可以计算出步骤1中c'=c等式成立、步骤4中y'与gr2modp 相等、步骤5中的式 (11)成立。由以下计算式可以证明得出以上结论。

(1)x =A'·g-ID·g-H(PWD⊕m)modp

(2)y =x ⊕gr1+T+Kone modp

(3)z=(y ⊕gKID)·g-T·gKID modp

(4)y'=z·g-KID ·g-Kone modp

(5)z'=(x'⊕gKID)·gKID modp

如果消息M1、M2、M3、M4、M5被敌手篡改,等式将不成立,即双向认证无法完成,从而抵制了非法用户访问服务器。在认证阶段,口令Token是通过OOB安全信道的形式发送的,而且EToken(H(PWDm))通过安全信道传送,使得敌手无法获得Token并解密EToken(H(PWDm))。步骤1中检验c'=c等式成立的目的是为了检验登录用户的一致性。步骤4中检验y'与gr2modp 相等的目的是用户验证认证服务器的合法性。步骤5中的式 (11)成立的目的则是认证服务器验证登录用户的合法性。

4.2 安全性分析

(1)一致性检验

本方案使用smartcard存储密码和用户,并且在用户终端对用户进行一致性检验。认证服务器不用建立并存储用户密码列表,抵抗了敌手随意窃取并篡改用户密码列表的攻击。

(2)抵抗重放攻击

在双向认证阶段,敌手即使窃取了消息M3、M4和M5。由于M3中的y=xgr1+T+Kone modp,其中Kone为针对会话的一次一密的密钥,因此敌手若想重放M3来实现重放攻击是无法成功的。

(3)抵抗中间人攻击

在双向认证阶段,敌手可以通过公共信道获取消息M3、M4和M5,得到以 下 信 息y =gKIDgr1+T+Kone modp,z =gr1+KID+Kone modp,x' = gr2+KonegKID modp,z' =gr2+KID+Kone modp。但是敌手却无法由以上得到的已知信息计算出gKID、gKone、gr1、gr2,所以敌手无法实现中间人攻击。

(4)完成双向认证

在双向认证过程的第四步中,检验了y'=gr1modp,从而实现了用户对AS的服务器认证。在双向认证过程的第五步中,检验了z'·g-KID·gKone =gr2modp,从而实现了AS对用户的认证。以上过程完成了双向认证,从而防止敌手来冒充AS或者用户。

(5)抵抗密码猜测攻击

虽然在注册阶段的 (ID,Mobile_ID)是通过公共信道发送的,但是PWD 与随机数异或后通过口令Token加密并通过安全信道传输给AS。由此可知PWD 通过随机数而隐藏,并进一步通过Token加密来保证不被敌手获窃取。

(6)抵抗拒绝服务攻击 (denial-of-service,DoS)

拒绝服务攻击指的是非法用户发送大量的连接请求,导致服务器无法响应合法用户的请求。由于在本文的方案中用户的ID 和PWD 都是在终端上通过smartcard进行验证的,所以非法用户在发送请求前无法通过一致性检验,因此杜绝了非法用户发送大量持续的连接请求的可能性。从而使得本方案可以抵制DoS攻击。

(7)抵抗并行会话攻击

如果方案运行两次或多次并且某一次认证过程中产生的消息被用于形成另一次认证过程中的消息,会产生并行会话攻击。本方案在认证阶段通过3 次发送明文M3、M4和M5都含有时间戳T、T1、T2,因此敌手无法通过并行会话攻击。

4.3 性能分析

在这一部分,本方案与Choudhury 等人的方案[10]和Nayak等人的方案[11]进行了比较,文献 [10,11]与本方案有一些共同之处,如都含有修改密码服务,也在一定程度上保证了一致性和双向认证,但是这些方案还是具有一些安全性不足之处。如表2所示。

表2 本文与其它方案安全性比较

由于文献 [11]的方案中注册阶段的ID 和PWD 是通过明文传输的,密码口令PWD 并没有经过单向函数哈希处理,使得敌手容易在此阶段窃取ID 和PWD,从而可以窃取用户PWD。由于敌手可以获取PWD 并且B也是通过公共信道传输的,从而可以简单地计算出A=B ⊕PWD,在认证阶段敌手就可以利用计算出的A 伪装成合法用户进行认证,因此文献 [11]的方案并不可以抵制中间人攻击。由于文献 [11]的方案未涉及smartcard技术,因此验证用户一致性并不是在终端,这样敌手可以伪装成合法用户多次发送登录请求。可验证此方案并不可以抵抗DoS 攻击。在文献 [11]的方案中用户与服务器传递的消息中并没有使用时间戳,因此敌手可以窃取某一次认证产生的消息用于下一次的认证过程,该方案则无法抵抗并行会话攻击。

在文献 [10]也涉及了smartcard技术,并且在注册阶段也对PWD 进行单向哈希处理,因此文献 [10]能够抵制重放攻击和DoS攻击。在该方案的随机数x与y是在注册阶段生成而不是在登录认证阶段生成,因此用户每次申请登录认证时的x与y都没有改变,因而敌手可以根据公共信道中发送的信息B =gh(I||J)+h(x)+h(y)modp、C =h(I||J)与h(x),计算得出gh(y)。因为gh(y)是用户认证AS的重要依据,所以敌手计算出gh(y)后可根据双方发送的消息来伪装成AS。因此此方案无法抵制中间人攻击。文献 [10]的认证过程中只是在消息M3中含有时间戳T,但是AS发送给用户的消息中没有时间戳。由于系统故障或者计时误差,可能会使得时钟无法同步,如果攻击者的时钟超前于接受者,攻击者可以截获发送者的消息,发动并行会话攻击。可知此方案无法抵制并行会话攻击。

由4.2中的安全性分析可知,本方案即具有文献 [10,11]中所拥有的安全性能即双向认证、一致性分析、修改密码、抵抗重放攻击、抵抗DoS攻击,也同时具备两个方案中所不能达到安全性能即抵抗中间人攻击和抵抗并行会话攻击。由此可知本方案要比文献 [10,11]更安全,从而保证用户与云服务器的安全。

5 结束语

针对云用户安全认证的问题,本文提出了一种改进的基于smartcard的双向认证方案,提高了方案的安全性能。本文方案分为注册、认证和修改密码3个阶段。注册阶段使用smartcard让认证服务器从用户密码表解放出来,并在用户终端实现一致性检验抵制了DoS攻击。认证阶段完成了用户和认证服务器的双向认证,并且提出的方案保证双向认证所需的安全性。修改密码阶段给用户提供灵活的用户体验,而且只有授权用户才可以随意修改密码。最后,将本方案与其它方案的比较,分析了本方案优越的安全性。

[1]FENG Dengguo,ZHANG Min,ZHANG Yan,et al.Study on cloud computing security[J].Journal of Software,2011,22 (1):71-83 (in Chinese).[冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22 (1):71-83.]

[2]Armbrust M,Fox A,Griffith R,et al.Above the clouds:A berkely view of cloud computing [R].USA:University of California Berkeley,2009.

[3]Lamport L.Password authentication with insecure communication [J].Communications of ACM,1981,24 (11):770-772.

[4]Hwang M S,Li L H.A new remote user authentication scheme using smartcards [J].IEEE Transactions on Consumer Electronics,2000,46 (1):28-30.

[5]Yang G,Wong D S,Wang H,et al.Two-factor mutual authentication based on smart cards and passwords [J].Journal of Computer and System Sciences,2008,74 (7):1160-1172.

[6]Shen Z H.A new modified remote user authentication scheme using smart cards [J].Applied Mathematics,2008,23 (3):371-376.

[7]Li Yang,Ma Jianfeng,Qi Jiang.Mutual authentication scheme with smart cards and password under trusted computing [J].International Journal of Network Security,2012,14 (3):156-163.

[8]Manoj Kumar.An enhanced remote user authentication scheme with smart card [J].International Journal of Network Security,2010,10 (3):175-184.

[9]Richard Chow,Markus Jakobsson,Ryusuke Masuoka,et al.Authentication in the clouds:A framework and its application to mobile users [C]//Proceedings of the ACM Workshop on Cloud Computing Security Workshop,2010.

[10]Choudhury A J,Kumar P,Sain M,et al.A strong user authentication framework for cloud computing [C]//IEEE Asia-Pacific Services Computing Conference,2011.

[11]Sanjeet Kumar Nayak,Subasish Mohapatra,Banshidhar Majhi.An improved mutual authentication framework for cloud computing[J].International Journal of Computer Applications,2012,52 (5):36-41.

猜你喜欢
敌手发送给口令
与“敌”共舞
高矮胖瘦
口 令
不带着怒气做任何事
好玩的“反口令”游戏
SNMP服务弱口令安全漏洞防范
公告
关注微信,分享资讯,免费获取电子阅读卡
关注微信,分享资讯,免费获取电子阅读卡
我的录梦机