国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于手機令牌的移動應(yīng)用雙向身份認(rèn)證方案研究*

2014-09-29 04:49:30鄭兆華彭金蓮程杰仁
電信科學(xué) 2014年9期
關(guān)鍵詞:令牌明文口令

鄭兆華,彭金蓮,程杰仁

(海南大學(xué)信息科學(xué)技術(shù)學(xué)院 ???70228)

1 引言

隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,越來越多企業(yè)希望通過移動信息化提高效率。作為移動信息化核心的移動應(yīng)用已成為企業(yè)典型應(yīng)用。移動應(yīng)用將企業(yè)核心業(yè)務(wù)數(shù)據(jù)延伸到移動終端中運用,然而安全問題是制約企業(yè)移動信息化發(fā)展的一個主要瓶頸。移動應(yīng)用是在開放移動互聯(lián)網(wǎng)場景下的頻繁交互,需要認(rèn)證用戶的合法性。目前絕大部分移動應(yīng)用采用靜態(tài)口令認(rèn)證,其安全性難以控制,容易被猜測、竊聽和暴力破解,不能滿足企業(yè)移動信息化的安全要求。動態(tài)口令認(rèn)證技術(shù)能夠彌補靜態(tài)口令的不足,能滿足移動應(yīng)用的安全認(rèn)證要求。

2 動態(tài)口令技術(shù)

2.1 動態(tài)口令實現(xiàn)原理及實現(xiàn)機制

動態(tài)口令,又叫一次性口令,是指在認(rèn)證中加入了時間、隨機數(shù)等不確定因素,使用專門算法生成的一個不可預(yù)測的隨機數(shù)字。每個密碼只能使用一次,使得攻擊者無法通過竊取口令或重放攻擊來獲取登錄權(quán)限。動態(tài)口令被公認(rèn)為是最安全的身份認(rèn)證方式之一,并獲得廣泛應(yīng)用。根據(jù)動態(tài)因素不同,可分為時間同步機制、事件同步機制和挑戰(zhàn)/應(yīng)答機制[1],具體介紹如下。

·時間同步機制以登錄時間作為動態(tài)因素。優(yōu)點是實現(xiàn)簡單,但對時間準(zhǔn)確度要求較高,技術(shù)上難以實現(xiàn)。數(shù)據(jù)在網(wǎng)絡(luò)上傳輸和處理存在一定時延,增大了重放攻擊和暴力破解的可能性[2]。

·事件同步機制是以事件的次序作為動態(tài)因素。該機制比較容易實現(xiàn),不需要特殊硬件的支持,但同樣存在失去同步的風(fēng)險。

·挑戰(zhàn)/應(yīng)答機制是以認(rèn)證服務(wù)器發(fā)出的挑戰(zhàn)碼作為動態(tài)因素。它有很高的安全性,并不涉及同步問題,是目前最可靠的認(rèn)證方法之一,但缺點是存在單向認(rèn)證和需人工輸入挑戰(zhàn)碼。

時間同步和事件同步機制容易失去同步,可靠性不是很高;挑戰(zhàn)/應(yīng)答機制雖然增加用戶輸入步驟,但是可靠性最好。如果能自動輸入挑戰(zhàn)碼并雙向認(rèn)證,就是一種較優(yōu)的解決方案。

2.2 動態(tài)口令的實現(xiàn)方式

實現(xiàn)方式分為硬件令牌和軟件令牌。目前大部分采用硬件令牌,如中國銀行e-token、網(wǎng)易將軍令、盛大密寶、QQ令牌等。硬件令牌是一種采用內(nèi)置電源、存儲器、密碼計算芯片和顯示屏的設(shè)備,具有使用便利、安全性高等特點[3]。但它“認(rèn)牌不認(rèn)人”,雖然攜帶方便,但也容易丟失;缺少通信模塊,認(rèn)證服務(wù)器無法對其管理和更新數(shù)據(jù),一旦失去同步,將無法使用;實施成本較高,這對于預(yù)算有限的中小企業(yè)來說,顯然是不現(xiàn)實的。

軟件令牌指使用軟件實現(xiàn)的令牌。隨著移動時代的到來,智能手機的迅速普及為軟件令牌帶來了發(fā)展機遇。軟件令牌無需用戶攜帶額外的設(shè)備,相對硬件令牌來說,手機有通信模塊,功能更強大,能有效解決上述硬件令牌的缺點。軟件令牌必將成為行業(yè)的發(fā)展趨勢。

軟件令牌具有安全性高、使用便捷、實施成本低的特點,非常適合中小企業(yè)使用。韋廣劍提出基于Android令牌的身份認(rèn)證系統(tǒng)[4]是基于時間同步機制的,存在時間失步和被跟蹤破解的風(fēng)險;郭建昌等提出一種電信級手機令牌動態(tài)口令系統(tǒng)[5],但對于普通企業(yè)來說,并不具備實施條件;葉晰也提出手機令牌方案[6],但是其使用過時的J2ME技術(shù)。本文提出一種基于手機令牌的身份認(rèn)證新方案。該方案采用更安全的指紋而不是PIN碼作為使用憑證,能真實地綁定使用者和手機令牌的關(guān)系;能夠?qū)崿F(xiàn)雙向可信認(rèn)證,并以分段雙通道(互聯(lián)網(wǎng)+短信)方式進行加密通信;能遠程初始化手機令牌,方便令牌發(fā)放。

3 身份認(rèn)證方案

身份認(rèn)證方案包括手機令牌注冊和身份認(rèn)證兩部分。手機令牌注冊包括手機令牌初始化和令牌發(fā)放過程。身份認(rèn)證是指手機令牌生成動態(tài)口令,然后通過身份認(rèn)證系統(tǒng)進行身份認(rèn)證。涉及的符號及其說明見表1。

表1 符號和說明

3.1 手機令牌注冊過程

注冊過程是指手機令牌(MT)向認(rèn)證服務(wù)器(AS)登記指紋信息、設(shè)備信息和賬戶相關(guān)信息,并初始化的過程,如圖1所示。具體說明如下。

(1)用戶(U)掃描指紋,登記注冊信息。指紋具有普遍性、唯一性和永久性等特征,是世界公認(rèn)的身份識別標(biāo)識,是一種最高水平的安全保密解決方案[7]。指紋加密存儲在手機令牌內(nèi),并作為使用者的憑證,只有和登記指紋相吻合,才能使用該令牌。注冊信息主要包括賬戶、姓名、性別、E-mail、手機號等注冊信息。其中手機號必填,作為除互聯(lián)網(wǎng)之外的信道,用于傳輸敏感信息。

圖1 注冊過程

(2)發(fā)送指紋、硬件特征碼和注冊信息到認(rèn)證服務(wù)器。硬件特征碼HFC=SHA1(手機 IMEI+SIM卡 IMSI),用于標(biāo)識硬件運行環(huán)境。具體處理步驟如下。

生成隨機數(shù)R1和臨時通信密鑰TPK;明文 (PT)=指紋+注冊信息+HFC+R1,進行數(shù)字簽名SGPB(PT);用AS的私鑰加密TPK;用TPK加密明文。

處理后,將密文、加密的TPK和簽名一起發(fā)送給AS。

(3)注冊賬戶,生成令牌序列號、通信密鑰和短信密鑰。AS用私鑰解密簽名和TPK,然后用TPK解密密文。SHA1(明文)與解密后的簽名進行比較,以驗證信息完整性。驗證通過后,注冊用戶,提取指紋特征碼(FFC)。把當(dāng)前時間、FFC、HFC和注冊信息使用專門算法處理后,生成令牌序列號(SN)、通信密鑰(CK)和短信密鑰(SK)。將 CK、SK、HFC和 FFC 用 AS的公鑰加密存儲在數(shù)據(jù)庫。密鑰CK和SK屬于核心機密,使用短信和互聯(lián)網(wǎng)雙通道傳送給MT。具體處理過程如下。

·生成隨機數(shù)R2,對明文中隨機數(shù)R1進行Fn(R1)處理。

·將SK分為SK1和SK2,將 CK分為 CK1和CK2。

·互聯(lián)網(wǎng)通道回應(yīng):首先,(PT)=SN+CK1+SK2+Fn(R1)+R2,進行數(shù)字簽名(DS)=SGPR(PT);然后,用TPK 加密明文;最后,將密文和數(shù)字簽名通過互聯(lián)網(wǎng)通道回應(yīng)給手機令牌。

·短信通道回應(yīng)類似互聯(lián)網(wǎng)回應(yīng),明文是(CK2,SK1,F(xiàn)n(R1),R2),最后短信給令牌注冊手機號。

由于密鑰分段和雙通道傳輸,只要黑客不能在全部通道截獲所有信息,就不能復(fù)原密文。在不能復(fù)原密文的情況下,即使竊取了密鑰,也無法破解密文,從而保證了密鑰安全。

(4)接收通信密鑰、短信密鑰和令牌序列號,令牌初始化完成。具體處理過程如下。

·對于互聯(lián)網(wǎng)通道的處理:首先,MT使用AS公鑰對簽名解密,用緩存的密鑰TPK進行解密密文;然后,SHA1(明文)與解密的簽名比較,以驗證數(shù)據(jù)完整性,對緩存隨機數(shù)R1進行Fn(R1)處理,與明文中Fn(R1)比較,以對認(rèn)證服務(wù)器進行可信認(rèn)證。如果這兩個比較均通過,表明MT收到的數(shù)據(jù)完整,認(rèn)證服務(wù)可信;最后,對明文進行處理得到SN、CK1、SK2。

·短信通道處理類似互聯(lián)網(wǎng)通道,最終處理得到CK2和SK1。

·CK=CK1+CK2,SK=SK1+SK2。將SN設(shè)置到手機令牌。使用根密鑰(RK)加密CK,用CK加密SK,并存儲到手機令牌。

·發(fā)送確認(rèn)通知。生成隨機數(shù)R3,對R2進行Fn(R2)處理,對明文數(shù)字簽名SGPB(Fn(R2)+R3)。使用通信CK加密明文,用公鑰加密SN。最后將密文和簽名加密SN回應(yīng)AS。

·AS收到后,用私鑰解密SN,從數(shù)據(jù)庫檢索對應(yīng)通信密鑰CK解密密文。SHA1(明文)和其私鑰解密的簽名比較。將緩存的R2進行Fn(R2)處理,然后和明文Fn(R2)比較。比較均通過后,表明數(shù)據(jù)完整,MT可信并正確收到密鑰了。

整個過程中,簽名用于確保傳輸數(shù)據(jù)的完整性。Fn是算法保密的函數(shù),用于MT與AS進行雙向可信認(rèn)證。AS能用ECC私鑰解密,表明其可信。通過密鑰分段雙通道傳輸數(shù)據(jù)以及多級加密存儲等方式,多方面提高密鑰安全性,保障了令牌的安全性。

3.2 認(rèn)證過程

用戶掃描指紋,啟用手機令牌并產(chǎn)生動態(tài)口令,然后發(fā)送給認(rèn)證服務(wù)器進行身份認(rèn)證,如圖2所示。具體說明如下。

(1)掃描指紋,啟用手機令牌,發(fā)送SN。用戶在手機令牌上掃描指紋驗證身份,然后將SN發(fā)送給認(rèn)證服務(wù)器。具體處理過程如下。

生成隨機數(shù)R1;明文(PT)=Fn(SN)+R1,進行數(shù)字簽名SGPB(PT);用AS公鑰對SN加密;用CK加密明文,并與加密的SN和簽名一起發(fā)送給AS。

圖2 認(rèn)證過程

(2)生成挑戰(zhàn)碼和口令算法密鑰K。AS用私鑰解密SN,并根據(jù)SN查找對應(yīng)的密鑰CK來解密密文。通過SHA1(明文)和解密后的簽名比較,確認(rèn)數(shù)據(jù)完整性。將SN進行Fn(SN)處理,然后通過和明文中的Fn(SN)比較,對令牌可信認(rèn)證。比較均通過后,AS使用SN、特征碼和當(dāng)前時間作為影響因素,生成隨機的不重復(fù)挑戰(zhàn)碼C和口令算法密鑰K。由于C和K屬于機密信息,關(guān)系著動態(tài)口令安全性,需要對其進行分段和雙信道傳輸,具體步驟如下。

算法密鑰K分為K1和K2兩部分,挑戰(zhàn)碼C分為C1和C2兩部分;產(chǎn)生隨機數(shù)R2;互聯(lián)網(wǎng)通道回應(yīng):首先,明文(PT)=K1+C2+Fn(R1)+R2,進行數(shù)字簽名SGPR(PT);然后,用CK加密明文;最后,將密文和簽名通過互聯(lián)網(wǎng)通道回應(yīng)手機令牌請求;短信通道回應(yīng)類似互聯(lián)網(wǎng)處理,明文是K2+C1+Fn(R1)+R2,最后短信給令牌注冊手機。

將信息分段和打亂次序,提高破解難度,增加安全性。Fn(R1)用于可信認(rèn)證。為了節(jié)約成本,C1和K2相對短小,保證一條短信就可發(fā)送。

(3)手機令牌生成動態(tài)口令,具體過程如下。

·互聯(lián)網(wǎng)信道處理:MT用密鑰CK解密密文。通過SHA1(明文)與解密簽名比較來判斷數(shù)據(jù)完整性。對緩存的R1進行Fn(R1)處理,然后通過與明文中Fn(R1)比較,從而認(rèn)證服務(wù)器可信。最后得到C2和K1。

·短信信道處理類似互聯(lián)網(wǎng)信道,最后獲得C1和K2。

·挑戰(zhàn)碼C=C1+C2,口令算法密鑰K=K1+K2。

·提取指紋特征碼(FFC)。S=FFC+HFC+SN+C。用密鑰K對S進行AES加密,然后SHA1摘要,得到長度20的字符串ABS。通過GC(ABS)處理得到8位的動態(tài)口令,并向AS發(fā)送時效同步通知,時效為60 s。

(4)認(rèn)證服務(wù)器按同樣算法生成動態(tài)口令。

(5)同步時效。AS收到令牌的通知后開始同步計算口令的時效。

(6)驗證動態(tài)口令。用戶輸入MT的動態(tài)口令和賬戶,以加密形式發(fā)送到AS進行身份認(rèn)證。AS解密收到信息,并驗證賬戶、動態(tài)口令及時效,認(rèn)證過程結(jié)束。

4 安全性分析

關(guān)于本文提出方案的安全性分析如下。

·截獲/重放攻擊。即使攻擊者竊聽到用戶的動態(tài)口令,但是由于動態(tài)口令是一次性的,發(fā)送給AS也不能通過認(rèn)證。通信中引入不重復(fù)隨機數(shù)R,當(dāng)入侵者進行重放攻擊時,因為重復(fù)隨機數(shù),而拒絕請求,重放攻擊失敗。

·小數(shù)攻擊。手機令牌和認(rèn)證服務(wù)器的通信過程是采用AES加密和ECC簽名,安全性很高,攻擊者無法竊取敏感信息,也無法進行小數(shù)攻擊。動態(tài)口令以動靜因子相結(jié)合的算法產(chǎn)生,并無規(guī)律可循,也避免了小數(shù)攻擊。

·中間人攻擊。手機令牌和認(rèn)證服務(wù)器采用加密通信和雙向可信認(rèn)證,口令和密鑰等敏感信息通過分段雙通道加密發(fā)送。中間人攻擊將因為這些措施而攻擊失敗。

·暴力破解。該系統(tǒng)的安全性依賴于AES加密算法和ECC加密算法的安全性。AES是公認(rèn)最安全的對稱加密算法[8],是目前公認(rèn)最高比特加密強度的公鑰算法[9],目前沒有有效可行的破解辦法。AES和ECC確保攻擊者無法獲取有效信息,也無從攻擊。認(rèn)證服務(wù)器的賬戶鎖定功能使得蠻力攻擊和猜測攻擊難以成功,因為在有限次數(shù)內(nèi)猜中動態(tài)口令的概率極小。

·保證物理安全。即使用戶的移動終端丟失或者被盜,由于令牌使用指紋憑證,只能用戶本人使用。指紋也是口令計算因素之一,缺少了指紋,將無法生成動態(tài)口令。

5 仿真結(jié)果及分析

實驗環(huán)境包含運行在Android系統(tǒng)上的手機令牌仿真程序和利用Java開發(fā)的仿真認(rèn)證服務(wù)器兩部分。其中手機令牌運行在三星的NoteⅡ智能手機上,認(rèn)證服務(wù)器運行在部署了Tomcat 6.0的PC上,設(shè)備的主要參數(shù)見表2。

表2 設(shè)備主要參數(shù)

首先,進行算法功能性測試。經(jīng)過多次測試,結(jié)果表明算法正確,功能正常。然后,測試口令生成效率。圖3是測試50次的實驗結(jié)果。

從圖3可以看出生成口令過程中,手機令牌耗時為8~20 ms,平均 10.8 ms;認(rèn)證服務(wù)器耗時為 1~4 ms,平均2.3 ms。因此,該認(rèn)證方案具有非常高的運行效率。

6 結(jié)束語

隨著互聯(lián)網(wǎng)和智能手機產(chǎn)業(yè)的發(fā)展,手機令牌動態(tài)口令技術(shù)具備覆蓋范圍廣、安全性高、成本低和攜帶方便等特點,是未來移動應(yīng)用身份認(rèn)證解決方案的發(fā)展方向。本文提出一種手機令牌身份認(rèn)證方案,它使用指紋作為令牌使用憑證,精確地綁定手機令牌和使用者的關(guān)系,采用分段雙通道方式傳送密鑰和挑戰(zhàn)碼,并在通信過程中能夠雙向可信認(rèn)證;口令生成算法將動靜因子結(jié)合,并以AES、SHA1算法為基礎(chǔ);該方案運用手機作為令牌載體,實現(xiàn)一種軟件令牌,具有使用便捷、安全性高、運行效率高、成本低、功能強大和人性化等特點,非常適合移動應(yīng)用的身份認(rèn)證。

圖3 生成口令性能

1 鄭強,高能,張令臣.基于SM3算法的動態(tài)口令卡的設(shè)計與實現(xiàn).計算機應(yīng)用與軟件,2013,30(2):14~17

2 張利華,章麗萍,張有光等.基于口令的遠程身份認(rèn)證及密鑰協(xié)商協(xié)議.計算機應(yīng)用,2009,29(4):924~927

3 林元明.基于手機令牌的身份認(rèn)證系統(tǒng)的研究與實現(xiàn).廈門大學(xué)碩士學(xué)位論文,2009

4 韋廣劍.基于Android令牌的動態(tài)密碼認(rèn)證系統(tǒng)的研究與實現(xiàn).武漢理工大學(xué)碩士學(xué)位論文,2012

5 郭建昌,郭茂文,黎艷.一種電信級手機令牌動態(tài)口令系統(tǒng)的架構(gòu)設(shè)計及其實現(xiàn).電信科學(xué),2012,28(10):94~98

6 葉晰,葉依如,岑琴.基于手機令牌的動態(tài)口令身份認(rèn)證系統(tǒng)的實現(xiàn).計算機系統(tǒng)應(yīng)用,2010,19(10):32~36

7 劉超凡,張永良,肖剛等.基于滾動指紋數(shù)字簽名的電子商務(wù)安全認(rèn)證.計算機應(yīng)用,2012,32(2):475~479

8 趙新杰,王韜,郭世澤等.AES訪問驅(qū)動Cache計時攻擊.軟件學(xué)報,2011,22(3):572~591

9 閆茂德,紀(jì)志強,賀昱曜等.AES與ECC混合加密算法的無線數(shù)據(jù)通信系統(tǒng)設(shè)計.微電子學(xué)與計算機,2007,24(7):135~138

猜你喜歡
令牌明文口令
稱金塊
基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
高矮胖瘦
口 令
動態(tài)令牌分配的TCSN多級令牌桶流量監(jiān)管算法
計算機工程(2018年8期)2018-08-17 00:26:54
奇怪的處罰
好玩的“反口令”游戲
SNMP服務(wù)弱口令安全漏洞防范
奇怪的處罰
延庆县| 大英县| 高淳县| 岳阳县| 永丰县| 西贡区| 胶州市| 丘北县| 息烽县| 高青县| 灌南县| 新和县| 甘孜县| 义乌市| 云安县| 鸡泽县| 原阳县| 精河县| 屏南县| 确山县| 彭山县| 白水县| 唐海县| 万安县| 泗洪县| 平顶山市| 翁源县| 宁明县| 英山县| 全椒县| 连江县| 辉南县| 旬邑县| 双牌县| 佳木斯市| 陵水| 营山县| 大理市| 汾阳市| 靖江市| 宜昌市|