移動(dòng)支付空中圈存技術(shù)研究
引言
隨著(zhù)手機智能卡RFID 技術(shù)的發(fā)展,SIMPass、eNFC、RF-SIM 等使用手機智能卡實(shí)現非接觸式應用的技術(shù)陸續為廣大用戶(hù)所接受,基于RFID 的移動(dòng)支付業(yè)務(wù)已經(jīng)在全世界范圍內蓬勃發(fā)展。相比起傳統IC卡方式的非接觸式應用,手機智能卡除具備隨身攜帶的便利外,一個(gè)非常重要的特性是可以通過(guò)手機屏幕實(shí)現與用戶(hù)之間的交互,同時(shí)還可以利用手機所提供的數據通道實(shí)現與后臺系統的交互。利用上述技術(shù),可以實(shí)現讓用戶(hù)隨時(shí)隨地完成錢(qián)包充值、消費記錄查詢(xún)等手機錢(qián)包的管理功能,給消費者提供遠遠超出傳統IC卡的用戶(hù)體驗。這就是本文所要討論的空中圈存技術(shù)。
空中圈存是指用戶(hù)通過(guò)操作手機STK 菜單或者手機客戶(hù)端, 使用OTA 或者BIP 等無(wú)線(xiàn)方式與后臺支付系統進(jìn)行通信,完成對手機智能卡內錢(qián)包的充值、查詢(xún)、消費等功能?罩腥Υ媸且苿(dòng)支付業(yè)務(wù)區別于傳統公交、銀行、校企等IC卡應用的一個(gè)非常重要的差異, 它所提供的這種隨時(shí)隨地進(jìn)行錢(qián)包管理的能力, 對于應用方提高服務(wù)水平、降低服務(wù)成本、提升用戶(hù)體驗等都有著(zhù)非常重要的意義,可以大大豐富移動(dòng)支付業(yè)務(wù)的功能。
2 空中圈存技術(shù)發(fā)展現狀
空中圈存是一項非常新的技術(shù),技術(shù)的成熟度還有待提高,目前在國內外的正式應用還不多。下面分別從網(wǎng)絡(luò )架構、交易流程、存在問(wèn)題等方面對現有空中圈存技術(shù)的發(fā)展情況進(jìn)行介紹。
2.1 網(wǎng)絡(luò )總體結構
現有方案空中圈存業(yè)務(wù)網(wǎng)絡(luò )結構如圖1 所示。
由于BIP(bearer independent protocol,承載無(wú)關(guān)協(xié)議)技術(shù)尚未成熟,因此目前空中圈存業(yè)務(wù)主要通過(guò)OTA(即數據短信)的方式實(shí)現,從網(wǎng)絡(luò )架構上看主要包括以下幾部分。
。1) 手機終端/SIM 卡手機終端需支持數據短信。SIM 卡中預置了移動(dòng)支付應用方的手機錢(qián)包,并且支持空中圈存功能。
。2)短信網(wǎng)關(guān):短信網(wǎng)關(guān)是空中圈存業(yè)務(wù)的短信通道,負責轉發(fā)上下行短信。
。3)移動(dòng)支付應用方平臺:移動(dòng)支付應用方是指公交、銀行及其他使用空中圈存業(yè)務(wù)的第三方系統。為實(shí)現短信的收發(fā),移動(dòng)應用方平臺需作為短信SP 連接到短信網(wǎng)關(guān),負責完成以下功能:
· 負責數據短信的接收、發(fā)送以及加解密處理;
· 負責驗證業(yè)務(wù)請求的有效性,根據業(yè)務(wù)類(lèi)型進(jìn)行相應的業(yè)務(wù)處理,并將處理結果返回到卡端;
· 負責與支付平臺進(jìn)行交互完成圈存扣款等相關(guān)工作;
· 負責完成空中圈存業(yè)務(wù)的事務(wù)保證。
。4)支付平臺:支付平臺負責管理用戶(hù)的支付賬戶(hù), 完成賬戶(hù)綁定、賬戶(hù)支付、平賬及清/結算等功能。支付平臺可能由銀行或其他第三方支付平臺提供,不同的應用方可能使用不同的支付平臺。
2.2 交易流程
由于空中圈存包含的交易流程很多,這里僅以手機錢(qián)包圈存流程進(jìn)行說(shuō)明。用戶(hù)通過(guò)空中圈存進(jìn)行錢(qián)包充值前,需要事先將手機錢(qián)包與支付賬戶(hù)進(jìn)行綁定,F有方案手機錢(qián)包圈存交易流程如圖2 所示。
、儆脩(hù)通過(guò)點(diǎn)選手機UTK 菜單的“充值菜單”,將充值請求信息通過(guò)數據短信形式發(fā)送到應用方平臺;
、趹梅狡脚_將圈存短信內容進(jìn)行解析,首先對驗證圈存請求是否由合法的手機錢(qián)包發(fā)起;
、鄞_認請求的合法性后,應用方平臺向支付平臺發(fā)起扣款;
、苤Ц镀脚_驗證扣款請求合法性后,從用戶(hù)手機錢(qián)包綁定的支付賬戶(hù)中進(jìn)行扣費,返回扣款結果;
、輵梅狡脚_記錄交易信息,并生成圈存結果數據短信返回SIM 卡;
、奕Υ娼Y果通過(guò)數據短信形式發(fā)送到手機終端,手機終端將數據短信透傳到SIM 卡進(jìn)行處理;
、逽IM 卡上的空中圈存應用驗證圈存結果的有效性,并根據圈存結果,對手機錢(qián)包的余額進(jìn)行更新;
、郤IM 卡將錢(qián)包更新情況以充值確認數據短信形式發(fā)送到應用方平臺;
、釕梅狡脚_收到充值確認短信后進(jìn)行記錄,如錢(qián)包更新失敗則需要與支付平臺進(jìn)行平賬處理。
2.3 存在問(wèn)題
上述空中圈存技術(shù)方案目前已在部分地區的公交、銀行等移動(dòng)支付應用上進(jìn)行過(guò)試點(diǎn), 但是試點(diǎn)效果并不理想,一直無(wú)法進(jìn)行大規模的推廣,存在的問(wèn)題主要包括以下3個(gè)方面。
2.3.1 接口標準化
從長(cháng)遠的發(fā)展看, 每個(gè)用戶(hù)都需要使用包括公交、銀行、校企等在內的多種移動(dòng)支付應用,這就要求在同一張智能卡上需要集成多個(gè)應用方的手機錢(qián)包。各個(gè)應用方為了提高其服務(wù)水平,都會(huì )開(kāi)展空中圈存業(yè)務(wù),這會(huì )帶來(lái)以下兩個(gè)問(wèn)題。
。1)標準不統一:目前空中圈存技術(shù)都是由應用方自行定義數據短信接口標準,因此標準都不統一。一旦卡片上需要集成多個(gè)應用的時(shí)候,由于SIM 卡上處理下行數據短信的接口是統一的,一方面,如不同應用的短信接口標準存在沖突,那么將會(huì )導致SIM 卡無(wú)法對短信內容進(jìn)行正確解析;另一方面,既便不存在沖突,也必須在SIM 卡上的數據短信接收處理流程中對多個(gè)不同手機錢(qián)包應用的數據短信進(jìn)行解析處理,導致該流程的設計非常復雜,從而給卡片開(kāi)發(fā)帶來(lái)很大困難;尤其未來(lái)移動(dòng)支付卡上的應用可以根據用戶(hù)需要動(dòng)態(tài)加載,SIM 卡在無(wú)法預知用戶(hù)將使用哪些應用的情況下,對于新增應用將無(wú)法提供空中圈存功能的支持。
。2)于應用方的技術(shù)實(shí)力要求很高:由于空中圈存技術(shù)較為專(zhuān)業(yè),應用方需要對數據短信收發(fā)、空中圈存的安全機制及事務(wù)控制、支付平臺的扣款及清/結算等技術(shù)有深入了解, 因此對于應用方的技術(shù)實(shí)力要求很高。對于一些技術(shù)實(shí)力不強、規模較小的應用方,要自行開(kāi)發(fā)空中圈存平臺存在技術(shù)難度大、開(kāi)發(fā)成本高等困難。這種情況會(huì )制約空中圈存業(yè)務(wù)的發(fā)展。
2.3.2 圈存安全
空中圈存技術(shù)通過(guò)無(wú)線(xiàn)信道向SIM 卡發(fā)送圈存指令,因此交互信息容易被截獲。一旦指令格式及密鑰被破解,就可以通過(guò)向SIM 卡發(fā)送仿冒指令方式實(shí)現對卡片的無(wú)限充值, 從而給應用方造成損失。同時(shí)由于空中圈存與POS 現場(chǎng)圈存使用相同的圈存密鑰,受影響的可能不僅限于空中圈存卡片,還包括了普通的IC卡片。
目前空中圈存技術(shù)在圈存安全方面采取的措施較為簡(jiǎn)單, 通過(guò)在SIM 卡內存放一個(gè)專(zhuān)用的短信加密密鑰,對上、下行的數據短信內容進(jìn)行加/解密處理。這種對稱(chēng)加密方式安全性不高,容易被破解和篡改,因此必須研究更為安全的技術(shù)實(shí)現方法。
2.3.3 事務(wù)處理
空中圈存業(yè)務(wù)使用短信作為數據通道,由于短信存在不確定性,會(huì )出現延遲、遺漏等情況,可能造成后臺服務(wù)器與卡片狀態(tài)不一致的情況。例如后臺已經(jīng)從用戶(hù)綁定的支付賬戶(hù)扣款,但是由于短信未能下發(fā)到卡片,導致充值未能成功等情況,為此必須通過(guò)專(zhuān)門(mén)的事務(wù)處理機制進(jìn)行平賬處理。
現有技術(shù)主要通過(guò)短信重發(fā)機制進(jìn)行解決,應用方平臺在一定時(shí)限內未收到充值確認短信時(shí),按照系統設定的時(shí)間和次數重發(fā)圈存結果短信,直到收到SIM 卡返回的充值確認短信為止。這種方式存在的問(wèn)題包括:如果用戶(hù)手機由于斷電、無(wú)信號等原因,較長(cháng)時(shí)間都未能連接網(wǎng)絡(luò ),可能導致平臺后續重發(fā)的短信都不能到達手機,將使得充值最終失敗,無(wú)法進(jìn)行平賬;如果SIM 卡充值已經(jīng)成功,但是返回的充值確認短信丟失,應用方平臺超過(guò)時(shí)限后重復下發(fā)圈存結果短信,會(huì )導致SIM 卡重復收到多次圈存結果短信。這種情況下要求SIM 卡必須要對重復短信進(jìn)行識別,避免重復充值,同時(shí)要將充值結果再次進(jìn)行上報。這就會(huì )增加SIM 卡內充值處理流程的復雜度。
上述幾個(gè)問(wèn)題是空中圈存技術(shù)一直以來(lái)研究的重點(diǎn),只有通過(guò)不斷地改進(jìn), 才能推進(jìn)空中圈存技術(shù)的成熟,從而促進(jìn)空中圈存業(yè)務(wù)的規模發(fā)展。
3 空中圈存技術(shù)方案研究
為了解決上述問(wèn)題,通過(guò)深入的分析和研究,筆者提出了一種新的空中圈存技術(shù)解決方案。這個(gè)方案由電信運營(yíng)商實(shí)現統一的空中圈存平臺,并提供標準的開(kāi)發(fā)接口供各應用方調用,從而實(shí)現圈存流程的標準化,同時(shí)也大大降低了應用方開(kāi)發(fā)空圈業(yè)務(wù)的技術(shù)難度。在此基礎上,通過(guò)更為安全有效的圈存安全機制和交易保護機制,確保圈存交易的安全以及事務(wù)處理的完整性。
下面對由運營(yíng)商統一實(shí)現空中圈存系統這種技術(shù)方案,分別從網(wǎng)絡(luò )架構、平臺架構、交易流程等方面與原有方案進(jìn)行比較,并重點(diǎn)對圈存安全機制、交易保護機制進(jìn)行分析和探討。
3.1 網(wǎng)絡(luò )總體結構
通過(guò)圖1 和圖3 的比較可以看出,新方案與原有方案相比差別主要有以下兩點(diǎn)。
。1)分擔原方案中應用方平臺中部分與手機錢(qián)包交易處理流程無(wú)關(guān)的工作新方案增加了一個(gè)由運營(yíng)商提供的空中圈存系統,它將分擔原方案中應用方平臺中部分與手機錢(qián)包交易處理流程無(wú)關(guān)的工作,其主要功能包括:
· 負責數據短信的接收、發(fā)送以及加解密處理;
· 負責根據數據短信中的應用方標志字段將業(yè)務(wù)請求發(fā)送給相應的應用方平臺等進(jìn)行實(shí)際的業(yè)務(wù)處理,并將應用方平臺返回的處理結果通過(guò)短信發(fā)送回用戶(hù)的手機終端;
· 負責完成空中圈存業(yè)務(wù)的事務(wù)保證;
· 根據需要可與支付平臺相連,完成支付賬戶(hù)扣款等功能。這種方式下,應用方平臺只需要專(zhuān)注于手機錢(qián)包的相關(guān)業(yè)務(wù)處理流程,大大簡(jiǎn)化了技術(shù)實(shí)現難度。
。2)支付平臺可以與空圈平臺相連,也可以與應用方平臺相連根據業(yè)務(wù)需要,支付平臺可以與空圈平臺相連,也可以與應用方平臺相連。對于規模大、技術(shù)能力強的應用方可以自行連接支付平臺,完成賬戶(hù)綁定、賬戶(hù)扣款、平賬處理、清算/結算等功能;而對于規模小、技術(shù)能力低的應用方,則可以由空中圈存平臺負責這部分功能的處理。
3.2 平臺架構
移動(dòng)支付空中圈存平臺(如圖4 所示)從功能層次上大致可以劃分為以下幾個(gè)層面。
。1)移動(dòng)支付卡層:移動(dòng)支付卡中加載了多種不同的應用,如銀行、公交、校企等,在各個(gè)應用之上需要由智能卡操作系統實(shí)現一個(gè)數據短信分發(fā)模塊,用于將下行的數據短信分發(fā)到不同的應用,進(jìn)行應用相關(guān)的業(yè)務(wù)處理。
。2)數據短信分發(fā)層:為實(shí)現統一接入,空中圈存平臺對數據短信格式進(jìn)行統一的規范,并通過(guò)特定字段標識應用方平臺,使得對短信內容進(jìn)行統一解析后,可以很明確地知道這條消息將要發(fā)送到哪個(gè)應用方平臺進(jìn)行處理。數據短信分發(fā)層主要完成短信接入、數據短信解析處理、消息路由、協(xié)議轉換及權限控制等功能。
。3)空中圈存處理層:由于不同類(lèi)型應用的空中圈存業(yè)務(wù)流程有所差異,因此各類(lèi)應用的空中圈存處理模塊有所差別?罩腥Υ嫣幚韺油瓿傻闹饕δ馨ǎ
· 空中圈存業(yè)務(wù)流程控制,空中圈存模塊通過(guò)與應用平臺之間的交互,完成空中圈存業(yè)務(wù)流程的處理;
· 空中圈存業(yè)務(wù)事務(wù)保證,對于空中圈存業(yè)務(wù)流程中出現的異常情況進(jìn)行處理,保證SIM 卡與應用平臺的數據一致。
。4)應用平臺:各應用平臺通過(guò)與空中圈存處理模塊的交互,共同完成業(yè)務(wù)流程的處理。應用平臺負責完成手機錢(qián)包業(yè)務(wù)流程的實(shí)際處理。
3.3 交易流程
這里同樣以錢(qián)包充值流程為例對交易流程進(jìn)行對比說(shuō)明。在新方案中,支付平臺有兩種連接方式。對于支付平臺與應用方平臺連接的方式, 交易流程與原方案基本類(lèi)似,只是上下行短信經(jīng)過(guò)空中圈存平臺的中轉處理,這里不重復描述。下面將以支付平臺與空中圈存平臺相連的方式為例,說(shuō)明在錢(qián)包充值流程過(guò)程中的整個(gè)交易流程。新方案錢(qián)包充值交易流程如圖5 所示。
1~2: 充值請求信息通過(guò)數據短信形式發(fā)送到空中圈存平臺后,空中圈存平臺對短信內容進(jìn)行解析,根據請求報文中的應用方標識,將圈存請求轉發(fā)給對應的應用方平臺。
3~4:應用方平臺收到圈存請求后,驗證圈存請求是否由合法的手機錢(qián)包發(fā)起。
5~6:確認請求的合法性后,空中圈存平臺向支付平臺發(fā)起扣款。
7~10: 空中圈存平臺將扣款結果通知應用方平臺,應用方平臺記錄交易結果并生成圈存結果信息返回空中圈存平臺,由空中圈存平臺以數據短信形式發(fā)送到手機終端。
11: 手機終端將數據短信傳送到SIM 卡進(jìn)行處理,SIM 卡上的空中圈存應用驗證圈存結果的有效性,并根據圈存結果對手機錢(qián)包的余額進(jìn)行更新。
12~13 :SIM 卡將錢(qián)包更新情況以充值確認數據短信形式發(fā)送到空中圈存平臺,空中圈存平臺收到充值確認短信后進(jìn)行記錄,如錢(qián)包更新失敗則需要與支付平臺進(jìn)行平賬處理。
3.4 圈存安全機制
由于空中圈存業(yè)務(wù)涉及錢(qián)包的充值、消費等重要操作,交易報文通過(guò)短信傳遞,存在被截取、仿冒等的可能性, 原有方案中僅僅對數據短信內容進(jìn)行加密還不足夠,必須進(jìn)一步采取措施確保交易報文在傳輸過(guò)程中不被篡改,確保信息雙向傳輸的安全。
為此,筆者提出了在短信加密的基礎上,增加一種更為安全的雙向認證機制,從而保證圈存交易的安全。一方面由空中圈存平臺對UIM 卡的上行信息進(jìn)行認證, 確保只有合法用戶(hù)發(fā)出的業(yè)務(wù)交易請求被響應; 而同時(shí)UIM卡也需要對空中圈存平臺的下行信息進(jìn)行認證,確保業(yè)務(wù)操作請求確實(shí)由空中圈存平臺下發(fā),有效地避免惡意代碼對用戶(hù)UIM 卡的入侵。此外,雙向認證技術(shù)也可用于保證在空中圈存平臺與UIM 卡之間交互的上、下行數據的完整性和正確性。
具體技術(shù)實(shí)現過(guò)程中, 空中圈存平臺與用戶(hù)的UIM卡需事先約定好一組空中圈存交易密鑰,該組密鑰由運營(yíng)商給用戶(hù)發(fā)卡過(guò)程中寫(xiě)入到UIM 卡內,寫(xiě)入后不可讀取,只能用于參與指定的運算。
UIM 卡發(fā)送交易請求前,需要從密鑰組中隨機選擇一個(gè)密鑰,然后分別用UIM 卡的卡片序列號及隨機數進(jìn)行2次分散, 生成本次交易的工作密鑰。然后將交易請求中的關(guān)鍵信息, 使用工作密鑰計算MAC 值,同時(shí)將隨機數及MAC 值附在交易請求消息內容后一起發(fā)送到空中圈存平臺?罩腥Υ嫫脚_通過(guò)同樣方法對交易信息進(jìn)行MAC 計算, 將得到的MAC 值與UIM 卡計算的MAC 進(jìn)行比較,只有結果一致的情況下才認為這個(gè)交易請求是合法有效、未被篡改的?罩腥Υ嫫脚_下發(fā)的信息也采用同樣的方式進(jìn)行認證。
MAC 算法如圖6 所示,MAC 計算方法可以參考《中國金融集成電路(IC)卡規范電子錢(qián)包電子存折應用規范》的相關(guān)內容。
目前一次交易需要經(jīng)過(guò)空中圈存平臺與應用方平臺的兩次處理, 空中圈存平臺主要完成通信層功能處理,而應用方平臺主要完成業(yè)務(wù)層功能處理。要進(jìn)一步增加交易的安全性, 可以對通信層和業(yè)務(wù)層的信息內容進(jìn)行分離,在通信層和業(yè)務(wù)層分別約定不同的交易密鑰用于進(jìn)行MAC 值計算和信息內容加密, 由空中圈存平臺和應用方平臺分別進(jìn)行校驗和處理。這種方式一方面增加了交易的安全性,另一方面明晰了空中圈存平臺和應用方平臺的職責, 確保了任何單方交易都無(wú)法對卡內數據進(jìn)行更改,使得雙方可以更好地建立信任關(guān)系。
3.5 圈存交易保護機制
為保證交易的事務(wù)處理完整性,筆者提出了一種充值同步的異常處理機制。在每次發(fā)起新充值流程的時(shí)候,對之前的充值記錄進(jìn)行對賬處理,確?ㄅc后臺交易記錄的一致性,具體描述如下。
、賃IM 卡在每次發(fā)起充值請求時(shí),都會(huì )在充值請求消息中附帶上前n 次未與應用平臺進(jìn)行過(guò)同步確認的交易數據信息(無(wú)論是成功還是失。。
、趹闷脚_將接收到的未同步的充值信息記錄后進(jìn)行對賬處理。如果充值記錄一致則不需要進(jìn)行處理;若已經(jīng)從綁定的支付賬戶(hù)進(jìn)行了扣款,但是UIM 卡實(shí)際充值未成功,那么就需要向支付賬戶(hù)發(fā)起沖正,返還用戶(hù)的充值款。
、郛擴IM 卡收到對應的下行充值響應數據短信時(shí),表明應用平臺已經(jīng)收到了UIM 卡的上行請求, 即應用平臺已經(jīng)對上行請求中攜帶的未同步交易信息進(jìn)行了同__步處理,這時(shí)候UIM 卡就可以將已經(jīng)確認過(guò)的交易信息刪除。
、躑IM 卡中保存的未同步交易信息數量過(guò)多,到達一定限制時(shí),就不允許UIM 卡發(fā)起新的充值請求。若用戶(hù)再次發(fā)起新的充值, 此時(shí)UIM 卡將自動(dòng)觸發(fā)執行充值同步請求操作, 將UIM 卡保存的未同步交易信息發(fā)送給應用平臺進(jìn)行同步處理,直至UIM 卡收到充值同步確認后,才允許用戶(hù)繼續執行新的充值操作。
、萦脩(hù)在不發(fā)起新充值的情況下,也可以通過(guò)STK 菜單中的同步充值記錄菜單項,單獨發(fā)起充值同步請求操作。通過(guò)上述方式,實(shí)現了一種對交易異常情況進(jìn)行平賬處理的機制,確保了兩端記錄的一致性。與原有方式對比,這種方式由用戶(hù)端發(fā)起,用戶(hù)可以在能夠連接網(wǎng)絡(luò )的情況下進(jìn)行交易同步,確保了平賬處理的成功率,對于卡片的異常處理流程實(shí)現也可以簡(jiǎn)化。
4 方案總結
本文中提出的空中圈存技術(shù)新方案與原有方案相比具備以下優(yōu)點(diǎn):接口更為標準化,大量專(zhuān)業(yè)技術(shù)工作由運營(yíng)商實(shí)現,極大簡(jiǎn)化了應用方平臺的開(kāi)發(fā)工作,使得空中圈存業(yè)務(wù)的開(kāi)發(fā)更為簡(jiǎn)便、快速,有利于空中圈存業(yè)務(wù)的快速發(fā)展; 對于移動(dòng)支付卡片的開(kāi)發(fā)工作同樣大大簡(jiǎn)化,接口標準化使得數據短信接收處理流程實(shí)現統一,要實(shí)現新的移動(dòng)支付應用時(shí)也可以大量重用原有代碼;雙向認證機制的引入,進(jìn)一步增強圈存交易的安全性,保證了信息傳輸的安全;圈存交易保護機制的提出,減少了由于用戶(hù)無(wú)法連接網(wǎng)絡(luò )造成無(wú)法進(jìn)行異常交易處理的情況,確保了兩端交易數據的一致性。
目前筆者所提出的方案已經(jīng)做為中國電信翼支付自有賬戶(hù)的空中圈存技術(shù)方案在部分省份進(jìn)行試點(diǎn),并取得了較為理想的效果,已經(jīng)準備向全國范圍進(jìn)行推廣。另外,空中圈存技術(shù)目前存在的一個(gè)較為嚴重的問(wèn)題是:數據短信的通信方式并不可靠,由于短信延誤、丟失等而引起的交易異常情況出現較多,經(jīng)常需要通過(guò)異常處理機制進(jìn)行平賬處理。要解決這個(gè)問(wèn)題,必須盡快推進(jìn)BIP 技術(shù)的研究,使得智能卡可以通過(guò)數據網(wǎng)絡(luò )與后臺進(jìn)行通信,保證交易的實(shí)時(shí)性, 從而大大減少異常情況的發(fā)生。
移動(dòng)支付空中圈存技術(shù)研究