基于智能卡的雙向身份認證方案
2.2 登陸階段
L1:用戶U 把智能卡插入相關終端設備,輸入ID、PW,智能卡與終端設備驗證ID、PW 的合法性,否則放棄。
L2:記錄系統(tǒng)時戳T1,智能卡計算Vi=Ri⊕hvPWw,C1= hvT1⊕Viw,并使用服務器的公鑰Ks 進行加密運算,ET1=EvT1,Ksw,EC1=EvC1,Ksw。
L3:用戶U 通過一般信道將登陸信息m1{T1,C1,ET1,EC1}發(fā)給服務器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:記錄系統(tǒng)時戳T2,計算C2= hvT2⊕Viw,并使用存儲在數(shù)據(jù)庫中的用戶的公鑰Ku 進行加密運算:ET2=E(T2,Kuw,EC2=EvC2,Kuw。
V5:服務器S 通過一般信道將反饋信息m2{ T2,C2,ET2,EC2}發(fā)給用戶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’,攻擊者遭到拒絕。
評論