基于智能卡的雙向身份認證方案設(shè)計
文章出處:http://www.luckydriving.com 作者:中國一卡通網(wǎng) 收編 人氣: 發(fā)表時間:2011年10月10日
引言
隨著計算機網(wǎng)絡(luò)的普及和電子商務(wù)的發(fā)展,越來越多的資源和應(yīng)用都是利用網(wǎng)絡(luò)遠程獲得的。如何確保特定資源只被合法、授權(quán)的用戶訪問,即如何正確地鑒別出用戶的身份是確保通信網(wǎng)和數(shù)據(jù)安全的首要條件。目前,主要的身份認證方法有3 種:基于口令的身份認證;基于生物特征的身份認證和基于智能卡的身份認證。結(jié)合密碼學(xué)技術(shù),很多專家和學(xué)者提出了基于智能卡的身份認證的有效方案。
2000 年,Sun提出了一種基于哈希函數(shù)的智能卡有效遠程認證方案,但該方案容易遭受密碼猜測攻擊和內(nèi)部攻擊。2002 年,文獻[5]作者也在單向哈希函數(shù)基礎(chǔ)上提出了一種方案。隨后,很多專家和學(xué)者提出了各自的方案,這些方案通過引入隨機數(shù)、計數(shù)器、時戳等參數(shù)來實現(xiàn)有效地、安全地雙向認證。但遺憾的是,這些方案均會出現(xiàn)一些不可避免的漏洞。
在分析以上方案的基礎(chǔ)上,這里提出了一種新的遠程用戶認證方案。該方案是隨著電子技術(shù)和芯片技術(shù)的發(fā)展而產(chǎn)生的設(shè)想。文獻[6-8]證明了公鑰密碼算法在智能卡中的應(yīng)用。該方案在保留了以上文獻所采用的部分參數(shù)的基礎(chǔ)上,在智能卡中引入了公鑰密碼算法,可靠地實現(xiàn)了通信雙方的身份認證,能夠抵御多數(shù)類型攻擊,具有很強的安全性。
1.術(shù)語定義 下面定義在文中所用到的符號
U 表示認證協(xié)議中的用戶;S 表示認證協(xié)議中的認證服務(wù)器;ID 為用戶的身份標(biāo)識;PW 為用戶登陸口令;Ti 為時戳;h﹙·﹚為單向哈希函數(shù);⊕為異或運算;為安全的通信信道;→為不安全的、普通的通信信道;E 為加密算法;D 為解密算法;Ku 為用戶的公鑰;ku 為用戶的私鑰;Ks 為服務(wù)器的公鑰;ks 為服務(wù)器的私鑰。
2.所提出的認證方案
方案由注冊階段、登陸階段、雙向驗證階段、密碼修改階段組成。
2.1 注冊階段
R1:用戶選擇自己的標(biāo)識ID、公鑰Ku、私鑰ku、口令PW 并計算h﹙PW﹚,通過安全信道提交給認證服務(wù)器S,即US:ID,h﹙PW﹚,Ku,ku。
R2:服務(wù)器產(chǎn)生自己的私鑰ks 和公鑰Ks,并將自己的公鑰Ks 發(fā)布出去,將ks 保存好,把用戶的公鑰Ku 存入數(shù)據(jù)庫。同時服務(wù)器計算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 把智能卡插入相關(guān)終端設(shè)備,輸入ID、PW,智能卡與終端設(shè)備驗證ID、PW 的合法性,否則放棄。
L2:記錄系統(tǒng)時戳T1,智能卡計算Vi=Ri⊕h﹙PW﹚,C1= h﹙T1⊕Vi﹚,并使用服務(wù)器的公鑰Ks 進行加密運算,ET1=E﹙T1,Ks﹚,EC1=E﹙C1,Ks﹚。
L3:用戶U 通過一般信道將登陸信息m1{T1,C1,ET1,EC1}發(fā)給服務(wù)器S,即:U→S: m1{ T1,C1,ET1,EC1}。
2.3 雙向驗證階段
V1:服務(wù)器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:記錄系統(tǒng)時戳T2,計算C2= h﹙T2⊕Vi﹚,并使用存儲在數(shù)據(jù)庫中的用戶的公鑰Ku 進行加密運算:ET2=E(T2,Ku﹚,EC2=E﹙C2,Ku﹚。
V5:服務(wù)器S 通過一般信道將反饋信息m2{ T2,C2,ET2,EC2}發(fā)給用戶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 相等,若不相等,則為非法服務(wù)器;若相等,則為合法服務(wù)器。
2.4 密碼修改階段
P1:計算Ri*=Ri⊕h(PW)⊕h(PW*)=h(ID⊕ks)⊕h﹙PW*﹚。
P2:用Ri*取代Ri,并存放在智能卡中。
3.安全性分析
方案引入了公鑰密碼體制,在非安全信道傳遞信息時,均經(jīng)過加密處理,因此具有很強的安全性,能抵御多種攻擊。
3.1 重放攻擊
假設(shè)攻擊者截獲了L3 階段的登錄信息m1{ T1,C1,ET1,EC1},并且更改了明文形式的時戳T1 為T1’。但是,在登錄信息中仍然包含了加密后的時戳ET1,在V1 階段,由于解密出的T1*≠T1’,攻擊者遭到拒絕。
3.2 拒絕服務(wù)攻擊
在很多文獻中都是利用T2-T1=ΔT 來作為驗證條件,因此當(dāng)網(wǎng)絡(luò)發(fā)生阻塞或攻擊者故意攔截登錄信息并延遲一段時間后再重新向S 傳遞時,S 檢測出ΔT 不符合條件,容易發(fā)生拒絕服務(wù)攻擊。文中所提出的方案,不需要用ΔT 來作為驗證條件,即使網(wǎng)絡(luò)阻塞或攻擊者故意延遲,由于T1 的值沒有改變,T1= T1*,故不會引起拒絕服務(wù)攻擊。并且系統(tǒng)不需要很嚴格的同步要求。
3.3 ReflectiON Attack 攻擊
假設(shè)攻擊者截獲L3 階段的信息m1{ T1,C1,ET1,EC1}并阻塞該信息的傳輸,而且假冒S,跳過驗證階段的V1~V4階段,直接又向用戶U 發(fā)送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 攻擊
假設(shè)攻擊者截獲V5 階段的信息m2{ T2,C2,ET2,EC2},并假冒用戶U 向S 重新發(fā)送m2。但在S 端要進行解密計算卻是不可行的,因為ET2、EC2 是用U 的公鑰Ku 加密的,而其私鑰k u 在U 端才用,S 端不能進行解密運算。
3.5 智能卡丟失\復(fù)制攻擊
由于攻擊者不知道密碼PW,故無法得出Ri=h(ID⊕ks)⊕h(PW)。同樣,即使得知了ID、PW,如果沒有智能卡,也無法假冒用戶U。
3.6 真正地雙向認證
方案使用了公鑰密碼算法,U、S 分別使用對方的公鑰加密,然后發(fā)送信息,使用自己的私鑰解密,在計算上是平等的,所以無論攻擊者要假冒哪方都是不可行的,從而實現(xiàn)了真正地雙向認證。
4.結(jié)語
從以上分析可以看出,通過引入公鑰加密體制,文中提出的方案可抵御重放攻擊、拒絕服務(wù)攻擊、Reflection Attack攻擊、Parallel Attack 攻擊、智能卡丟失\復(fù)制攻擊,并且實現(xiàn)了通信雙方的雙向身份認證。雖然該方案由于公鑰密碼算法的引入占用了部分的計算資源,但卻大大提高了系統(tǒng)的安全性,并且隨著電子技術(shù)和芯片技術(shù)的快速發(fā)展,智能卡計算能力和存儲能力的不斷提高,該方案優(yōu)越性會越來越突出其。該方案具體采用公鑰密碼算法中的哪種算法如RSA、El-Gamal、橢圓曲線等,不在本文討論范圍。