一个改进的基于智能卡的双向身份认证方案
2011-12-23王相金文小华沈忠华
王相金,文小华,沈忠华
(杭州师范大学理学院,浙江 杭州 310036)
一个改进的基于智能卡的双向身份认证方案
王相金,文小华,沈忠华*
(杭州师范大学理学院,浙江 杭州 310036)
分析了Shen-Yu提出的一个新的智能卡远程用户认证方案,发现该方案无法抵御智能卡的伪造攻击、假冒服务攻击.提出一个改进的方案,利用双向认证的方法,解决了Shen-Yu方案存在的安全漏洞,提高了安全性.
远程用户认证方案;密码分析;双向认证;计数器;安全性
0 引 言
21世纪,人类进入了信息社会,计算机网络的普及使得越来越多的资源和应用都是利用网络远程获得,如何确保特定的资源被合法、授权的用户取得及确保网络通信的安全,成为了近来研究的热点问题.在计算机网络中,身份认证是指证实通信双方身份真实性的一种技术.随着密码学的发展和智能卡的普及,大量的基于智能卡的远程用户身份认证方案被提出.
1981年,Lamport[1]提出了第一个非常著名的智能卡远程用户认证方案.在这个方案中,远程认证服务中心产生用户口令,并验证用户的登录信息是否有效.但是该方案存在不少安全漏洞,易受攻击,而且计算量非常大,实用性不强.2000年,Hwang和Li[2]提出了一个基于离散对数的新的使用智能卡的远程用户认证方案,但该方案同样是不安全的.Chan和Cheng[3]对Hwang-Li方案进行了攻击,并指出一个合法的用户无需知道系统密钥xs,就可以很容易地伪造其他用户的(IDj,PWj),而且该方案不允许用户自由更改口令.
2006年,Shen-Yu[4-5]提出了一个新的智能卡远程用户认证方案,该方案主要基于离散对数的难解性[6-7]和二元一次不定方程解的不定性[8],而且口令由用户掌握,用户可以随时根据需要自由改变口令,但是该方案仍然不安全.
随后,林琪、邱慧敏等[9-10]提出了基于智能卡的远程双向身份认证方案,该方案提出了双向身份认证的内容.在此将针对Shen-Yu方案进行攻击,并结合双向认证思想,提出一个改进的远程用户身份认证方案.该方案具有用户自由选择口令的优点,增加了对远程服务中心的身份认证,实现了通信双方的双向认证,可以抵御以往类似Chan-Cheng和Chang-Hwang的攻击和对原方案的攻击,同时增加了计数器用来统计攻击次数,从而提高了安全性.
1 术语定义
U表示通信协议中的合法用户,AS表示认证服务中心;
ID表示用户的身份标志,PW表示用户口令;
NU和NAS分别为用户和认证服务中心计数器数值;
⇒为安全的通道,→为普通的非安全通道,⊕为异或运算.
2 Shen-Yu方案的描述
Shen-Yu方案[4-5]主要是基于离散对数问题和二元一次方程解的不定性,分为4个阶段:系统初始阶段、申请注册阶段、远程登录阶段及AS远程认证阶段.系统初始阶段,AS选择系统参数:大素数m使得Z*m中离散对数难解,n是m的大素因数,求得g满足g的阶为n,用于身份检测的模糊函数f(x)及系统密钥ks.申请注册阶段:U自由选择秘密口令PW,AS收到注册申请,为U选定身份标志码e,发放带有参数(fID,e,PWs,g,p,q)的智能卡,其中fID=f(ID⊕e),PWs=z·gksmod m,z=gPWmod m,ID为 U 的身份标志.远程登录阶段:U向智能卡输入自己的ID和秘密口令,产生登录信息Q,然后由AS验证U的登录信息Q是否正确.过程如下:
假定在时刻T0,U向AS提出登录请求,U先将自己的ID和秘密口令PW输入智能卡,智能卡进行如下工作:
1)计算z=gPWmod m;
2)用Euclidean算法求出a和b,满足aPW+bPWs=gcd(PW,PWs);
3)计算d=gcd(PW,PWs)mod n;
4)计算u=zamod m;
5)计算v=gbmod m;
6)U→AS:发送登录信息Q=(u,v,d,PWs,z,ID,fID).
设在时刻T,AS收到 U 的登录信息Q=(u,v,d,PWs,z,ID,fID),AS进行如下验证:
1)U的ID结构形式是否符合要求;
2)fID是否等于f(ID⊕e);
3)T-T0是否在合理的时间间隔内,这个时间间隔是因传输而导致的;
4)式子(PWs)d是否等于zd(u·vPWs)ksmod m,验证过程如下:
如果以上都成立,则允许登录,否则,拒绝登录请求.
3 对Shen-Yu方案的攻击及缺陷
第一种攻击,假冒AS,对U的登录请求无需验证都给以通过,以此进行非法活动.
第二种攻击,如果信道是不安全的,那么攻击者就可能截取到U发送登录请求的参数Q=(u,v,d,PWs,z,ID,fID),由PWs=z·gksmod m,设β=gksmod m,可计算出β值,从而可以伪造新的智能卡,过程如下:
1)设伪造的新智能卡口令是PW′,计算z′=gPW′mod m=z′·βmod m;
2)利用Euclidean算法求出a″和b″,满足a″PW′+b″=gcd(PW′,);
3)计算d′=gcd(PW′,PWs′)mod n;
4)计算u′=(z′)a″mod m;
5)计算v′=gb″mod m;
6)U→AS:发送登录信息Q=(u′,v′,d′,PWs′,z′,ID,fID).
AS验证式子(SPW′)d′=(y′)d′(a′·(b′)SPW′)xsmod p是否成立,验证过程如下:
该等式成立,从而达到伪造智能卡的目的.
注 存在缺陷:方案无法知道是否遭受了攻击,即无法统计攻击次数.
4 一个改进的基于智能卡的双向身份认证方案
由以上分析可见,Shen-Yu方案并不安全,部分原因是由于没有验证AS的身份.而本文提出的方案则在弥补原方案安全漏洞的基础上,提出双向认证内容,并加入了计数器,用来统计攻击,主要分为4个步骤.
4.1 系统初始阶段
首先AS进行如下工作:
4)选取一个模糊函数f(x),用于身份检测,由AS秘密控制;5)选择秘密的哈希函数h(·);
4.2 申请注册阶段
1)U秘密选取密码口令PW,PW∈Zn;
2)U通过AS内置的计算模型计算z=gPWmod m,H=h(PW);
3)U⇒AS:(ID,z,H);
4)AS为U选取身份标志码e,计算PWs=(z⊕H)·gksmod m,fID=f(ID⊕e);并为U保留H值;
5)AS⇒U:发放带有参数(fID,e,PWs,g,m,n,h,H)的智能卡.
4.3 远程登录阶段
假设时刻T0,U向AS提出登录请求,U先将自己的ID和秘密口令PW输入智能卡,智能卡进行如下工作:
1)验证H=h(PW),如果不相等,则提示密码错误,重新输入密码;
2)计算z=gPWmod m;
3)用Euclidean算法求出a和b,满足aPW+bPWs=gcd(PW,PWs);
4)计算d=gcd(PW,PWs)mod n;
5)计算u=zamod m;
6)计算v=gbmod m;
7)计算J1=ru⊕H,ru是智能卡生成的随机数;
8)U→AS:发送登录信息Q=(u,v,d,PWs,z,ID,fID,J1,T0,NU).
4.4 双向认证阶段
假定NU和NAS的初始值为0,每受到一次攻击自动加1,并发出攻击提示.若时刻T,AS收到U的登录信息Q=(u,v,d,PWs,z,ID,fID,J1,T0,NU),则进行验证,过程如下:
1)验证U的ID的结构形式是否合法;
2)计算fID是否等于f(ID⊕e);
3)计算T-T0是否在合理的时间间隔内,这个时间间隔是因传输而导致的;
4)计算(PWs)d是否等于zd(u·vPWs)ksmod m,验证过程如下:
如果通过登录,则进行AS的身份认证,步骤如下:
a)令AS的计数器数值NAS=NU;
b)AS通过J1=ru⊕H,计算出ru,并计算=h(ru⊕ID);
c)假设时刻Tn,AS→U:发送,Tn,NAS);
d)若在时刻Tn+1,U收到AS验证请求,计算J1′=h(ru⊕ID)是否成立,Tn+1-Tn是否在合理的时间间隔内,如果不成立,则NU加1,终止登录请求,如果成立,通过验证,令计数器数值NU=NAS.
如果拒绝登录,则NAS加1,中断通信.
4.5 口令的修改
U可以自由的修改口令,过程如下:
1)U选取新的口令PW′∈Zn;
2)U通过系统内置的计算模型计算z′=gPW′mod m,H′=h(PW′);
3)U⇒AS:发送(ID,z′,H′);
4)AS保留 H′数值,并计算PWs′=(z′⊕H′)·gksmod m;
5)AS⇒U:发送参数(fID,e,PWs′,g,m,n,h,H′)到 U 的智能卡,并覆盖原有参数(fID,e,PWs,g,m,n,h,H),显示口令修改成功.
5 安全性分析
由于只有U掌握秘密口令,保证了智能卡的安全性,如果有人想冒用智能卡,登录时只会输入错误的口令PW′.智能卡通过内置模型计算H′=h(PW′),由于H≠H′,提示密码错误.假如冒用者为系统内部人员,在申请注册阶段他获悉U的信息(ID,z,H),会因为z=gPWmod m是离散对数难题,哈希函数H=h(PW)是单向的,而无法求得PW.在远程登录阶段,即便他得到U的登录信息Q=(u,v,d,PWs,z,ID,fID,J1,T0,NU),也无法从u=zamod m和v=gbmod m计算出a和b,根据二元一次方程解的不定性,他将无法知道PW.同理,若攻击者从通道上截获了 U 的登录信息Q=(u,v,d,PWs,z,ID,fID,J1,T0,NU),也无法知道U的登录口令.
由于AS秘密控制身份检测函数f(x)和身份标志码e,因此在不知道U的真实ID的情况下,攻击者无法从已有信息(fID,e,PWs,g,m,n,h)通过计算fID=f(ID⊕e)求得U的ID,从而无法登录.同理,由于AS秘密控制系统密钥ks和身份检测函数f(x)及身份标志码e,所以,一个合法用户也无法冒充系统发放智能卡.因为他无法通过函数f(ID⊕e)求出正确的fID,也无法通过计算PWs=(z⊕H)·gksmod m求得ks.
针对文章提出的第2种攻击方案,由于秘密参数H=h(PW)的存在,也是无法实现的.由于PWs=(z⊕H)gksmod m,H是秘密参数,ks是系统密钥,无法得到β=gksmod m,所以无法伪造智能卡.
在双向认证阶段,由于秘密参数H 的存在,所以无法由J1=ru⊕H 求得ru,故无法得到J1′=h(ru⊕ID),所以系统身份得到了认证.
6 结束语
在Shen-Yu远程用户认证方案的基础上,文章提出了一个改进的双向身份认证方案.该方案保留了口令由用户自由选择的特点,在认证阶段增加了身份的双向认证,通过随机数ru,实现了对认证服务中心的身份认证,通过设置参数H=h(PW),有效解决了上述提出的对Shen-Yu方案的攻击.同时方案中加入了计数器NU和NAS,用来统计攻击次数,弥补了原方案的不足.所以,该方案无疑在保留原方案优点的同时,增加了安全性.
[1]Lamport L.Password authentication with insecure communication[J].Communication of the ACM,1981,24(11):770-772.
[2]Hwang M S,Li Lihua.A new remote user authentication scheme using smart cards[J].IEEE Trans on Consumer Electronics,2000,46(1):28-30.
[3]Chan C K,Cheng L M.Cryptanalysis of a remote user authentication scheme using smart cards[J].IEEE Trans on Consumer Electronics,2000,46(4):992-993.
[4]沈忠华,于秀源.一个新的智能卡远程用户认证方案[J].浙江大学学报:理学版,2008,35(2):145-149.
[5]Shen Zhonghua.A new modified remote user authentication scheme using smart cards[J].Appl Math J Chinese Univ Ser B,2008,23(3):371-376.
[6]Stinson D R.密码学原理与实践[M].冯登国,译.3版.北京:电子工业出版社,2009:184-186.
[7]赵泽茂.数字签名理论[M].北京:科学出版社,2007:35-37.
[8]于秀源,瞿维建.初等数论[M].山东:山东教育出版社,2004:47-48.
[9]林琪,刘嘉勇.一种基于智能卡的远程双向身份鉴别方案[J].通信技术,2009,42(1):333-335.
[10]邱慧敏,杨义先,胡正名.一种新的基于智能卡的双向身份认证方案设计[J].计算机应用研究,2005(12):103-105.
A Modified Remote User Authentication Method Using Smart Cards
WANG Xiang-jin,WEN Xiao-hua,SHEN Zhong-hua
(College of Science,Hangzhou Normal University,Hangzhou 310036,China)
This paper analyzed the new remote user authentication scheme proposed by Shen-Yu,found this scheme could not resist to the forging attack and masquerading server attack of smart card,and presented a modified authentication scheme,solved the problem of Shen-Yu scheme and improved security by mutual authentication.
remote user authentication scheme;crypto-analysis;mutual authentication;counter;security
TP309 MSC2010:94A60
A
1674-232X(2011)04-0320-05
2011-01-14
浙江省教育厅科研项目(Y201016497);浙江省自然科学基金(Y6110782);杭州市高校重点实验室科技创新项目(20100331T11);杭州师范大学科研项目(2010QN26).
王相金(1982—),男,浙江台州人,基础数学专业硕士研究生,主要从事数论及密码学、数字签名研究.
*通信作者:沈忠华(1973—),男,浙江杭州人,副教授,主要从事数论与密码学、信息安全技术、电子商务等研究.E-mail:ahtshen@126.com
10.3969/j.issn.1674-232X.2011.04.007