杜海濤
(無錫商業(yè)職業(yè)技術(shù)學(xué)院 江蘇 無錫 214063)
隨著社會的進(jìn)步和計(jì)算機(jī)技術(shù)的發(fā)展,網(wǎng)絡(luò)的普及率越來越高,使網(wǎng)絡(luò)化成為企業(yè)信息化發(fā)展大趨勢,當(dāng)人們在享受信息化帶來的眾多好處的同時,網(wǎng)絡(luò)安全問題已成為信息時代人類共同面臨的挑戰(zhàn)。
在網(wǎng)絡(luò)環(huán)境下,各種應(yīng)用都需要通過身份認(rèn)證來確認(rèn)用戶的合法性,然后再確定用戶的個人數(shù)據(jù)和特定權(quán)限。身份認(rèn)證是其他的安全服務(wù)的基礎(chǔ),一旦身份認(rèn)證系統(tǒng)被攻破,那么系統(tǒng)的其他安全措施都將形同虛設(shè)。身份認(rèn)證可以采用各種各樣形式進(jìn)行認(rèn)證,口令認(rèn)證系統(tǒng)以其密碼算法的抗攻擊能力強(qiáng)、兼容性好、使用方便可靠等顯著特點(diǎn)而逐漸成為身份認(rèn)證技術(shù)的主流。根據(jù)驗(yàn)證口令的產(chǎn)生方式的不同,口令認(rèn)證可以分為靜態(tài)口令認(rèn)證、一次性口令認(rèn)證和雙因素動態(tài)口令認(rèn)證。
靜態(tài)口令認(rèn)證是指用戶登錄系統(tǒng)進(jìn)行身份認(rèn)證的過程中,提交給系統(tǒng)的驗(yàn)證數(shù)據(jù)是固定不變的。靜態(tài)口令認(rèn)證主要用于一些比較簡單的系統(tǒng)或安全性要求不高的系統(tǒng),例如:PC機(jī)的開機(jī)口令、Unix系統(tǒng)中用戶的登錄、Windows用戶的登錄、電話銀行查詢系統(tǒng)的帳戶口令等。
靜態(tài)口令認(rèn)證方案根據(jù)是否采用加密的方法分為兩種:口令匹配認(rèn)證和算法匹配認(rèn)證。
口令匹配認(rèn)證:系統(tǒng)中的口令文件存放的是用戶口令的明文,當(dāng)用戶登錄時,輸入身份ID和對應(yīng)口令PW,系統(tǒng)根據(jù)用戶身份ID在口令文件中查找匹配的身份口令記錄。
算法匹配認(rèn)證:系統(tǒng)中的口令文件存放的是口令的雜湊值,而不是口令明文本身。在使用加密的口令存儲方案的認(rèn)證系統(tǒng)中,用戶登錄時,輸入身份ID和對應(yīng)口令PW,然后計(jì)算口令PW的雜湊值,并將ID和口令PW的雜湊值傳送給系統(tǒng)進(jìn)行認(rèn)證,系統(tǒng)根據(jù)用戶身份ID在口令文件中查找匹配的身份口令記錄。由于雜湊函數(shù)的單向性,任何人都無法通過獲取存放在口令文件中的雜湊值而得到口令明文。
靜態(tài)口令認(rèn)證存在著諸多的不安全因素。靜態(tài)口令認(rèn)證具有以下缺陷:
(1)易泄密:常見泄密形式有,輸入泄密、傳輸泄密、共享性泄密、記錄泄密等。
(2)可被窮舉攻擊:由于靜態(tài)口令在一段時間內(nèi)保持不變,惡意用戶可以用黑客工具長時間地進(jìn)行窮舉分析。
(3)泄密不可知性:當(dāng)靜態(tài)口令泄密后,系統(tǒng)和用戶都無法及時地獲知口令是否巳經(jīng)泄密。
(4)長期性:靜態(tài)口令多使用一天就多一天泄密的危險,其危險性與日俱增。
所以根據(jù)以上缺陷,針對靜態(tài)口令系統(tǒng)的攻擊方法層出不窮,針對靜態(tài)口令方案的攻擊有以下方法:重放攻擊、窮舉攻擊、猜測與字典攻擊等;同時還可以通過窺探、釣魚詐騙、垃圾搜索等方式獲得口令。
一次性動態(tài)口令認(rèn)證也稱動態(tài)口令認(rèn)證,其機(jī)制是產(chǎn)生驗(yàn)證信息的時候中加入不定因素,使每次登錄過程中網(wǎng)絡(luò)傳送的數(shù)據(jù)包都不同,以此來提高登錄的安全性。不定因子可以是用戶登錄的時間或者用戶登錄的次數(shù)等。
一次性口令通常通過一種稱為令牌的專用硬件來生成。令牌內(nèi)置電源、密碼生成芯片和顯示屏。密碼生成芯片運(yùn)行專門的密碼算法,根據(jù)當(dāng)前時間或使用次數(shù)生成當(dāng)前口令并顯示在顯示屏上。遠(yuǎn)程系統(tǒng)采用相同的算法計(jì)算當(dāng)前的有效口令。用戶使用時只需要將動態(tài)令牌上顯示的當(dāng)前口令輸入客戶端計(jì)算機(jī),即可實(shí)現(xiàn)身份認(rèn)證。由于每次使用的口令必須由令牌動態(tài)產(chǎn)生,而且只有合法用戶才持有該硬件,所以只要通過口令驗(yàn)證就可以認(rèn)為該用戶的身份是可靠的。由于用戶每次使用的口令都不相同,即使黑客截獲了某一次登錄時使用的口令,也無法利用這個口令來仿冒合法用戶的身份。
一次性口令認(rèn)證系統(tǒng)通過使用令牌產(chǎn)生的無法猜測和復(fù)制的一次性口令接入系統(tǒng),保證了接入遠(yuǎn)程系統(tǒng)的終端用戶確實(shí)為授權(quán)實(shí)體,有效地保護(hù)了信息系統(tǒng)的安全性,大大降低了非法訪問的風(fēng)險。所以一次性口令認(rèn)證具有以下優(yōu)點(diǎn):
(1)動態(tài)性:令牌每次產(chǎn)生的口令都是不同的,而且口令都只在其產(chǎn)生的時間范圍內(nèi)有效。
(2)隨機(jī)性:驗(yàn)證口令每次都是隨機(jī)產(chǎn)生的,不可預(yù)測。
(3)一次性:驗(yàn)證口令使用過一次后就失效,不能重復(fù)使用。
(4)不可復(fù)制性:驗(yàn)證口令與令牌是緊密相關(guān)的,不同的令牌產(chǎn)生不同的動態(tài)口令。
(5)抗窮舉攻擊性:由于動態(tài)性的特點(diǎn),如果單位時間內(nèi)窮舉不到,那么下一單位時間就需要重新窮舉。另外還可以通過系統(tǒng)設(shè)置,限制單位時間內(nèi)用戶嘗試登錄的次數(shù),從而進(jìn)一步降低窮舉攻擊的風(fēng)險。
一次性口令盡管具有上述眾多優(yōu)點(diǎn),但是如果用戶終端與系統(tǒng)的時間或登錄次數(shù)不能保持良好的同步,就可能發(fā)生授權(quán)用戶無法登錄的問題。
雙因素動態(tài)口令認(rèn)證機(jī)制,是在靜態(tài)口令認(rèn)證的基礎(chǔ)上,增加一個物理因素,并在登錄過程中增加不確定的變化因素以生成動態(tài)變化的驗(yàn)證信息。其認(rèn)證流程如下:用戶在業(yè)務(wù)終端上登錄時輸入用戶身份ID和靜態(tài)口PW;業(yè)務(wù)終端通過專用設(shè)備將第二個物理認(rèn)證因素上的數(shù)據(jù)讀入;業(yè)務(wù)終端將對靜態(tài)口令和第二個物理因素?cái)?shù)據(jù)進(jìn)行密碼處理得到動態(tài)的驗(yàn)證口令,然后將動態(tài)驗(yàn)證口令送到中心主機(jī)進(jìn)行驗(yàn)證。中心主機(jī)系統(tǒng)將驗(yàn)證口令數(shù)據(jù)包解密后,進(jìn)行安全認(rèn)證。業(yè)務(wù)終端接收中心主機(jī)返回的認(rèn)證結(jié)果,并根據(jù)結(jié)果決定用戶的操作。最常見的物理因素有:生物特征和智能卡。智能卡與靜態(tài)口令結(jié)合使用的認(rèn)證方式也是目前應(yīng)用最廣泛的雙因素動態(tài)口令認(rèn)證機(jī)制。
動態(tài)口令是隨機(jī)變化的一種口令形式,一個口令只能使用一次,重復(fù)使用的口令將被拒絕接受。動態(tài)口令的生成方法很多,但主要是采用數(shù)學(xué)手段來實(shí)現(xiàn)的。有使用簡單的密碼運(yùn)算處理的,如基于挑戰(zhàn)應(yīng)答機(jī)制的動態(tài)口令;也有應(yīng)用復(fù)雜數(shù)學(xué)方法算法進(jìn)行處理的。為了保證動態(tài)口令的唯一性和及時性,通常在驗(yàn)證口令的生成過程加入時變參數(shù)以確保驗(yàn)證口令是最新的。為了保證動態(tài)口令認(rèn)證方案的安全性,必須保證驗(yàn)證口令中的時變參數(shù)的完整性。
消息的完整性通常通過使用消息認(rèn)證碼和數(shù)字簽名等密碼技術(shù)來保證。在實(shí)際應(yīng)用中,通常使用的時變參數(shù)有序列號、時戮和隨機(jī)數(shù)三種。
使用序列號作為動態(tài)口令的時變參數(shù)時,驗(yàn)證方必須為每個認(rèn)證實(shí)體記錄和維護(hù)其序列號的狀態(tài)信息來確定以前己經(jīng)使用過的和仍然有效的序列號。同時,驗(yàn)證方還需提供特別的程序以防止環(huán)境或敵手破壞正常的序列。因而,序列號通常適用于較小的、相對封閉的系統(tǒng)中,這樣系統(tǒng)維護(hù)序列號的狀態(tài)信息的代價才不會太高。
使用時戳作為動態(tài)口令的時變參數(shù)時,驗(yàn)證方只需驗(yàn)證動態(tài)口令中的時戳的有效性,因而需要保證時鐘的同步和安全。但驗(yàn)證方無需維護(hù)每個認(rèn)證實(shí)體相對應(yīng)的類似于序列號的長期狀態(tài)信息,也無需維護(hù)類似于隨機(jī)數(shù)的每次會話連接的短期狀態(tài)信息。時戮機(jī)制比較適用應(yīng)用于內(nèi)存資源比較珍貴的系統(tǒng)中,系統(tǒng)需要維護(hù)的狀態(tài)信息將大大減少。
使用隨機(jī)數(shù)作為動態(tài)口令的時變參數(shù)時,驗(yàn)證方只需驗(yàn)證認(rèn)證實(shí)體返回的帶有驗(yàn)證方產(chǎn)生的隨機(jī)數(shù)的應(yīng)答認(rèn)證的正確性。驗(yàn)證方需要確保用于時變參數(shù)的隨機(jī)數(shù)是密碼學(xué)上安全的隨機(jī)數(shù),同時使用隨機(jī)數(shù)的動態(tài)口令都需要通過需要交互才能完成認(rèn)證。在一般的挑戰(zhàn)/應(yīng)答機(jī)制的認(rèn)證系統(tǒng)中均可以使用隨機(jī)數(shù)。在實(shí)際應(yīng)用中,可以綜合使用上述時變參數(shù)來提供更好的安全方案。
靜態(tài)口令認(rèn)證采用“用戶名+靜態(tài)口令”的方式來進(jìn)行用戶的認(rèn)證,這種靜態(tài)口令固定不變的、長期有效的,有易于泄漏、易于猜測、易于攻擊的缺陷。動態(tài)口令認(rèn)證每次使用的密碼都不相同,使不法分子無法仿冒合法用戶的身份,而且加密算法的安全性極高,采用物理隔離,在交易過程中,很難被黑客替換或截獲,但口令卡一旦丟失也會給用戶帶來損失。雙因素動態(tài)口令認(rèn)證彌補(bǔ)了靜態(tài)口令與動態(tài)口令各自的缺陷,把動態(tài)口令和靜態(tài)口令結(jié)合起來使用,既保留了靜態(tài)口令的特性,又增加了動態(tài)口令的優(yōu)點(diǎn),因此具有雙保險的意義。
[1]王猛,盧建朱,李曉峰.基于智能卡的遠(yuǎn)程口令認(rèn)證方案.計(jì)算機(jī)應(yīng)用,2005,25(10):2289-2290.
[2]徐成強(qiáng),史清華.一種基于智能卡的新型雙向認(rèn)證方案淮海工學(xué)院學(xué)報:自然科學(xué)版,2006,15(l):22-24.
[3]孟艷紅,李雅紅,黃靜.一種簡單的遠(yuǎn)程動態(tài)口令認(rèn)證方案.沈陽工業(yè)大學(xué)學(xué)報,2005,27(l):74-76.
[4]鄧飛進(jìn),范磊,施建俊.使用智能卡的動態(tài)口令認(rèn)證機(jī)制.計(jì)算機(jī)工程,2005,31(24):172-174.