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