浙江工業(yè)職業(yè)技術(shù)學(xué)院 王麗麗
美國科學(xué)家Leslie Lamport首次提出了利用散列函數(shù)產(chǎn)生一次性口令的思想,即用戶每次同服務(wù)器進行身份認證時,在網(wǎng)上傳輸?shù)恼J證口令都是一次有效的。即Lamport方式,但它最大的缺點就是計算量特別大,需要做大量的加密計算。
一次性口令技術(shù)在美國最初主要用于軍事、情報、科研等對安全級別要求很高的部門。隨著信息技術(shù)的發(fā)展,信息安全受到重視,一次性口令進入商用領(lǐng)域。歐洲的絕大部分銀行,采用一次性口令技術(shù)對安全風(fēng)險加以防范。
我國的中科院信息安全國家重點實驗室于1998年研制一次性口令身份認證系統(tǒng)。之后,有許多公司開發(fā)出不同型號的一次性口令身份認證系統(tǒng)。
目前,我國多家銀行在其內(nèi)部操作員管理或網(wǎng)上銀行中采用了一次性口令認證。網(wǎng)絡(luò)游戲運營商,都先后推出了各自的一次性口令產(chǎn)品,包括矩陣式一次性口令卡和一體化令牌,這些一次性口令產(chǎn)品將為越來越多的網(wǎng)游玩家提供賬戶和虛擬資產(chǎn)保護。同時,在企業(yè)內(nèi)部管理上,也運用遠程用戶訪問身份認證、操作授權(quán)、技術(shù)人員進行系統(tǒng)和網(wǎng)絡(luò)維護登錄等操作。
一次性口令也稱為動態(tài)口令。它是基于某種密碼算法,將用戶的身份代碼和某種不確定因素作為密碼算法的輸入?yún)?shù),經(jīng)過算法變換得到一個變化的結(jié)果,將其作為用戶的登錄口令。認證服務(wù)器端使用相應(yīng)的算法進行計算,并將計算結(jié)果與用戶的登錄口令進行比對,若相同則接受登錄。由于在認證過程中產(chǎn)生的口令只能完成一次有效認證,即使非法用戶截獲了己經(jīng)通過驗證的正確口令,再次提交到認證服務(wù)器也不能通過驗證,因此不必擔(dān)心口令在傳輸認證期間被第三方監(jiān)聽到,從而提高登錄過程的安全性。
一次性口令認證技術(shù)又發(fā)展了三種方式:
1.挑戰(zhàn)/應(yīng)答方式。它由服務(wù)器向客戶端發(fā)送不同的挑戰(zhàn)信息,服務(wù)器通過驗證客戶端的響應(yīng)信息來進行身份認證。
2.時間同步方式。它需要客戶端和服務(wù)器保持時間同步,雙方利用相同的時間作為計算因子計算動態(tài)口令,以此實現(xiàn)身份認證。
3.以散列運算和異或運算等低復(fù)雜度的運算為基礎(chǔ),認證雙方通過計算雙方交換的認證數(shù)據(jù)進行一次性口令身份認證。這種方式的特點是設(shè)計簡單、運算量較小,而且實施的成本也較低。
在移動支付中,安全性是影響移動商務(wù)發(fā)展的首要因素。移動支付中的安全需求有:
1.數(shù)據(jù)機密性。數(shù)據(jù)在傳送中不被泄漏,未被授權(quán)的人不能讀懂?dāng)?shù)據(jù)。
2.信息完整性。數(shù)據(jù)在傳輸存儲中不會受到非法的修改,確保信息內(nèi)容和順序的完整性。
3.信息可認證性。只有通過認證的用戶才可以在授權(quán)范圍內(nèi)訪問相應(yīng)的業(yè)務(wù)。
4.防抵賴性。買賣雙方都必須對自己發(fā)出和接收的信息不可抵賴。
5.訪問控制。確保用戶僅僅看到所授權(quán)的信息。
一次性口令認證技術(shù)采用一次一密的認證方式,實現(xiàn)簡單、成本低、無需第三方公證,十分適合移動支付環(huán)境。但它只支持服務(wù)器對用戶的單向認證,無法防范假冒的服務(wù)器欺騙合法用戶。因此,提出基于移動支付的一次性口令身份認證方案。
本方案設(shè)計思路為:
a.利用移動設(shè)備PIN碼作為解鎖碼,應(yīng)用IMEI為認證因子;
b.設(shè)計相關(guān)運算,避免隨機數(shù)Ri在網(wǎng)絡(luò)中明文傳輸,防止網(wǎng)絡(luò)竊聽;
c.利用基于身份的加密算法,設(shè)計實現(xiàn)雙向認證,避免中間人冒充攻擊;
d.設(shè)計代價較小的認證協(xié)議,滿足移動終端的運算能力要求。
本方案主要有支付平臺認證端、客戶端及認證協(xié)議三部分。
1.支付平臺認證端包含用戶請求響應(yīng)模塊、用戶認證模塊和新用戶注冊模塊。
●用戶請求響應(yīng)模塊主要負責(zé)處理并響應(yīng)客戶端發(fā)來的各種請求信息。
●用戶認證模塊是負責(zé)接收并驗證用戶請求響應(yīng)模塊發(fā)送來的認證數(shù)據(jù)包,也是服務(wù)器端的主要功能模塊。
●新用戶注冊模塊是實現(xiàn)用戶在第一次使用此身份認證方案之前必須在認證端服務(wù)器注冊,并完成系統(tǒng)初始化。
2.客戶端包含客戶端請求及響應(yīng)模塊、客戶端驗證模塊和客戶端應(yīng)答模塊。
●客戶端請求及響應(yīng)模塊負責(zé)在用戶請求認證或注冊服務(wù)時,按要求輸入用戶名和相關(guān)信息,將客戶端軟件生成的請求信息發(fā)送給服務(wù)器,并接收注冊過程中或認證過程中的所有信息,轉(zhuǎn)交至相應(yīng)模塊。
●客戶端驗證模塊主要負責(zé)實現(xiàn)解密服務(wù)器的挑戰(zhàn)信息,比對相關(guān)信息驗證服務(wù)器身份。
●客戶端應(yīng)答模塊主要實現(xiàn)移動用戶應(yīng)答信息的計算及產(chǎn)生。
3.認證協(xié)議設(shè)計分注冊階段和認證階段兩部分。
注冊階段具體流程如圖1所示。
1)注冊請求。移動用戶使用移動終端唯一標識符IMEI作為用戶名發(fā)送給認證服務(wù)器,生成口令為RC1=(IMEI)。
2)返回參數(shù)。認證服務(wù)器收到用戶請求,驗證IMEI是否存在于數(shù)據(jù)庫中,若存在,返回已注冊信息;否則,接受用戶注冊。發(fā)送給用戶服務(wù)器公鑰KSR,生成口令為RS1=KSR。
圖1 注冊階段流程圖
圖2 認證階段流程圖
3)發(fā)送用戶信息。用戶得到服務(wù)器公鑰,用其將用戶信息加密后發(fā)送至認證服務(wù)器。生成口令為RC2=EKSR(t,IMEI),其中t為移動支付用戶信息,由系統(tǒng)建立時設(shè)定。
4)返回注冊結(jié)果。認證服務(wù)器使用服務(wù)器私鑰KSS進行DKSS(EKSR(t,IMEI))運算,得到用戶信息和IMEI,再根據(jù)用戶公開信息計算出用戶公鑰,同時系統(tǒng)分配給移動用戶一個通行密語SPP。最后把用戶信息存到數(shù)據(jù)庫中,建立移動用戶的用戶賬戶,并將SPP和注冊成功信息發(fā)送給用戶。
認證階段流程如圖2所示。
1)解鎖。移動用戶在手機令牌上輸入PIN,如果PIN正確,移動終端解鎖;否則不能解鎖。
2)登錄請求。移動終端解鎖后,立即顯示出用戶登錄頁面。系統(tǒng)自動提取IMEI,使用服務(wù)器公鑰進行加密,產(chǎn)生的口令為DPCi=EKSR(IMEI)。將口令通過GSM網(wǎng)絡(luò)發(fā)送登錄請求到認證服務(wù)器。
3)發(fā)送挑戰(zhàn)信息。認證服務(wù)器使用服務(wù)器私鑰進行解密運算DKSS(EKSR(t,IMEI)),得到IMEI。查詢數(shù)據(jù)庫比對移動用戶IMEI,若IMEI不存在,返回未認證信息,否則進行下一步處理。服務(wù)器生成一個隨機數(shù)Ri,計算H(IMEI,Ri),并用移動用戶公鑰KCR對Ri進行加密,生成口令DPSi=(EKCR(Ri),H(IMEI,Ri))發(fā)送至移動用戶。
4)響應(yīng)挑戰(zhàn)。移動用戶收到挑戰(zhàn)信息后,用私鑰KCS解密運算,提取出Ri和H(IMEI,Ri)。計算H’(IMEI,Ri),比對H(IMEI,Ri)和H’(IMEI,Ri)是否相等,若不相等,結(jié)束認證;若相等,則驗證了服務(wù)器的身份,計算出H(SPP,R)作為應(yīng)答數(shù)發(fā)送給認證端服務(wù)器。
5)認證結(jié)果。認證服務(wù)器暫存H(SPP,Ri),取出用戶數(shù)據(jù)庫中的SPP計算出H'(SPP,Ri)與收到H(SPP,Ri)進行對比。若相同,移動用戶身份認證成功;否則返回認證失敗信息。
6)若認證失敗的次數(shù)大于2小于最大值,用戶進入等待狀態(tài),在此狀態(tài)用戶輸入任何口令都不起作用,同時以手機短信方式向注冊用戶發(fā)出報警。直到等待狀態(tài)結(jié)束,用戶才可以再次輸入口令進行驗證了。若認證失敗的次數(shù)超過最大值,用戶被鎖定,認證服務(wù)器不再接收用戶口令,通過短信方式通知用戶到注冊中心辦理解鎖業(yè)務(wù)。
一次性口令認證技術(shù)可以抵御重放攻擊、口令猜測攻擊等常見的靜態(tài)口令的攻擊,但其難以抵御中間人攻擊。本文對一次性口令認證技術(shù)和移動支付的安全問題進行了全面分析,指出其存在安全隱患的原因,并在此基礎(chǔ)上提出基于移動支付一次性口令認證協(xié)議的設(shè)計思路和設(shè)計內(nèi)容。
[1]朱美佳.移動支付中動態(tài)口令身份認證方案研究[J].西安電子科技大學(xué),2011,1.
[2]王曉娥.移動支付存在的主要問題及市場切入點分析[J].寧夏工程技術(shù),2004,6.
[3]高雪,張煥國,孫曉梅.一種改進的一次性口令認證方案[[J].計算機應(yīng)用研究,2006,23(6):127-128,132.
[4]王洪瑩.移動商務(wù)身份認證系統(tǒng)的研究與設(shè)計[D].北京交通大學(xué),2007,6.
[5]劉天法,馮啟源,楊桂勇.基于一次性口令的認證技術(shù)的研究[J].計算機應(yīng)用與軟件,2007,8:177-179.
[6]隋品,方勇,李民,劉林超.一次性口令機制身份鑒別技術(shù)的改進設(shè)計和實現(xiàn)[J].信息與電子工程,2005,3(4):297-299.
[7]王敏,戴宗坤,方勇.一種新的一次性口令機制及其應(yīng)用[J].計算機應(yīng)用研究,2005.