◆黃朝陽
?
糅合隨機(jī)數(shù)的動(dòng)態(tài)口令認(rèn)證系統(tǒng)
◆黃朝陽
(廈門海洋學(xué)院信息技術(shù)系 福建 361000)
本文為解決傳統(tǒng)的口令認(rèn)證無法防止小數(shù)攻擊和認(rèn)證的單向性問題,引入偽隨機(jī)數(shù)和對(duì)稱加密改進(jìn)挑戰(zhàn)應(yīng)答機(jī)制動(dòng)態(tài)口令認(rèn)證方案,提出一種安全的動(dòng)態(tài)口令認(rèn)證方案,并分析其效能。
挑戰(zhàn)應(yīng)答;動(dòng)態(tài)口令;偽隨機(jī)數(shù);雙向認(rèn)證;密鑰協(xié)商
動(dòng)態(tài)口令認(rèn)證在靜態(tài)口令的基礎(chǔ)上引用了某些不確定因素值,有效提高認(rèn)證安全性,且易于實(shí)現(xiàn)而被廣泛應(yīng)用。根據(jù)所引入的不確定因素[1]區(qū)分成時(shí)間同步,事件同步與挑戰(zhàn)應(yīng)答三類動(dòng)態(tài)口令認(rèn)證。傳統(tǒng)動(dòng)態(tài)口令認(rèn)證過程經(jīng)多次散列降低了系統(tǒng)性能,其中時(shí)間同步機(jī)制的制約在于認(rèn)證雙方時(shí)間準(zhǔn)確度要求較高[2];事件同步機(jī)制存在迭代值遞減后的系統(tǒng)初始化問題;挑戰(zhàn)應(yīng)答機(jī)制使用明文傳送種子密鑰和散列次數(shù)、無抵御小數(shù)攻擊能力且只實(shí)現(xiàn)單向認(rèn)證受服務(wù)器假冒攻擊[3][4][5]。
本文針對(duì)傳統(tǒng)的挑戰(zhàn)應(yīng)用機(jī)制動(dòng)態(tài)口令認(rèn)證存在不足,所提出的新方案引入偽隨機(jī)數(shù)做為挑戰(zhàn)參數(shù),使用種子密鑰的散列值做為對(duì)稱密鑰,來加密經(jīng)網(wǎng)絡(luò)傳遞的偽隨機(jī)挑戰(zhàn)數(shù)密文消息,避免口令和挑戰(zhàn)數(shù)明文傳輸;用戶端和服務(wù)器雙方都產(chǎn)生偽隨機(jī)挑戰(zhàn)數(shù)并經(jīng)對(duì)方驗(yàn)證以實(shí)現(xiàn)雙向認(rèn)證;認(rèn)證成功后協(xié)商種子密鑰和多方偽隨機(jī)挑戰(zhàn)數(shù)的散列值成為后續(xù)一次性會(huì)話密鑰,認(rèn)證復(fù)雜度與傳統(tǒng)挑戰(zhàn)應(yīng)答動(dòng)態(tài)口令認(rèn)證相當(dāng),具有較高的安全性和實(shí)用性。
動(dòng)態(tài)口令認(rèn)證系統(tǒng)由用戶U和服務(wù)器H構(gòu)成,采用挑戰(zhàn)應(yīng)答機(jī)制,通過網(wǎng)絡(luò)傳遞的信息為經(jīng)過對(duì)稱加密的密文。文中有關(guān)標(biāo)識(shí)說明如下:IDu-用戶ID;IDh-服務(wù)器ID;Pu-用戶密鑰;Rx-x生成的偽隨機(jī)挑戰(zhàn)數(shù);f()-散列函數(shù);+-連接運(yùn)算;K{} –以密鑰K對(duì)稱加密運(yùn)算; r-認(rèn)證結(jié)果,1為通過,0為失敗。
1.2.1注冊階段U注冊成功后獲得IDu,并設(shè)定Pu;U計(jì)算散列值f(Pu)并通過安全信道傳送給H。H上存儲(chǔ)U的IDu和口令的散列值f(Pu)。
1.2.2登錄認(rèn)證階段 只需四次的信息傳遞,U與H之間的雙向認(rèn)證即可實(shí)現(xiàn)。認(rèn)證過程信息交換如圖1所示。
(1)U發(fā)送IDu和對(duì)稱加密后的挑戰(zhàn)隨機(jī)數(shù)f(Pu){IDu+Ru}給H。
(2)H在數(shù)據(jù)庫中查詢驗(yàn)證IDu的合法性,獲取對(duì)應(yīng)的口令散列值f(Pu),以之解密獲取IDu’和Ru’。然后比對(duì)消息中的明文IDu和解密后的IDu’以識(shí)別重放攻擊;比對(duì)成功后H生成新的偽隨機(jī)數(shù)Rh,運(yùn)算并返回消息f(f(Pu)+Ru’){IDh+Ru’ +Rh}給U。
(3)U計(jì)算解密密鑰f(f(Pu)+Ru),解密獲取IDh’、Ru’’、Rh’。比對(duì)本地IDh和IDh’、本地Ru和Ru’’以認(rèn)證H的合法性。認(rèn)證成功后,U計(jì)算并返回消息給H:IDu+f(f(Pu) +Rh’){IDu+Rh’}。
(4)H根據(jù)明文IDu查詢數(shù)據(jù)庫獲取f(Pu),并計(jì)算解密密鑰f(f(Pu)+Rh),解密密文獲取IDu’、Rh’’,然后比對(duì)消息中的明文IDu與解密后的IDu’,同時(shí)比對(duì)本地存儲(chǔ)的Rh與解密后的Rh’’,若比對(duì)正確,則確認(rèn)U通過認(rèn)證。至此U和H實(shí)現(xiàn)雙向認(rèn)證。H計(jì)算臨時(shí)會(huì)話密鑰f(f(Pu)+Ru’+Rh),并用它加密返回消息f(f(Pu)+Ru’+Rh){IDh+r},。
本方案與一般的基于挑戰(zhàn)應(yīng)答機(jī)制動(dòng)態(tài)口令方案相比,一方面繼承了后者能抵御[GYH]信道竊聽、窮舉攻擊、重放攻擊的特點(diǎn),另一方面還提升了以下安全性能:
(1)引入了偽隨機(jī)數(shù)替代傳統(tǒng)散列函數(shù)迭代值做為挑戰(zhàn)數(shù),使每次傳遞的消息都添加了不同的隨機(jī)值而各不相同,避免了惡意修改;
(2)以對(duì)稱加密算法替代散列函數(shù),認(rèn)證消息除IDu均為密文信息,不再傳遞散列迭代值,大大降低了用戶兩次登錄所使用動(dòng)態(tài)口令之間的相關(guān)性,從而有效抵御小數(shù)攻擊;
(3)引入雙向認(rèn)證機(jī)制,實(shí)現(xiàn)用戶服務(wù)器間的雙向認(rèn)證,能有效防御假冒認(rèn)證服務(wù)器的中間人攻擊;
(4)實(shí)現(xiàn)雙向認(rèn)證的同時(shí)還協(xié)商了雙方一次性會(huì)話密鑰。
本文引入偽隨機(jī)數(shù)和變化的對(duì)稱密鑰加密認(rèn)證信息以改進(jìn)挑戰(zhàn)應(yīng)用機(jī)制動(dòng)態(tài)口令認(rèn)證,實(shí)現(xiàn)了雙向認(rèn)證及后續(xù)會(huì)話密鑰的協(xié)商。認(rèn)證全程僅需四次消息傳遞未明顯增加交互次數(shù)。新方案具備較好的認(rèn)證安全性和效率。但這一方案的安全前提在于保證擔(dān)當(dāng)挑戰(zhàn)信息的偽隨機(jī)數(shù)是真正隨機(jī)的,可以考慮在大隨機(jī)池基礎(chǔ)上串并時(shí)間戳的方式[AAA]來實(shí)現(xiàn);同時(shí)基于動(dòng)態(tài)口令認(rèn)證整體的局限性,它還是無法有效防御內(nèi)部人員攻擊,一旦攻擊者或系統(tǒng)內(nèi)部人員入侵服務(wù)器數(shù)據(jù)庫修改用戶注冊信息就可以假冒用戶,解決這一問題的途徑是提升數(shù)據(jù)庫安全性能,加強(qiáng)內(nèi)部管理,進(jìn)一步的工作將是引入第三方認(rèn)證技術(shù)到動(dòng)態(tài)口令認(rèn)證系統(tǒng)。
[1]孫子謙,王雅琴.基于時(shí)間一次性口令的Linux登錄認(rèn)證的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2014.
[2]鄭強(qiáng),高能,張令臣.基于SM3算法的動(dòng)態(tài)口令卡的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2013.
[3]劉昌明,馬艷,宗文富.基于挑戰(zhàn)/響應(yīng)機(jī)制的動(dòng)態(tài)口令系統(tǒng)的設(shè)計(jì)[J]. 計(jì)算機(jī)與數(shù)字工程,2012.
[4]章思宇,黃保青,白雪松等.基于動(dòng)態(tài)口令的增強(qiáng)身份認(rèn)證[J]. 華東師范大學(xué)學(xué)報(bào):自然科學(xué)版,2015.
[5]鄭兆華,彭金蓮,程杰仁. 基于手機(jī)令牌的移動(dòng)應(yīng)用雙向身份認(rèn)證方案研究[J]. 電信科學(xué),2014.
福建省中青年教師教育科研項(xiàng)目The education scientific research project of young teachers in Fujian Province(JA13409)。