基于移動支付的NFC燃?xì)獗碓O(shè)計(jì)
引言
燃?xì)馐悄壳案习傩丈蠲芮邢嚓P(guān)的主要能源,而現(xiàn)在燃?xì)獗淼墓芾碇饕捎每ㄊ筋A(yù)付費(fèi)方式,這種管理方式存在步驟繁瑣、費(fèi)時費(fèi)力等弊端,很有必要將近場通信NFC技術(shù)、移動終端、3G、移動支付等技術(shù)應(yīng)用到燃?xì)赓M(fèi)付費(fèi)過程,以滿足方便快捷的付費(fèi)需求。
NFC(NearFieldCommunication,近場通信)是在無線射頻識別(RFID)和互聯(lián)技術(shù)的基礎(chǔ)上融合演變而來的新技術(shù),是一種短距離無線通信技術(shù)標(biāo)準(zhǔn)。這種技術(shù)是由飛利浦公司發(fā)起,由諾基亞、索尼等著名廠商聯(lián)合主推的一項(xiàng)近距離無線通信技術(shù),它在單一芯片上集成了非接觸式讀卡器、非接觸式智能卡和點(diǎn)對點(diǎn)通信的功能,運(yùn)行在13.56MHz的頻率范圍內(nèi),能在大約10cm范圍內(nèi)建立設(shè)備之間的連接,傳輸速率可達(dá)106Kb/s、212Kb/s、424Kb/s,未來可提高到848Kb/s以上。它提供了一種簡單、觸控式的解決方案,可以讓客戶簡單直觀地交換信息、訪問內(nèi)容與服務(wù)。
本文設(shè)計(jì)并實(shí)現(xiàn)一個基于RFID的移動支付終端系統(tǒng),用一臺帶有NFC功能的手機(jī)讀取具有RFID標(biāo)簽的燃?xì)獗碇械臄?shù)據(jù),并通過手機(jī)將數(shù)據(jù)傳送到燃?xì)夤竞笈_,達(dá)到遠(yuǎn)程抄表的目的,用戶還可以通過手機(jī)與燃?xì)夤竞笈_進(jìn)行交互,實(shí)現(xiàn)遠(yuǎn)程支付和燃?xì)饬坎樵兊炔僮鳌?
1基于RFID模擬接口的移動支付
燃?xì)獗淼腞FID模擬接口中集成了微處理器,只讀存儲器,隨機(jī)存儲器,電可擦除存儲器,I/O驅(qū)動幾大部分。其中微處理器是整個芯片的核心,完成計(jì)算任務(wù);只讀存儲器用于存放預(yù)置的程序代碼,一般為微操作系統(tǒng);隨機(jī)存儲器是作為運(yùn)算時的暫存數(shù)據(jù),存放如命令參數(shù)、返回結(jié)果、臨時工作密鑰等數(shù)據(jù);電可擦除存儲器則完成用戶數(shù)據(jù)的存儲,如用戶私鑰等叫具有快速運(yùn)算、存儲量大、安全性高以及難以破譯和偽造等特點(diǎn)。
RFID模擬接口將采用自主研發(fā)的“一卡一密”措施,以加強(qiáng)系統(tǒng)的安全性。該技術(shù)方案能對每一張智能卡提供一個唯一密碼,不僅保證不同客戶的RFID卡讀寫機(jī)具相互不可串用,即使某張智能卡或某臺智能卡讀寫機(jī)具有的訪問密碼被意外泄露或被惡意破譯,仍然無法知道其它智能卡的訪問密碼。
非接觸CPU智能卡與非接觸邏輯加密卡相比,擁有獨(dú)立的CPU處理器和芯片操作系統(tǒng),所以可以更靈活的支持各種不同的應(yīng)用需求,更安全的設(shè)計(jì)交易流程。但與非接觸邏輯加密卡系統(tǒng)相比,非接觸CPU智能卡的系統(tǒng)更為復(fù)雜,需要進(jìn)行更多的系統(tǒng)改造,比如密鑰管理、交易流程、PSAM卡以及卡片個人化等。密鑰通常分為充值密鑰(ISAM卡),減值密鑰(PSAM卡),身份認(rèn)證密鑰(SAM卡)。
非接觸CPU智能卡可以通過內(nèi)外部認(rèn)證的機(jī)制,例如電子錢包的交易流程,高可靠地滿足不同的業(yè)務(wù)流程對安全和密鑰管理的需求。對電子錢包圈存可以使用圈存密鑰,消費(fèi)可以使用消費(fèi)密鑰,清算可以使用TAC密鑰,更新數(shù)據(jù)可以使用卡片應(yīng)用維護(hù)密鑰,卡片個人化過程中可以使用卡片傳輸密鑰、卡片主控密鑰、應(yīng)用主控密鑰等,真正做到一鑰一用。
2應(yīng)用場景
在采用本項(xiàng)目所研究的技術(shù)之后,用戶有望更加方便地獲得移動支付的便利,具體應(yīng)用場景如圖1所示。
用戶通過下載相應(yīng)智能手機(jī)客戶端的支付中間件,可直接在手機(jī)上進(jìn)行操作,隨時隨地完成對自己用氣的充值、余額查詢、詳單查詢等功能,足不出戶辦理燃?xì)赓M(fèi)繳納業(yè)務(wù)。
另外,在指定的地點(diǎn),通過自助終端(手機(jī))的方式,用戶也可以將銀行賬戶的資金轉(zhuǎn)入到NFC手機(jī)中,用于到家中向電表進(jìn)行充值。
綜合實(shí)現(xiàn)以上兩點(diǎn)之后,下一步可以研究使用NFC手機(jī)實(shí)現(xiàn)手機(jī)支付隨時隨地從銀行劃款購水電氣,支付成功之后加密數(shù)據(jù)自動存入手機(jī);然后將手機(jī)靠近燃?xì)獗?帶RFID模擬接口),實(shí)現(xiàn)預(yù)付費(fèi)儲值。
3系統(tǒng)設(shè)計(jì)
3.1系統(tǒng)整體結(jié)構(gòu)
基于移動支付的NFC燃?xì)獗硐到y(tǒng)整體結(jié)構(gòu)如圖2所示。系統(tǒng)正常運(yùn)行時,燃?xì)獗淼腗CU將燃?xì)獗砣細(xì)饬啃畔懭氲絊T33芯片已經(jīng)定義好的燃?xì)獗硇畔⑽募?。?dāng)用手機(jī)靠近燃?xì)獗頃r,ST33芯片進(jìn)入NFC適配器的磁場,接收手機(jī)發(fā)出的射頻信號,憑借感應(yīng)電流所獲得的能量發(fā)送出存儲在燃?xì)獗硇畔⑽募械男畔?,再通過我們編寫的移動支付終端軟件通過Web將燃?xì)獗硇畔l(fā)送到燃?xì)夤竞笈_進(jìn)行處理。燃?xì)夤竞笈_收到手機(jī)傳來的信息并解密后會主動將解密的燃?xì)獗硇畔⒒貍鹘o手機(jī),用戶也可以通過手機(jī)終端軟件主動發(fā)送查詢并得到燃?xì)夤竞笈_的響應(yīng)。用戶、銀行、燃?xì)夤局g還可以建立安全支付的通信信道,滿足用戶的遠(yuǎn)程支付需求。
3.2NFC燃?xì)獗淼膬?nèi)部結(jié)構(gòu)
NFC燃?xì)獗碓谠蓄A(yù)付費(fèi)燃?xì)獗淼幕A(chǔ)上,增加了一個NFC通信接口,去掉了原來的卡座,其內(nèi)部結(jié)構(gòu)如圖3所示。
NFC單元包括NFC控制器和NFC安全單元。NFC控制單元的主要功能是通過天線與外界的NFC手機(jī)通信,負(fù)責(zé)控制與NFC手機(jī)、NFC安全單元和主控MCU之間的信息交互。NFC安全單元主要負(fù)責(zé)執(zhí)行與安全相關(guān)的算法,存儲關(guān)鍵數(shù)據(jù),并輸出計(jì)算結(jié)果給NFC控制單元。通信接口主要包括SWP、I2C、7816接口。
3.3移動支付終端系統(tǒng)的結(jié)構(gòu)模塊
移動支付終端系統(tǒng)主要包括NFC手機(jī)接口調(diào)用、RFID卡識別、移動終端與RFID卡的數(shù)據(jù)傳輸、燃?xì)夤緦τ脩鬜FID燃?xì)獗淼墓芾?、用戶的遠(yuǎn)程支付等結(jié)構(gòu)模塊。
手機(jī)接口調(diào)用模塊主要用來實(shí)現(xiàn)移動支付終端軟件與手機(jī)NFC適配器的連接與數(shù)據(jù)通信[6]。通過對Android系統(tǒng)提供的android.nfcpackage和android.nfc.techpackage兩個API的調(diào)用實(shí)現(xiàn)移動支付終端客戶端軟件和手機(jī)NFC適配器之間的連接與訪問。我們所使用燃?xì)獗碇械腞FID電子標(biāo)簽支持的是ISO-DEP(ISO14443-4)技術(shù)標(biāo)準(zhǔn),因此可以先通過對android.nfcpackage的調(diào)用實(shí)現(xiàn)客戶端與適配器之間的連接。再調(diào)用android.nfc.techpackage提供的相應(yīng)的IsoDep類創(chuàng)建相應(yīng)的對象,以實(shí)現(xiàn)對該tag即燃?xì)獗碇蠷FID電子標(biāo)簽的訪問。
為防止RFID電子標(biāo)簽內(nèi)容的泄露,保證僅有授權(quán)實(shí)體才可以讀取和處理相關(guān)標(biāo)簽上的信息,必須建立相應(yīng)的訪問控制機(jī)制,確保讀寫器的安全性。在設(shè)計(jì)訪問控制機(jī)制時,要充分考慮標(biāo)簽自身的計(jì)算能力和數(shù)據(jù)存儲能力。為防止電子標(biāo)簽的偽造和標(biāo)簽內(nèi)容被濫用,NFC手機(jī)必須在通信之前對RFID電子標(biāo)簽的身份進(jìn)行認(rèn)證。傳統(tǒng)的身份認(rèn)證機(jī)制是使用基于公鑰的數(shù)字簽名技術(shù),這種技術(shù)不適用于計(jì)算能力嚴(yán)重受限的RFID標(biāo)簽。在該系統(tǒng)中采用了典型的三輪密碼認(rèn)證協(xié)議,該協(xié)議的認(rèn)證流程如圖4所示。
認(rèn)證的流程可以分成以下幾個步驟:
(1)應(yīng)用程序通過RFID讀寫器向RFID電子標(biāo)簽發(fā)送認(rèn)證請求;
(2)RFID標(biāo)簽收到請求后向讀寫器發(fā)送一個隨機(jī)數(shù)B;
(3)讀寫器收到隨機(jī)數(shù)B后向RFID電子標(biāo)簽發(fā)送使用要驗(yàn)證的密鑰加密B的數(shù)據(jù)包,其中包含了讀寫器生成的另一個隨機(jī)數(shù)A;
(4)RFID電子標(biāo)簽收到數(shù)據(jù)包后,使用芯片內(nèi)部存儲的密鑰進(jìn)行解密,解出隨機(jī)數(shù)B并校驗(yàn)與之發(fā)出的隨機(jī)數(shù)B是否一致;
(5)如果是一致的,則RFID使用芯片內(nèi)部存儲的密鑰對A進(jìn)行加密并發(fā)送給讀寫器;
(6)讀寫器收到此數(shù)據(jù)包后,進(jìn)行解密,解出A并與前述的A比較是否一致;
如果上述的每一個環(huán)節(jié)都成功,則驗(yàn)證成功;否則驗(yàn)證失敗。這種驗(yàn)證方式可以說是非常安全的,破解的難度也非常大。
4NFC燃?xì)獗淼膬?yōu)勢
NFC技術(shù)作為一種非接觸式的短距離傳輸技術(shù)應(yīng)用在燃?xì)獗碇?,相對傳統(tǒng)的預(yù)付費(fèi)卡表、有線遠(yuǎn)傳燃?xì)獗砗蜔o線遠(yuǎn)傳燃?xì)獗?,具有明顯的優(yōu)勢:
燃?xì)獗砼cNFC手機(jī)之間信息交換的安全、便捷。
由于NFC燃?xì)獗砼cNFC手機(jī)之間是非接觸式通信方式,因此使用十分便捷;另外由于NFC燃?xì)獗砗蚇FC手機(jī)中都引入了NFC安全單元,在數(shù)據(jù)交換的過程中將進(jìn)行一系列的加解密、簽名和驗(yàn)證簽名的操作,因此兩者之間的通信是安全的。
燃?xì)獗砼c主站之間信息交互的私密性、完整性和新鮮性。
燃?xì)獗砼c主站之間共享私有密鑰,對所交互的信息進(jìn)行加解密和簽名操作,可以保證兩者之間所交互信息是未被篡改的,從而保證了數(shù)據(jù)的私密性和完整性。通過在交互信息中插入與時間有關(guān)的變化量,可以保證信息的新鮮性,從而防止重放攻擊。對應(yīng)到燃?xì)饫U費(fèi)應(yīng)用中,以上三種安全性可防止惡意用戶竊聽、篡改繳費(fèi)金額或多次使用同一個繳費(fèi)信息進(jìn)行充值。
降低了燃?xì)夤镜倪\(yùn)營成本。
燃?xì)夤究梢圆捎妙A(yù)付費(fèi)模式來對NFC燃?xì)獗磉M(jìn)行控制。由于繳費(fèi)和預(yù)存功能都是由客戶自己完成,所以燃?xì)夤究梢源蠓葴p少柜臺營業(yè)人員,降低運(yùn)營成本。
實(shí)現(xiàn)了燃?xì)赓M(fèi)抄繳過程的一體化,方便了用戶。
該燃?xì)獗碇С钟脩羰謾C(jī)本地抄表遠(yuǎn)程支付模式,用戶可以“足不出戶”地使用NFC手機(jī)完成燃?xì)赓M(fèi)的預(yù)付費(fèi)或后付費(fèi)功能,對于用戶來說十分方便。
5結(jié)語
由于手機(jī)在中國的普及,對于普通消費(fèi)者來說,利用具有NFC功能的手機(jī)設(shè)備進(jìn)行支付時,只需將手機(jī)靠近燃?xì)獗砑纯赏瓿芍Ц?,這樣支付的便利性對于一般的消費(fèi)者來說是很有吸引力的,容易得到時尚一族的熱捧。
20211121_619a2cb3846cb__基于移動支付的NFC燃?xì)獗碓O(shè)計(jì)