□馬 慰
一種基于雙因素認證的QR碼安全移動支付方案研究
□馬慰
移動支付是當前應(yīng)用廣泛的一種移動服務(wù),移動支付的安全性問題備受關(guān)注。本文針對移動支付中嚴格的驗證與加密要求,提出了一種安全移動支付方案,應(yīng)用雙因素認證機制保證支付信息的安全性,通過QR碼向用戶呈現(xiàn)交易要素,提高便捷性,同時該方案使用了基礎(chǔ)的系統(tǒng)結(jié)構(gòu)和開源的開發(fā)工具,降低了成本。模擬案例驗證表明,該方案能夠確保正常移動支付的安全性,應(yīng)用便捷,具有較好效果。
隨著通信技術(shù)的進步和智能手機的普及,人們在享受電子商務(wù)的同時,對支付方式的要求越來越高,移動支付作為一種新興的支付手段,是通過用戶的移動終端對所消費的商品或服務(wù)進行賬務(wù)支付的一種服務(wù)方式,滿足了現(xiàn)代用戶對支付的安全性、便捷性、移動性需求。雙因素認證(two-factor authentication)是目前流行的一種身份認證方法,廣泛應(yīng)用于各類金融網(wǎng)絡(luò)系統(tǒng),尤其是交易性模塊。它使用基于時間、事件、密鑰產(chǎn)生的一次性密碼來代替?zhèn)鹘y(tǒng)靜態(tài)密碼。
國內(nèi)外對移動支付安全性方面的研究主要集中于移動支付的風(fēng)險評估研究、移動支付的安全標準研究、移動支付的安全協(xié)議研究、第三方安全支付模式研究和移動支付安全系統(tǒng)的設(shè)計應(yīng)用。其中,國內(nèi)有相當數(shù)量的移動支付安全解決方案的研究與應(yīng)用,對移動支付現(xiàn)存的風(fēng)險點和安全保障技術(shù)提出了各自的看法,取得了一定的成果。然而,這些研究大部分起點較高,把移動支付方案建立在一個已經(jīng)具備相應(yīng)通訊能力的基礎(chǔ)設(shè)施環(huán)境下;事實上,許多國家或者一國的不同地區(qū)所提供的基礎(chǔ)網(wǎng)絡(luò)設(shè)施不盡相同,信息水平高低不一,可能達不到使用高級移動支付的網(wǎng)絡(luò)要求,無法適用一些先進的移動支付方案。因此,開發(fā)一種在當前客觀條件下適用的安全移動支付方案顯得尤為重要。
為了提高移動支付方案的適用性,保證移動支付的安全性,本文提出一種基于雙因素認證的移動支付方案,以安全、快捷、方便為目的,使用了簡便的基礎(chǔ)結(jié)構(gòu),通過雙因素認證進行客戶身份驗證,商戶與客戶的交互采用加密QR(Quick Response)碼,最終完成支付交易。
本文充分借鑒了現(xiàn)有的研究成果,對移動支付的特點進行了分析。當前移動支付面臨兩個重要問題:移動支付行業(yè)標準統(tǒng)一化和移動支付的安全性保障,其中,安全性是移動金融領(lǐng)域發(fā)展中一個至關(guān)重要的話題。因為如果不能提供固定移動網(wǎng)絡(luò)上的商業(yè)信息交流和安全的電子金融交易,沒有人會相信移動金融。通常,一個安全的移動支付系統(tǒng)須有如下特點:信息保密性、身份認證、健全性、授權(quán)性、有效性、不可否認性。
所有的金融交易必須在安全的環(huán)境下進行,本文著重考慮了支付方案的安全性后,給出了支付系統(tǒng)的結(jié)構(gòu)。如圖1所示,系統(tǒng)主要模塊有支付網(wǎng)關(guān)(Payment Gateway)、客戶端和商戶端,其中支付網(wǎng)關(guān)連接到銀行金融支付網(wǎng)絡(luò),也能連接CA中心驗證所有的數(shù)字簽名(Digital Signature)。方案要求用戶與商戶使用配備攝像頭并安裝了方案配套的安全移動支付應(yīng)用程序的移動設(shè)備。移動設(shè)備需要連接到一個內(nèi)部局域網(wǎng)絡(luò)中,用以和支付網(wǎng)關(guān)PG通信;所有應(yīng)用的開發(fā)工具選用了開源組件。
圖1移動支付系統(tǒng)主要結(jié)構(gòu)
(一)支付方案系統(tǒng)初始化。在客戶與商戶使用該移動支付系統(tǒng)之前,他們必須通過安全的https (Hyper Text Transfer Protocol over Secure Socket Layer)內(nèi)網(wǎng)協(xié)議連接上支付網(wǎng)關(guān)系統(tǒng)的站點,填寫提交相關(guān)表單進行注冊,客戶與商戶的密碼使用密碼散列函數(shù)MD5消息摘要算法安全地存儲于支付網(wǎng)關(guān)上。在支付網(wǎng)關(guān)驗證過密碼接受了提交的表單后,生成1024位的RSA公私密鑰對。客戶與商戶訪問并掃描支付網(wǎng)關(guān)接口生成的QR碼,獲取各自的用戶id、用戶私鑰和PG的公鑰,而QR碼經(jīng)過用戶密碼加密,需要客戶與商戶驗證各自密碼才能得到QR碼中的內(nèi)容??蛻襞c商戶得到QR碼中的內(nèi)容被加密存儲在各自的移動設(shè)備上。該方案所有交易信息傳輸應(yīng)用了雙因素認證機制,先使用密碼得到密鑰,再使用密鑰認證和解密信息內(nèi)容。系統(tǒng)初始化的過程如圖2所示。
圖2系統(tǒng)初始化
(二)商戶端支付信息處理。注冊階段完成后,商戶就可以使用自己的移動設(shè)備為客戶提供購買商品或服務(wù)的交易。當客戶選好商品或服務(wù)后,商戶記錄并生成交易清單。隨后,商戶將交易清單內(nèi)容通過支付網(wǎng)關(guān)的公鑰加密,再附上商戶用自己私鑰生成的數(shù)字簽名,一起經(jīng)過安全https Web服務(wù)連接上傳到支付網(wǎng)關(guān)。這家商戶在加密上傳交易清單之前也需要輸入正確的用戶密碼來獲取存儲在移動設(shè)備上的公鑰和私鑰。這里同樣使用了雙因素認證機制提高安全性。支付網(wǎng)關(guān)檢索由商戶發(fā)送的Web服務(wù)請求,然后利用私鑰解密消息內(nèi)容并利用商戶的公鑰驗證數(shù)字簽名(支付網(wǎng)關(guān)擁有所有商戶的公鑰)。驗證信息完成后,支付網(wǎng)關(guān)在數(shù)據(jù)庫中記錄下該筆交易及交易時間戳,同時需要給商戶一個應(yīng)答,這個應(yīng)答包含了商戶id、時間戳、交易的數(shù)量和總金額。同樣,支付網(wǎng)關(guān)給商戶的應(yīng)答使用雙因素認證機制,附上支付網(wǎng)關(guān)私鑰生成的數(shù)字簽名,并通過安全https連接發(fā)送。商戶收到支付網(wǎng)關(guān)的應(yīng)答后,商戶的移動應(yīng)用程序?qū)⒏鶕?jù)應(yīng)答內(nèi)容生成一個可供客戶移動設(shè)備應(yīng)用掃描的QR碼,用來進行支付。商戶端支付信息處理如圖3所示。
圖3商戶端處理支付信息
(三)用戶端支付信息處理。用戶使用移動設(shè)備上的應(yīng)用程序掃描商戶發(fā)送的QR碼。為了驗證并獲取QR碼中包含的信息內(nèi)容,首先用戶在移動設(shè)備上輸入正確的密碼得到支付網(wǎng)關(guān)的公鑰,用支付網(wǎng)關(guān)的公鑰驗證QR碼信息中的數(shù)字簽名并解密內(nèi)容。如果支付信息驗證成功且時間戳沒有過期,完整的支付信息將會顯示在客戶的移動設(shè)備上,接收驗證過程如圖4(a)所示。然后,客戶根據(jù)實際情況選擇確認支付或者拒絕支付。如用戶選擇確認支付,支付信息(包含客戶id,商戶id,交易id)和時間戳將通過支付網(wǎng)關(guān)的公鑰加密封裝并附上客戶私鑰生成的數(shù)字簽名,同樣用移動應(yīng)用程序生成一個QR碼發(fā)送給商戶。由于附帶時間戳,不同時刻QR碼是不一樣的。假如QR碼信息被截獲,沒有支付網(wǎng)關(guān)的私鑰和正確的密碼,QR碼顯示的只是一段亂碼。最后,包含確認支付內(nèi)容的支付信息經(jīng)過商戶發(fā)送給支付網(wǎng)關(guān),支付網(wǎng)關(guān)用自己的私鑰解密信息內(nèi)容,該過程如圖4(b)所示。
圖4(a) 用戶端接收支付信息
圖4(b) 用戶端發(fā)送支付確認
(四)支付確認審批。商戶掃描用戶發(fā)送的QR碼確認支付的請求,然后將用戶的支付確認信息附上時間戳和商戶私鑰生成的數(shù)字簽名經(jīng)安全連接上傳給支付網(wǎng)關(guān)。支付網(wǎng)關(guān)收到商戶發(fā)來的支付確認信息后,須進行兩次驗證,首先利用商戶的公鑰驗證商戶的數(shù)字簽名,檢查商戶信息的時間戳是否過期,然后再解密用戶的支付信息,驗證用戶的數(shù)字簽名,檢查用戶信息的時間戳。運用二次檢查原理驗證,確保整個支付的完整性。支付網(wǎng)關(guān)完成全部驗證后,在數(shù)據(jù)庫中記錄下該筆交易支付成功,將結(jié)果返回給商戶。支付確認過程如圖5所示。
圖5支付確認審批
本節(jié)使用一個案例對方案進行驗證。用戶A使用該移動支付系統(tǒng),在其智能手機上安裝了移動支付應(yīng)用并在支付網(wǎng)關(guān)進行了注冊,通過瀏覽商戶B的門戶網(wǎng)站,A選擇了一款運動鞋,將支付請求(包含款式類別、尺碼、數(shù)量、物流信息等)經(jīng)過雙因素認證提交給B;B據(jù)此生成購物清單,包含了所有支付信息,將其加密上傳給支付網(wǎng)關(guān),支付網(wǎng)關(guān)記錄該筆交易的支付細節(jié)內(nèi)容,發(fā)送授權(quán)可支付的驗證信息給B,B收到該信息使用自己平板電腦上的移動支付應(yīng)用生成一個加密的QR碼發(fā)送給A,等待A回應(yīng)該筆支付;A接收、掃描QR碼解密內(nèi)容,檢查訂單無誤后,選擇確認支付,B平板電腦上應(yīng)用偵聽到該筆確認支付,驗證后上傳給支付網(wǎng)關(guān),支付網(wǎng)關(guān)驗證交易一致性,最后完成付款,B發(fā)貨。但是,該筆款項暫存在支付網(wǎng)關(guān)系統(tǒng)上B的一個專用賬戶內(nèi),直至客戶收貨確認后整個交易完成。B在支付網(wǎng)關(guān)系統(tǒng)上的專用賬戶在每日日終將完成交易部分的賬款轉(zhuǎn)入B在銀行開立的賬戶中。
在整個支付過程中,客戶與商戶使用私鑰進行數(shù)字簽名確保交易一致性。網(wǎng)絡(luò)黑客在沒有對應(yīng)密鑰的情況下,無法掌握、控制支付信息。萬一客戶手機丟失,或者黑客復(fù)制了手機的存儲器,如沒有正確的密碼也無法得到密鑰。一些手機制造商也提供了安全措施,當手機丟失后可以觸發(fā)特定程序刪除手機上的信息。用戶也能夠訪問支付網(wǎng)關(guān)徹底刪除丟失手機上的相關(guān)機密信息,并重新生成公私密鑰對。由于交易需要檢驗時間戳,中繼攻擊也很難起作用。另外,客戶與商戶間支付信息交互使用QR碼作為可視渠道,這些QR碼都經(jīng)過加密,黑客截獲的QR碼如果沒有對應(yīng)密鑰或者過期,得到的也只是沒有意義的加密文本。
本文提出了一種基于雙因素認證的低成本移動支付方案,同時運用對稱加密與非對稱加密算法、加密QR碼,提高支付安全性。采用QR碼作為可視通信渠道,提高便捷性。交易信息傳輸使用加密QR碼、基于SSL的Web通信和公私鑰生成的數(shù)字簽名。手機上的敏感信息全部經(jīng)過用戶密碼加密存儲。整個支付方案結(jié)構(gòu)簡單,使用開源的開發(fā)組件,適用于一般通信基礎(chǔ)設(shè)施和信息科技水平不高的地區(qū)。但是本文提出的支付方案也存在一些不足,例如,對于移動終端來說,沒有考慮移動終端上的惡意應(yīng)用或系統(tǒng)漏洞帶來的風(fēng)險,該移動支付方案僅僅保證了支付過程本身安全性。下一步的工作是對整個方案進行更徹底的安全性測試,擴大支付方案的應(yīng)用范圍,深入研究應(yīng)用場景和充分收集客戶使用的反饋,不斷評估、改善支付方案。
[1]戴宏.移動支付系統(tǒng)安全風(fēng)險評估[D].北京:北京交通大學(xué),2010.
[2]張璇,林逸風(fēng),白川,等.基于貝葉斯網(wǎng)絡(luò)的移動支付風(fēng)險評估模型[J].計算機工程與應(yīng)用,2014,50(5):60-64.
[3]韓皓辰,柴洪峰,魯志軍,等.移動支付領(lǐng)域安全標準的適用性研究[J].計算機應(yīng)用與軟件,2013,30(5):316-319.
[4]劉亮.基于公鑰密碼體制的移動支付安全協(xié)議研究[D].成都:西南交通大學(xué),2013.
(作者單位:農(nóng)業(yè)銀行南京江寧支行)