最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于nfc近場通信技術(shù)的移動支付裝置及其方法

文檔序號:8004875閱讀:238來源:國知局
一種基于nfc近場通信技術(shù)的移動支付裝置及其方法
【專利摘要】本發(fā)明公開了一種基于NFC近場通信技術(shù)的移動支付裝置及其方法,將NFC技術(shù)與硬件加密結(jié)合:本發(fā)明首次將NFC技術(shù)與硬件加密結(jié)合應(yīng)用于移動終端支付領(lǐng)域,相比傳統(tǒng)的動態(tài)口令等軟件加密,安全性及可靠性更高;本發(fā)明的移動支付裝置,采用折疊式設(shè)計(jì),在不使用時,將顯示屏折疊,放進(jìn)移動支付裝置外殼中,占用空間小且對顯示屏進(jìn)行了有效的保護(hù),防止顯示屏在移動攜帶的過程中損壞。本發(fā)明的支付裝置體積小,易攜帶,可集成為一張帶液晶屏的卡片;本發(fā)明中,采用硬件加密的方式,將密鑰存儲在硬件內(nèi),能夠在硬件上保證私鑰的安全性,外界無法通過移動終端獲取支付裝置內(nèi)的私鑰,降低了密鑰泄露的可能性,從而使得支付更加安全。
【專利說明】一種基于NFC近場通信技術(shù)的移動支付裝置及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于NFC近場通信技術(shù)的移動支付裝置及其方法,屬于移動支付 【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)購物模式的興起,帶動網(wǎng)上支付系統(tǒng)的發(fā)展,更便捷、更安全地進(jìn)行在線支付 成為了所有用戶和商家追求的目標(biāo)。作為網(wǎng)絡(luò)支付的里程碑,U盾使得用戶在計(jì)算機(jī)等相 對固定的平臺上能夠更快捷、安全的支付。而移動支付,則是未來支付的重要發(fā)展方向。
[0003]對于移動支付,其安全性是首先要解決的問題。目前,影響移動支付安全的主要因 素有以下幾個:
[0004](I)無線網(wǎng)絡(luò)的安全漏洞
[0005]在移動通信網(wǎng)絡(luò)中,移動設(shè)備與固定網(wǎng)絡(luò)信息中心之間的所有通信都通過無線接 口傳輸,而無線接口是開放的,任何擁有適當(dāng)無線設(shè)備的人,均可以通過竊聽無線信道而獲 得傳輸信息,甚至可以修改、插入、刪除或重傳無線接口中傳輸?shù)男畔ⅰ?br> [0006](2)移動設(shè)備的安全隱患
[0007]移動設(shè)備的不安全因素主要表現(xiàn)在用戶身份、賬戶信息和認(rèn)證密鑰丟失;移動設(shè) 備被攻擊和數(shù)據(jù)破壞;SIM卡被復(fù)制;RFID被解密等。目前的手機(jī)等移動終端普遍缺乏使用 RSA, AES等加解密算法的安全防護(hù)措施,同時在傳統(tǒng)的互聯(lián)網(wǎng)環(huán)境中,USB Key被廣泛地用 作這一用途。然而,在移動終端上對USB并沒有相應(yīng)支持。
[0008]目前,現(xiàn)有技術(shù)中,移動終端(例如手機(jī)等)上的支付行為多采用短信驗(yàn)證碼、動態(tài) 口令等形式,但是均存在缺陷:
[0009]短信驗(yàn)證碼缺點(diǎn):可靠性差,當(dāng)手機(jī)信號不暢通時難以完成身份認(rèn)證,甚至可能被 監(jiān)聽者利用網(wǎng)絡(luò)延時進(jìn)行數(shù)據(jù)竊取或攻擊。
[0010]動態(tài)口令缺點(diǎn):需要生成動態(tài)口令的支付裝置與服務(wù)器時鐘完全一致,系統(tǒng)精度 要求高;應(yīng)用成本較高,需要一臺額外的服務(wù)器接受來自認(rèn)證服務(wù)器中繼的請求。
[0011]NFC近場通信技術(shù)(Near Field Communication, NFC),是一種短距離的高頻無線 通信技術(shù),下兼容RFID (射頻識別),但與RFID有區(qū)別。NFC近場通信技術(shù)可以在單一芯 片上集成非接觸式讀卡器、非接觸式智能卡和點(diǎn)對點(diǎn)的通信功能,運(yùn)行在13.56MHz的頻率 范圍內(nèi),都在大約IOcm范圍內(nèi)建立設(shè)備之間的連接,傳輸速率可為106kbit/s,212kbit/s, 424kbit/s,甚至可提高到848kbit/s。NFC采用雙向識別和連接,通信雙方不存在固定的主 從關(guān)系,通信可以由任意一個NFC設(shè)備發(fā)起。
[0012]NFC設(shè)備工作模式有以下三種:
[0013]卡模式(Card emulation):該模式下NFC設(shè)備相當(dāng)于一張采用RFID技術(shù)的IC卡, 可以用于商場刷卡、公交卡、門禁管制,車票,門票等場合。此種方式下,卡片通過非接觸讀 卡器的RF域來供電,即便是移動終端(如手機(jī))處于關(guān)機(jī)狀態(tài)下也可以工作。
[0014]點(diǎn)對點(diǎn)模式(P2P mode):該模式可用于數(shù)據(jù)交換,傳輸距離較短,但傳輸速度快,功耗低。將兩個具備NFC功能的設(shè)備連接,可以實(shí)現(xiàn)如交換圖片、同步通訊錄等點(diǎn)對點(diǎn)數(shù)據(jù) 傳輸。
[0015]讀卡器模式(Reader/writer mode):作為非接觸讀卡器使用,典型應(yīng)用場景為從 海報(bào)或者展覽信息電子標(biāo)簽上讀取相關(guān)信息。
[0016]NFC設(shè)備之間傳輸數(shù)據(jù)的格式為NDEF (NFC Data Exchange Format,NFC數(shù)據(jù) 交換格式),NDEF是一種輕量級的緊湊二進(jìn)制格式,能夠承載URL (網(wǎng)頁地址)等類型的數(shù) 據(jù)。設(shè)備間所傳遞數(shù)據(jù)則被稱為NdefMessage (NDEF消息)。每個NdefMessage中包含 若干NdefRecord (NDEF記錄),每條NdefRecord包含一個頭部(Header)和一個有效載荷 (Payload),記錄中的數(shù)據(jù)類型和大小由頭部注明,記錄內(nèi)容可以是URL、MME (多用途互聯(lián) 網(wǎng)郵件擴(kuò)展)或者NFC自定義的數(shù)據(jù)類型。若使用NFC定義的數(shù)據(jù)類型,載荷內(nèi)容必須被定 義在一個NFC記錄類型定義(RTD )文檔中。

【發(fā)明內(nèi)容】

[0017]本發(fā)明的目的是針對移動終端在進(jìn)行移動支付時安全性及可靠性低、支付裝置攜 帶不方便、易受干擾等問題,提出一種基于NFC近場通信技術(shù)的移動支付裝置及其方法。本 發(fā)明實(shí)現(xiàn)了移動終端支付時的電子簽名和數(shù)字認(rèn)證,采用硬件加密方式,確保交易的保密 性、真實(shí)性、完整性和不可否認(rèn)性。
[0018]一種基于NFC近場通信技術(shù)的移動支付裝置,包括外殼、顯示屏、旋轉(zhuǎn)模塊、按鍵、 微處理器、第一 NFC模塊、供電模塊和開關(guān);
[0019]移動終端內(nèi)設(shè)有第二 NFC模塊;
[0020]外殼側(cè)面設(shè)有凹槽,旋轉(zhuǎn)模塊通過旋轉(zhuǎn)軸固定在外殼的凹槽內(nèi),顯示屏與按鍵固 定在旋轉(zhuǎn)模塊上,微處理器、供電模塊和第一 NFC模塊位于外殼內(nèi)部;
[0021]顯示屏用于顯示支付信息顯示,按鍵用于查看顯示屏信息、確認(rèn)支付、取消支付以 及重啟支付裝置;
[0022]開關(guān)位于外殼上,開關(guān)控制供電模塊對顯不屏、微處理器、第一 NFC模塊的供電;
[0023]供電模塊包括鋰電池和充電口,供電模塊利用鋰電池為顯示屏、微處理器、第一 NFC模塊供電,外界通過充電口對鋰電池充電;
[0024]微處理器包括控制模塊、硬件加密模塊;
[0025]硬件加密模塊內(nèi)設(shè)有密鑰區(qū),密鑰區(qū)內(nèi)存儲有RSA私鑰,硬件加密模塊設(shè)有PIN碼 功能,通過PIN碼對支付裝置進(jìn)行訪問控制;硬件加密模塊內(nèi)設(shè)有哈希算法和RSA加解密算 法,能夠?qū)崿F(xiàn)數(shù)據(jù)驗(yàn)證、數(shù)據(jù)摘要、數(shù)據(jù)加解密和簽名;
[0026]控制模塊具有控制功能,用于控制顯示屏、按鍵及第一 NFC模塊與包含第二 NFC模 塊的移動終端之間的通信;
[0027]第一 NFC模塊與第二 NFC模塊之間采用NFC技術(shù)進(jìn)行通信。
[0028]一種基于NFC近場通信技術(shù)的移動支付裝置的支付方法,包括以下內(nèi)容:
[0029]移動終端向支付裝置發(fā)送數(shù)據(jù)的方法:
[0030]I)、移動終端通過用戶輸入或自動生成的方式,獲得一條或若干條需要發(fā)送的數(shù) 據(jù),包括在雙向身份認(rèn)證過程中為銀行端發(fā)送的隨機(jī)數(shù)以及Hash值;PIN碼認(rèn)證過程中為 用戶輸入的PIN碼;還包括銀行發(fā)送的賬單信息,上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;
[0031]2)、移動終端通過getBytes ()函數(shù)將每一條數(shù)據(jù)都轉(zhuǎn)換為字節(jié)型數(shù)組byte □,即十六進(jìn)制數(shù)據(jù);
[0032]3)、移動終端將byte []類型的十六進(jìn)制數(shù)據(jù)傳入NdefRecord(short tnf, byte [] type, byte [] id, byte [] payload)構(gòu)造函數(shù),得到NdefRecord類型對象,從而將每一條數(shù)據(jù)格式轉(zhuǎn)化為NdefRecord類型;構(gòu)造函數(shù)中tnf為NDEF數(shù)據(jù)類型,type為數(shù)據(jù)格式的具體聲明,id為標(biāo)識符的元數(shù)據(jù),payload為要傳輸?shù)臄?shù)據(jù)內(nèi)容;
[0033]4)、移動終端將 NdefRecord 類型數(shù)據(jù)傳入 NdefMessage (NdefRecord[]records) 構(gòu)造函數(shù),得到NdefMessage類型的數(shù)據(jù),該數(shù)據(jù)中包含前述的一條或若干條NdefRecord 類型的數(shù)據(jù),該類型的數(shù)據(jù)即為支持NFC功能的設(shè)備間進(jìn)行通信時所使用的標(biāo)準(zhǔn)數(shù)據(jù)格式 NDEF,符合SNEP協(xié)議所要求的標(biāo)準(zhǔn),為移動終端與裝置之間直接交互的內(nèi)容;
[0034]支付裝置接收移動終端所發(fā)送數(shù)據(jù)的方法:
[0035]1)、支付裝置通過開關(guān)啟動電源后,調(diào)用rxNDEFPayloadO函數(shù),使支付裝置處于等待數(shù)據(jù)的狀態(tài),準(zhǔn)備接收一個能夠匹配SNEP協(xié)議所規(guī)范的NdefMessage類型數(shù)據(jù);
[0036]2)、當(dāng)有數(shù)據(jù)信息傳來時,支付裝置首先檢測傳遞信息的設(shè)備能否支持點(diǎn)對點(diǎn)通信,若檢測通過則接收該數(shù)據(jù);接收該數(shù)據(jù)時會先驗(yàn)證數(shù)據(jù)完整性,若數(shù)據(jù)完整則將該數(shù)據(jù)存為NdefMessage類型;
[0037]3)、支付裝置通過getRecordO [i]函數(shù)從NdefMessage類型數(shù)據(jù)中提取之前移動終端中封裝好的若干條NdefRecord類型數(shù)據(jù);
[0038]4)、支付裝置通過getNDEFChar ()函數(shù),將NdefRecord類型數(shù)據(jù)轉(zhuǎn)化為char []; 在其末尾添加結(jié)束標(biāo)識符,即可將其轉(zhuǎn)換為字符串;上述方式完成了從移動終端到支付裝置數(shù)據(jù)的傳遞;
[0039]支付裝置向移動終端發(fā)送數(shù)據(jù)的方法:
[0040]I)、支付裝置獲得一條或多條需要發(fā)送的數(shù)據(jù),該數(shù)據(jù)由移動終端發(fā)送的數(shù)據(jù)經(jīng)過解密以及數(shù)據(jù)比對后生成,包括數(shù)字簽名、身份認(rèn)證是否通過的確認(rèn)信息以及需要發(fā)送至移動終端的數(shù)據(jù),上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;
[0041]2)、利用 createNDEFShortRecord (uint8_t%iessage, uint8_t payloadLength, uint8_ t*&NDEFMessage)函數(shù),其中^message為要傳輸?shù)臄?shù)據(jù)內(nèi)容,payloadLength為數(shù)據(jù)長度, NDEFMessage為要發(fā)送的NdefMessage類型數(shù)據(jù);該函數(shù)首先填充NdefRecord的頭部,再將字符串?dāng)?shù)據(jù)添加為負(fù)載,實(shí)現(xiàn)將每一條字符串類型數(shù)據(jù)分別轉(zhuǎn)換為NdefRecord類型數(shù)據(jù),并直接封裝為NdefMessage類型數(shù)據(jù),同時返回?cái)?shù)據(jù)長度txLength,用于判斷NdefMessage是否成功生成;
[0042]3)、利用 pushPayload (txNDEFMessagePtr, txLength)函數(shù),其中 txNDEFMessagePtr 為要發(fā)送的Ndeflfessage數(shù)據(jù),txLength為數(shù)據(jù)長度;該函數(shù)調(diào)用數(shù)據(jù)鏈路層中的 openNNPClientLink()函數(shù),若連接成功建立則調(diào)用 clientLinkTxData((uint8_t*) snepMessage, Iength+SNEP_MESSAGE_HDR_LEN)函數(shù),進(jìn)行一次 NdefMessage 類型數(shù)據(jù)的發(fā)送;
[0043]移動終端接收支付裝置所發(fā)送數(shù)據(jù)的方法:[0044]I )、根據(jù)移動終端所包含的第二 NFC模塊的特性,若開啟NFC功能,當(dāng)移動終端處 于屏幕點(diǎn)亮狀態(tài)并解鎖,移動終端一直處于等待接收消息狀態(tài);
[0045]2)、當(dāng)移動終端在能夠識別的范圍內(nèi)檢測到支付裝置發(fā)送數(shù)據(jù)所產(chǎn)生的射頻場 時,自動接收支付裝置所發(fā)送的NdefMessage類型數(shù)據(jù);
[0046]3)、通過getRecords () [i]函數(shù),提取NdefMessage數(shù)據(jù)中包含的一條或若干條 NdefRecord數(shù)據(jù),再通過getPay1adO函數(shù)得到byte []類型數(shù)據(jù);
[0047]4)、將byte[]類型數(shù)據(jù)傳入String (byte [] data)構(gòu)造函數(shù),即可獲得字符串類型 數(shù)據(jù);上述方式完成了從支付裝置到移動終端數(shù)據(jù)的傳遞。
[0048]一種基于NFC近場通信技術(shù)的移動支付裝置的支付方法,在移動終端上,使用支 付裝置進(jìn)行支付的方法包括:
[0049]I)、用戶需要支付時,向銀行提交待支付賬單;
[0050]2)、在移動終端進(jìn)行刷新,得到銀行推送給移動終端的賬單信息,點(diǎn)擊賬單進(jìn)行支 付,同時將支付裝置貼于移動終端之后,移動終端提示“輸入PIN碼”,PIN碼輸入正確后,支 付裝置開始與銀行端服務(wù)器進(jìn)行身份驗(yàn)證;
[0051]3)、雙向身份認(rèn)證過程中一共利用了兩對密鑰,其中一對設(shè)為Rl,另一對設(shè)為R2, 其中Rl的私鑰在支付裝置出廠時已被內(nèi)置到支付裝置內(nèi),Rl的公鑰由銀行保存;支付裝置 利用Rl私鑰簽名,銀行利用Rl公鑰解密,驗(yàn)證用戶身份;R2公鑰在用戶每次進(jìn)行賬單請求 時,移動終端從銀行端獲取,R2的私鑰則由銀行保存;銀行利用R2私鑰簽名,移動終端利用 R2公鑰解密,驗(yàn)證銀行身份,上述方式即實(shí)現(xiàn)了雙向身份認(rèn)證;
[0052]銀行端服務(wù)器產(chǎn)生一個隨機(jī)數(shù)X及其Hash值,并用R2的私鑰對Hash值進(jìn)行簽名 為密文A,通過socket通信將隨機(jī)數(shù)X與數(shù)字簽名一起發(fā)送給移動終端;移動終端收到隨 機(jī)數(shù)X和數(shù)字簽名后,用同樣的Hash算法對隨機(jī)數(shù)X計(jì)算出Hash值,然后與用移動終端從 銀行端獲取的R2公鑰對數(shù)字簽名進(jìn)行解密解出的Hash值相比較;如兩Hash值相等則銀行 端身份得以確認(rèn);此后,移動終端將該隨機(jī)數(shù)X及其Hash值通過的第二 NFC模塊發(fā)送至支 付裝置;支付裝置得到隨機(jī)數(shù)X及其Hash值后,以預(yù)先和銀行約定好的隨機(jī)數(shù)生成算法,利 用隨機(jī)數(shù)X和預(yù)先和銀行約定好的其它信息,生成新的隨機(jī)數(shù)Y和相應(yīng)的Hash值,再用Rl 私鑰簽名后發(fā)回銀行;此時銀行也以相同的算法計(jì)算新的隨機(jī)數(shù)Y ;銀行用Rl公鑰解密,并 驗(yàn)證Hash值正確,銀行比較兩個新的隨機(jī)數(shù)是否相同,若均相同則支付裝置所有者的身份 得以確認(rèn),至此雙向認(rèn)證完成;
[0053]4)、雙向身份認(rèn)證成功后,移動終端及支付裝置會提示身份認(rèn)證成功;此后,銀行 端利用Rl的公鑰對待支付賬單的商品名稱、金額、交易日期及流水號進(jìn)行加密為密文B,然 后將密文B傳輸?shù)揭苿咏K端上,再通過移動終端傳輸?shù)街Ц堆b置中,支付裝置使用Rl的私 鑰對接受到的密文B進(jìn)行解密得到明文賬單信息,并將該明文所表示的待支付賬單的商品 名稱、金額、交易日期及流水號在顯示屏上顯示。此時,如果確認(rèn)支付,按下顯示屏旁的確認(rèn) 支付按鈕,如果取消支付,按下顯示屏旁的取消按鈕。確認(rèn)支付后,支付裝置用Rl私鑰對 代表支付成功的命令進(jìn)行數(shù)字簽名,通過支付裝置的第一 NFC模塊傳輸給移動終端的第二 NFC模塊,移動終端通過socket網(wǎng)絡(luò)通信將代表支付成功的命令及其數(shù)字簽名傳輸給銀行 端服務(wù)器,銀行端用Rl的公鑰解密數(shù)字簽名。若簽名信息無誤,則從該銀行賬戶扣去相應(yīng) 金額,并返還已支付狀態(tài)的信息給移動終端;在移動終端上點(diǎn)擊刷新,該賬單狀態(tài)由待支付變?yōu)橐阎Ц丁?br> [0054]本發(fā)明的優(yōu)點(diǎn)在于:
[0055](I)將NFC技術(shù)與硬件加密結(jié)合:本發(fā)明首次將NFC技術(shù)與硬件加密結(jié)合應(yīng)用于移動終端支付領(lǐng)域,相比傳統(tǒng)的動態(tài)口令等軟件加密,安全性及可靠性更高;
[0056](2)體積小:本發(fā)明的移動支付裝置,采用折疊式設(shè)計(jì),在不使用時,將顯示屏折疊,放進(jìn)移動支付裝置外殼中,占用空間小且對顯示屏進(jìn)行了有效的保護(hù),防止顯示屏在移動攜帶的過程中損壞。本發(fā)明的支付裝置體積小,易攜帶,可集成為一張帶液晶屏的卡片;
[0057](3)硬件加密移動支付方式-支付安全:本發(fā)明中,采用硬件加密的方式,將密鑰存儲在硬件內(nèi),能夠在硬件上保證私鑰的安全性,外界無法通過移動終端獲取支付裝置內(nèi)的私鑰,降低了密鑰泄露的可能性,從而使得支付更加安全;
[0058](4)硬件加密移動支付方式-支付快捷:本發(fā)明中,采用硬件加密的方式,硬件加密的處理速度更快,從而使得支付更加快捷;
[0059](5) NFC通信-支付安全:由于手機(jī)等移動終端本身體積較小,如果使用數(shù)據(jù)線進(jìn)行連接則使用時非常不方便,如果使用傳統(tǒng)的Wifi等無線方式,進(jìn)行身份認(rèn)證以及支付, 在安全方面可能會產(chǎn)生問題。本發(fā)明綜合考慮安全性與便捷性,采用NFC近場通信作為通信手段,同移動終端信息傳輸?shù)木嚯x近,速度快,使得竊聽者沒有機(jī)會截取支付裝置與移動終端信道中的信息。本發(fā)明充分利用了 NFC的特點(diǎn),既利用其本身屬于無線連接的特性,實(shí)現(xiàn)了本發(fā)明移動支付裝置與移動終端的無線通信,滿足了簡潔性,也利用了其有效通信距離短這一特點(diǎn)加強(qiáng)了信道的安全性;
[0060](6)集成度高:本發(fā)明裝置的硬件電路自行設(shè)計(jì),將獨(dú)立的液晶屏幕、按鍵、NFC模塊及核心微處理器集成化,充分利用嵌入式系統(tǒng)寶貴的硬件資源。
[0061](7)認(rèn)證安全:銀 行端服務(wù)器和支付裝置之間能夠進(jìn)行雙向數(shù)字認(rèn)證,可防止釣魚網(wǎng)站和非法身份用戶的欺詐行為。
[0062](8)使用方便:本發(fā)明移動性好,便于攜帶,支付時只需將其貼于移動終端后側(cè)即可使用。
【專利附圖】

【附圖說明】
[0063]圖1是本發(fā)明的正視結(jié)構(gòu)示意圖;
[0064]圖2是本發(fā)明的側(cè)視結(jié)構(gòu)示意圖;
[0065]圖3是本發(fā)明與移動設(shè)備位置關(guān)系結(jié)構(gòu)示意圖。
[0066]圖中:
[0067]1-外殼2-旋轉(zhuǎn)模塊3-顯示屏
[0068]4_按鍵5_微處理器6_第一 NFC模塊
[0069]7-第二 NFC模塊8-移動終端9_供電模塊
[0070]10-開關(guān)
【具體實(shí)施方式】
[0071]下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0072]本發(fā)明是一種基于NFC近場通信技術(shù)的移動支付裝置,如圖1所示,包括外殼1、旋轉(zhuǎn)模塊2、顯不屏3、按鍵4、微處理器5、第一 NFC模塊6、供電模塊9和開關(guān)10 ;
[0073]第二 NFC模塊7位于移動終端8內(nèi)。
[0074]外殼I側(cè)面設(shè)有凹槽,旋轉(zhuǎn)模塊2通過旋轉(zhuǎn)軸固定在外殼I的凹槽內(nèi),旋轉(zhuǎn)模塊2 能夠繞旋轉(zhuǎn)軸進(jìn)行轉(zhuǎn)動,顯示屏3與按鍵4固定在旋轉(zhuǎn)模塊2上,微處理器5與第一 NFC模 塊6位于外殼I內(nèi)部。
[0075]開關(guān)10控制供電模塊9對顯不屏3、微處理器5、第一 NFC模塊6的供電。
[0076]供電模塊9包括鋰電池和充電口,供電模塊9利用鋰電池為顯示屏3、微處理器5、 第一 NFC模塊6供電,供電模塊9提供充電功能,可以利用充電口對鋰電池充電。
[0077]本發(fā)明采用鋰電池供電,電池壽命長且能夠有效減小裝置體積,使得本發(fā)明的支 付裝置攜帶更加方便。
[0078]微處理器5包括控制模塊、硬件加密模塊;
[0079]硬件加密模塊內(nèi)設(shè)有密鑰區(qū),密鑰區(qū)內(nèi)存儲有RSA私鑰,硬件加密模塊設(shè)有PIN碼 功能,通過PIN碼對支付裝置進(jìn)行保護(hù)。硬件加密模塊內(nèi)設(shè)有哈希算法和RSA加解密算法, 能夠?qū)崿F(xiàn)數(shù)據(jù)驗(yàn)證、數(shù)據(jù)摘要、數(shù)據(jù)加解密和簽名。
[0080]所述RSA加解密算法為1024位及以上。
[0081]硬件加密模塊能夠?qū)崿F(xiàn)RSA加解密運(yùn)算,并保存支付裝置預(yù)置的私鑰,杜絕了密 鑰在移動終端8內(nèi)存中出現(xiàn)的可能性,大大提高了安全性。
[0082]本發(fā)明的硬件加密模塊的加密方式中:
[0083]1、硬件PIN碼保護(hù)
[0084]黑客需要同時取得用戶的支付裝置硬件以及支付裝置的PIN碼,才可以進(jìn)行支 付。即使用戶的PIN碼被泄漏,只要用戶持有的支付裝置不被盜取,合法用戶的身份就不會 被仿冒;如果用戶的支付裝置遺失,拾到者由于不知道用戶PIN碼,也無法仿冒合法用戶的 身份。
[0085]2、安全密鑰存儲
[0086]支付裝置的密鑰存儲于安全的密鑰區(qū)中,外部用戶無法直接讀取,對密鑰文件的 讀寫和修改都必須由支付裝置內(nèi)的程序調(diào)用。從支付裝置接口的外面,沒有任何一條命令 能夠?qū)γ荑€區(qū)的內(nèi)容進(jìn)行讀出、修改、更新和刪除。
[0087]3、公鑰密碼體制
[0088]公鑰密碼體制和數(shù)字證書從密碼學(xué)的角度上保證了支付裝置的安全性。整個認(rèn)證 過程利用了兩對密鑰Rl和R2,其中Rl的私鑰在支付裝置出廠時已被內(nèi)置到支付裝置內(nèi), Rl的公鑰由銀行保存。支付裝置利用Rl私鑰簽名,銀行利用Rl公鑰解密,可以驗(yàn)證用戶身 份。每次進(jìn)行賬單請求時,移動終端從銀行端獲取R2公鑰,R2的私鑰則由銀行保存。銀行 利用R2私鑰簽名,移動終端利用R2公鑰解密,可以驗(yàn)證銀行身份。上述方式即實(shí)現(xiàn)了雙向 身份認(rèn)證。在支付裝置初始化的時候,先將密碼算法程序預(yù)置在微處理器的內(nèi)存中,在用戶 得到支付裝置之前,系統(tǒng)已經(jīng)將Rl私鑰(用于返還數(shù)據(jù)簽名及銀行Rl公鑰所加密數(shù)據(jù)的解 密)內(nèi)置到支付裝置里面去,存儲于密鑰區(qū),不允許外部訪問。進(jìn)行數(shù)字簽名時以及非對稱 解密運(yùn)算時,有密鑰參與的密碼運(yùn)算只在芯片內(nèi)部即可完成,全過程中密鑰可以不出支付 裝置介質(zhì),以此來保證以支付裝置為存儲介質(zhì)的數(shù)字證書認(rèn)證在安全上無懈可擊。
[0089]4、硬件實(shí)現(xiàn)加密算法[0090]支付裝置的微處理器5為高性能安全芯片,可以實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證、數(shù)據(jù)摘要、數(shù)據(jù)加 解密和簽名的各種算法,加解密運(yùn)算在支付裝置內(nèi)進(jìn)行,保證了用戶密鑰不會出現(xiàn)在移動 終端內(nèi)存中,不易出現(xiàn)信息泄露的問題。
[0091]微處理器5中的控制模塊具有控制功能,用于控制顯示屏3、按鍵4及第一 NFC模 塊6與包含第二 NFC模塊7的移動終端8之間的通信。
[0092]如圖3所示,用戶進(jìn)行消費(fèi)時,向銀行端提交待付款信息,待付款信息包括訂單 號、金額以及用戶所購物品的名稱,銀行端將待付款信息存于數(shù)據(jù)庫中。用戶通過移動終端 8進(jìn)行支付時,銀行端推送待付款信息給移動終端8。支付裝置的第一 NFC模塊6與移動終 端8的第二 NFC模塊7貼緊,通過移動終端8輸入PIN碼,微處理器5的硬件加密模塊對 PIN碼進(jìn)行驗(yàn)證,驗(yàn)證正確后,控制支付裝置與銀行端服務(wù)器進(jìn)行身份驗(yàn)證。
[0093]銀行端服務(wù)器產(chǎn)生一個隨機(jī)數(shù)X及其Hash值,并用R2的私鑰對Hash值進(jìn)行簽名 為密文A,通過socket通信將隨機(jī)數(shù)X與數(shù)字簽名一起發(fā)送給移動終端。移動終端收到隨 機(jī)數(shù)X和數(shù)字簽名后,用同樣的Hash算法對隨機(jī)數(shù)X計(jì)算出Hash值,然后與用移動終端獲 取的R2公鑰對數(shù)字簽名進(jìn)行解密解出的Hash值相比較。如兩Hash值相等則銀行端身份得 以確認(rèn)。此后,移動終端將該隨機(jī)數(shù)X及其Hash值通過移動終端8的第二 NFC模塊7發(fā)送 至支付裝置。支付裝置得到隨機(jī)數(shù)X及其Hash值后,以一個事先和銀行約定好的隨機(jī)數(shù)生 成算法,利用隨機(jī)數(shù)X和一些其它信息(其他信息可為任意值,事先約定好即可),生成新的 隨機(jī)數(shù)Y和相應(yīng)的Hash值,再用私鑰加密后發(fā)回銀行。此時銀行也以相同的算法計(jì)算新的 隨機(jī)數(shù)Y。銀行用Rl公鑰解密,并驗(yàn)證Hash值正確,接下來銀行比較兩個新的隨機(jī)數(shù)是否 相同,若均相同則支付裝置所有者的身份得以確認(rèn)。至此雙向認(rèn)證完成。雙向身份認(rèn)證成 功后,移動終端會提示身份認(rèn)證成功。此后,銀行端利用Rl的公鑰對待支付賬單的商品名 稱、金額、交易日期及流水號等重要信息進(jìn)行加密為密文B,然后將密文B傳輸?shù)揭苿咏K端8 上,再通過移動終端8傳輸?shù)街Ц堆b置中,支付裝置使用Rl的私鑰對接受到的密文B進(jìn)行 解密得到明文賬單信息,并將該明文所表示的待支付賬單的商品名稱、金額、交易日期及流 水號等重要信息在顯示屏3上顯示。
[0094]此時顯示屏3上顯示支付訂單號和訂單金額,通過按鍵4對顯示屏3顯示信息進(jìn) 行查看,按鍵4包括上下翻頁按鈕、確定按鈕、取消按鈕、重啟按鈕,上下翻頁按鈕用于對顯 示屏3顯示信息翻頁,確定按鈕用于核對顯示信息正確后,用戶確認(rèn)執(zhí)行本次支付以及硬 件加密模塊進(jìn)行數(shù)字簽名,取消按鈕用于取消本次支付,重啟按鈕用于重啟支付裝置。
[0095]用戶通過確認(rèn)鍵進(jìn)行數(shù)字簽名后,支付裝置生成代表支付成功的命令,并用Rl的 私鑰進(jìn)行數(shù)字簽名,通過支付裝置的第一 NFC模塊6傳輸給包含第二 NFC模塊7的移動終端 8,移動終端8通過socket網(wǎng)絡(luò)通信將代表支付成功的命令及其數(shù)字簽名傳輸給銀行端服 務(wù)器,銀行端用Rl的公鑰解密數(shù)字簽名,若簽名信息無誤,則從該銀行賬戶扣去相應(yīng)金額, 并返還已支付狀態(tài)的信息給移動終端,完成支付。
[0096]支付裝置的第一 NFC模塊6傳輸給移動終端8的第二 NFC模塊7之間進(jìn)行數(shù)據(jù)交 換時主要利用了 NDEF、LLCP以及SNEP三個協(xié)議,第一 NFC模塊6的輸出信息為十六進(jìn)制 數(shù)據(jù),十六進(jìn)制數(shù)據(jù)通過NDEF協(xié)議,形成NDEF格式數(shù)據(jù),再進(jìn)行SNEP協(xié)議打包,然后數(shù)據(jù) 通過NFC數(shù)據(jù)傳輸至第二 NFC模塊7,第二 NFC模塊7的接收信息經(jīng)過SNEP協(xié)議解包得到 NDEF格式數(shù)據(jù),通過NDEF協(xié)議,第二 NFC模塊7接收到十六進(jìn)制數(shù)據(jù)。第二 NFC模塊7輸出數(shù)據(jù),第一 NFC模塊6接收數(shù)據(jù)時,同上述過程。整個過程使用了 LLCP協(xié)議,以保證數(shù)據(jù)的可靠性。[0097]本發(fā)明通過對NFC技術(shù)的合理使用,克服了有線連接的連接復(fù)雜性與其他無線連接可能帶來的不安全性,保證了裝置整體的簡潔與安全。
[0098]移動終端向裝置發(fā)送數(shù)據(jù)的方法:
[0099]1、首先移動終端需要通過用戶輸入或自動生成等方式獲得一條或若干條需要發(fā)送的數(shù)據(jù),包括在雙向身份認(rèn)證過程中為銀行端發(fā)送的隨機(jī)數(shù)以及Hash值;PIN碼認(rèn)證過程中為用戶輸入的PIN碼;還包括銀行發(fā)送的賬單信息,上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;
[0100]2、移動終端通過getBytes ()函數(shù)將每一條數(shù)據(jù)都轉(zhuǎn)換為字節(jié)型數(shù)組(byte[]), 其本質(zhì)即為十六進(jìn)制數(shù)據(jù)。
[0101]3、移動終端將2中所述byte []類型數(shù)據(jù)傳入NdefRecord (short tnf, byte [] type, byte [] id, byte [] payload)構(gòu)造函數(shù),得到NdefRecord類型對象,從而將每一條數(shù)據(jù)格式轉(zhuǎn)化為NdefRecord類型;構(gòu)造函數(shù)中tnf為NDEF數(shù)據(jù)類型,type為數(shù)據(jù)格式的具體聲明,id為標(biāo)識符的元數(shù)據(jù),payload為要傳輸?shù)臄?shù)據(jù)內(nèi)容;
[0102]4、移動終端將 3 中所述 NdefRecord 類型數(shù)據(jù)傳入 NdefMessage (NdefRecord[] records)構(gòu)造函數(shù),得到NdefMessage類型的數(shù)據(jù),該數(shù)據(jù)中包含前述的一條或若干條 NdefRecord類型的數(shù)據(jù),該類型的數(shù)據(jù)即為支持NFC功能的設(shè)備間進(jìn)行通信時所使用的標(biāo)準(zhǔn)數(shù)據(jù)格式,符合SNEP協(xié)議所要求的標(biāo)準(zhǔn),為移動終端與裝置之間直接交互的內(nèi)容。
[0103]支付裝置接收移動終端所發(fā)送數(shù)據(jù)的方法:
[0104]1、支付裝置電源啟動后調(diào)用rxNDEFPayloadO函數(shù),使支付裝置處于等待數(shù)據(jù)的狀態(tài),準(zhǔn)備接收一個能夠匹配SNEP協(xié)議所規(guī)范的NdefMessage類型數(shù)據(jù);
[0105]2、當(dāng)有數(shù)據(jù)信息傳來時,支付裝置首先檢測傳遞信息的設(shè)備能否支持點(diǎn)對點(diǎn)通信,若檢測通過則接收該數(shù)據(jù)。接收該數(shù)據(jù)時會先驗(yàn)證數(shù)據(jù)完整性,若數(shù)據(jù)完整則將該數(shù)據(jù)存為NdefMessage類型;
[0106]3、支付裝置通過getRecordO [i]函數(shù)從NdefMessage類型數(shù)據(jù)中提取之前移動終端中封裝好的若干條NdefRecord類型數(shù)據(jù);
[0107]4、支付裝置通過getNDEFChar ()函數(shù),將NdefRecord類型數(shù)據(jù)轉(zhuǎn)化為char []。在其末尾添加結(jié)束標(biāo)識符即可將其轉(zhuǎn)換為字符串;上述方式完成了從移動終端到支付裝置數(shù)據(jù)的傳遞。
[0108]支付裝置向移動終端發(fā)送數(shù)據(jù)的方法:
[0109]1、支付裝置首先獲得一條或多條需要發(fā)送的數(shù)據(jù),該數(shù)據(jù)由移動終端發(fā)送的數(shù)據(jù)經(jīng)過解密以及數(shù)據(jù)比對等過程后生成,包括數(shù)字簽名、身份認(rèn)證是否通過的確認(rèn)信息等上文所述需要發(fā)送至移動終端的數(shù)據(jù),上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;
[0110]2、利用 createNDEFShortRecord(uint8_ _t*message,uint8_t payloadLength, uint8_ t*&NDEFMessage)函數(shù),其中^message為要傳輸?shù)臄?shù)據(jù)內(nèi)容,payloadLength為數(shù)據(jù)長度, NDEFMessage為要發(fā)送的NdefMessage類型數(shù)據(jù);該函數(shù)首先填充NdefRecord的頭部,再將字符串?dāng)?shù)據(jù)添加為負(fù)載,實(shí)現(xiàn)將每一條字符串類型數(shù)據(jù)分別轉(zhuǎn)換為NdefRecord類型數(shù)據(jù),并直接封裝為NdefMessage類型數(shù)據(jù),同時返回?cái)?shù)據(jù)長度txLength,用于判斷NdefMessage是否 成功生成;
[0111]3、利用 pushPayload (txNDEFMessagePtr, txLength)函數(shù),其中 txNDEFMessagePtr 為要發(fā)送的Ndeflfessage數(shù)據(jù),txLength為數(shù)據(jù)長度;該函數(shù)調(diào)用數(shù)據(jù)鏈路層中的 openNNPClientLink()函數(shù),若連接成功建立則調(diào)用 clientLinkTxData((uint8_t*) snepMessage, Iength+SNEP_MESSAGE_HDR_LEN)函數(shù),進(jìn)行一次NdefMessage類型數(shù)據(jù)的發(fā)送。
[0112]移動終端接收裝置所發(fā)送數(shù)據(jù)的方法:
[0113]1、根據(jù)移動終端所包含的NFC模塊的特性,若開啟NFC功能,只要移動終端處于屏 幕點(diǎn)亮狀態(tài)并解鎖,移動終端就一直處于等待接收消息狀態(tài);
[0114]2、當(dāng)移動終端在能夠識別的范圍內(nèi)檢測到裝置發(fā)送數(shù)據(jù)所產(chǎn)生的射頻場時,會自 動接收裝置所發(fā)送的NdefMessage類型數(shù)據(jù);
[0115]3、通過getRecords () [i]函數(shù),提取NdefMessage數(shù)據(jù)中包含的一條或若干條 NdefRecord數(shù)據(jù),再通過getPay1adO函數(shù)得到byte[]類型數(shù)據(jù);
[0116]4、將3中所述byte[]類型數(shù)據(jù)傳入String (byte [] data)構(gòu)造函數(shù),即可獲得字 符串類型數(shù)據(jù);上述方式完成了從支付裝置到移動終端數(shù)據(jù)的傳遞。
[0117]在移動終端上,使用支付裝置進(jìn)行完整支付的方法:
[0118]1、用戶需要支付時,在網(wǎng)頁瀏覽器上輸入銀行賬戶號,點(diǎn)擊確認(rèn)支付賬單按鈕,然 后打開移動終端的軟件,輸入用戶名和密碼進(jìn)行登錄(此時用戶名和密碼是和銀行服務(wù)器 數(shù)據(jù)庫里的存儲的數(shù)據(jù)相互匹配認(rèn)證)。
[0119]2、登錄成功后,點(diǎn)擊刷新按鈕,可得到銀行推送給移動終端的賬單信息,點(diǎn)擊任一 條賬單進(jìn)行支付,同時將支付裝置貼于移動終端后側(cè),系統(tǒng)提示“輸入PIN碼”,PIN碼輸入 正確后,支付裝置開始與銀行端服務(wù)器進(jìn)行身份驗(yàn)證。
[0120]3、雙向身份認(rèn)證過程中一共利用了兩對密鑰,其中一對設(shè)為Rl,另一對設(shè)為R2, 其中Rl的私鑰在支付裝置出廠時已被內(nèi)置到支付裝置內(nèi),Rl的公鑰由銀行保存。支付裝 置利用Rl私鑰簽名,銀行利用Rl公鑰解密,可以驗(yàn)證用戶身份。R2公鑰在用戶每次進(jìn)行賬 單請求時,移動終端從銀行端獲取,R2的私鑰則由銀行保存。銀行利用R2私鑰簽名,移動 終端利用R2公鑰解密,可以驗(yàn)證銀行身份。上述方式即實(shí)現(xiàn)了雙向身份認(rèn)證。
[0121]銀行端服務(wù)器產(chǎn)生一個隨機(jī)數(shù)X及其Hash值,并用R2的私鑰對Hash值進(jìn)行簽名 為密文A,通過socket通信將隨機(jī)數(shù)X與數(shù)字簽名一起發(fā)送給移動終端。移動終端收到隨 機(jī)數(shù)X和數(shù)字簽名后,用同樣的Hash算法對隨機(jī)數(shù)X計(jì)算出Hash值,然后與用移動終端從 銀行端獲取的R2公鑰對數(shù)字簽名進(jìn)行解密解出的Hash值相比較。如兩Hash值相等則銀 行端身份得以確認(rèn)。此后,移動終端將該隨機(jī)數(shù)X及其Hash值通過的第二 NFC模塊7發(fā)送 至支付裝置。支付裝置得到隨機(jī)數(shù)X及其Hash值后,以一個事先和銀行約定好的隨機(jī)數(shù)生 成算法,利用隨機(jī)數(shù)X和一些其它信息(其他信息可為任意值,事先約定好即可),生成新的 隨機(jī)數(shù)Y和相應(yīng)的Hash值,再用Rl私鑰簽名后發(fā)回銀行。此時銀行也以相同的算法計(jì)算 新的隨機(jī)數(shù)Y。銀行用Rl公鑰解密,并驗(yàn)證Hash值正確,接下來銀行比較兩個新的隨機(jī)數(shù) 是否相同,若均相同則支付裝置所有者的身份得以確認(rèn)。至此雙向認(rèn)證完成。
[0122]4、雙向身份認(rèn)證成功后,移動終端及支付裝置會提示身份認(rèn)證成功。此后,銀行端 利用Rl的公鑰對待支付賬單的商品名稱、金額、交易日期及流水號等重要信息進(jìn)行加密為密文B,然后將密文B傳輸?shù)揭苿咏K端上,再通過移動終端傳輸?shù)街Ц堆b置中,支付裝置使 用Rl的私鑰對接受到的密文B進(jìn)行解密得到明文賬單信息,并將該明文所表示的待支付賬 單的商品名稱、金額、交易日期及流水號等重要信息在顯示屏3上顯示。此時按下顯示屏3 旁的確認(rèn)支付按鈕(按下取消按鈕可以取消本次交易),移動終端則提示支付成功。并用Rl 的私鑰進(jìn)行數(shù)字簽名,通過支付裝置的第一 NFC模塊6傳輸給移動終端的第二 NFC模塊7, 第一 NFC模塊6與第二 NFC模塊7采用NFC近場通信技術(shù),移動終端通過socket網(wǎng)絡(luò)通信 將代表支付成功的命令及其數(shù)字簽名傳輸給銀行端服務(wù)器,銀行端用Rl的公鑰解密數(shù)字 簽名,若簽名信息無誤,則從該銀行賬戶扣去相應(yīng)金額,并返還已支付狀態(tài)的信息給移動終 端,完成支付;在移動終端點(diǎn)擊刷新,該賬單狀態(tài)由待支付變?yōu)橐阎Ц丁?br> [0123]本發(fā)明并不局限于實(shí)例中所描述的技術(shù),它的描述是說明性的,并非限制性的,本 發(fā)明的權(quán)限由權(quán)利要求所限定,基于本【技術(shù)領(lǐng)域】人員依據(jù)本發(fā)明所能夠變化、重組等方法 得到的與本發(fā)明相關(guān)的技術(shù),都在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種基于NFC近場通信技術(shù)的移動支付裝置,其特征在于,包括外殼、顯示屏、旋轉(zhuǎn)模塊、按鍵、微處理器、第一 NFC模塊、供電模塊和開關(guān);移動終端內(nèi)設(shè)有第二 NFC模塊;外殼側(cè)面設(shè)有凹槽,旋轉(zhuǎn)模塊通過旋轉(zhuǎn)軸固定在外殼的凹槽內(nèi),顯示屏與按鍵固定在旋轉(zhuǎn)模塊上,微處理器、供電模塊和第一 NFC模塊位于外殼內(nèi)部;顯示屏用于顯示支付信息顯示,按鍵用于查看顯示屏信息、確認(rèn)支付、取消支付以及重啟支付裝置;開關(guān)位于外殼上,開關(guān)控制供電模塊對顯不屏、微處理器、第一 NFC模塊的供電;供電模塊包括鋰電池和充電口,供電模塊利用鋰電池為顯示屏、微處理器、第一 NFC模塊供電,外界通過充電口對鋰電池充電;微處理器包括控制模塊、硬件加密模塊;硬件加密模塊內(nèi)設(shè)有密鑰區(qū),密鑰區(qū)內(nèi)存儲有RSA私鑰,硬件加密模塊設(shè)有PIN碼功能,通過PIN碼對支付裝置進(jìn)行訪問控制;硬件加密模塊內(nèi)設(shè)有哈希算法和RSA加解密算法,能夠?qū)崿F(xiàn)數(shù)據(jù)驗(yàn)證、數(shù)據(jù)摘要、數(shù)據(jù)加解密和簽名;控制模塊具有控制功能,用于控制顯示屏、按鍵及第一 NFC模塊與包含第二NFC模塊的移動終端之間的通信;第一 NFC模塊與第二 NFC模塊之間采用NFC技術(shù)進(jìn)行通信。
2.根據(jù)權(quán)利要求1所述的一種基于NFC近場通信技術(shù)的移動支付裝置,其特征在于,所述RSA加解密算法為1024位及以上。
3.根據(jù)權(quán)利要求1所述的一種基于NFC近場通信技術(shù)的移動支付裝置,其特征在于,所述的按鍵包括上下翻頁按鈕、確定按鈕、取消按鈕、重啟按鈕,`上下翻頁按鈕用于對顯示屏顯示信息翻頁,確定按鈕用于核對顯示信息正確后,用戶確認(rèn)執(zhí)行本次支付以及硬件加密模塊進(jìn)行數(shù)字簽名,取消按鈕用于取消本次支付,重啟按鈕用于重啟支付裝置。
4.根據(jù)權(quán)利要求1所述的一種基于NFC近場通信技術(shù)的移動支付裝置,其特征在于, 第一 NFC模塊與第二 NFC模塊之間的數(shù)據(jù)通信,利用了 NDEF、LLCP以及SNEP三個協(xié)議,第二 NFC模塊接收數(shù)據(jù),第一 NFC模塊輸出數(shù)據(jù)時,第一 NFC模塊的輸出信息為十六進(jìn)制數(shù)據(jù),十六進(jìn)制數(shù)據(jù)通過NDEF協(xié)議,形成NDEF格式數(shù)據(jù),再進(jìn)行SNEP協(xié)議打包,然后數(shù)據(jù)通過NFC數(shù)據(jù)傳輸至第二 NFC模塊,第二 NFC模塊的接收信息經(jīng)過SNEP協(xié)議解包得到NDEF 格式數(shù)據(jù),通過NDEF協(xié)議,第二 NFC模塊接收到十六進(jìn)制數(shù)據(jù);第二 NFC模塊輸出數(shù)據(jù),第一 NFC模塊接收數(shù)據(jù)時與第二 NFC模塊接收數(shù)據(jù),第一 NFC模塊輸出數(shù)據(jù)時過程相同。
5.一種基于NFC近場通信技術(shù)的移動支付裝置的支付方法,其特征在于,包括以下內(nèi)容:移動終端向支付裝置發(fā)送數(shù)據(jù)的方法:I )、移動終端通過用戶輸入或自動生成的方式,獲得一條或若干條需要發(fā)送的數(shù)據(jù),包括在雙向身份認(rèn)證過程中為銀行端發(fā)送的隨機(jī)數(shù)以及Hash值;PIN碼認(rèn)證過程中為用戶輸入的PIN碼;還包括銀行發(fā)送的賬單信息,上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;2)、移動終端通過getBytes ()函數(shù)將每一條數(shù)據(jù)都轉(zhuǎn)換為字節(jié)型數(shù)組byte [],即十六進(jìn)制數(shù)據(jù);3)、移動終端將byte []類型的十六進(jìn)制數(shù)據(jù)傳入NdefRecord (short tnf, byte [] type, byte[] id, byte [] payload)構(gòu)造函數(shù),得到NdefRecord類型對象,從而將每一條數(shù)據(jù)格式轉(zhuǎn)化為NdefRecord類型;構(gòu)造函數(shù)中tnf為NDEF數(shù)據(jù)類型,type為數(shù)據(jù)格式的具體聲明,id為標(biāo)識符的元數(shù)據(jù),payload為要傳輸?shù)臄?shù)據(jù)內(nèi)容;4)、移動終端將 NdefRecord 類型數(shù)據(jù)傳入 NdefMessage (NdefRecord[]records)構(gòu)造函數(shù),得到NdefMessage類型的數(shù)據(jù),該數(shù)據(jù)中包含前述的一條或若干條NdefRecord類型的數(shù)據(jù),該類型的數(shù)據(jù)即為支持NFC功能的設(shè)備間進(jìn)行通信時所使用的標(biāo)準(zhǔn)數(shù)據(jù)格式 NDEF,符合SNEP協(xié)議所要求的標(biāo)準(zhǔn),為移動終端與裝置之間直接交互的內(nèi)容;支付裝置接收移動終端所發(fā)送數(shù)據(jù)的方法:1)、支付裝置通過開關(guān)啟動電源后,調(diào)用rxNDEFPayloadO函數(shù),使支付裝置處于等待數(shù)據(jù)的狀態(tài),準(zhǔn)備接收一個能夠匹配SNEP協(xié)議所規(guī)范的NdefMessage類型數(shù)據(jù);2)、當(dāng)有數(shù)據(jù)信息傳來時,支付裝置首先檢測傳遞信息的設(shè)備能否支持點(diǎn)對點(diǎn)通信,若檢測通過則接收該數(shù)據(jù);接收該數(shù)據(jù)時會先驗(yàn)證數(shù)據(jù)完整性,若數(shù)據(jù)完整則將該數(shù)據(jù)存為 NdefMessage 類型;3)、支付裝置通過getRecordO[i]函數(shù)從NdefMessage類型數(shù)據(jù)中提取之前移動終端中封裝好的若干條NdefRecord類型數(shù)據(jù);4)、支付裝置通過getNDEFChar()函數(shù),將NdefRecord類型數(shù)據(jù)轉(zhuǎn)化為char[];在其末尾添加結(jié)束標(biāo)識符,即可將其轉(zhuǎn)換為字符串;上述方式完成了從移動終端到支付裝置數(shù)據(jù)的傳遞;支付裝置向移動終端發(fā)送數(shù)據(jù)的方法:1)、支付裝置獲得一條或多條需要發(fā)送的數(shù)據(jù),該數(shù)據(jù)由移動終端發(fā)送的數(shù)據(jù)經(jīng)過解密以及數(shù)據(jù)比對后生成,包括數(shù)字簽名、身份認(rèn)證是否通過的確認(rèn)信息以及需要發(fā)送至移動終端的數(shù)據(jù),上述數(shù)據(jù)可為字符串、整數(shù)、浮點(diǎn)數(shù)或數(shù)組,非字符串類型數(shù)據(jù)在發(fā)送前轉(zhuǎn)換為字符串類型;2)、利用createNDEFShortRecord(uint8_t*message, uint8_t payloadLength, uint8_ t*&NDEFMessage)函數(shù),其中^message為要傳輸?shù)臄?shù)據(jù)內(nèi)容,payloadLength為數(shù)據(jù)長度,NDEFMessage為要發(fā)送的NdefMessage類型數(shù)據(jù);該函數(shù)首先填充NdefRecord的頭部,再將字符串?dāng)?shù)據(jù)添加為負(fù)載,實(shí)現(xiàn)將每一條字符串類型數(shù)據(jù)分別轉(zhuǎn)換為NdefRecord 類型數(shù)據(jù),并直接封裝為NdefMessage類型數(shù)據(jù),同時返回?cái)?shù)據(jù)長度txLength,用于判斷 NdefMessage是否成功生成;3)、利用pushPayload(txNDEFMessagePtr, txLength)函數(shù),其中 txNDEFMessagePtr 為要發(fā)送的NdefMessage數(shù)據(jù),txLength為數(shù)據(jù)長度;該函數(shù)調(diào)用數(shù)據(jù)鏈路層中的 openNNPClientLink ()函數(shù),若連接成功建立則調(diào)用 clientLinkTxData ((uint8_t*) snepMessage, Iength+SNEP_MESSAGE_HDR_LEN)函數(shù),進(jìn)行一次 NdefMessage 類型數(shù)據(jù)的發(fā)送;移動終端接收支付裝置所發(fā)送數(shù)據(jù)的方法:1)、根據(jù)移動終端所包含的第二NFC模塊的特性,若開啟NFC功能,當(dāng)移動終端處于屏幕點(diǎn)亮狀態(tài)并解鎖,移動終端一直處于等待接收消息狀態(tài);2)、當(dāng)移動終端在能夠識別的范圍內(nèi)檢測到支付裝置發(fā)送數(shù)據(jù)所產(chǎn)生的射頻場時,自動接收支付裝置所發(fā)送的NdefMessage類型數(shù)據(jù);3)、通過getRecordsO[i]函數(shù),提取NdefMessage數(shù)據(jù)中包含的一條或若干條 NdefRecord數(shù)據(jù),再通過getPay1adO函數(shù)得到byte []類型數(shù)據(jù);4)、將byte[]類型數(shù)據(jù)傳入String(byte [] data)構(gòu)造函數(shù),即可獲得字符串類型數(shù)據(jù);上述方式完成了從支付裝置到移動終端數(shù)據(jù)的傳遞。
6.一種基于NFC近場通信技術(shù)的移動支付裝置的支付方法,其特征在于,在移動終端上,使用支付裝置進(jìn)行支付的方法包括:1)、用戶需要支付時,向銀行提交待支付賬單;2)、在移動終端進(jìn)行刷新,得到銀行推送給移動終端的賬單信息,點(diǎn)擊賬單進(jìn)行支付, 同時將支付裝置貼于移動終端后側(cè),移動終端提示“輸入PIN碼”,PIN碼輸入正確后,支付裝置開始與銀行端服務(wù)器進(jìn)行身份驗(yàn)證;3)、雙向身份認(rèn)證過程中一共利用了兩對密鑰,其中一對設(shè)為R1,另一對設(shè)為R2,其中 Rl的私鑰在支付裝置出廠時已被內(nèi)置到支付裝置內(nèi),Rl的公鑰由銀行保存;支付裝置利用 Rl私鑰簽名,銀行利用Rl公鑰解密,驗(yàn)證用戶身份;R2公鑰在用戶每次進(jìn)行賬單請求時,移動終端從銀行端獲取,R2的私鑰則由銀行保存;銀行利用R2私鑰簽名,移動終端利用R2公鑰解密,驗(yàn)證銀行身份,上述方式即實(shí)現(xiàn)了雙向身份認(rèn)證;銀行端服務(wù)器產(chǎn)生一個隨機(jī)數(shù)X及其Hash值,并用R2的私鑰對Hash值進(jìn)行簽名為密文A,通過socket通信將隨機(jī)數(shù)X與數(shù)字簽名一起發(fā)送給移動終端;移動終端收到隨機(jī)數(shù) X和數(shù)字簽名后,用同樣的Hash算法對隨機(jī)數(shù)X計(jì)算出Hash值,然后與用移動終端從銀行端獲取的R2公鑰對數(shù)字簽名進(jìn)行解密解出的Hash值相比較;如兩Hash值相等則銀行端身份得以確認(rèn);此后,移動終端將該隨機(jī)數(shù)X及其Hash值通過的第二 NFC模塊發(fā)送至支付裝置;支付裝置得到隨機(jī)數(shù)X及其Hash值后,以預(yù)先和銀行約定好的隨機(jī)數(shù)生成算法,利用隨機(jī)數(shù)X和預(yù)先和銀行約定好的其它信息,生成新的隨機(jī)數(shù)Y和相應(yīng)的Hash值,再用Rl私鑰簽名后發(fā)回銀 行;此時銀行也以相同的算法計(jì)算新的隨機(jī)數(shù)Y ;銀行用Rl公鑰解密,并驗(yàn)證 Hash值正確,銀行比較兩個新的隨機(jī)數(shù)是否相同,若均相同則支付裝置所有者的身份得以確認(rèn),至此雙向認(rèn)證完成;4)、雙向身份認(rèn)證成功后,移動終端及支付裝置會提示身份認(rèn)證成功;此后,銀行端利用Rl的公鑰對待支付賬單的商品名稱、金額、交易日期及流水號進(jìn)行加密為密文B,然后將密文B傳輸?shù)揭苿咏K端上,再通過移動終端傳輸?shù)街Ц堆b置中,支付裝置使用Rl的私鑰對接受到的密文B進(jìn)行解密得到明文賬單信息,并將該明文所表示的待支付賬單的商品名稱、金額、交易日期及流水號在顯示屏上顯示;此時,如果確認(rèn)支付,按下顯示屏旁的確認(rèn)支付按鈕,如果取消支付,按下顯示屏旁的取消按鈕,確認(rèn)支付后,支付裝置則提示支付成功; 并用Rl私鑰對代表支付成功的命令進(jìn)行數(shù)字簽名,通過支付裝置的第一NFC模塊傳輸給移動終端的第二 NFC模塊,移動終端通過socket網(wǎng)絡(luò)通信將代表支付成功的命令及其數(shù)字簽名傳輸給銀行端服務(wù)器,銀行端用Rl的公鑰解密數(shù)字簽名,若簽名信息無誤,則從該銀行賬戶扣去相應(yīng)金額,并返還已支付狀態(tài)的信息給移動終端;在移動終端上點(diǎn)擊刷新,該賬單狀態(tài)由待支付變?yōu)橐阎Ц丁?br> 【文檔編號】H04L9/32GK103501191SQ201310366905
【公開日】2014年1月8日 申請日期:2013年8月21日 優(yōu)先權(quán)日:2013年8月21日
【發(fā)明者】王越, 曹競超, 馮采, 楊復(fù)淮 申請人:王越, 曹競超, 馮采, 楊復(fù)淮
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1