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