基于智能卡的双向身份认证方案
2.2 登陆阶段
L1:用户U 把智能卡插入相关终端设备,输入ID、PW,智能卡与终端设备验证ID、PW 的合法性,否则放弃。
L2:记录系统时戳T1,智能卡计算Vi=Ri⊕hvPWw,C1= hvT1⊕Viw,并使用服务器的公钥Ks 进行加密运算,ET1=EvT1,Ksw,EC1=EvC1,Ksw。
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*=DvT1,ksw,C1*=D(C1,ksw,然后进行比较判断:T1*与T1 是否相等,C1*与C1 是否相等。若不能满足两者同时相等,则放弃;若两者同时相等,则进行下面的计算。
V2:计算Vi= hvID⊕ksw。
V3:验证hvT1⊕Viw是否与C1 相等,若不相等,则为非法用户;若相等,则为合法用户。
V4:记录系统时戳T2,计算C2= hvT2⊕Viw,并使用存储在数据库中的用户的公钥Ku 进行加密运算:ET2=E(T2,Kuw,EC2=EvC2,Kuw。
V5:服务器S 通过一般信道将反馈信息m2{ T2,C2,ET2,EC2}发给用户U。即:S→U: m2{ T2,C2,ET2,EC2}。
V6:用户U 收到信息m2{ T2,C2,ET2,EC2}后,使用自己的私钥ku 进行解密运算:T2*=DvT2,kuw,C2*=DvC2,k uw,然后进行比较判断:T2*与T2 是否相等,C2*与C2 是否相等。若不能满足两者同时相等,则放弃;若两者同时相等,则进行下面的计算。
V7:验证hvT2⊕Viw是否与C2 相等,若不相等,则为非法服务器;若相等,则为合法服务器。
2.4 密码修改阶段
P1:计算Ri*=Ri⊕h(PW)⊕h(PW*)=h(ID⊕ks)⊕hvPW*w。
P2:用Ri*取代Ri,并存放在智能卡中。
3 安全性分析
该方案引入了公钥密码体制,在非安全信道传递信息时,均经过加密处理,因此具有很强的安全性,能抵御多种攻击。
3.1 重放攻击
假设攻击者截获了L3 阶段的登录信息m1{ T1,C1,ET1,EC1},并且更改了明文形式的时戳T1 为T1’。但是,在登录信息中仍然包含了加密后的时戳ET1,在V1 阶段,由于解密出的T1*≠T1’,攻击者遭到拒绝。
评论