劉坤
摘要:隨著電子支付平臺的流行,身份認(rèn)證技術(shù)在電子商務(wù)交易中越來越重要。該文分析目前流行的雙因子認(rèn)證技術(shù)和動態(tài)口令認(rèn)證技術(shù)原理,然后給出了基于HMAC一次性密碼(HOTP)算法,對HOTP算法進(jìn)行詳細(xì)描述,并通過實(shí)例分析了算法計算動態(tài)密鑰的過程。該算法實(shí)現(xiàn)簡單,可以根據(jù)實(shí)際需要動態(tài)生成口令,很好解決靜態(tài)口令在電子支付系統(tǒng)中的缺陷。
關(guān)鍵詞:身份認(rèn)證;雙因子認(rèn)證;動態(tài)口令;HOTP算法
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)31-7284-03
Abstract: With the popularity of electronic payment platform, identity authentication technology is more and more important in electronic commerce transaction. This article analyzes the present popular two factor authentication technology and the dynamic password authentication technology and gives the HMAC a one-time password (HOTP) algorithm, based on the detailed description of the HOTP algorithm, through the case analysis process of dynamic key calculation algorithm. The algorithm is simple to implement, can according to the actual need to dynamically generate password. It is a very good solution to the static password in an electronic payment system defects.
Key words: identity authentication; two factor authentication; dynamic password; HOTP algorithm
隨著電子商務(wù)的迅速發(fā)展,網(wǎng)上支付業(yè)務(wù)的快速發(fā)展,越來越多的人開始使用手機(jī)購物付款,這樣的購物既方便又快捷受到大家的喜歡,但是隨之帶來的安全問題也越來越嚴(yán)重,在WIFI上網(wǎng)購物支付的時候,很可能會話被劫持,從而導(dǎo)致支付密碼被別人盜用,身份認(rèn)證技術(shù)可以很好解決這個問題。
身份認(rèn)證技術(shù)是讓認(rèn)證方相信正在與之通信的另一方就是所聲稱的那個實(shí)體,其目的是防止偽裝。身份認(rèn)證技術(shù)的本質(zhì)是被認(rèn)證方有一些信息(無論是一些秘密信息還是一些個人持有的特殊硬件或個人特有的生物學(xué)信息),除被認(rèn)證方自己外,任何第三方不能擁有或偽造,被認(rèn)證方能夠使認(rèn)證相信他確實(shí)擁有哪些秘密,則他的身份就得到了認(rèn)證,目前在電子商務(wù)被廣泛使用的是雙因子認(rèn)證技術(shù),利用該技術(shù)進(jìn)行身份認(rèn)證安全性高,方便易操作。該文主要研究分析實(shí)現(xiàn)雙因子認(rèn)證技術(shù)的HOTP算法,重點(diǎn)闡述了HOTP算法原理,實(shí)現(xiàn)過程,有助于雙因子認(rèn)證技術(shù)推廣和在移動互聯(lián)網(wǎng)上實(shí)現(xiàn)。
1 雙因子認(rèn)證原理
雙因子認(rèn)證(2FA)是指結(jié)合密碼以及實(shí)物如信用卡、SMS手機(jī)、令牌或指紋等生物標(biāo)志,兩種條件對用戶進(jìn)行認(rèn)證的方法。這種方法已經(jīng)為企業(yè)所采用,特別是在遠(yuǎn)程訪問時,但在其它領(lǐng)域應(yīng)用還很有限。雙因子認(rèn)證的推廣之所以受阻,主要在于其需要使用額外的工具并且為IT和技術(shù)支持人員帶來負(fù)擔(dān)。
為減輕必須攜帶專用雙因子令牌設(shè)備所帶來的阻力,可以利用現(xiàn)在無處不在的移動計算平臺作為雙因子客戶平臺。目前移動通信的迅速發(fā)展,是電子商務(wù)企業(yè)采用雙因子認(rèn)證的主要動力,電子支付行業(yè)團(tuán)體,如PCI和APACS已經(jīng)開始強(qiáng)制使用雙因子認(rèn)證。
雙因子認(rèn)證的核心就是HOTP算法,它會根據(jù)密鑰和時間戳計算一個一次性密碼,并且每隔一定時間會產(chǎn)生一個新的一次性密碼,密鑰只有服務(wù)器和用戶知道,所以問題的關(guān)鍵就是用戶的智能手機(jī)和服務(wù)器的時間必須同步。
雙因子認(rèn)證技術(shù)中采用動態(tài)口令認(rèn)證是應(yīng)用最廣的一種身份識別方式,一般是長度為5~8的字符串,由數(shù)字、字母、特殊字符、控制字符等組成。用戶名和口令的方法幾十年來一直用于提供所屬權(quán)和準(zhǔn)安全的認(rèn)證來對服務(wù)器提供一定程度的保護(hù)。當(dāng)你每天訪問自己的電子郵件服務(wù)器、服務(wù)器要采用用戶名與動態(tài)口令對用戶進(jìn)行認(rèn)證的,一般還要提供動態(tài)口令更改工具。
2 動態(tài)口令認(rèn)證原理
身份認(rèn)證實(shí)現(xiàn)的方式很多,目前最流行的是動態(tài)口令,動態(tài)口令牌是客戶手持用來生成動態(tài)密碼的終端,主流的是基于時間同步方式,每60秒變換一次動態(tài)口令,口令一次有效,它產(chǎn)生6位動態(tài)數(shù)字進(jìn)行一次一密的方式認(rèn)證。
動態(tài)口令又叫“一次性口令”,是由電子令牌等手持終端設(shè)備生成的,根據(jù)某種加密算法,產(chǎn)生的隨某個不斷變化的參數(shù)不停地、沒有重復(fù)變化的一種口令,是為了解決傳統(tǒng)靜態(tài)的、固定的口令和密碼存在的無法解決的缺陷,而設(shè)計的一種密碼體制,以保護(hù)用戶的關(guān)鍵數(shù)據(jù)資源。動態(tài)口令認(rèn)證是一種摘要認(rèn)證,單項散列函數(shù)在其中起著非常重要的作用,在登錄過程中基于用戶的密碼通行短語加入不確定因素,使每次登錄過程中傳送的信息都不相同,以提高登錄過程安全性。
動態(tài)口令認(rèn)證方法和原理,當(dāng)令牌或其他終端設(shè)備持有者將令牌中計算出來的某一時刻的口令輸入計算機(jī)的登錄窗口時,在計算機(jī)另一端的認(rèn)證服務(wù)器軟件會根據(jù)相同的算法和同樣的要素計算出這一時刻對應(yīng)于該令牌的認(rèn)證口令,這個口令用來與令牌產(chǎn)生口令比對,進(jìn)行身份認(rèn)證,對比相同,則通過認(rèn)證,對比不同,則不能通過認(rèn)證。
但是由于基于時間同步方式的動態(tài)令牌存口在60秒的時間窗口,導(dǎo)致該密碼在這60秒內(nèi)存在風(fēng)險,現(xiàn)在已有基于事件同步的,雙向認(rèn)證的動態(tài)口令牌?;谑录降膭討B(tài)口令,是以用戶動作觸發(fā)的同步原則,真正做到了一次一密,并且由于是雙向認(rèn)證,即:服務(wù)器驗證客戶端,并且客戶端也需要驗證服務(wù)器,從而達(dá)到了徹底杜絕木馬網(wǎng)站的目的。
3 HOTP算法研究與分析
企業(yè)或公司在部署雙因子身份驗證時仍然受到范圍和規(guī)模限制。盡管目前網(wǎng)絡(luò)攻擊水平越來越高,但是大多數(shù)網(wǎng)絡(luò)應(yīng)用程序仍然依靠簡單的用戶訪問身份驗證方案。因為缺乏硬件和軟件技術(shù)供應(yīng)商之間的互操作性是采用雙因子身份驗證技術(shù)一個限制因素。特別是,開放規(guī)范的缺失導(dǎo)致解決方案在硬件和軟件組件技術(shù)困難,高成本解決方案。
一次性密碼肯定是最簡單、最受歡迎雙因子身份驗證來保護(hù)網(wǎng)絡(luò)訪問。大型企業(yè)、虛擬私人網(wǎng)絡(luò)訪問需要使用一次性密碼令牌為遠(yuǎn)程用戶身份驗證。一次性密碼使用上比公鑰基礎(chǔ)設(shè)施(PKI)或認(rèn)證生物識別技術(shù)更靈活方便,因為一個第三方裝置或客戶端桌面軟件不需要在用戶機(jī)器上安裝。
本文研究分析HOTP算法是一個產(chǎn)生動態(tài)口令的算法,HOTP算法可以產(chǎn)生一次性密碼實(shí)現(xiàn)任何硬件制造商和軟件開發(fā)商創(chuàng)建可互操作的身份驗證設(shè)備和軟件代理。該算法是基于事件的,這樣它就可以嵌入大容量設(shè)備如Java智能卡,USB軟件狗,GSM SIM卡。
HOTP是基于散列的消息認(rèn)證碼(HMAC)的一次密碼算法,該算法可以運(yùn)用于從遠(yuǎn)程虛擬專用網(wǎng)絡(luò)訪問,以及使用Wi-Fi網(wǎng)絡(luò)登錄交易的電子商務(wù)網(wǎng)站。下面詳細(xì)介紹該算法內(nèi)容,首先說明算法中使用的符號。
算法中一個字符串是一個二進(jìn)制字符串,也就是由0和1組成的序列,如果s是一個字符串,則|s|表示其長度,如果n是一個數(shù)字,則|n|表示其絕對值,如果s是一個字符串,則s[i]表示第i位,因此s=s[0]s[1]…s[n-1],n=|s|表示s的長度。StTONum表示字符串s計算得到的數(shù)字,如StToNum(110)=6。
4 結(jié)束語
基于HOTP的雙因子認(rèn)證技術(shù)算法簡單,實(shí)現(xiàn)容易,利用開源代碼平臺可以輕松實(shí)現(xiàn)。利用該算法產(chǎn)生的一次性密碼,可應(yīng)用于目前電子商務(wù)支付系統(tǒng)中的動態(tài)口令身份認(rèn)證技術(shù),大大提高交易的安全性,同時這中算法是基于事件的,解決了基于時間計算動態(tài)口令的客戶端和服務(wù)器的同步問題,應(yīng)用前景廣泛。
參考文獻(xiàn):
[1] 陳紅霞,李陶深.基于TEA算法的企業(yè)網(wǎng)動態(tài)口令安全系統(tǒng)研究[J].信息技術(shù),2010(3):20-22.
[2] 李美滿,易德成.基于ECC的增強(qiáng)型雙因子身份認(rèn)證系統(tǒng)的設(shè)計[J].湘潭大學(xué)自然科學(xué)學(xué)報,2009,31(2):144-147.
[3] 牟化建,李欣妍.基于ECC具有消息恢復(fù)功能的雙向身份認(rèn)證簽名[J].計算機(jī)安全,2013(8):12-14.
[4] 任慧琴.一種基于隨機(jī)矩陣的雙因子身份驗證方法[J].電腦知識與技術(shù),2009,5(16):4267-4268.
[5] Bruce Schneier.應(yīng)用密碼學(xué)協(xié)議、算法與C源程序[M]北京:機(jī)械工業(yè)出版社,2014.
[6] Mark Stamp.信息安全原理與實(shí)踐[M].北京:清華大學(xué)出版社,2013.
[7] 申永軍,徐華龍.一種雙因子的雙向身份認(rèn)證系統(tǒng)[J].計算機(jī)應(yīng)用研究,2008,25(9):2822-2825.
[8] 吳永英,鄧路,肖道舉,等.一種基于USB Key的雙因子身份認(rèn)證與密鑰交換協(xié)議[J].計算機(jī)工程與科學(xué),2007,29(5):56-59.