一種基于動態口令的挑戰應答智能卡鑒別機制
文章出處:http://www.nyfzw.net 作者:蔣立軍,周安民 人氣: 發表時間:2011年10月07日
對于特定的信息系統資源,應該只有經過授權的合法用戶才能訪問,而問題的關鍵就在于如何正確地鑒別用戶的真實身份。身份鑒別是系統查核用戶的身份證明的過程,實質上是查明用戶是否具有他所請求資源的存儲和使用權。信息技術領域的身份鑒別是通過將一個證據與實體身份綁定來實現的。實體可能是用戶、主機、應用程序甚至進程.證據與身份之間是一一對應的關系,雙方通信過程中,一方實體向另一方提供這個證據證明自己的身份,另一方通過相應的機制來驗證證據,以確定該實體是否與證據所宣稱的身份一致。
目前采用的身份鑒別技術,主要分為基于口令的身份鑒別、基于智能卡的鑒別、基于密碼的身份鑒別、基于生物特征的身份鑒別等幾類.其中,口令鑒別是一種根據已知事物驗證身份的方法,因價格低廉、容易實現、方便使用等特點而被廣泛采用。但是,這種鑒別方式同時也是用戶鑒別機制中最容易攻破的形式。如果網絡上的竊聽者得到秘密口令,他就能假冒用戶。一旦竊聽者能假冒用戶,服務器就無法阻止竊聽者做合法用戶授權所做的任何事情。
口令鑒別又分靜態口令鑒別和動態口令鑒別.已有的研究表明傳統的靜態口令身份鑒別技術存在固有的安全性缺陷。因此有必要對口令身份鑒別技術在安全性方面進行加固.采用動態口令身份鑒別技術可以顯著提高口令身份鑒別方案的安全性。動態口令身份鑒別是根據每次用戶登錄系統時動態口令鑒別信息互不相同,使得通過直接的網絡竊聽來進行口令猜測和重放攻擊變得根更加困難。但是,如果這些動態口令鑒別信息是從一個用戶記憶的口令推導而來,那么這個由用戶記憶的口令仍然容易受到口令猜測的攻擊。另外,如果這些動態口令是全部寫在紙片上讓用戶保存的話,雖然可以防止上述攻擊,且口令驗證碼也不會被重用,但對于用戶來說,需要攜帶大量的口令驗證碼和保證這些口令驗證碼的安全,并且每次都要輸入相對復雜的字符串,這是很不方便的。另外,這種方法也容易造成口令泄漏或中間人攻擊。
為了有效地改進口令鑒別的安全性,眾多文獻進行了探討,如通過增加口令的強度,提高抗窮舉攻擊和字典攻擊的能力;將口令加密防止在傳輸中被竊聽;采用動態的一次性口令系統防止口令的重放等。為了解決上述問題,本文中提出基于智能卡的動態口令鑒別機制,有效提高了口令的安全性。
智能卡身份鑒別是一種結合“用戶已知和已擁有”的身份鑒別方式。智能卡具有嵌入卡片內部的CPU和存儲器,同時還有一系列的安全機制來保證內部數據的安全.利用智能卡具有數據處理能力,可以在卡上進行密鑰對的產生和進行卡上的簽名和驗證計算等較復雜的操作。用戶訪問系統時,系統首先判斷智能卡的合法性,然后由智能卡通過輸入的PIN來對持卡人的合法性進行鑒別,然后系統對智能卡的合法性作進一步的鑒別。因此,這種方法比基于口令的身份鑒別方法具有更好的安全性,在一定程度上解決了口令身份鑒別方式中的問題1(攻擊者可能對通信信道實施竊聽或截取通信內容.)和問題2(攻擊者可能利用系統中存在的漏洞獲取系統的口令文件進行有關攻擊。目前智能卡正在不斷地取代磁卡作為一種更為有效的用來鑒別身份的個人持有物。雖然基于智能卡的身份鑒別方式,更好的安全性。但普通的智能卡的使用,需要智能卡讀卡器,這嚴重影響了其使用的方便性。隨著計算機通用串行總線標準USB接口的普及與發展,基于USB接口和智能卡技術的USB KEY得到了快速的發展。基于USBKEY的身份鑒別方式將是一種方便、安全、經濟的身份鑒別技術。
1 動態口令和智能卡
動態口令也稱一次性口令.動態口令隨產生口令的運算因子的變化而變化.動態口令的產生因子一般都采用雙運算因子:其一,為用戶的私有密鑰.它是代表用戶身份的識別碼,是固定不變的。其二,為變動因子。正是變動因子的不斷變化,才產生了不斷變動的動態口令。采用不同的變動因子,形成了不同的動態口令認證:基于時間同步認證、基于事件同步認證和挑戰/應答方式的認證技術。
1)基于時間同步認證是把時間作為變動因子,所謂“同步”是指用戶口令卡和認證服務器所產生的口令在時間上必須同步。
2)基于事件同步認證技術是把變動的數字序列(事件序列)作為口令產生器的一個運算因子,與用戶的私有密鑰共同產生動態口令。其同步是指每次認證時,認證服務器與口令卡保持相同的事件序列。
3)挑戰/應答方式的變動因子是由認證服務器產生的隨機數字序列,它也是口令卡的口令生成的變動因子,動態口令技術采用一次一密的方法,有效地保證了用戶身份的安全性,近年來被廣泛應用。
智能卡身份認證是一種雙因子認證方式(PIN碼+智能卡),兩個因子缺一不可.即使攻擊者竊取了合法用戶的智能卡,沒有正確的用戶PIN碼,仍然無法通過認證系統;同理,攻擊者只獲得了用戶PIN碼,沒有合法的智能卡也無法通過認證系統,在基于智能卡的身份認證方式中,由于智能卡特有的硬件制造工藝,可以抵御物理篡改攻擊,偽造的難度和成本很高,其操作系統的安全機制可以防止攻擊者利用軟件方式竊取卡內的機密信息,極大地提高了安全性。
2 智能卡的動態口令鑒別機制設計
提出了一種利用挑戰/應答方式的雙向鑒別機制,客戶端和服務器的數據庫中擁有一個相同的計數器,初態保持同步.新的機制包括注冊階段,登錄階段和鑒別階段.為方便敘述,對本文中用到的符號和標識作如下說明:
·U:表示用戶
·S:遠程服務器
·ID:用戶身份標識符
·PW:用戶登錄口令
·Ks:服務器密鑰,用于構建注冊用戶的秘密信息
·hk(·):HMAC.SHA一1算法,密鑰為k
⊕:異或運算
2.1 注冊階段
1)用戶自由選擇登錄口令PW,計算M1=h(ID⊕PW),通過安全信道向服務器發送C 1和ID 進行注冊。
2)s收到注冊請求后,生成隨機數r,取出密鑰KS ,計算 K=h(ID⊕KS), K1=h(ID⊕r),V= k⊕hK1(C1),S將包含信息(r,V,h(·),hk (·)|的智能卡通過安全信道簽發給用戶,此時,s保存r。
2.2 登錄階段
1)用戶U要登錄到服務器S,把智能卡插入終端,提交身份ID和口令PW。
2)智能卡判斷用戶身份ID的合法性,若ID不合法,拒絕發送登錄請求;否則取出R和V,計算Ml 1=h(PW),k1 * =h(ID⊕r),k *= V⊕hkl * ,(M1* ),并生成一個隨機數b,計算c1= h( k *⊕TUI)⊕( k1 *⊕TUI),其中TUI是用戶當前的時間戳。
3)發送信息{ ID,C1,TU1 }給遠程服務器,請求登錄。
2.3 鑒別階段
服務器.S收到登錄請求后,服務器s和智能卡會執行下列操作:
1)S驗證ID的有效性.若ID不合法,S拒絕登錄請求;否則,S證TU1和TS1之間的有效性.如果TS 1- TU1≥△ ,服務器拒絕登錄請求;否則,s計算C1 *=h( k ⊕TUI)⊕h( k1 ⊕TUI),比較C1* 與C1,若C1* ≠C1,S中止本次會話;否則,S通過對用戶U的認證。其中,TS1是服務器當前的時間戳,△ 為期望的有效時間間隔。
2)為實現雙向認證,S計算C2=h( K⊕TS2)⊕r)發送{C2,TS2}給智能卡,其中TS2是服務器當前的時間戳。
3)智能卡收到驗證信息后,驗證TU2和 TS2之間的有效性。如果TU2-TS2≥△ ,用戶拒絕服務器登錄;否則,智能卡取出r,計算C2 *=h((K* ⊕r),比較C2 *與C2,若C2 *≠C2,中止本次會話;否則,通過對 S 的身份認證。其中TU2是用戶當前的時間戳,△ 為期望的有效時間間隔。
3 安全性和有效性分析
1)能夠有效抵抗重放攻擊和小數攻擊,在鑒別過程中引人了隨機數,保證了每次認證信息的新鮮性,不易實現猜測和偽造,能夠有效抵抗重放攻擊。而由于實現原理與S/Key不同,所以,不存在小數攻擊。
2)實現了雙向身份鑒別,用戶的身份以及服務器的合法性得到了保護。同時本機制采用了雙因子認證方式(動態口令+智能卡),攻擊者要想進行口令猜測攻擊,兩者缺一不可。另外,由于用戶自由選擇口令進行注冊,并且服務器總動生成隨機數結合口令進行哈希運算,口令信息的隨機性更增加了口令猜測的難度。
4)采用了挑戰應答機制,引入了時間戳保持了客戶端與服務器的同步性,同時保證了鑒別信息的隨機性,能夠有效抵抗假冒攻擊和重放攻擊。
5)本機制采用智能卡自帶的哈希運算,計算代價低,同時,服務器不需要保存認證成功的口令,減小了系統開銷,一定程度上大大提高了執行性能。
4 結束語
本文中提出的動態口令機制采用了智能卡的雙因子身份認證,在挑戰應答機制中引入時間戳,保持通信雙方的同步性,同時加入了動態口令使鑒別信息不斷變動,此外,由于單向函數的安全性及復雜性,大大增加應用系統的安全性和有效性,實現了雙向身份鑒別,能夠有效抵抗一些典型的攻擊。但是,客戶端和服務器端運算還是比較多,需要進一步的完善。
(文 /四川大學信息安全所,蔣立軍,周安民)