基于智能卡的双向身份认证方案设计
作者:RFID世界网 收编
来源:计算机应用研究
日期:2011-03-30 09:10:25
摘要:结合密码学技术,很多专家和学者提出了基于智能卡的身份认证的有效方案。
引言
随着计算机网络的普及和电子商务的发展,越来越多的资源和应用都是利用网络远程获得的。如何确保特定资源只被合法、授权的用户访问,即如何正确地鉴别出用户的身份是确保通信网和数据安全的首要条件。目前,主要的身份认证方法有3 种:基于口令的身份认证;基于生物特征的身份认证和基于智能卡的身份认证。结合密码学技术,很多专家和学者提出了基于智能卡的身份认证的有效方案。
2000 年,Sun提出了一种基于哈希函数的智能卡有效远程认证方案,但该方案容易遭受密码猜测攻击和内部攻击。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,即US: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、椭圆曲线等,不在本文讨论范围。
随着计算机网络的普及和电子商务的发展,越来越多的资源和应用都是利用网络远程获得的。如何确保特定资源只被合法、授权的用户访问,即如何正确地鉴别出用户的身份是确保通信网和数据安全的首要条件。目前,主要的身份认证方法有3 种:基于口令的身份认证;基于生物特征的身份认证和基于智能卡的身份认证。结合密码学技术,很多专家和学者提出了基于智能卡的身份认证的有效方案。
2000 年,Sun提出了一种基于哈希函数的智能卡有效远程认证方案,但该方案容易遭受密码猜测攻击和内部攻击。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,即US: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、椭圆曲线等,不在本文讨论范围。