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