李 光,楊 斌,方 群
(海軍蚌埠士官學校,安徽 蚌埠 233012)
遠程用戶的身份認證在計算機安全系統中扮演著越來越重要的角色。它確保只有通過授權的用戶才可以通過網絡登錄系統內部。自1981年Lamport通過使用智能卡(Smart Card)實現遠程用戶的身份認證方案以來[1],越來越多的基于遠程用戶身份驗證的智能卡系統被用于增強計算機網絡的安全防護。
在傳統的密碼方案中,每位用戶都有一個用戶標識符和密碼。當用戶試圖登錄計算機網絡系統時,必須提供本人的用戶標識符和相應正確的密碼,同時遠程系統服務器需要維護一張用戶密碼表對用戶所提供的用戶標識和密碼進行對比來判斷用戶身份的合法性。
為了避免在不安全的公用網絡上保存純文本形式的用戶口令密碼[2-3],很多學者提出了在遠程系統中為用戶存儲相應的驗證表和與之相對應密碼的單邊Hash函數,通過這種方法可以防止針對用戶密碼表的相關攻擊。然而,這種在遠程系統中存儲的驗證表仍存在被攻擊者篡改的安全隱患。因此,不需要保存和維護用戶驗證表的遠程系統要求用戶必須獨立于該系統之外[4-5]。
2002年,Hwang等人提出了一種不需要任何口令密碼或遠程系統驗證表的遠程用戶身份認證方案[6]。此外,任何合法用戶都可以不通過遠程系統的幫助來自由選擇或更改他們的口令密碼。該方案與其他方案相比可以提供更有效的遠程用戶身份認證但卻不需要大量的運算。2005年,Yoon等人提出這種認證方案所產生的密碼散列值是不安全的[7],特別是在服務器密鑰丟失、被盜或智能卡被盜的情況下,未授權的用戶就可以輕而易舉地更換智能卡的密碼。此外,這種方案無法提供遠程用戶和系統之間的身份認證,因此無法抵御攻擊者使用被盜的智能卡所進行的拒絕服務(Dos)攻擊。Yoon等人針對這種情況提供了相應的改進方案中,使得所產生的預先密碼Hash函數值可以在系統密鑰泄露或被盜的情況下,讓合法用戶自由安全地更改密碼。同時當用戶輸入錯誤的密碼時,系統可以通過遠程系統相互身份認證快速察覺。這種方案所耗費的計算量遠小于其他同類型的方案。
但Yoon等人的驗證方案也并非萬全之策,本文將證明Yoon等人提供的方案存在的多個安全漏洞問題,一旦攻擊者偷取了智能卡,并將儲存在智能卡中的信息破解,則整個安全方案將被徹底破解。因此本文提供了一種可以避免這些安全漏洞免遭攻擊的改進方法。
Yoon等人的安全方案提供了一種介于用戶和遠程系統之間的相互認證方案,合法用戶可以安全自由地更改密碼。這種方案的安全性依賴于其中的單邊Hash函數。整個方案包括四個階段:注冊過程→登錄過程→驗證過程→密碼變更過程。
如表1所示,用戶Ui注冊到遠程系統服務器S并按照以下步驟獲得智能卡:
(1)用戶Ui通過一個安全通道提供其身份 IDi和密碼PWi到遠程系統服務器S進行注冊;
(2)遠程系統服務器S通過Hash函數計算Vi=h(IDi,TTSA,x)和 Ai=Vi⊕PWi,其中 x是由系統服務器 S提供的密鑰,TTSA是由標準授權時間所提供的時間標記,h()表示的是單邊Hash函數;
(3)S 發出一個包含(IDi,Vi,Ai,h())信息的智能卡到 Ui。

表1 Yoon氏方案的注冊過程
當用戶Ui需要登錄到遠程系統服務器S時,需要插入智能卡到終端機上并輸入用戶的身份IDi和密碼智能卡將執行以下步驟:

(2)判斷等式Bi=Vi是否成立,如果等式不成立,登錄請求將被拒絕;
(3)創建當時的時間標記 T,計算 C1=h(Bi,T),接著發送消息(IDi,C1,T)到服務器 S。
在接收到用戶的登錄請求消息(IDi,C1,T)后,遠程系統和智能卡執行以下步驟完成用戶和遠程系統服務器之間的相互身份認證。首先,遠程系統執行以下操作:
(1)核實IDi是否為有效的用戶標識符,如果不是則拒絕登錄請求;
(2)判斷不等式 T′-T≤ΔT是否成立(ΔT是傳輸時間延遲),如果不成立則拒絕登錄請求;
(4)創建當時時間標記 T″計算 C2=h(,,T″),將(C2,T″)發送到智能卡。
智能卡執行以下步驟:
①智能卡在接到遠程系統發回的信息后,對時間間隔T和 T″進行比對;

表2 Yoon氏方案登錄和認證過程
如果用戶Ui想要將原來的密碼PWi更改為一個新密碼 PWi′,執行步驟如下:
(1)計 算 Bi=Ai⊕P=h(IDi,TTSA,x);
(2)判斷等式 Bi=Vi,其中 Vi被儲存于智能卡中,如果該等式成立,用戶Ui則將原來的密碼更改為新密碼PWi′;
(3)計 算 Ai′=Bi⊕PWi′;
(4)用 Ai′代替 Ai存儲到智能卡中。
關于Yoon氏身份驗證方案的密碼破解分析如下。
在注冊過程中,可以發現,遠程系統服務器S發出包 含(IDi,Vi,Ai,h())信 息 的 智 能 卡 給 用 戶 。 假 設 如 果 有入侵者將智能卡盜走并且提取存儲在其中的相應信息,這種信息竊取[8]可能是由在參考文獻[9]中所提到的通過監控系統信息傳輸或分析泄露信息[10]而完成的。
在步驟(2)中,方案是通過計算等式 Ai=Vi⊕PWi,然而通過等式PWi=Vi⊕Ai入侵者可以通過提取Ai和Vi輕松計算出用戶密碼PWi。這時入侵者就可以通過盜取的智能卡重新更改密碼,而用戶自身擁有的密碼只能存儲于用戶名中。
當計算登錄信息C1=h(Bi,T)時,入侵者 Ua可以通過執行以下步驟欺騙遠程系統服務器S來冒充合法用戶:
(1)入侵者Ua提取按照上述方法從智能卡中提取出Vi;
(2)入侵者 Ua取得當時的時間標記 Ta并計算 C1′=h(Vi,Ta), 接 著 偽 造 的 信 息 (IDi,C1′,Ta)被 送 往 遠 程 服 務 器系統 S;
(3)S核實用戶合法用戶標識 IDi,發現 Ta是在傳播延時內的預期執行時間間隔;
當用戶 Ui發出登錄信息(IDi,C1,T)后,遠程系統冒充者Sa可以輕松實現對用戶Ui假冒遠程系統。
首先,冒充者 Sa通過從智能卡中提取的 C1和Vi攔截登錄信息(IDi,C1,T),獲得當前時間標識 Ta′并計算 C2′=h(Vi,C1,Ta′)。 當 Bi=Vi時間標識 Ta′仍位于 預期時間間 隔內,由智能卡計算得到的與C2相等,此時就完成了在用戶和冒充者之間的身份認證。
通過上述發生在Yoon氏方案的安全漏洞分析,可以看出密碼的泄漏完全是由存儲在智能卡中的Vi不安全性導致。通過Vi可以輕松透露出密碼和登錄信息,響應消息可以被輕松偽造,此漏洞的嚴重性可以導致整個方案被完全破解。
基于Yoon氏驗證的改進方案可以經受住先前部分所述安全漏洞的檢驗。改進方案過程為:注冊過程→登錄過程→驗證過程→密碼變更過程。表3給出了在注冊過程中的改良方案。正如Yoon氏方案所提到的,讓x成為由遠程系統服務器S發出密鑰,TTSA是可信時間標識,h()為固定長度輸出的單邊Hash函數。另外,給出一個由變量k決定的hk()作為加密 hash函數。用戶 Ui通過遠程系統服務器S按照以下步驟獲得其智能卡:
(1)用戶Ui提供其注冊用戶標識 IDi和密碼 PWi到 S;
(2)S 計算 Vi=h(IDi,TTSA,x),Wi=hVi(h(PWi))和 Ai=Vi⊕h(PWi);
(3)S 發 出 包 括(Wi,Ai,h(),hk())信 息 的 智 能 卡 到 用戶Ui。

表3 改進方案的注冊過程
注冊后,當用戶Ui想要登錄遠程系統S,必須將智能卡插入到終端中,輸入用戶身份 IDi和密碼 PWi,智能卡接著執行以下步驟:
(3)創建當前時間標識 T并計算 C1=h(Bi,T),接著發送信息(IDi,C1,T)到 S。
當遠程系統接收到用戶Ui發來的注冊信息后,用戶和遠程系統之間將執行多個步驟來完成相互身份認證,可以有效防止信息竊取和泄露等安全漏洞。如果用戶Ui想要將原來的密碼 PWi更改為新密碼 PWi′,需要執行以下步驟:
①計算 Bi=Ai⊕h(P)=h(IDi,TTSA,x);
②判斷等式Bi=Vi是否成立 (其中Vi存儲在智能卡中),如果等式成立,用戶 Ui選擇一個新密碼 PWi′,否則拒絕密碼變更請求;
③ 計 算 Ai′=Bi⊕h(PWi′);
④存儲 Ai′到智能卡中代替原來的 Ai。
通過相互身份認證的改進方案的安全分析,發現改進方案在Yoon氏方案的基礎上可以有效防止相應的安全漏洞攻擊。
(1)抵抗密碼暴力破解
如果入侵者企圖暴力破解密碼,在改進方案下被證明是不可能的。首先,在智能卡中沒有包含的值,而密鑰x的值入侵者無法得到,因此無法計算出Vi的值。即使入 侵 者 得 到 了 儲 存 在 智 能 卡 中 的 (Wi,Ai,h(),hk())值 的信息或者攔截用戶登錄信 息(IDi,C1,T),由于 Ai=Vi⊕h(PWi)基于單邊Hash函數,入侵者很難在沒有 Vi值的情況下猜測出用戶密碼。
(2)抵抗竊取攻擊
在服務器竊取攻擊中,入侵者可以使用合法用戶的秘密信息來欺騙服務器。因此,一個安全可靠的遠程用戶身份認證系統必須擁有對抗此類攻擊的能力。在改進方案中,除了進行常規的遠程系統用戶身份認證以外,還獨創性地包含了相互身份認證。因此在用戶和遠程系統之間的相互身份認證可以讓改進方案經受住服務器攻擊的考驗。
(3)抵抗重復攻擊
在身份認證階段,遠程系統和用戶都需要通過T′-T≤ΔT或 T?-T"≤ΔT來核實時間標識 T和 T",其中 ΔT是由傳輸延時造成的預期時間間隔,不論是原先登錄信息(IDi,C1,T)的重復嘗試或是遠程系統的響應信息(C2,T″)的重復嘗試攻擊都無法奏效。因而此類攻擊對改進方案也無法造成安全漏洞的產生。
(4)抵抗身份假冒攻擊
假如入侵者 Ua想要通過攔截(IDi,C1,T)來偽造登錄信息(IDi,C1′,Ta)假冒合法用戶,當 Ua發出 偽造 登錄信息到遠程系統S后,S將不會響應其登錄信息,因為=h,T)≠C1′,其中=h(IDi,TTSA,x),而 Ua無 法 得到其值。當然,遠程系統會拒絕入侵者偽造登錄信息的請求。
同樣如果入侵者Ua嘗試冒充服務器并通過(C2,T″)偽造響應信息(C2,Ta″),這也是不可行的,因為入侵者Ua無法得到由單邊Hash函數保護的Bi值。假冒的遠程系統無法被用戶核實。因此,改進方案可以有效防止偽造登錄,冒充服務器類型的欺騙攻擊。
(5)高效密碼驗證
在注冊過程中,如果用戶輸入錯誤的密碼 PWi′,智能 卡 將 計 算 Bi=Ai⊕ h(PWi′)和=hBi(h(PWi′))。 此 時 ,會發現≠Wi而 Bi值和 PWi′值顯然是不正確的。智能卡會迅速終止注冊過程。因此,密碼驗證過程是安全高效的,可以有效防止錯誤密碼并阻止多次密碼嘗試。
本文給出一種基于智能卡的Yoon氏遠程用戶身份驗證方案中的安全漏洞。針對這些安全漏洞,提出了更安全有效的驗證方案,該方案被證明可以防止密碼猜測攻擊、竊取攻擊、重復攻擊和角色欺騙攻擊等攻擊方式。此外,該方案不需要對智能卡附加額外的運算量,可以更好地履行保護網絡系統的安全職責。
[1]LAMPORT L.Password authentication with insecure communication[J].Communications of the ACM, 1981,24:770-772.
[2]CHANG C C,WU T C.Remote password authenticated with smart cards[J].IEE Proceedings-E, 1991,138(3):165-168.
[3]CHANG C C,LAIH C S.Comment on remote password authentication with smart cards[J].IEE Proceedings-E,1992,139(4):372-372.
[4]SUN H M.Cryptanalysis of password authentication schemes with smart cards[C].Information Security Conference 2001,2001.
[5]CHIEN H Y, JAN J K, TSENG Y M.An efficient and practical solution to remote authenticaiton:smart card[C].Computers and Security,2002.
[6]HWANG M S, LEE C C, TANG Y L.A simple remote user authentication scheme[J].Mathematical and Computer Modelling, 2002,36(1):103-107.
[7]YOON E J, RYU E K, YOO K Y.An improvement of Hwang-Lee-Tang’s simple remote user authentication scheme[J].Computers&Security, 2005,24(1):50-56.
[8]KOCHER P, JAFFE J, JUN B.Different power analysis[C].Proc.Advances in Cryptoloty(CRYPTO’99), 1999.
[9]KU W C,CHEN S M.Weakness and improvements of an efficient password based remote user authentication scheme using smart cards[J].IEEE Transactions on Consumer Electronics, 2004,50(1):204-207.
[10]MESSERGES T S, DABBISH E A, SLOAN R H.Examining smart card security under the threat of power analysis attacks[J].IEEE Transactions on Computers, 2002,51(5):541-552.