余小亮,盧達龍,吳 煒,王云峰
(廈門大學 信息科學與技術(shù)學院,福建 廈門 361005)
適用于手機支付的身份認證機制
余小亮,盧達龍,吳 煒,王云峰
(廈門大學 信息科學與技術(shù)學院,福建 廈門 361005)
手機支付已經(jīng)成為目前電子商務(wù)平臺的主要支付手段,但用于手機支付的雙重認證機制無法抵抗手機病毒感染、手機號碼被復制、手機丟失帶來的安全隱患。本文基于用戶賬戶、密碼、手機序列號IMEI,借助于哈希函數(shù)、公鑰密碼等密碼技術(shù),設(shè)計了一個適用于手機支付的三級身份認證協(xié)議。經(jīng)安全性分析,此機制具備安全性。
手機支付;身份認證;哈希函數(shù);公鑰密碼
互聯(lián)網(wǎng)的飛速發(fā)展,方便了人們的生活,上網(wǎng)聊天、電子郵件、電子論壇等免費網(wǎng)絡(luò)服務(wù)也逐漸成為人們生活的一部分[1]。網(wǎng)絡(luò)交易的頻繁進行極大地促進了手機電子商務(wù)的發(fā)展[2]。然而,由于網(wǎng)絡(luò)本身的開放性,如何安全的進行交易成為人們所關(guān)注的問題[3]。網(wǎng)上交易的第一步是身份驗證,它是保證交易系統(tǒng)安全的第一道門檻,也是一切安全技術(shù)的基礎(chǔ)[4]。隨著科技的快速發(fā)展,手機在電子商務(wù)中的作用不斷突出,利用手機動態(tài)驗證碼進行身份驗證的方式被越來越多的人接受并使用。
基于手機動態(tài)驗證碼的身份認證方式,在網(wǎng)上銀行和淘寶、京東等電商平臺上得到廣泛的運用[5,6]。手機動態(tài)驗證碼認證方式的實質(zhì)是將手機作為用戶身份的標識,可是,如果用戶的手機中毒、丟失或是手機號碼被復制,都會使得動態(tài)驗證碼被非法盜用,那么盜用者就可以冒充用戶通過身份認證進入到接下來的操作中。這就給用戶的個人信息保護以及財產(chǎn)保護帶來不安全的隱患。此外,2015年315晚會還曝光了這樣一個問題:公共場所的免費WIFI居然會偷錢。究其原因竟然是用戶在WIFI中傳輸?shù)男畔⒍际且悦魑牡男问街苯觽鬏數(shù)摹?/p>
為了解決上述機動態(tài)驗證安全問題,同時避免信息在WIFI中以明文進行傳輸?shù)默F(xiàn)象,本文基于隨機數(shù)發(fā)生器、用戶賬戶、密碼、手機序列號IMEI,借助于哈希函數(shù)[7]與公鑰密碼[8]等密碼技術(shù),設(shè)計了一個適用于手機支付的三級身份認證協(xié)議。經(jīng)安全性分析,此方案可以抵制目前已知的各種攻擊技術(shù),即使是手機丟失或是手機號碼被復制也具備安全性。
為確保網(wǎng)絡(luò)交易的安全性以及身份的可認證性,當今認證系統(tǒng)普遍采取了雙重驗證機制,即除了“用戶名+密碼”驗證外,還附加使用手機動態(tài)驗證碼的驗證方式[5]。認證過程如圖1所示。
圖中,請求方A向認證系統(tǒng)B請求通過身份驗證,先要將自己的用戶名和密碼輸入到認證系統(tǒng)B中,進行第一次身份認證;在通過第一次身份認證之后,認證系統(tǒng)B再向請求方A的手機上發(fā)送短信動態(tài)驗證碼,A收到動態(tài)驗證碼后立即將其送回給認證系統(tǒng)B,進行第二次身份認證。
圖1 雙重認證機制
在這個認證過程中,第一次認證確保請求方A在賬號或是密碼沒有被竊取的情況下可以安全完成身份認證;但是,如果A的賬號和密碼被有心人士C竊取,那么可能存在C冒充A通過身份認證,然后發(fā)送虛假信息或接收信息等。而第二次認證通過向A的手機發(fā)送動態(tài)驗證碼,C無法獲得動態(tài)驗證碼,也就無法完成第二次認證。因此,利用賬號+密碼和手機動態(tài)驗證碼雙重認證的方式,使得身份認證過程更加安全。
但是現(xiàn)實生活中雙重認證機制應用于手機上存在以下缺點:(1)如果手機中毒導致賬戶、密碼和認證動態(tài)碼泄露會使攻擊者具備與手機用戶同樣的操作權(quán)限,給手機用戶帶來經(jīng)濟損失;(2)如果手機丟失,同樣受到賬戶、密碼和認證動態(tài)碼泄露威脅;(3)攻擊者通過監(jiān)視等非法手段獲得用戶名和密碼后非法復制手機號碼就可以偽裝成手機用戶。
為了解決手機支付雙重認證的安全問題,對電子商務(wù)中的身份認證協(xié)議進行了設(shè)計,提出了三級身份認證機制。請求方和認證方之間利用公鑰加密體制進行信息傳遞,并利用SHA-256算法生成動態(tài)驗證碼。三級身份認證中各個變量含義如表1所示。
表1 三級認證機制中各個參數(shù)
第一級認證流程如圖2所示,步驟如下:
步驟1:請求方A(或手機A)向認證系統(tǒng)B發(fā)出請求,想要進行身份認證。
步驟2:B系統(tǒng)接收到請求后,允許認證。
步驟3:A使用自己的自己私鑰Kd_A利用公鑰密碼對登錄賬戶名name_A和登錄密碼secret_A進行加密,生成密文Kd_A(name_A||secret_A),然后再用B的公鑰Ke_B對Kd_A(name_A||secret_A)進行加密,生成密文Ke_B(Kd_A(name_A|| secret_A))送給認證系統(tǒng)B。
步驟4:B收到密文Ke_B(Kd_A(name_ A||secret_A))之后,先用自己的私鑰Kd_B將密文解密,得到Kd_A(name_A||secret_A),再用A的公鑰對(Kd_A(name_A||secret_A))進行解密,得到A的賬號名name_A',密碼secret_A',并將其與認證系統(tǒng)B中保存的對比賬號名name_A和密碼secret_A進行比對,如果name_A=name_A',secret_A=secret_A'時,則第一級身份認證成功;如果有一個不相等,則身份認證失敗。
第一級認證類似雙重認證機制,存在一些安全隱患,因此A通過第一級身份認證后,可以在系統(tǒng)B中進行一些基本操作:比如瀏覽網(wǎng)頁、添加或刪減收藏等,如果A想要完成下一步支付操作時,那么就需要對A的身份進行第二級認證。
圖2 第一級認證
第二級認證需要在通過了第一級認證基礎(chǔ)上才能進行,認證流程如圖3所示,步驟如下:
步驟5:請求方A向認證系統(tǒng)B發(fā)出請求,想要進行第二級身份認證。
步驟6:B接收到A的請求后,立即做出響應。利用SHA-256算法生成動態(tài)驗證碼Mca1,并用A的公開密鑰Ke_A對Mca1進行加密,得到密文然后以手機短信的形式向A發(fā)送密文Ke_A(Mca1),并開始倒計時1分鐘,同時保存Mca1以待稍后的比對驗證。
步驟7:A收到密文Ke_A(Mca1)后,先用自己的私有密鑰Kd_A對Ke_A(Mca1)進行解密,得到動態(tài)驗證碼Mca1',然后用B的公鑰Ke_B將Mca1'、A手機的IMEI_A、A要進行的操作編碼Op進行加密,得到密文,并立即送到交易系統(tǒng)B中。
步驟8:B收到A發(fā)送的密文Ke_B(Mca1'|| IMEI_A||OP)之后,先用自己的私有密鑰Kd_B對密文進行解密得到Mca1'、IMEI'、Op,接著將Mca1'、IMEI'前保存的Mca1、IMEI進行對比,如果都相等,就表明A通過第二級身份認證,允許A在B平臺上進行Op操作,否則A就無法通過第二級身份認證,B平臺拒絕A所有操作請求。
步驟6中Mca1是由哈希函數(shù)SHA-256來產(chǎn)生的。用來產(chǎn)生Mca1的SHA-256種子如圖4所示。需要指出的是,由于經(jīng)過SHA-256算法后生成的摘要是256位,而實際中使用的驗證碼是4位、6位或是8位的數(shù)字或字母組合,因此需要對最后的結(jié)果進行相應的截取。具體操作如下:先將哈希種子Seed進行SHA-256算法計算,生成Seed的摘要,即Hv256,然后根據(jù)需要,分別截取Hv256的高16位、高24位和高32位,以分別生成4位、6位和8位的動態(tài)驗證碼mca_4、mca_6和mca_8。
在第二級身份認證過程中,通過認證手機號碼與IMEI號,可以防止號碼被復制的攻擊方式,但無法抵抗手機丟失帶來的安全隱患。因此可以允許通過第二級認證的用戶進行一些例如小額支付、提交訂單等損失不大的操作。如果用戶想完成更加敏感的交易操作,保證交易的安全,就需要進行第三級身份認證。第三級身份需要在通過了第一、第二級認證的基礎(chǔ)上,通過計算機才能進行,第三級認證如圖5所示,具體步驟如下:
步驟9:請求方A向認證系統(tǒng)B發(fā)出請求。
步驟10:B接收到A的請求后,立即做出響應。利用SHA-256算法生成動態(tài)驗證碼Mca2,并用A的公開密鑰Ke_A對Mca2進行加密,得到密文然后以電子郵件的形式把密文Ke_A (Mca2)發(fā)到A的指定郵箱Mail_A中,并開始倒計時5分鐘,同時保存Mca2以待稍后的比對驗證。
圖3 第二級認證
圖4 第二級認證動態(tài)碼的SHA-256種子Seed
步驟11:A通過計算機先登陸指定郵箱Mail_A,取出密文Ke_A(Mca2),然后用自己的私有密鑰Kd_A對Ke_A(Mca2)進行解密,得到動態(tài)驗證碼Mca2',接著用B的公鑰Ke_B將Mca2'進行加密,得到密文Ke_B(Mca2'),并立即送到交易系統(tǒng)B中。
步驟12:B收到A發(fā)送的密文Ke_B(Mca2'_之后,先用自己的私有密鑰Kd_B對密文進行解密得到Mca2',接著將其與之前保存的Mca2進行對比,如果對Mca2和Mca2'的值相等,就表明A通過第三級身份認證,但如果Mca2和Mca2'的值不相等,A就無法通過第三級身份認證。
步驟10中Mca2也是由哈希函數(shù)SHA-256來產(chǎn)生的,除種子不同外,其產(chǎn)生過程同Mca1產(chǎn)生過程相同。用來產(chǎn)生Mca2的SHA-256種子如圖6所示。
在三級認證系統(tǒng)中,每級認證都必須在上一級身份認證通過后,才能進行下一級的身份認證,因此安全性是逐級遞增的。平臺可以根據(jù)安全性賦予不同的操作權(quán)限,實現(xiàn)便利與安全的折中。例如小額支付可以分配給第二級認證,不需要通過計算機登錄郵箱進行驗證;而大額支付必須通過第三級認證,最大程度的保證資金安全。
認證過程中傳遞的信息都是經(jīng)過公鑰密碼加密后再進行傳遞的,因此,可以有效地避免信息在公共WIFI中明文傳輸?shù)娜毕荩沟眯畔⒉粫还粽咴谛畔鬟f過程有效獲得。
第一級身份認證過程中,A的登錄賬戶與登錄密碼首先通過A的私鑰進行加密,在冒充者不知道A的私鑰的前提下,因此即使冒充者知道A的賬號和密碼,也無法冒充A通過身份認證;此級認證無法抵抗重傳攻擊,即如果手機中毒,冒充者可以獲得認證信息,然后重傳認證信息獲得認證通過;因此認證只具備一般安全性,平臺可以不授權(quán)任何操作權(quán)限或只授權(quán)不會造成任何損失的操作。
第二級身份認證首先通過時間戳與隨機數(shù)抵抗重傳攻擊,即每次認證請求的認證信息都不相同,因此無法通過重傳信息獲得認證通過。此外,由于認證還需驗證手機的IMEI號,因此冒充者即使通過病毒植入獲得了A的登錄賬戶、登錄密碼、私鑰,也無法通過復制手機卡的方式冒充A。
第三級身份認證通過向A的綁定郵箱發(fā)送動態(tài)驗證碼進行認證,請求方必須先通過計算機登錄自己的郵箱,才能獲得加密后的動態(tài)驗證碼。這樣即使冒充者通過病毒植入獲得了A的登錄賬戶、登錄密碼、私鑰,并且還獲得了A的手機,也無法通過此級認證。只有在A手機中毒、計算機也中毒,同時手機又被攻擊者獲得的前提下才能被冒充,發(fā)生這樣情況的概率是非常低的,幾乎是不可能發(fā)生。
針對手機支付身份認證的潛在威脅,本文基于隨機用戶賬戶、密碼、手機序列號IMEI,借助于哈希函數(shù)、公鑰密碼等密碼技術(shù),設(shè)計了一個適用于手機支付的三級身份認證機制。在認證的過程中,公鑰密碼用來保護信息在傳輸通道的安全,時間戳與隨機數(shù)用來防止攻擊者的重傳攻擊,手機的IMEI號用來防御手機卡被復制的危險,而第三級的電子信箱驗證保證即使在手機丟失的前提下也不會被攻擊者假冒。在使用此認證機制時,應根據(jù)需要授權(quán)不同級別認證允許的操作,實現(xiàn)便利與安全的折中。
圖5 第三級認證
圖6 第三級認證動態(tài)碼的SHA-256種子Seed
[1] Kahri F, Bouallegue B, Machhout M, et al. An FPGA implementation and comparison of the SHA-256 and Blake-256[C]//International Conference on Sciences and Techniques of Automatic Control and Computer Engineering. IEEE, 2013: 152-157
[2] Shafiq S, Khiyal M S H, Khan A. Development of Mechanism of Integrity in M-Commerce using Joint Signature Scheme[J]. International Journal of Computer Theory & Engineering, 2012, 4(3): 332-336
[3] 郝舒欣, 趙耿, 徐剛, 等. 一種新的基于Chebyshev多項式的身份認證方案[C]//Asia-Pacific Conference on Information Network & Digital Content Security. 2010.
[4] 王斌君, 王靖亞, 杜凱選, 等. 驗證碼技術(shù)的攻防對策研究[J]. 計算機應用研究, 2013, 30(9): 2776-2779.
[5] 彭州. 基于手機動態(tài)驗證碼的網(wǎng)絡(luò)支付風險分析[J]. 金融科技時代, 2015(1): 61-62.
[6] 馬陽明. 基于可信硬件的智能手機短信加密方案[J]. 計算機與現(xiàn)代化, 2016(4): 29-35.
[7] 趙耿, 閆慧, 童宗科. 基于Chebyshev多項式的公鑰密碼系統(tǒng)算法[J]. 計算機工程, 2008, 34(24): 137-139
[8] GARC A R, ALGREDO-BADILLO I, MORALESSANDOVAL M, et al. A compact FPGA-based processor for the Secure Hash Algorithm SHA-256[J]. Computers & Electrical Engineering, 2014, 40(1): 194-202
An Authentication Mechanism for Mobile Payment
YU Xiao-liang, LU Da-long, WU Wei, WANG Yun-feng
(School of information science and engineering, Xiamen University, Xiamen Fujian 361005, China)
Mobile payment has become one of the most widely used payment methods of e-commerce platform. However, the dual authentication mechanism used during mobile payment is not security if the cell phone used payment gets viruses. It is also not safe when mobile phone card is copied and mobile phone has been lost. An authentication mechanism for mobile payment is proposed based user name, user password and international mobile equipment identity. Hash function and public key cryptography are applied in the authentication protocol. The result of analysis shows that this authentication mechanism is secure.
Mobile payment; Authentication; Hash function; Public key cryptography
TP391.41
ADOI:10.3969/j.issn.1003-6970.2016.12.041
國家自然科學基金資助項目(61274133)
余小亮(1993-),男,碩士,主要研究方向:數(shù)字集成電路設(shè)計及SLAM系統(tǒng)軟硬件設(shè)計。
王云峰,博士,副教授,主要研究方向:數(shù)字集成電路設(shè)計及SLAM系統(tǒng)軟硬件設(shè)計。
本文著錄格式:余小亮,盧達龍,吳煒,等. 適用于手機支付的身份認證機制[J]. 軟件,2016,37(12):192-196