APP下载

一种基于智能卡的双向身份认证方案

2011-03-17亮,

通信技术 2011年2期
关键词:智能卡私钥公钥

高 亮, 方 勇

(四川大学 信息安全研究所,四川 成都 610064)

0 引言

随着计算机网络的普及和电子商务的发展,越来越多的资源和应用都是利用网络远程获得的。如何确保特定资源只被合法、授权的用户访问,即如何正确地鉴别出用户的身份是确保通信网和数据安全的首要条件。目前,主要的身份认证方法有3种:基于口令的身份认证[1];基于生物特征的身份认证[2]和基于智能卡的身份认证[3]。结合密码学技术,很多专家和学者提出了基于智能卡的身份认证的有效方案。

2000年,Sun[4]提出了一种基于哈希函数的智能卡有效远程认证方案,但该方案容易遭受密码猜测攻击和内部攻击。2002年,文献[5]作者也在单向哈希函数基础上提出了一种方案。随后,很多专家和学者提出了各自的方案,这些方案通过引入随机数、计数器、时戳等参数来实现有效地、安全地双向认证。但遗憾的是,这些方案均会出现一些不可避免的漏洞。

在分析以上方案的基础上,这里提出了一种新的远程用户认证方案。该方案是随着电子技术和芯片技术的发展而产生的设想。文献[6-8]证明了公钥密码算法在智能卡中的应用。该方案在保留了以上文献所采用的部分参数的基础上,在智能卡中引入了公钥密码算法,可靠地实现了通信双方的身份认证,能够抵御多数类型攻击,具有很强的安全性。

1 术语定义

下面定义在文中所用到的符号:

U表示认证协议中的用户;S表示认证协议中的认证服务器;ID为用户的身份标识;PW为用户登陆口令;Ti为时戳;h﹙·﹚为单向哈希函数;⊕为异或运算;⇒为安全的通信信道;→为不安全的、普通的通信信道;E为加密算法;D为解密算法;Ku为用户的公钥;ku为用户的私钥;Ks为服务器的公钥;ks为服务器的私钥。

2 所提出的认证方案

该方案由注册阶段、登陆阶段、双向验证阶段、密码修改阶段组成。

2.1 注册阶段

R1:用户选择自己的标识ID、公钥Ku、私钥ku、口令PW并计算h﹙PW﹚,通过安全信道提交给认证服务器S,即U⇒S:ID,h﹙PW﹚,Ku,ku。

R2:服务器产生自己的私钥ks和公钥Ks,并将自己的公钥Ks发布出去,将ks 保存好,把用户的公钥Ku存入数据库。同时服务器计算 Vi=h﹙ID⊕ks﹚,Ri=h﹙ID⊕ks﹚⊕h﹙PW﹚,然后将信息{Ri,h﹙·﹚,Ks,ku,公钥算法}写入智能卡。

R3: S 把智能卡通过安全信道交给用户,即 S⇒U:Card{Ri,h﹙·﹚,Ks,ku,公钥算法}。

2.2 登陆阶段

L1:用户U把智能卡插入相关终端设备,输入ID、PW,智能卡与终端设备验证ID、PW的合法性,否则放弃。

L2:记录系统时戳T1,智能卡计算Vi=Ri⊕h﹙PW﹚,C1= h﹙T1⊕Vi﹚,并使用服务器的公钥Ks进行加密运算,ET1=E﹙T1,Ks﹚,EC1=E﹙C1,Ks﹚。

L3:用户U通过一般信道将登陆信息m1{T1,C1,ET1,EC1}发给服务器S,即:

U→S: m1{ T1,C1,ET1,EC1}。

2.3 双向验证阶段

V1:服务器S收到m1{ T1,C1,ET1,EC1}后,首先用自己的私钥 ks进行解密运算:T1*=D﹙T1,ks﹚,C1*=D(C1,ks﹚,然后进行比较判断:T1*与 T1是否相等,C1*与C1是否相等。若不能满足两者同时相等,则放弃;若两者同时相等,则进行下面的计算。

V2:计算Vi= h﹙ID⊕ks﹚。

V3:验证h﹙T1⊕Vi﹚是否与C1相等,若不相等,则为非法用户;若相等,则为合法用户。

V4:记录系统时戳T2,计算C2= h﹙T2⊕Vi﹚,并使用存储在数据库中的用户的公钥Ku进行加密运算:ET2=E(T2,Ku﹚,EC2=E﹙C2,Ku﹚。

V5:服务器S通过一般信道将反馈信息m2{ T2,C2,ET2,EC2}发给用户 U。即:S→U: m2{ T2,C2,ET2,EC2}。

V6:用户U收到信息m2{ T2,C2,ET2,EC2}后,使用自己的私钥 ku 进行解密运算:T2*=D﹙T2,ku﹚,C2*=D﹙C2,k u﹚,然后进行比较判断:T2*与T2是否相等,C2*与C2是否相等。若不能满足两者同时相等,则放弃;若两者同时相等,则进行下面的计算。

V7:验证 h﹙T2⊕Vi﹚是否与 C2相等,若不相等,则为非法服务器;若相等,则为合法服务器。

2.4 密码修改阶段

P1:计算Ri*=Ri⊕h(PW)⊕h(PW*)=h(ID⊕ks)⊕h﹙PW*﹚。

P2:用Ri*取代Ri,并存放在智能卡中。

3 安全性分析

该方案引入了公钥密码体制,在非安全信道传递信息时,均经过加密处理,因此具有很强的安全性,能抵御多种攻击。

3.1 重放攻击

假设攻击者截获了L3阶段的登录信息m1{ T1,C1,ET1,EC1},并且更改了明文形式的时戳 T1为 T1’。但是,在登录信息中仍然包含了加密后的时戳ET1,在V1阶段,由于解密出的T1*≠T1’,攻击者遭到拒绝。

3.2 拒绝服务攻击

在很多文献中都是利用T2-T1=ΔT来作为验证条件,因此当网络发生阻塞或攻击者故意拦截登录信息并延迟一段时间后再重新向S传递时,S检测出ΔT不符合条件,容易发生拒绝服务攻击。文中所提出的方案,不需要用ΔT来作为验证条件,即使网络阻塞或攻击者故意延迟,由于 T1的值没有改变,T1= T1*,故不会引起拒绝服务攻击。并且系统不需要很严格的同步要求。

3.3 Reflection Attack攻击

假设攻击者截获L3阶段的信息m1{ T1,C1,ET1,EC1}并阻塞该信息的传输,而且假冒S,跳过验证阶段的V1~V4阶段,直接又向用户U发送m1{ T1,C1,ET1,EC1},企图冒充V5阶段的信息m2{ T2,C2,ET2,EC2}。但该方案中,ET1、EC1是用S的公钥Ks加密的,只能用S的私钥ks 来解密,而用户U没有ks ,因此无法计算出T1*和C1*,故此攻击不可行。

3.4 Parallel Attack攻击

假设攻击者截获V5阶段的信息m2{ T2,C2,ET2,EC2},并假冒用户U向S重新发送m2。但在S端要进行解密计算却是不可行的,因为ET2、EC2是用U的公钥Ku加密的,而其私钥k u在U端才用,S端不能进行解密运算。

3.5 智能卡丢失复制攻击

由于攻击者不知道密码PW,故无法得出Ri=h(ID⊕ks)⊕h(PW)。同样,即使得知了 ID、PW,如果没有智能卡,也无法假冒用户U。

3.6 真正地双向认证

方案使用了公钥密码算法,U、S分别使用对方的公钥加密,然后发送信息,使用自己的私钥解密,在计算上是平等的,所以无论攻击者要假冒哪方都是不可行的,从而实现了真正地双向认证。

4 结语

从以上分析可以看出,通过引入公钥加密体制,文中提出的方案可抵御重放攻击、拒绝服务攻击、Reflection Attack攻击、Parallel Attack攻击、智能卡丢失复制攻击,并且实现了通信双方的双向身份认证。虽然该方案由于公钥密码算法的引入占用了部分的计算资源,但却大大提高了系统的安全性,并且随着电子技术和芯片技术的快速发展,智能卡计算能力和存储能力的不断提高,该方案优越性会越来越突出其。该方案具体采用公钥密码算法中的哪种算法如 RSA、El-Gamal、椭圆曲线等,不在本文讨论范围。

[1]赵志辉, 李新社. 基于口令的身份认证系统研究[J]. 网络安全技术与应用, 2009(04):18-19,21.

[2]任伟,刘嘉勇,熊智. 一种基于指纹的远程双向身份鉴别方案[J].通信技术, 2009,29(11):124-126.

[3]林琪,刘嘉勇. 一种基于智能卡的远程双向身份鉴别方案[J]. 通信技术, 2009,42(01):333-335.

[4]SUN H M.An Efficient Remote User Authentication Scheme Using Smart Cards[J]. IEEE Trans on Consumer Election, 2000,46(4):958-961.

[5]CHIEN L H .Security of Two Remote User Authentication Scheme Using Smart Cards[J]. IEEE Trans on Consumer Election,2003,49(04):1196-1198.

[6]李树国,周润德,冯建华,等. RSA密码协处理器的实现[J].电子学报,2001,29(11):1-4.

[7]李中献,詹榜华,杨义先. 一种基于智能卡的公钥认证方案[J]. 北京邮电大学学报,1999(01):85-87.

[8]于涛,叶顶峰.素数域椭圆曲线密码在智能卡上的设计与实现[J].计算机仿真,2009,26(03):132-135.

猜你喜欢

智能卡私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
东方磁卡李晓东:进击的智能卡研发巨子
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于STC89 单片机的非接触智能卡读写机设计
P2X7 receptor antagonism in amyotrophic lateral sclerosis
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述